yangdamao 2 년 전
부모
커밋
1691b1b531

+ 13 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -215,11 +215,23 @@ public class CommonController extends BaseController {
         return toAjax(iTopOldOrderService.editOrderCheck(bo) ? 1 : 0);
     }
 
+    /**
+     * B端订单佣金修改
+     */
+    @ApiOperation("B端订单佣金修改")
+    @PostMapping("/edit/order/brokerage")
+    public AjaxResult<Void> editOrderBrokerage(@RequestBody OrderBrokerageBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.editOrderBrokerage(bo) ? 1 : 0);
+    }
+
     /**
      * 批量修改订单备注
      */
     @ApiOperation("批量修改订单备注")
-        @PostMapping("/update/order/remark")
+    @PostMapping("/update/order/remark")
     public AjaxResult<Void> updateRemark(@RequestBody TopUpdateRemarkBo bo) {
         if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
             throw new CustomException("签名错误");

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderRefundApplyBo.java

@@ -44,4 +44,12 @@ public class TopOrderRefundApplyBo {
     @ApiModelProperty("退款类型 1B端,2C端")
     private Integer type;
 
+    @ApiModelProperty("开户银行")
+    private String openingBank;
+
+    @ApiModelProperty("开户名称")
+    private String openingName;
+
+    @ApiModelProperty("收款账号")
+    private String proceedsAccount;
 }

+ 13 - 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;
@@ -129,4 +130,16 @@ private static final long serialVersionUID=1L;
     private BigDecimal pretax;
     /** 佣金 */
     private BigDecimal brokerage;
+    /** 待扣分成钱 */
+    private BigDecimal deductDivideMoney;
+    /** 开户银行 */
+    private String openingBank;
+    /** 开户名称 */
+    private String openingName;
+    /** 退款账号 */
+    private String proceedsAccount;
+    /** 税前佣金上一次记录 */
+    private BigDecimal pretaxBrokerageRecord;
+    /** 税率上一次记录 */
+    private BigDecimal pretaxRecord;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -122,4 +122,6 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	OrderRefundPayDetailVo getOrderRefundPayDetail(String orderSn);
 
 	boolean updateOrderInfo(TopOldOrderAddBo bo);
+
+	boolean editOrderBrokerage(OrderBrokerageBo bo);
 }

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

@@ -539,23 +539,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         //订单商品
         if (CollectionUtils.isNotEmpty(bo.getOrderGoodsList())) {
-//            bo.getOrderGoodsList().forEach(item -> {
-//                if (item.getCheckStatus() == 0) {
-//                    //新增
-//                    TopOldOrderGoods oldOrderGoods = BeanUtil.toBean(item, TopOldOrderGoods.class);
-//                    oldOrderGoods.setTenantId(edit.getTenantId());
-//                    oldOrderGoods.setStatus(1);
-//                    oldOrderGoods.setUserCard(EncryptHandler.encrypt(item.getUserCard()));
-//                    oldOrderGoods.setCheckStatus(order.getCheckStatus());
-//                    topOrderGoodsService.save(oldOrderGoods);
-//                }else if (item.getCheckStatus() == -1){
-//                    //取消
-//                    topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
-//                            .set(TopOldOrderGoods::getCheckStatus,-1)
-//                            .eq(TopOldOrderGoods::getOrderSn,item.getOrderSn())
-//                            .eq(TopOldOrderGoods::getSignId,item.getSignId()));
-//                }
-//            });
             //删除之前关联重新添加
            topOrderGoodsService.remove(new LambdaQueryWrapper<TopOldOrderGoods>().eq(TopOldOrderGoods::getOrderSn, edit.getOrderSn()));
            List<TopOldOrderGoods> collect = bo.getOrderGoodsList().stream().map(item -> BeanUtil.toBean(item, TopOldOrderGoods.class)).collect(Collectors.toList());
@@ -688,6 +671,37 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         order.setOrderProfit(profitTotal);
     }
 
+    @Override
+    public boolean editOrderBrokerage(OrderBrokerageBo bo) {
+        TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
+        if (ObjectUtils.isNull(order)) {
+            throw new CustomException("订单号有误:" + bo.getOrderSn());
+        }
+        if (order.getOrderFrom() == 1) {
+            throw new CustomException("订单号无效:" + bo.getOrderSn());
+        }
+        if (order.getFinishStatus() == 1) {
+            throw new CustomException("订单已完单不能修改:" + bo.getOrderSn());
+        }
+        //保存现在的佣金
+        order.setPretaxBrokerageRecord(order.getPretaxBrokerage());
+        order.setPretaxRecord(order.getPretax());
+
+        //佣金计算
+        if (ObjectUtils.isNotNull(bo.getPretaxBrokerage()) && ObjectUtils.isNotNull(bo.getPretax())){
+            order.setPretaxBrokerage(bo.getPretaxBrokerage());
+            order.setPretax(bo.getPretax());
+            BigDecimal multiply = bo.getPretaxBrokerage().multiply(bo.getPretax());
+            //总佣金
+            BigDecimal brokerage = bo.getPretaxBrokerage().subtract(multiply);
+            order.setBrokerage(brokerage);
+        }
+
+        order.setCheckStatus(0); //订单待审核
+        updateById(order);
+        return false;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean editOrderCheck(TopOldOrderAddBo bo) {
@@ -739,9 +753,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             order.setCheckRemark(bo.getOrderGoodsList().stream().map(x -> x.getSignId().toString()).collect(Collectors.joining(",")));
         }
         //重新计算成本
-        if (StringUtils.isNotBlank(order.getCostJson())) {
-            recalculateCost(order.getCostJson(),order);
-        }
+//        if (StringUtils.isNotBlank(order.getCostJson())) {
+//            recalculateCost(order.getCostJson(),order);
+//        }
         updateById(order);
 
         if (bo.getOrderBase() == 1) {
@@ -951,6 +965,30 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             orderGoods.forEach(x -> x.setCheckStatus(bo.getCheckStatus()));
             topOrderGoodsService.updateBatchById(orderGoods);
         }
+        switch (bo.getCheckStatus()){
+            case 1://通过审核 如果佣金有修改重新计算成本
+                if (StringUtils.isNotBlank(oldOrder.getCostJson())
+                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
+                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
+                    recalculateCost(oldOrder.getCostJson(),oldOrder);
+                }
+                break;
+            case 2://拒绝 恢复原本的佣金
+                if (StringUtils.isNotBlank(oldOrder.getCostJson())
+                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
+                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
+                    oldOrder.setPretaxBrokerage(oldOrder.getPretaxBrokerageRecord());
+                    oldOrder.setPretax(oldOrder.getPretaxRecord());
+                    //计算佣金
+                    BigDecimal multiply = oldOrder.getPretaxBrokerage().multiply(oldOrder.getPretax());
+                    //总佣金
+                    BigDecimal brokerage = oldOrder.getPretaxBrokerage().subtract(multiply);
+                    oldOrder.setBrokerage(brokerage);
+                }
+                break;
+              default :
+                  break;
+        }
 
         updateById(oldOrder);
         // 订单审核通知业务系统
@@ -1071,6 +1109,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
         }
 
+        //重新计算成本
+        if (bo.getCheckStatus() == 1 && StringUtils.isNotBlank(oldOrder.getCostJson())) {
+            recalculateCost(oldOrder.getCostJson(),oldOrder);
+        }
+        updateById(oldOrder);
         // 订单审核通知业务系统
         List<CheckOrderStudentDetailBo> studentDetailBos = list.stream().map(item -> {
             CheckOrderStudentDetailBo detailBo = new CheckOrderStudentDetailBo();
@@ -1286,6 +1329,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return updateById(edit);
     }
 
+
+
     public void informRemind(List<String> userNames) {
         //学员退学提醒
         List<InformRemindRelevance> remindRelevances = informRemindRelevanceService.list(new LambdaQueryWrapper<InformRemindRelevance>().eq(InformRemindRelevance::getType, 1));
@@ -1378,6 +1423,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 .set(TopOldOrderGoods::getRefundStatus, 1));
 
         order.setRefundStatus(0);//订单退款待审核
+        order.setProceedsAccount(bo.getProceedsAccount());
+        order.setOpeningBank(bo.getOpeningBank());
+        order.setOpeningName(bo.getOpeningName());
         updateById(order);
 
         //处理新系统订单
@@ -1494,6 +1542,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         vo.setCheckType(1);
         vo.setTenantId(tenant.getTenantId().toString());
+        //B端退款账号信息
+        if (orderVo.getOrderFrom() == 3){
+            TopOldOrder oldOrder = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, orderVo.getOrderSn()));
+            vo.setProceedsAccount(oldOrder.getProceedsAccount());
+            vo.setOpeningBank(oldOrder.getOpeningBank());
+            vo.setOpeningName(oldOrder.getOpeningName());
+        }
         //审核进度
         List<TopOldOrderCheckLog> checkLogs = topOldOrderCheckLogService
                 .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
@@ -1839,7 +1894,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (CollectionUtils.isEmpty(bo.getOrderSnList())) {
             throw new CustomException("订单号不能为空");
         }
-        validFinish(bo);
+//        validFinish(bo);
 
         bo.getOrderSnList().forEach(orderSn -> {
                     TopOldOrder order = baseMapper.getOrderBySn(orderSn);
@@ -1898,22 +1953,22 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         );
 
         //完单通知业务员
-        Map<String, String> params = new HashMap<>();
-        Long nowTime = DateUtils.getNowTime();
-        String sign = ToolsUtils.EncoderByMd5(nowTime+ "pubilc2022");
-        params.put("stamp", nowTime.toString());
-        params.put("sign", sign);
-        params.put("orderSn", bo.getOrderSnList().stream().collect(Collectors.joining()));
-        String respone = "";
-        try {
-            respone = HttpUtils.postFormBody(FINISH_ORDER, params);
-            if (!respone.contains("\"Status\":true")) {
-                throw new CustomException("旧系统完单接口请求错误");
-            }
-        } catch (IOException e) {
-            log.error("旧系统完单接口请求错误" + respone);
-            throw new CustomException("旧系统完单接口请求错误");
-        }
+//        Map<String, String> params = new HashMap<>();
+//        Long nowTime = DateUtils.getNowTime();
+//        String sign = ToolsUtils.EncoderByMd5(nowTime+ "pubilc2022");
+//        params.put("stamp", nowTime.toString());
+//        params.put("sign", sign);
+//        params.put("orderSn", bo.getOrderSnList().stream().collect(Collectors.joining()));
+//        String respone = "";
+//        try {
+//            respone = HttpUtils.postFormBody(FINISH_ORDER, params);
+//            if (!respone.contains("\"Status\":true")) {
+//                throw new CustomException("旧系统完单接口请求错误");
+//            }
+//        } catch (IOException e) {
+//            log.error("旧系统完单接口请求错误" + respone);
+//            throw new CustomException("旧系统完单接口请求错误");
+//        }
         return true;
     }
 

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopRefundOrderDetailVo.java

@@ -56,4 +56,12 @@ public class TopRefundOrderDetailVo {
     @ApiModelProperty("机构ID")
     private String tenantId;
 
+    @ApiModelProperty("开户银行")
+    private String openingBank;
+
+    @ApiModelProperty("开户名称")
+    private String openingName;
+
+    @ApiModelProperty("收款账号")
+    private String proceedsAccount;
 }