yangdamao hace 2 años
padre
commit
fe7c82fa6a

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -92,6 +92,10 @@ private static final long serialVersionUID=1L;
     private String distributionLinkCode;
     @ApiModelProperty("分成模式 1机构分成 2业务员分成")
     private Integer divideModel;
+    @ApiModelProperty("分成类型1百分比 2固定成本")
+    private Integer divideType;
+    @ApiModelProperty("分成比率(固定成本为固定值)")
+    private BigDecimal divideRate;
     @ApiModelProperty("分成钱")
     private BigDecimal divideMoney;
     /** 七大员商品年份 */

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1342,6 +1342,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     BigDecimal goodsDecimal = goodsPrice;
                     //换算订单成本和盈亏
                     TopCostTpItem topCostTpItem = tpItem;
+                    orderGoods.setDivideType(topCostTpItem.getDockType());
+                    orderGoods.setDivideRate(topCostTpItem.getDockValue());
                     if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1){
                         //启用成本扣除项
                         switch (topCostTpItem.getDockType()){

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderGoodsAddBo.java

@@ -92,6 +92,12 @@ public class TopOldOrderGoodsAddBo {
     private String userPhone;
     @ApiModelProperty("分成模式 1机构分成 2业务员分成")
     private Integer divideModel;
+    @ApiModelProperty("分成类型1百分比 2固定成本")
+    private Integer divideType;
+    @ApiModelProperty("分成比率(固定成本为固定值)")
+    private BigDecimal divideRate;
     @ApiModelProperty("分成钱")
     private BigDecimal divideMoney;
+    @ApiModelProperty("补款金额")
+    private BigDecimal repairMoney;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOldOrder.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.top.goods.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -159,4 +160,6 @@ private static final long serialVersionUID=1L;
     private BigDecimal instCost;
     /** 运营类型:1代运营 2独立运营 */
     private Integer operationType;
+    @ApiModelProperty("补款金额")
+    private BigDecimal repairMoneyTotal;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOldOrderGoods.java

@@ -86,7 +86,13 @@ private static final long serialVersionUID=1L;
     private Long tenantId;
     @ApiModelProperty("分成模式 1机构分成 2业务员分成")
     private Integer divideModel;
+    @ApiModelProperty("分成类型1百分比 2固定成本")
+    private Integer divideType;
+    @ApiModelProperty("分成比率(固定成本为固定值)")
+    private BigDecimal divideRate;
     @ApiModelProperty("分成钱")
     private BigDecimal divideMoney;
+    @ApiModelProperty("补款金额")
+    private BigDecimal repairMoney;
 
 }

+ 48 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -410,7 +410,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         if (CollectionUtils.isNotEmpty(settleList)) {
             BigDecimal money = settleList.stream().filter(item -> ObjectUtils.isNotNull(item.getSettleMoney()) && item.getSettleMoney().compareTo(BigDecimal.ZERO) > 0)
-                    .map(x -> x.getSettleMoney().divide(new BigDecimal(x.getOrderNum()))).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    .map(x -> x.getSettleMoney().divide(new BigDecimal(x.getOrderNum()),BigDecimal.ROUND_CEILING)).reduce(BigDecimal.ZERO, BigDecimal::add);
             return money;
         }
 
@@ -537,6 +537,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     BigDecimal goodsPriceDecimal = goodsPrice;
                     //换算订单成本和盈亏
                     TopCostTpItem topCostTpItem = tpItem;
+                    orderGoods.setDivideType(topCostTpItem.getDockType());
+                    orderGoods.setDivideRate(topCostTpItem.getDockValue());
                     if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1) {
                         //启用成本扣除项
                         switch (topCostTpItem.getDockType()) {
@@ -566,6 +568,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             break;
                     }
                 }
+                orderGoods.setDivideMoney(cost);
                 costTotal = costTotal.add(cost);
             }
 
@@ -809,6 +812,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 BigDecimal goodsPriceDecimal = goodsPrice;
                 //换算订单成本和盈亏
                 TopCostTpItemVo topCostTpItem = tpItem;
+                orderGoods.setDivideType(topCostTpItem.getDockType());
+                orderGoods.setDivideRate(topCostTpItem.getDockValue());
                 if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1) {
                     //启用成本扣除项
                     switch (topCostTpItem.getDockType()) {
@@ -838,6 +843,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         break;
                 }
             }
+            orderGoods.setDivideMoney(cost);
             costTotal = costTotal.add(cost);
         }
         order.setOrderCost(costTotal);
@@ -899,6 +905,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             BigDecimal brokerage = bo.getPretaxBrokerage().subtract(multiply);
             order.setBrokerage(brokerage);
         }
+        BigDecimal repairMoneyTotal = BigDecimal.ZERO;
         if (CollectionUtils.isNotEmpty(bo.getOrderGoodsList())) {
             List<TopOldOrderGoods> add = new ArrayList<>();
             List<Long> signIds = new ArrayList<>();
@@ -919,6 +926,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     default:
                         break;
                 }
+                //订单补款
+                if (ObjectUtils.isNotNull(orderGoods.getRepairMoney()) && orderGoods.getRepairMoney().compareTo(BigDecimal.ZERO) > 0){
+
+                }
             }
             if (CollectionUtils.isNotEmpty(add)) {
                 topOrderGoodsService.saveBatch(add);
@@ -1021,6 +1032,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             userCount = 1;
             if (CollectionUtils.isNotEmpty(list)) {
                 list.forEach(item -> {
+                    item.setPretaxBrokerage(BigDecimal.ZERO);
                     item.setUserCount(1);
                     item.setCheckStatusStr(item.getCheckStr(item.getCheckStatus()));
                     //专业
@@ -1047,6 +1059,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             item.setStudyStatus("未开始");
                         }
                     }
+                    //分成模式
+                    if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
+                        item.setDivideRateStr(item.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                    }else {
+                        item.setDivideRateStr(item.getDivideRate().toString());
+                    }
                 });
             }
         } else {
@@ -1063,6 +1081,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (query.getOrderFrom() != 4){
                     // 老系统查询学习状态
                     TopOldOrder order = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, query.getOrderSn()));
+                    BigDecimal bonus = BigDecimal.ZERO;
+                    if (ObjectUtils.isNotNull(order.getPretaxBrokerage()) && order.getPretaxBrokerage().compareTo(BigDecimal.ZERO) > 0){
+                        bonus = order.getPretaxBrokerage().divide(new BigDecimal(list.size()),BigDecimal.ROUND_CEILING);
+                    }
                     Map<String, String> params = new HashMap<>();
                     Long nowTime = DateUtils.getNowTime();
                     String sign = ToolsUtils.EncoderByMd5(query.getOrderSn() + nowTime.toString() + "pubilc2022");
@@ -1080,10 +1102,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         Object data = jsonObject.get("Data");
                         if (ObjectUtils.isNull(data)) {
                             //data 为空
-                            list.forEach(x -> x.setStudyStatus("未开始"));
+                            for (TopOldOrderGoodsListVo x : list) {
+                                x.setPretaxBrokerage(bonus);
+                                x.setStudyStatus("未开始");
+                                //分成模式
+                                if (ObjectUtils.isNotNull(x.getDivideType()) && x.getDivideType() == 1){
+                                    x.setDivideRateStr(x.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                }else {
+                                    x.setDivideRateStr(x.getDivideRate().toString());
+                                }
+                            }
                         } else {
                             List<TopOldOrderStudyVo> studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
-                            list.forEach(item -> {
+                            for (TopOldOrderGoodsListVo item : list) {
+                                item.setPretaxBrokerage(bonus);
                                 item.setStudyStatus("未开始");
                                 TopOldOrderStudyVo studyVo = studyVos.stream().filter(x -> x.getUnderOrdeEnrollItemId().equals(item.getSignId())
                                         && x.getIdNum().equals(item.getUserCard())).findFirst().orElse(null);
@@ -1096,7 +1128,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                         item.setStudyStatus("已结束");
                                     }
                                 }
-                            });
+                                //分成模式
+                                if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
+                                    item.setDivideRateStr(item.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                }else {
+                                    item.setDivideRateStr(item.getDivideRate().toString());
+                                }
+                            }
                         }
                     } catch (IOException e) {
                         log.error("旧系统订单学员学习情况接口请求错误" + respone);
@@ -3262,6 +3300,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         BigDecimal goodsPriceDecimal = goodsPrice;
                         //换算订单成本和盈亏
                         TopCostTpItemVo topCostTpItem = tpItem;
+                        orderGoods.setDivideType(topCostTpItem.getDockType());
+                        orderGoods.setDivideRate(topCostTpItem.getDockValue());
                         if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1) {
                             //启用成本扣除项
                             switch (topCostTpItem.getDockType()) {
@@ -3291,6 +3331,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                 break;
                         }
                     }
+                    orderGoods.setDivideMoney(cost);
                     costTotal = costTotal.add(cost);
                 }
 
@@ -3407,6 +3448,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         BigDecimal goodsPriceDecimal = goodsPrice;
                         //换算订单成本和盈亏
                         TopCostTpItemVo topCostTpItem = tpItem;
+                        orderGoods.setDivideType(topCostTpItem.getDockType());
+                        orderGoods.setDivideRate(topCostTpItem.getDockValue());
                         if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1) {
                             //启用成本扣除项
                             switch (topCostTpItem.getDockType()) {
@@ -3436,6 +3479,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                 break;
                         }
                     }
+                    orderGoods.setDivideMoney(cost);
                     costTotal = costTotal.add(cost);
                 }
                 BigDecimal cost = costTotal.add(brokerage);

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderGoodsListVo.java

@@ -82,6 +82,16 @@ public class TopOldOrderGoodsListVo {
 	private String refundReason;
 	@ApiModelProperty("审核意见")
 	private String checkReason;
+	@ApiModelProperty("分成类型1百分比 2固定成本")
+	private Integer divideType;
+	@ApiModelProperty("分成比率(固定成本为固定值)")
+	private BigDecimal divideRate;
+	@ApiModelProperty("分成比率(固定成本为固定值)")
+	private String divideRateStr;
+	@ApiModelProperty("分成钱")
+	private BigDecimal divideMoney;
+	@ApiModelProperty("税前奖金")
+	private BigDecimal pretaxBrokerage;
 
 	private Long signId;
 

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -711,6 +711,8 @@ public class WxPayServiceImpl implements IWxPayService {
             }
             //换算订单成本和盈亏
             TopCostTpItemVo topCostTpItem = tpItems.stream().findFirst().get();
+            orderGoods.setDivideType(topCostTpItem.getDockType());
+            orderGoods.setDivideRate(topCostTpItem.getDockValue());
             BigDecimal divide = new BigDecimal("0.00");//分成
             BigDecimal bigDecimal = new BigDecimal("100");
             if (topCostTpItem.getDockStatus() == 1){

+ 2 - 2
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml

@@ -668,8 +668,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             (SELECT `name` FROM course_chapter WHERE chapter_id = usr.chapter_id) as chapter_name,
             (SELECT `name` FROM course_section WHERE section_id = usr.section_id) as section_name,
             (SELECT duration_time FROM course_section WHERE section_id = usr.section_id) as duration_time,
-            MIN(start_time) AS start_time,
-            MAX(end_time) AS end_time,
+            ( SELECT start_time FROM user_study_record WHERE order_goods_id = 5060 AND photo IS NOT NULL ORDER BY create_time LIMIT 1) AS start_time,
+	        ( SELECT end_time FROM user_study_record WHERE order_goods_id = 5060 AND `status` = 1 LIMIT 1) AS end_time,
             MAX(`status`) AS `status`,
             any_value(ip) AS ip
         FROM

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -814,6 +814,9 @@
         <result property="goodsRealPrice" column="goods_real_price"/>
         <result property="checkStatus" column="check_status"/>
         <result property="goodsYear" column="goods_year"/>
+        <result property="divideType" column="divide_type"/>
+        <result property="divideRate" column="divide_rate"/>
+        <result property="divideMoney" column="divide_money"/>
     </resultMap>
 
     <select id="listByOrderSn" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery" resultMap="getlist">
@@ -831,6 +834,9 @@
             og.goods_price,
             og.goods_real_price,
             og.goods_year,
+            og.divide_type,
+            og.divide_rate,
+            og.divide_money,
             1 as check_status
         FROM
             order_goods og

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderGoodsMapper.xml

@@ -41,6 +41,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="signId" column="sign_id"/>
         <result property="checkStatus" column="check_status"/>
         <result property="goodsYear" column="goods_year"/>
+        <result property="divideType" column="divide_type"/>
+        <result property="divideRate" column="divide_rate"/>
+        <result property="divideMoney" column="divide_money"/>
     </resultMap>
 
     <select id="getListByQuery" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery" resultMap="getlist">
@@ -56,6 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             goods_real_price,
             goods_year,
             sign_id,
+            divide_type,
+            divide_rate,
+            divide_money,
             check_status
         FROM
             top_old_order_goods