Bläddra i källkod

Merge branch 'dev/2024/0607/update-app-Y' of feifan/mall-backend-app into master

修改虚拟商品的金额精度
Yangzw 10 månader sedan
förälder
incheckning
6ec411dc72

+ 27 - 21
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -30,7 +30,9 @@ import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
 import cn.newfeifan.mall.module.product.api.comment.ProductCommentApi;
 import cn.newfeifan.mall.module.product.api.comment.dto.ProductCommentCreateReqDTO;
 import cn.newfeifan.mall.module.product.dal.dataobject.sku.ProductSkuDO;
+import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
 import cn.newfeifan.mall.module.product.dal.mysql.sku.ProductSkuMapper;
+import cn.newfeifan.mall.module.product.dal.mysql.spu.ProductSpuMapper;
 import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
 import cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
@@ -109,6 +111,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
     @Resource
     private ProductSkuMapper productSkuMapper;//add by ben 20240314
+    @Resource
+    private ProductSpuMapper productSpuMapper;
 
     @Resource
     private ShopMapper shopMapper;//add by ben 20240314
@@ -221,7 +225,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     @Override
     public AppTradeOrderSettlementRespVO settlementOrder(Long userId, AppTradeOrderSettlementReqVO settlementReqVO) {
         // 1. 获得收货地址
-        MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId(),settlementReqVO.getAddressType());
+        MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId(), settlementReqVO.getAddressType());
         if (address != null) {
             settlementReqVO.setAddressId(address.getId());
         }
@@ -276,7 +280,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         }
 
         //如果是虚拟商品,则用自己的编写的程序返回
-        if(Objects.equals(settlementReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())){
+        if (Objects.equals(settlementReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())) {
             return getSettlement(settlementReqVO.getItems());
         }
 
@@ -355,10 +359,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
     /**
      * 虚拟商品自走程序
+     *
      * @param items 商品项数组
      * @return AppTradeOrderSettlementRespVO
      */
-    private AppTradeOrderSettlementRespVO getSettlement(List<AppTradeOrderSettlementReqVO.Item> items){
+    private AppTradeOrderSettlementRespVO getSettlement(List<AppTradeOrderSettlementReqVO.Item> items) {
 
         // 4. 查询每个sku对应的店铺ID,并传回页面
         List<AppTradeOrderSettlementReqVO.Item> productSkuList = items;
@@ -429,6 +434,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             ProductSkuDO productSkuDO = productSkuMapper.selectById(orderItems.get(0).getSkuId());
             shopCalculateRespBO.setVirtualPayPrice(productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
             shopCalculateRespBO.setVirtualTotalPrice(productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
+            shopCalculateRespBO.setPayPrice((int)productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
+            shopCalculateRespBO.setTotalPrice((int)productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
         }
 
         //把重复的收货地址置为空
@@ -445,16 +452,16 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     /**
      * 获得用户地址
      *
-     * @param userId    用户编号
-     * @param addressId 地址编号
+     * @param userId      用户编号
+     * @param addressId   地址编号
      * @param addressType 地址类别
      * @return 地址
      */
-    private MemberAddressRespDTO getAddress(Long userId, Long addressId ,Integer addressType) {
+    private MemberAddressRespDTO getAddress(Long userId, Long addressId, Integer addressType) {
         if (addressId != null) {
-            return addressApi.getAddress(addressId, userId,addressType);
+            return addressApi.getAddress(addressId, userId, addressType);
         }
-        return addressApi.getDefaultAddress(userId,addressType);
+        return addressApi.getDefaultAddress(userId, addressType);
     }
 
     /**
@@ -738,7 +745,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
                 Long tradeOrderId = order.getId();
                 String OrderNum = order.getNo();
                 Long payIntegral = order.getPayIntegral().longValue();//每个订单使用的积分
-                integralService.updateUserIntegral(userId,userId, CaclEnum.ORDER_PAY_INTEGRAL, payIntegral * (-1), 0L, tradeOrderId, OrderNum);
+                integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_PAY_INTEGRAL, payIntegral * (-1), 0L, tradeOrderId, OrderNum);
             }
         }
 
@@ -813,9 +820,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
     /**
      * 把商品的推广费总额,转换为消费者本人(直推人)、或消费者的推荐人 获得的冻结积分
-     *
      * @param promotionExpenses 商品的推广费总额
-     * @param grossProfitPerc 推荐人/消费者本人额度 百分比
+     * @param grossProfitPerc   推荐人/消费者本人额度 百分比
      * @return 输入推广费,对应的直推人获得的冻结积分
      */
     public static Long promotionExpenses2GrossProfitAncestorQuota(
@@ -866,15 +872,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         // 物流信息
         order.setDeliveryType(createReqVO.getDeliveryType());
         if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
-            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,1);
+            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId, 1);
             Assert.notNull(address, "地址({}) 不能为空", createReqVO.getAddressId()); // 价格计算时,已经计算
             order.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
                     .setReceiverAreaId(address.getAreaId()).setReceiverDetailAddress(address.getDetailAddress());
         } else if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.PICK_UP.getType())) {
             order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile());
             order.setPickUpVerifyCode(RandomUtil.randomNumbers(8)); // 随机一个核销码,长度为 8 位
-        } else if(Objects.equals(createReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())){
-            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,2);
+        } else if (Objects.equals(createReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())) {
+            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId, 2);
             order.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
                     .setReceiverDetailAddress(address.getDetailAddress());
         }
@@ -921,8 +927,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     /**
      * 创建子支付订单
      *
-     * @param order 订单
-     * @param orderItems 订单详情
+     * @param order            订单
+     * @param orderItems       订单详情
      * @param parentPayOrderId 父级支付订单id
      * @param expireTime       支付过期时间
      * @return 支付订单ID
@@ -1100,12 +1106,12 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
             String OrderNum = order.getNo();
             //修改购物者本人获得的冻结积分
-            integralService.updateUserIntegral(tradeOrderDO.getUserId(),tradeOrderDO.getUserId(),CaclEnum.ORDER_PAY_INTEGRAL_CONSUMER, 0L, totalFreezeAmount, tradeOrderId, OrderNum);
+            integralService.updateUserIntegral(tradeOrderDO.getUserId(), tradeOrderDO.getUserId(), CaclEnum.ORDER_PAY_INTEGRAL_CONSUMER, 0L, totalFreezeAmount, tradeOrderId, OrderNum);
 
             //修改推荐人(上级)获得的冻结积分
-            integralService.updateUserIntegral(tradeOrderDO.getUserId(),ancesterUserId, CaclEnum.ORDER_PAY_INTEGRAL_ANCESTER, 0L, totalAncestorFreezeAmount, tradeOrderId, OrderNum);
+            integralService.updateUserIntegral(tradeOrderDO.getUserId(), ancesterUserId, CaclEnum.ORDER_PAY_INTEGRAL_ANCESTER, 0L, totalAncestorFreezeAmount, tradeOrderId, OrderNum);
             log.warn("[TradeOrderUpdateServiceImpl.updateOrderPaid]$$$:[tradeOrderId({}),ancesterUserId({}),totalAncestorFreezeAmount({})]" + new Date(),
-                    tradeOrderId,ancesterUserId, totalAncestorFreezeAmount);
+                    tradeOrderId, ancesterUserId, totalAncestorFreezeAmount);
 
             allTradeOrderTotalFreezeAmount += totalFreezeAmount;//用户获得总的待确权冻结积分
 
@@ -1404,7 +1410,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         String orderNum = order.getNo();
         //如果订单有使用积分,则退回积分
         if (payIntegral > 0) {
-            integralService.updateUserIntegral(userId,userId, CaclEnum.ORDER_CANCEL_BY_USER_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
+            integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_CANCEL_BY_USER_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
         }
     }
 
@@ -1436,7 +1442,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
                 Long userId = order.getUserId();
                 //如果订单有使用积分,则退回积分
                 if (payIntegral > 0) {
-                    integralService.updateUserIntegral(userId, userId,CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
+                    integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
                 }
 
                 count++;