Bläddra i källkod

update: 修改订单部分。

Ben 1 år sedan
förälder
incheckning
adeb9a0829

+ 5 - 1
feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/constant/DistriConstants.java

@@ -4,7 +4,11 @@ import cn.newfeifan.mall.framework.common.exception.ErrorCode;
 
 public class DistriConstants {
     // ========== 分销信息商户信息 1-002-029-000 ==========
-    public static final Integer PERCENT = 10000;
+    public static final Integer PERCENT = 10000;//积分数据库中的值,比页面显示的值,大了此倍数
+
+    // 数据库中,积分比金钱大的倍数
+    public static final Integer INTEGRAL2MONEY = PERCENT/100;
+
     public static final Double ONE_HUNDRED = 1d;
 
 }

+ 1 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/AppTradeOrderController.java

@@ -97,7 +97,7 @@ public class AppTradeOrderController {
                 success(TradeOrderConvert.INSTANCE.convert02(order, orderItems, tradeOrderProperties, express));
 
         //设置订单支付的积分
-        rs.getData().setPayIntegral(order.getPayPoints());
+        rs.getData().setPayIntegral(order.getPayIntegral());
 
         return rs;
     }

+ 9 - 2
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/dataobject/order/TradeOrderDO.java

@@ -32,8 +32,15 @@ import java.time.LocalDateTime;
 @AllArgsConstructor
 public class TradeOrderDO extends BaseDO {
 
-    //本商品使用积分 add by Ben
-    private Integer payPoints;
+    //本商品使用积分 add by Ben payIntegral
+//    private Integer payPoints;
+    private Integer payIntegral;
+
+    //退还的使用的积分 add by Ben
+    private Integer refundIntegral;
+
+    //用户获得积分 add by Ben
+    private Integer increaseIntegral;
 
     //本商品实付的人民币金额 add by Ben
     private Integer payRmb;

+ 3 - 3
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/dataobject/order/TradeOrderItemDO.java

@@ -27,16 +27,16 @@ import java.util.List;
 public class TradeOrderItemDO extends BaseDO {
 
     //本商品使用积分 add by Ben
-    private Integer payPoints;
+    private Integer payIntegral;
 
     //本商品实付的人民币金额 add by Ben
     private Integer payRmb;
 
     //退还的使用的积分 add by Ben
-    private Integer refundPoints;
+    private Integer refundIntegral;
 
     //用户获得积分 add by Ben
-    private Integer increasePoints;
+    private Integer increaseIntegral;
 
     // ========== 订单项基本信息 ==========
     /**

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

@@ -11,6 +11,7 @@ import cn.newfeifan.mall.framework.common.core.KeyValue;
 import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
 import cn.newfeifan.mall.framework.common.util.json.JsonUtils;
 import cn.newfeifan.mall.framework.common.util.number.MoneyUtils;
+import cn.newfeifan.mall.module.distri.constant.DistriConstants;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
 import cn.newfeifan.mall.module.distri.dal.mysql.integral.IntegralMapper;
 import cn.newfeifan.mall.module.member.api.address.MemberAddressApi;
@@ -315,6 +316,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         return tradePriceService.calculatePrice(calculateReqBO);
     }
 
+    //把数据库的钱转换为数据库的积分
+    public static Integer money2Integral(Integer money){
+        return money*DistriConstants.INTEGRAL2MONEY;
+    }
+
+    //把数据库的积分转换为数据库的钱
+    public static Integer integral2Money(Integer integral){
+        return integral/DistriConstants.INTEGRAL2MONEY;
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -376,8 +386,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
         //消费者在页面录入的,要使用的积分
         Integer payPoints = createReqVO.getPayIntegral();
+
         if(payPoints == null){
             payPoints = 0;
+        }else{//把页面传入的,1积分=1元钱的积分,转换为后台保存到数据库的积分值
+            payPoints = payPoints* DistriConstants.PERCENT;
         }
 
 
@@ -386,7 +399,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         //计算订单含积分的各项商品价格
         TradePriceCalculateRespBO tradePriceCalculateRespBO = calculatePriceWithPoints(userId, createReqVO);
         //计算分摊的积分金额
-        List<Integer> dividePoints = TradePriceCalculatorHelper.dividePrice(tradePriceCalculateRespBO.getItems(), payPoints);
+        List<Integer> dividePoints = TradePriceCalculatorHelper.dividePrice(tradePriceCalculateRespBO.getItems(), integral2Money(payPoints));
         //键为skuId,value为单个商品项信息
         Map<Long, TradePriceCalculateRespBO.OrderItem> itemPayPointsMap = new HashMap<Long, TradePriceCalculateRespBO.OrderItem>();
 
@@ -394,7 +407,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         List<TradePriceCalculateRespBO.OrderItem> priceOrderItems = tradePriceCalculateRespBO.getItems();
         for (int i = 0; i < priceOrderItems.size(); i++) {
             TradePriceCalculateRespBO.OrderItem orderItem = priceOrderItems.get(i);
-            Integer itemPoint = dividePoints.get(i);//每项商品使用的积分
+            Integer itemPoint = money2Integral(dividePoints.get(i));//每项商品使用的积分
             orderItem.setPayPoints(itemPoint);
             itemPayPointsMap.put(orderItem.getSkuId(),orderItem);
         }
@@ -440,8 +453,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
                 //计算抵扣积分后的价格
                 Long skuId = orderItem.getSkuId();
                 TradePriceCalculateRespBO.OrderItem orderItemTmp = itemPayPointsMap.get(skuId);
-                orderItem.setPayPoints(orderItemTmp.getPayPoints()); //本商品使用积分
-                Integer payRmb = orderItem.getPrice()*orderItem.getCount()-orderItemTmp.getPayPoints();//本商品实付人民币
+                orderItem.setPayIntegral(orderItemTmp.getPayPoints()); //本商品使用积分
+                Integer payRmb = orderItem.getPrice()*orderItem.getCount()-integral2Money(orderItemTmp.getPayPoints());//本商品实付人民币
                 orderItem.setPayRmb(payRmb);//本商品实付人民币
                 orderItem.setPayPrice(payRmb);//本商品实付人民币
 
@@ -459,7 +472,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             order.setShopId(shopId);
             order.setPayPrice(shopPayPrice);
             order.setPayRmb(shopPayPrice);
-            order.setPayPoints(shopPayPoints);
+            order.setPayIntegral(shopPayPoints);
 
             tradeOrderMapper.insert(order);
 
@@ -494,6 +507,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setPayOrderId(payOrderId));
         }
 
+        //如果订单有使用积分,则抵扣用户的积分
+        if(payPoints>0){
+
+        }
+
         return virtualOrder;
     }