Przeglądaj źródła

bugfix:平台优惠券显示值问题

lyx 2 miesięcy temu
rodzic
commit
7a4ae7ac34

+ 2 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserOrderVo.java

@@ -80,6 +80,8 @@ public class LifeUserOrderVo {
     private String storeTel;
     @ApiModelProperty(value = "团购/代金券优惠金额")
     private String offprice;
+    @ApiModelProperty(value = "团购/代金券原金额")
+    private String originalPrice;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date totalRefundTime;

+ 5 - 3
alien-entity/src/main/resources/mapper/LifeUserOrderMapper.xml

@@ -42,6 +42,7 @@
         <result column="quan_id" property="quanId"/>
         <result column="total_refund_time" property="totalRefundTime"/>
         <result column="business_status" property="businessStatus"/>
+        <result column="type" property="type"/>
 
         <result column="business_type" property="businessType"/>
         <result column="collect_num" property="collectNum"/>
@@ -50,6 +51,7 @@
         <result column="end_time" property="endTime"/>
         <result column="end_date" property="endDate"/>
         <result column="reservation_rules" property="reservationRules"/>
+        <result column="original_price" property="originalPrice"/>
 
         <collection property="orderCouponMiddleList" ofType="shop.alien.entity.store.vo.OrderCouponMiddleVo">
             <id column="ocmId" property="id" />
@@ -65,18 +67,18 @@
     <!-- 查询用户订单详情 -->
     <select id="queryUserOrderDetail" resultMap="BaseResultMap">
         with total_coupon as(
-        select id coupon_id,2 coupon_type,lgbm.group_name coupon_name,preferential_price offprice,SUBSTRING_INDEX(image_id, ',', 1) AS image_id,
+        select id coupon_id,2 coupon_type,lgbm.group_name coupon_name,preferential_price offprice,original_price, SUBSTRING_INDEX(image_id, ',', 1) AS image_id,
                effective_date_type,effective_date_value,use_rules,reservation_rules,applicable_num,quota_type,quota_value,inventory_num single_qty
         from life_group_buy_main lgbm where lgbm.delete_flag = 0
         union all
-        select id coupon_id,1 coupon_type,lc.name coupon_name,lc.offprice offprice,SUBSTRING_INDEX(image_path, ',', 1) AS image_id,
+        select id coupon_id,1 coupon_type,lc.name coupon_name,lc.offprice offprice,price original_price,SUBSTRING_INDEX(image_path, ',', 1) AS image_id,
                0 effective_date_type,expiration_date effective_date_value,use_rule use_rules,reservation_rules,applicable_num,1 quota_type,buy_limit quota_value,single_qty
         from life_coupon lc where lc.delete_flag = 0
         )
         select luo.id,luo.order_no,luo.created_time , luo.price ,luo.final_price
         ,luo.pay_method,luo.buy_time,luo.cancel_time,luo.pay_time,luo.finish_time,luo.status order_status,luo.quan_id,luo.refund_time total_refund_time,
         tc.*,
-        ldc.nominal_value,
+        ldc.nominal_value,ldc.type,
         lu.user_phone,lu.user_name,lu.id user_id,
         ocm.id ocmId,ocm.status,ocm.coupon_code,ocm.refund_time,ocm.refund_reason,ocm.price refundPrice,
         si.id store_id,si.store_name,si.commission_rate,si.store_address,si.store_tel,si.business_status,si.collect_num,

+ 15 - 2
alien-store/src/main/java/shop/alien/store/service/LifeUserOrderService.java

@@ -919,7 +919,8 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
             if("3".equals(record.getType()) && org.apache.commons.lang3.StringUtils.isNotBlank(record.getStoreId())){
                 // 如果付款为0,商家收入为套餐原价
                 if(record.getFinalPrice().equals("0")){
-                    record.setFinalPrice(record.getPrice());
+                    // 如果付款为0,商家收入为套餐原价*数量
+                    record.setFinalPrice(new BigDecimal(record.getPrice()).multiply(new BigDecimal(record.getCouponCount().toString())).toString());
                 }else {
                     record.setFinalPrice(record.getNominalValue().add(new BigDecimal(record.getFinalPrice())).toString());
                 }
@@ -955,7 +956,19 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
             refundAmount = refundList.stream().map(OrderCouponMiddle::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         }
         // 预计收入
-        BigDecimal expectIncome = new BigDecimal(lifeUserOrderVo.getFinalPrice()).subtract(refundAmount);
+        BigDecimal expectIncome = BigDecimal.ZERO;
+        // 如果使用了平台优惠券则预计收入特殊处理
+        if("3".equals(lifeUserOrderVo.getType())){
+            if(lifeUserOrderVo.getFinalPrice().equals("0")){
+                // 如果付款为0,商家收入为套餐原价*数量
+                expectIncome = new BigDecimal(lifeUserOrderVo.getPrice()).multiply(new BigDecimal(orderCouponMiddleList.size()));
+            } else {
+                expectIncome = new BigDecimal(lifeUserOrderVo.getFinalPrice()).add(lifeUserOrderVo.getNominalValue());
+            }
+        } else {
+            expectIncome = new BigDecimal(lifeUserOrderVo.getFinalPrice());
+        }
+        expectIncome = expectIncome.subtract(refundAmount);
         String commissionRateStr = lifeUserOrderVo.getCommissionRate();
         BigDecimal commissionRate = BigDecimal.ZERO;
         if (org.apache.commons.lang3.StringUtils.isNotBlank(commissionRateStr)) {