huliguo
2 天以前 d15bb55822001421572bfee603b3d503cd63e07d
完善
21个文件已修改
125 ■■■■■ 已修改文件
pt-admin/src/main/java/com/ruoyi/web/controller/errand/AppUserController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-admin/src/main/java/com/ruoyi/web/controller/errand/PhoneController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-admin/src/main/resources/application.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/domain/VipSetting.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/interceptor/APPJwtTokenInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/mapper/CourierMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/AppUserInfoVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/CourierInfoVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/AppUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/PhoneService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/AppUserServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/OrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/PhoneServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/VipOrderServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/service/impl/VipSettingServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/java/com/ruoyi/errand/utils/WeAppAuthenticationToken.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/resources/mapper/AppUserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/resources/mapper/CourierMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-errand/src/main/resources/mapper/OrderMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pt-admin/src/main/java/com/ruoyi/web/controller/errand/AppUserController.java
@@ -46,7 +46,7 @@
    @Autowired
    private TokenBlacklistService blacklistService;
    @GetMapping("/test")
    @ApiOperation(value = "登出" ,tags = "app用户端")
    @ApiOperation(value = "测试接口" ,tags = "测试")
    public R<Void> test(@RequestHeader("Authorization") String token) {
        throw new ServiceException("测试");
@@ -92,7 +92,7 @@
    }
    /**
     * 注册成功-修改用户成功
     * 注册
     */
    @PostMapping("/register")
    @ApiOperation(value = "注册",tags = "app用户端")
@@ -143,8 +143,8 @@
     */
    @DeleteMapping("/delete")
    @ApiOperation(value = "注销账号",tags = "app用户端-个人信息")
    public R<Void> delete() {
        appUserService.delete();
    public R<Void> delete(@RequestHeader("Authorization") String token) {
        appUserService.delete(token);
        return R.ok();
    }
pt-admin/src/main/java/com/ruoyi/web/controller/errand/PhoneController.java
@@ -29,6 +29,16 @@
        return R.ok(phoneService.getServletPhone());
    }
    /**
     * 联系客服
     */
    @GetMapping("/getPhone")
    @ApiOperation(value = "获取客服电话(回显)",tags = "系统后台-联系客服")
    public R<String> getPhone() {
        return R.ok(phoneService.getPhone());
    }
    /**
     * 保存客服电话
     */
pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -99,13 +99,13 @@
     *
     * @return 路由信息
     */
    @ApiOperation(value = "获取路由信息", notes = "获取路由信息")
 /*   @ApiOperation(value = "获取路由信息", notes = "获取路由信息")
    @GetMapping("getRouters")
    public AjaxResult getRouters() {
        Long userId = SecurityUtils.getUserId();
        List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
        return AjaxResult.success(menuService.buildMenus(menus));
    }
    }*/
    /**
     * 退出登录
pt-admin/src/main/resources/application.yml
@@ -176,6 +176,7 @@
      - /app/user/detail
      - /app/user/froze
      - /app/user/refund
      - /app/user/refundPayMoneyCallback
      - /app/courier/getAllCourierList
      - /app/courier/list
      - /app/courier/detail
@@ -202,6 +203,7 @@
      - /app/banner/delete
      - /app/banner/detail
      - /app/phone/saveServicePhone
      - /app/phone/getPhone
      - /app/vipSetting/setPrice
      - /app/vipSetting/getVipList
      - /app/feedback/list
pt-errand/src/main/java/com/ruoyi/errand/domain/VipSetting.java
@@ -21,19 +21,19 @@
    @ApiModelProperty("会员名称")
    @TableField("vip_name")
    private String vip_name;
    private String vipName;
    @ApiModelProperty("会员价格")
    @TableField("vip_price")
    private BigDecimal vip_price;
    private BigDecimal vipPrice;
    @ApiModelProperty("添加时间")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime create_time;
    private LocalDateTime createTime;
    @ApiModelProperty("添加时间")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime update_time;
    private LocalDateTime updateTime;
}
pt-errand/src/main/java/com/ruoyi/errand/interceptor/APPJwtTokenInterceptor.java
@@ -91,7 +91,7 @@
                }
                // 将userId存入SecurityContext(需自定义Authentication对象)
                WeAppAuthenticationToken authentication =
                        new WeAppAuthenticationToken(userId, appUser, token);
                        new WeAppAuthenticationToken(appUser, token);
                SecurityContextHolder.getContext().setAuthentication(authentication);
                chain.doFilter(request, response);
            } catch (Exception e) {
pt-errand/src/main/java/com/ruoyi/errand/mapper/CourierMapper.java
@@ -21,7 +21,7 @@
    CourierStatisticsVO getDatStatistics(Integer courierId);
    IPage<CourierOrderListVO> getCourierOrderList(@Param("page") IPage<CourierOrderListVO> page, @Param("orderStatus") Integer orderStatus,@Param("courierId")  Integer courierId);
    IPage<CourierOrderListVO> getCourierOrderList(@Param("page") IPage<CourierOrderListVO> page,@Param("courierId")  Integer courierId ,@Param("orderStatus") Integer orderStatus);
    IPage<CourierPageListVO> getCourierPageList(@Param("page") IPage<CourierPageListVO> page, @Param("dto") CourierPageListDTO dto);
pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/AppUserInfoVO.java
@@ -6,7 +6,9 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.cglib.core.Local;
import java.time.LocalDate;
import java.time.LocalDateTime;
@ApiModel("用户个人中心信息")
@@ -24,11 +26,15 @@
    @ApiModelProperty("性别(1=男,2=女,3=未知)")
    private Integer sex;
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    @ApiModelProperty("会员id")
    private Integer vipId;
    @ApiModelProperty("会员id")
    private Integer vipName;
    private String vipName;
    @ApiModelProperty("会员到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/CourierInfoVO.java
@@ -13,5 +13,5 @@
    @ApiModelProperty("联系电话")
    private String phone;
    @ApiModelProperty("小区名称")
    private Integer communityName;
    private String communityName;
}
pt-errand/src/main/java/com/ruoyi/errand/service/AppUserService.java
@@ -40,7 +40,7 @@
    void setBirthDay(BirthDayDTO birth);
    void delete();
    void delete( String token);
    UserStatsVO getUserStats(LocalDateTime start, LocalDateTime end, String datePattern);
pt-errand/src/main/java/com/ruoyi/errand/service/PhoneService.java
@@ -7,4 +7,6 @@
    String getServletPhone();
    void saveServicePhone(String phone);
    String getPhone();
}
pt-errand/src/main/java/com/ruoyi/errand/service/impl/AppUserServiceImpl.java
@@ -69,6 +69,8 @@
    @Autowired
    private VipOrderMapper vipOrderMapper;
    @Autowired
    private TokenBlacklistService tokenBlacklistService;
    @Override
    public void getSMSCode(String phone) {
@@ -220,7 +222,6 @@
        appUser.setFirstLogin(IsFirstLoginConstant.NO);
        appUser.setCommunityId(registerDTO.getCommunityId());
        this.updateById(appUser);
    }
    @Override
@@ -251,7 +252,6 @@
        appUser.setSex(sex);
        updateById(appUser);
    }
    @Override
@@ -265,7 +265,7 @@
     * 注销账号
     */
    @Override
    public void delete() {
    public void delete( String token) {
        AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        appuser.setDelFlag(DelFlagConstant.DELETE);
        appuser.setStatus(AppUserStatusConstant.LOGOUT);
@@ -275,6 +275,8 @@
        userCancellationLog.setDel_flag(DelFlagConstant.DELETE);
        userCancellationLog.setCreate_time(LocalDateTime.now());
        userCancellationLogMapper.insert(userCancellationLog);
        //token加入黑名单
        tokenBlacklistService.addToBlacklist(token);
    }
    @Override
pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java
@@ -80,7 +80,7 @@
    public IPage<CourierOrderListVO> getCourierOrderList(Integer pageNum, Integer pageSize, Integer orderStatus) {
        AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        IPage<CourierOrderListVO> page=new Page<>(pageNum, pageSize);
        return this.baseMapper.getCourierOrderList(page,orderStatus,appuser.getCourierId());
        return this.baseMapper.getCourierOrderList(page,appuser.getCourierId(),orderStatus);
    }
    @Override
@@ -107,6 +107,7 @@
        //修改订单状态
        order.setOrderStatus(2);
        order.setCourierId(appuser.getCourierId());
        order.setReceivingTime(LocalDateTime.now());
        orderMapper.updateById(order);
pt-errand/src/main/java/com/ruoyi/errand/service/impl/OrderServiceImpl.java
@@ -101,7 +101,7 @@
        }else if (confirmOrderDTO.getPayMethod()==1){
            confirmOrderVO.setPayMethod(1);
            //会员支付
            if (appuser.getEndTime().isAfter(LocalDateTime.now())) {
            if (appuser.getEndTime().isBefore(LocalDateTime.now())) {
                //过期了
                throw new ServiceException("支付错误:会员已到期");
            }
pt-errand/src/main/java/com/ruoyi/errand/service/impl/PhoneServiceImpl.java
@@ -36,8 +36,9 @@
    @Override
    public void saveServicePhone(String phone) {
        Phone phoneEntity = this.getBaseMapper().selectOne(new LambdaUpdateWrapper<Phone>().eq(Phone::getType, 1));
        if (phoneEntity!=null){
        if (phoneEntity==null){
            //不存在
            phoneEntity = new Phone();
            phoneEntity.setType(1);
            phoneEntity.setPhone(phone);
            this.save(phoneEntity);
@@ -52,4 +53,13 @@
        }
    }
    @Override
    public String getPhone() {
        List<Phone> list = this.getBaseMapper().selectList(new LambdaUpdateWrapper<Phone>().eq(Phone::getType, 1));
        if (list!=null && !list.isEmpty()){
            return list.get(0).getPhone();
        }
        return "";
    }
}
pt-errand/src/main/java/com/ruoyi/errand/service/impl/VipOrderServiceImpl.java
@@ -15,10 +15,7 @@
import com.ruoyi.errand.mapper.VipSettingMapper;
import com.ruoyi.errand.object.dto.app.VipPaymentDTO;
import com.ruoyi.errand.service.VipOrderService;
import com.ruoyi.errand.utils.CloseOrderResult;
import com.ruoyi.errand.utils.PaymentUtil;
import com.ruoyi.errand.utils.UniPayCallbackResult;
import com.ruoyi.errand.utils.UniPayResult;
import com.ruoyi.errand.utils.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -51,8 +48,8 @@
        vipOrder.setAppUserId(appuser.getId());
        VipSetting vipSetting = vipSettingMapper.selectById(vipPaymentDTO.getId());
        vipOrder.setOrderAmount(vipSetting.getVip_price());
        vipOrder.setPaymentAmount(vipSetting.getVip_price());
        vipOrder.setOrderAmount(vipSetting.getVipPrice());
        vipOrder.setPaymentAmount(vipSetting.getVipPrice());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        vipOrder.setOrderNumber("QJS" + getNumber(3) + sdf.format(new Date()));
        vipOrder.setPayStatus(1);
@@ -62,7 +59,7 @@
        BigDecimal paymentMoney = vipOrder.getOrderAmount();
        if ( BigDecimal.ZERO.compareTo(paymentMoney) < 0){
            //调起微信支付
            String vipName = vipSetting.getVip_name();
            String vipName = vipSetting.getVipName();
            UniPayResult uniPayResult = PaymentUtil.uniPay(vipOrder.getOrderNumber(), paymentMoney.doubleValue(),  "购买会员",
                    vipName, "", "/app/vipOrder/orderPaymentCallback", appuser.getWxOpenid(), null);
            if(null == uniPayResult || !"100".equals(uniPayResult.getRa_Code())){
@@ -84,8 +81,10 @@
        Long appUserId = vipOrder.getAppUserId();
        AppUser appUser = appUserMapper.selectById(appUserId);
        appUser.setVipId(vipOrder.getVipId());
        if (appUser.getEndTime().isBefore(LocalDateTime.now())) {
            appUser.setStartTime(LocalDateTime.now());
        LocalDateTime now = LocalDateTime.now();
        appUser.setEndTime(appUser.getEndTime()==null?now:appUser.getEndTime());
        if (appUser.getEndTime().isBefore(now)) {
            appUser.setEndTime(now);
        }
        // 根据 vipId 计算会员到期时间
        LocalDateTime endTime = calculateEndTime(appUser.getEndTime(), vipOrder.getVipId());
@@ -115,7 +114,7 @@
        LocalDateTime now = LocalDateTime.now();
        appUser.setEndTime(appUser.getEndTime()==null?now:appUser.getEndTime());
        if (appUser.getEndTime().isBefore(now)) {
            appUser.setStartTime(now);
            appUser.setEndTime(now);
        }
        // 根据 vipId 计算会员到期时间
        LocalDateTime endTime = calculateEndTime(appUser.getEndTime(), vipOrder.getVipId());
pt-errand/src/main/java/com/ruoyi/errand/service/impl/VipSettingServiceImpl.java
@@ -24,14 +24,14 @@
        if (byId == null) {
            byId=new VipSetting();
            byId.setId(setPriceDTO.getId());
            if (setPriceDTO.getId()==1) byId.setVip_name("月卡会员");
            if (setPriceDTO.getId()==2) byId.setVip_name("季卡会员");
            if (setPriceDTO.getId()==3) byId.setVip_name("半年卡会员");
            if (setPriceDTO.getId()==4) byId.setVip_name("年卡会员");
            byId.setVip_price(setPriceDTO.getVip_price());
            if (setPriceDTO.getId()==1) byId.setVipName("月卡会员");
            if (setPriceDTO.getId()==2) byId.setVipName("季卡会员");
            if (setPriceDTO.getId()==3) byId.setVipName("半年卡会员");
            if (setPriceDTO.getId()==4) byId.setVipName("年卡会员");
            byId.setVipPrice(setPriceDTO.getVip_price());
            this.save(byId);
        }else {
            byId.setVip_price(setPriceDTO.getVip_price());
            byId.setVipPrice(setPriceDTO.getVip_price());
            this.updateById(byId);
        }
pt-errand/src/main/java/com/ruoyi/errand/utils/WeAppAuthenticationToken.java
@@ -7,10 +7,10 @@
public class WeAppAuthenticationToken extends AbstractAuthenticationToken {
    private final AppUser appuser; // 微信OpenID作为主体标识
    private final AppUser appuser; // 主体标识
    private final String token;  // 原始Token(可选)
    public WeAppAuthenticationToken(String openid, AppUser appuser, String token) {
    public WeAppAuthenticationToken( AppUser appuser, String token) {
        super(new ArrayList<>()); // 无权限集合
        this.appuser = appuser;
        this.token = token;
pt-errand/src/main/resources/mapper/AppUserMapper.xml
@@ -42,9 +42,10 @@
            tau.name,
            tau.phone,
            tau.sex,
            tau.birthday,
            tau.vip_id,
            tvs.vip_name as vipName,
            tau.endTime
            tau.end_time
        from
            t_app_user tau
        left join
pt-errand/src/main/resources/mapper/CourierMapper.xml
@@ -9,7 +9,7 @@
            tc.phone as phone,
            tc2.name as communityName
        from t_courier tc
        left join t_community_courier on tc.id = tcc.courier_id
        left join t_community_courier tcc on tc.id = tcc.courier_id
        left join t_community tc2 on tcc.community_id = tc2.id
        where
            tc.del_flag=0
@@ -38,15 +38,16 @@
        from
            t_order o
        left join  t_evaluation te on o.id = te.order_id
        where
            o.courier_id = #{courierId}  -- 替换为实际跑腿ID
            AND o.del_flag = 0          -- 过滤未删除的订单
        and o.payStatus = 2            -- 过滤未支付的订单
        and o.pay_status = 2            -- 过滤未支付的订单
        <if test="orderStatus !=null and orderStatus !=0">
            AND o.order_status = #{orderStatus}  -- 订单状态筛选条件
        </if>
        ORDER BY
            CASE WHEN o.order_status = 1 THEN 0 ELSE 1 END,  -- 待确认订单置顶
    o.order_time DESC;  -- 其余订单按下单时间倒序
            CASE WHEN o.order_status = 1 THEN 0 ELSE 1 END,  -- 待确认订单置顶 其余订单按下单时间倒序
    o.order_time DESC
    </select>
    <select id="getCourierPageList" resultType="com.ruoyi.errand.object.vo.sys.CourierPageListVO">
        select
pt-errand/src/main/resources/mapper/OrderMapper.xml
@@ -11,12 +11,13 @@
            o.recipient_phone,
            o.order_status,
            o.order_time,
            o.rating,
            e.rating,
            o.courier_id,
            c.name,
            c.phone
            from t_order o
            left join t_courier c on o.courier_id = c.id
             left join t_evaluation e on o.id = e.order_id   AND e.type = 0
            where
                o.del_flag=0
              and o.pay_status=2