2 Commity 2bbceaae65 ... 9dccd99562

Autor SHA1 Wiadomość Data
  maoruxin 9dccd99562 fix: #1003393 接单NPE修复,getById传参由TOrder对象改为order.getcId() 3 tygodni temu
  maoruxin 2bbceaae65 fix: #1003393 接单NPE修复,getById传参由TOrder对象改为order.getcId() 3 tygodni temu

+ 60 - 60
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TOrderServiceImpl.java

@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
 
 
 /**
- * 订���务实现�
+ * 订�表 �务实现类
  */
 @Service
 @Slf4j
@@ -93,19 +93,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     public Boolean isFree(TJs js, BigDecimal distance) {
 
         Date date = new Date();
-        //白天�车�07.30-20.00)
+        //白天�车费(07.30-20.00)
         long current = Long.parseLong(DateTimeUtils.numTime(date));
         if (current >= MassageConstants.START_FREE && current <= MassageConstants.END_FREE) {
             if (js.getDaytimeMileage().compareTo(distance) >= 0) {
-                //�车�
+                //�车费
                 return Boolean.TRUE;
             } else {
                 return Boolean.FALSE;
             }
         } else {
-            //夜间�车�20.00-07.30)
+            //夜间�车费(20.00-07.30)
             if (js.getNigthMileage().compareTo(distance) >= 0) {
-                //�车�
+                //�车费
                 return Boolean.TRUE;
             } else {
                 return Boolean.FALSE;
@@ -123,13 +123,13 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     public TOrder addOrder(TOrder order) {
 
         if (StringUtils.isBlank(order.getcJsId())) {
-            throw new ServiceException("请选择技�);
+            throw new ServiceException("请选择技师");
         }
         if (order.getcGoods().isEmpty()) {
             throw new ServiceException("请选择项目");
         }
 
-        //优惠���
+        //优惠å�·å‡�å…
 //        List<CouponReceiveVo> coupons = couponReceiveService.getByOpenId(order.getcOpenId());
 //        BigDecimal preferential = this.setCoupon(coupons);
 //        order.setPreferential(preferential);
@@ -155,7 +155,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         order.setDistance(new BigDecimal(distance));
         //计算车费
         if (order.getDistance() != null && order.getDistance().compareTo(BigDecimal.ZERO) > 0 && StringUtils.isBlank(order.getParentNo())) {
-            //判断是��以�车�
+            //判断是��以�车费
             if (!this.isFree(js, order.getDistance())) {
                 BigDecimal bigDecimal = massageUtil.calculateTaxiFare(order.getDistance(), js.getDeptId());
                 order.setFare(bigDecimal.setScale(MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP));
@@ -164,7 +164,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         //总价 = 订� + 车费 - 优惠
         order.setTotalPrice(sum.add(Optional.ofNullable(order.getFare()).orElse(BigDecimal.ZERO)));
         if (order.getParentNo() != null && order.getOrderType() == 2) {
-            //�级订� 补差�
+            //�级订� 补差价
             TOrder partOrder = this.getByNo(order.getParentNo());
             order.setPriceDifference(order.getTotalPrice().subtract(partOrder.getTotalPrice()));
         }
@@ -191,7 +191,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         coupons = coupons.stream().filter(coupon -> coupon.getExpirationTime().after(new Date())).collect(Collectors.toList());
         //无门槛优惠券
         List<CouponReceiveVo> collect = coupons.stream().filter(coupon -> coupon.getDiscountType().equals(DiscountTypeEnum.NO_THRESHOLD.getCode())).collect(Collectors.toList());
-        //支付�功 �删除优惠�
+        //支付�功 � 删除优惠�
 //        couponReceiveService.removeCoupons(collect);
         //计算优惠金�
         return collect.stream().map(CouponReceiveVo::getDiscountValue).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -233,7 +233,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             order.setDistance(new BigDecimal(distance));
             //计算车费
             if (order.getDistance() != null && order.getDistance().compareTo(BigDecimal.ZERO) > 0) {
-                //判断是��以�车�
+                //判断是��以�车费
                 if (!this.isFree(js, order.getDistance())) {
                     BigDecimal bigDecimal = massageUtil.calculateTaxiFare(order.getDistance(), order.getDeptId());
                     order.setFare(bigDecimal.setScale(MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP));
@@ -290,22 +290,22 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
         oldOrder.setOldJsId(oldOrder.getcJsId());
         oldOrder.setcJsId(order.getcJsId());
-        log.info("新技�{},�技师{}", oldOrder.getcJsId(), oldOrder.getOldJsId());
+        log.info("新技师:{},�技师{}", oldOrder.getcJsId(), oldOrder.getOldJsId());
         if (!this.updateById(oldOrder)) {
             throw new ServiceException("转�失败");
         }
-        //改�新技师�务状�
+        //改å�˜æ–°æŠ€å¸ˆæœ�务状æ€
         TJs tJs = new TJs();
         tJs.setId(oldOrder.getcJsId());
         tJs.setnStatus(JsStatusEnum.JS_SERVICE.getCode());
         jsService.updateById(tJs);
-        //改�旧技师�务状�
+        //改å�˜æ—§æŠ€å¸ˆæœ�务状æ€
         TJs oldTJs = new TJs();
         oldTJs.setId(oldOrder.getOldJsId());
         oldTJs.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode());
         jsService.updateById(oldTJs);
 
-        //通知技师转�
+        //通知技师转å�
         this.newOrderNotification(oldOrder);
         return oldOrder;
     }
@@ -330,18 +330,18 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         CouponReceive couponReceive = couponReceiveService.getById(order.getCouponReceiveId());
         Coupon coupon = couponService.getById(couponReceive.getCouponId());
         log.info("订�信�,{}", tOrder);
-        log.info("优惠�信�{}", coupon);
+        log.info("优惠�信�,{}", coupon);
 
 
-        //折扣�
+        //折扣券
         if (coupon.getDiscountType() == 2) {
             //判断门槛金�
             if (tOrder.getTotalPrice().compareTo(coupon.getThresholdAmount()) >= 0) {
-                //折扣�
+                //折扣值
                 BigDecimal divide = coupon.getRebValue().divide(new BigDecimal(10));
-                //优惠�的金� = 订�总金�折扣�
+                //优惠�的金� = 订�总金�*折扣值
                 BigDecimal bigDecimal = tOrder.getTotalPrice().multiply(divide).setScale(MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP);
-                //优惠�
+                //优惠值
                 orderVerificationVo.setPreferential(tOrder.getTotalPrice().subtract(bigDecimal));
                 orderVerificationVo.setTotalPrice(bigDecimal);
             } else {
@@ -349,7 +349,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             }
         } else {
             if (tOrder.getTotalPrice().compareTo(coupon.getThresholdAmount()) >= 0) {
-                //优惠�
+                //优惠值
                 orderVerificationVo.setPreferential(coupon.getDiscountValue());
                 orderVerificationVo.setTotalPrice(tOrder.getTotalPrice().subtract(coupon.getDiscountValue()));
             } else {
@@ -357,7 +357,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             }
         }
         if (orderVerificationVo.getTotalPrice().compareTo(BigDecimal.ZERO) < 0) {
-            throw new ServiceException("当�项目���);
+            throw new ServiceException("当�项目��用");
         }
         return orderVerificationVo;
     }
@@ -387,7 +387,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         if (StringUtils.isBlank(orderNew.getParentNo())) {
 
             if (null == js || js.getnStatus().equals(JsStatusEnum.JS_SERVICE.getCode())) {
-                throw new ServiceException("该技师已在�务中请�新下�);
+                throw new ServiceException("该技师已在�务中请�新下�");
             }
         }
 
@@ -410,10 +410,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
 
 
-        // 从对应账户扣�
+        // 从对应账户扣款
         TWxUser user = wxUserService.getByOpenId(orderNew.getcOpenId());
         if (null == user) {
-            throw new ServiceException("用户�存�);
+            throw new ServiceException("用户�存在");
         }
         //判断支付方�
         if (order.getPayType().equals(MassageConstants.INTEGER_THREE)) {
@@ -422,7 +422,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             return R.ok();
         }
         if (user.getdBalance().compareTo(orderNew.getTotalPrice()) < MassageConstants.INTEGER_ZERO) {
-            throw new ServiceException("账户金��够请充�);
+            throw new ServiceException("账户金��够请充值");
         } else {
             orderPayManage(user, orderNew);
             return R.ok();
@@ -433,7 +433,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     public void newOrderNotification(TOrder order) {
 
         cn.hutool.json.JSONObject param = JSONUtil.createObj();
-        //订��
+        //订��
         param.set("character_string9", JSONUtil.createObj().set("value", order.getOrderNo()));
         //电�
         param.set("phone_number14", JSONUtil.createObj().set("value", order.getcPhone()));
@@ -447,7 +447,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
     @Transactional(rollbackFor = Exception.class)
     public void orderPayManage(TWxUser user, TOrder orderNew) {
-        //更新优惠�状�
+        //更新优惠å�·çжæ€
         if (StringUtils.isNotBlank(orderNew.getCouponReceiveId())) {
             CouponReceive couponReceive = new CouponReceive();
             couponReceive.setId(orderNew.getCouponReceiveId());
@@ -457,7 +457,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             }
         }
 
-        // 更新用户金� �下�此�
+        // 更新用户金é¢� å�Šä¸‹å�•æ­¤æ—
         TWxUser paramUser = new TWxUser();
         paramUser.setcOpenid(user.getcOpenid());
         if (orderNew.getPayType().equals(MassageConstants.INTEGER_TWO)) {
@@ -499,12 +499,12 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         orderParam.setcId(orderNew.getcId());
         orderParam.setnStatus(OrderStatusEnum.WAIT_JD.getCode());
         orderParam.setPayTime(new Date());
-        //加钟的订�支付完直接�务�
+        //加钟的订�支付完直接�务中
         if (StringUtils.isNotBlank(orderNew.getParentNo())) {
             orderParam.setnStatus(OrderStatusEnum.SERVICE.getCode());
         }
 //            orderParam.setnStatus(OrderStatusEnum.SERVICE.getCode());
-        //更新�技师状�
+        //æ›´æ–°å�ŠæŠ€å¸ˆçŠ¶æ€
         updateJs(orderNew);
         updateById(orderParam);
         this.newOrderNotification(orderNew);
@@ -524,7 +524,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         TOrder orderNew = getById(order.getcId());
 
         TWxUser user = wxUserService.getByOpenId(orderNew.getcOpenId());
-        // 更新用户金� �下�此�
+        // 更新用户金é¢� å�Šä¸‹å�•æ­¤æ—
         TWxUser paramUser = new TWxUser();
         paramUser.setcOpenid(user.getcOpenid());
         paramUser.setId(user.getId());
@@ -541,22 +541,22 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
         } else {
             // 微信支付
-            // 生�退款�退�
+            // 生�退款�退款
             RefundVoucher refundVoucher = new RefundVoucher();
             refundVoucher.setRefundNo(generator.generateNextOrderNumber(OrderNumberGenerator.KEY_PREFIX_REFUND));
             refundVoucher.setOrderNo(orderNew.getOrderNo());
             refundVoucher.setMoney(orderNew.getTotalPrice());
             refundVoucher.setOpenId(orderNew.getcOpenId());
             refundVoucher.setReStatus(MassageConstants.INTEGER_ZERO);
-            refundVoucher.setReason("技师拒�接�);
+            refundVoucher.setReason("技师拒�接�");
             refundVoucherService.save(refundVoucher);
             tConsumptionLog.setBillType(BillTypeEnum.REFUSE_ACCEPT_REFUND.getCode());
             tConsumptionLog.setNote("拒�接�退款到余�");
-            // 微信退款原路返�
+            // 微信退款原路返回
             rechargeService.refund(refundVoucher.getRefundNo(), null, orderNew.getOrderNo(), orderNew.getTotalPrice());
         }
         consumptionLogService.save(tConsumptionLog);
-        //退优惠�
+        //退优惠�
         if (StringUtils.isNotBlank(orderNew.getCouponReceiveId())) {
             CouponReceive couponReceive = couponReceiveService.getById(orderNew.getCouponReceiveId());
             couponReceive.setUseState(MassageConstants.INTEGER_ZERO);
@@ -603,7 +603,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         if (!orderNew.getnStatus().equals(OrderStatusEnum.SERVICE.getCode())) {
             throw new ServiceException("订�状��是�务中");
         }
-        // 更新技师信�
+        // 更新技师信�
         TJs jsParam = new TJs();
         jsParam.setId(orderNew.getcJsId());
         jsParam.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode());
@@ -614,18 +614,18 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         if (list.size() >= 2) {
             jsParam.setnB3(MassageConstants.INTEGER_ONE);
         }
-        // 更新技师状�
+        // 更新技师状æ€
         jsService.updateById(jsParam);
-        // 更新技师钱包金�
+        // 更新技师钱包金é¢
         TJs jsById = jsService.getById(orderNew.getcJsId());
-        // 获�技师抽�
+        // 获å�–技师抽æˆ
         BigDecimal multiply = orderNew.getTotalPrice().multiply(new BigDecimal(jsById.getnBili()));
         multiply = multiply.divide(new BigDecimal(100), MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP);
-        // 获�技师所对应的用�
+        // 获�技师所对应的用户
         TWxUser jsUser = wxUserService.getByOpenId(jsById.getcOpenId());
         // 更新余�
         jsUser.setdBalance(jsUser.getdBalance().add(multiply));
-        // 更新总钱�
+        // 更新总钱数
         jsUser.setdAllMoney(jsUser.getdAllMoney().add(multiply));
         wxUserService.updateById(jsUser);
 
@@ -635,10 +635,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         tConsumptionLog.setBillNo(orderNew.getOrderNo());
         tConsumptionLog.setOpenId(jsUser.getcOpenid());
         tConsumptionLog.setBillType(BillTypeEnum.INCOME.getCode());
-        tConsumptionLog.setNote("技师收�);
+        tConsumptionLog.setNote("技师收益");
         consumptionLogService.save(tConsumptionLog);
 
-        // 如果该技师有推�人员 一�
+        // 如果该技师有推�人员 一级
         if (StringUtils.isNotBlank(jsUser.getcUpUser())) {
             // 获�技师上级对应的用户
             TWxUser jsUp = wxUserService.getByOpenId(jsUser.getcUpUser());
@@ -667,7 +667,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         up = up.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
         // 更新余�
         jsUp.setdBalance(jsUp.getdBalance().add(up));
-        // 更新总钱�
+        // 更新总钱数
         jsUp.setdAllMoney(jsUp.getdAllMoney().add(up));
         jsUp.setDistributionAmount(up);
         wxUserService.updateById(jsUp);
@@ -694,10 +694,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         // 获�订�信�
         // 根�orderid查询订�信�
         TOrder orderNew = getById(order.getcId());
-        //待接�
+        //待接å�
         if (Objects.equals(orderNew.getnStatus(), OrderStatusEnum.WAIT_JD.getCode())) {
             TWxUser user = wxUserService.getByOpenId(orderNew.getcOpenId());
-            // 更新用户金� �下�此�
+            // 更新用户金é¢� å�Šä¸‹å�•æ­¤æ—
             TWxUser paramUser = new TWxUser();
             paramUser.setId(user.getId());
             paramUser.setcOpenid(user.getcOpenid());
@@ -712,21 +712,21 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                 // 余�记录
                 tConsumptionLog.setBillType(BillTypeEnum.CANCEL_ACCEPT_REFUND.getCode());
                 tConsumptionLog.setNote("�消订�退款到余�");
-                //自己�消的�退优惠�
+                //自己�消的�退优惠�
             } else {
                 // 微信支付
-                // 生�退款�退�
+                // 生�退款�退款
                 RefundVoucher refundVoucher = new RefundVoucher();
                 refundVoucher.setRefundNo(generator.generateNextOrderNumber(OrderNumberGenerator.KEY_PREFIX_REFUND));
                 refundVoucher.setOrderNo(orderNew.getOrderNo());
                 refundVoucher.setMoney(orderNew.getTotalPrice());
                 refundVoucher.setOpenId(orderNew.getcOpenId());
                 refundVoucher.setReStatus(MassageConstants.INTEGER_ZERO);
-                refundVoucher.setReason("技师拒�接�);
+                refundVoucher.setReason("技师拒�接�");
                 refundVoucherService.save(refundVoucher);
                 tConsumptionLog.setBillType(BillTypeEnum.CANCEL_WX_REFUND.getCode());
                 tConsumptionLog.setNote("�消订�退款到微信");
-                // 微信退款原路返�
+                // 微信退款原路返回
                 rechargeService.refund(refundVoucher.getRefundNo(), null, orderNew.getOrderNo(), orderNew.getTotalPrice());
             }
             consumptionLogService.save(tConsumptionLog);
@@ -749,7 +749,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             TOrder orderParam = new TOrder();
             orderParam.setcId(orderNew.getcId());
             orderParam.setnStatus(OrderStatusEnum.CANCEL.getCode());
-            //更新技师状�
+            //更新技师状æ€
             TJs tJs = new TJs();
             tJs.setId(orderNew.getcJsId());
             tJs.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode());
@@ -757,7 +757,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             return updateById(orderParam);
 
         } else if (Objects.equals(orderNew.getnStatus(), OrderStatusEnum.WAIT_PAY.getCode())) {
-            //待付�
+            //待付款
             TOrder orderParam = new TOrder();
             orderParam.setcId(orderNew.getcId());
             orderParam.setnStatus(OrderStatusEnum.CANCEL.getCode());
@@ -821,9 +821,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
         TOrder orderNew = this.getById(order.getcId());
 
-        // 检查订�对应的技师是�存�
+        // 检查订�对应的技师是�存在
 //        updateJs (orderNew);
-        // 更新订�状�
+        // 更新订å�•状æ€
         TOrder orderParam = new TOrder();
         orderParam.setcId(order.getcId());
         orderParam.setnStatus(OrderStatusEnum.RECEIVED_ORDER.getCode());
@@ -834,19 +834,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     private void updateJs(TOrder orderNew) {
         TJs js = jsService.getById(orderNew.getcJsId());
         if (js == null) {
-            throw new IllegalStateException("无法找到对应的技�);
+            throw new IllegalStateException("无法找到对应的技师");
         }
 
         if (Objects.equals(js.getnStatus(), JsStatusEnum.JS_SERVICEABLE.getCode())) {
-            // 更新技师状�
+            // 更新技师状æ€
             js.setnStatus(JsStatusEnum.JS_SERVICE.getCode());
-            // 确�js.getnNum()�为null,��NullPointerException
+            // ç¡®ä¿�js.getnNum()ä¸�为null,é�¿å…NullPointerException
             int num = js.getnNum() == null ? 0 : js.getnNum();
             js.setnNum(num + MassageConstants.INTEGER_ONE);
         } else {
-            // 更新技师状�
+            // 更新技师状æ€
             js.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode());
-            // 确�js.getnNum()�为null,��NullPointerException
+            // ç¡®ä¿�js.getnNum()ä¸�为null,é�¿å…NullPointerException
             int num = js.getnNum() == null ? 0 : js.getnNum();
             js.setnNum(num - MassageConstants.INTEGER_ONE);
         }