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
4dbcda9dde

+ 3 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -64,6 +65,8 @@ public class AppTradeOrderSettlementRespVO {
         private Integer skuId;
         @Schema(description = "价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
         private Integer price;
+        @Schema(description = "高精度金额")
+        private BigDecimal highPrecisionPrice;
         @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.zhongxing.cn/1.png")
         private String picUrl;
 

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

@@ -429,13 +429,27 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         for (Long shopId : shopSkuItemMap.keySet()) {
             List<AppTradeOrderSettlementReqVO.Item> orderItems = shopSkuItemMap.get(shopId);
 
+            AppTradeOrderSettlementRespVO respVO2 = new AppTradeOrderSettlementRespVO();
+            respVO2.setPrice(shopCalculateRespBO);
+            AppTradeOrderSettlementRespVO.Item item = new AppTradeOrderSettlementRespVO.Item();
+            ProductSkuDO sku = productSkuMapper.selectById(orderItems.get(0).getSkuId());
+            ProductSpuDO spu = productSpuMapper.selectById(sku.getSpuId());
+            item.setPrice(sku.getPrice());
+            item.setHighPrecisionPrice(sku.getHighPrecisionPrice());
+            item.setCount(orderItems.get(0).getCount());
+            item.setPicUrl(sku.getPicUrl());
+            item.setSpuId(sku.getSpuId());
+            item.setSkuId(sku.getId().intValue());
+            item.setSpuName(spu.getName());
+            item.setCategoryId(spu.getCategoryId());
+
+            respVO2.setItems(Arrays.asList(item));
             //计算价格
-            shopRespVOMap.put(shopId, respVO);
-            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());
+            shopRespVOMap.put(shopId, respVO2);
+            shopCalculateRespBO.setVirtualPayPrice(sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
+            shopCalculateRespBO.setVirtualTotalPrice(sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
+            shopCalculateRespBO.setPayPrice((int)sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
+            shopCalculateRespBO.setTotalPrice((int)sku.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
         }
 
         //把重复的收货地址置为空