yangdamao 2 年之前
父节点
当前提交
359774b94a
共有 15 个文件被更改,包括 398 次插入69 次删除
  1. 14 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 12 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderController.java
  3. 2 0
      zhongzheng-admin-saas/src/main/resources/application-dev.yml
  4. 5 1
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java
  5. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTenant.java
  6. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/vo/SysTenantAccountVo.java
  7. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/vo/SysTenantVo.java
  8. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopOrderProceedsBo.java
  9. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderCheckBo.java
  10. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopRefundOrderCheckBo.java
  11. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java
  12. 224 67
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java
  13. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderVo.java
  14. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderGoodsMapper.xml
  15. 19 1
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

+ 14 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -45,6 +45,7 @@ import com.zhongzheng.modules.sdk.service.NuonuoService;
 import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.top.financial.bo.TopOrderProceedsBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRemindBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRevocationBo;
 import com.zhongzheng.modules.top.financial.bo.TopSellerDiscountBo;
@@ -162,6 +163,19 @@ public class CommonController extends BaseController {
         return toAjax(iTopOldOrderService.insertByAddBo(bo) ? 1 : 0);
     }
 
+
+    /**
+     * B端订单回款
+     */
+    @ApiOperation("B端订单回款")
+    @PostMapping("/proceeds")
+    public AjaxResult<Void> orderProceeds(@RequestBody TopOrderProceedsBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.orderProceeds(bo) ? 1 : 0);
+    }
+
     /**
      * 新增诺税通开单记录
      */

+ 12 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderController.java

@@ -116,6 +116,18 @@ public class TopOldOrderController extends BaseController {
         return toAjax(iTopOldOrderService.checkOrder(bo) ? 1 : 0);
     }
 
+    /**
+     * 订单学员审核
+     */
+    @ApiOperation("订单学员审核")
+    @PostMapping("/check/student")
+    public AjaxResult<Void> checkOrderStudent(@RequestBody TopOldOrderCheckBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.checkOrderStudent(bo) ? 1 : 0);
+    }
+
 
     @ApiOperation("业务员提成列表")
     @PreAuthorize("@ss.hasPermi('system:tp:list')")

+ 2 - 0
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -157,6 +157,8 @@ oldOrder:
     studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
     orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder
     finishOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://gdxypx.xy.com/WitSystem/BussinessApi/GetNewYxtinputOrderSn
 
 oldSys:
     host: http://gdxypx.xy.com

+ 5 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java

@@ -88,7 +88,11 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     */
     private List<SysTenantVo> entity2Vo(Collection<SysTenant> collection) {
         List<SysTenantVo> voList = collection.stream()
-                .map(any -> BeanUtil.toBean(any, SysTenantVo.class))
+                .map(any -> {
+                    SysTenantVo sysTenantVo = BeanUtil.toBean(any, SysTenantVo.class);
+                    String accountInformation = any.getAccountInformation();
+                    return sysTenantVo;
+                })
                 .collect(Collectors.toList());
         if (collection instanceof Page) {
             Page<SysTenant> page = (Page<SysTenant>)collection;

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTenant.java

@@ -88,5 +88,11 @@ private static final long serialVersionUID=1L;
     private Integer shareClass;
 
     private Integer qualification;
+    /** 分成模式 1机构分成 2业务员分成 */
+    private Integer divideModel;
+    /** 是否有商户号:1是,0否 */
+    private Integer commercialTenant;
+    /** 账号信息JSON */
+    private String accountInformation;
 
 }

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/vo/SysTenantAccountVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.system.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 系统商户视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-08-03
+ */
+@Data
+@ApiModel("系统商户视图对象")
+public class SysTenantAccountVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 租户ID */
+	@ApiModelProperty("租户ID")
+	private Long tenantId;
+
+	/** 0 失效 1启用 */
+	@ApiModelProperty("0 失效 1启用")
+	private Integer status;
+	/** 名称 */
+	@ApiModelProperty("名称")
+	private String tenantName;
+
+	@ApiModelProperty("地址")
+	private String address;
+
+	@ApiModelProperty("分成模式 1机构分成 2业务员分成")
+	private Integer divideModel;
+
+	@ApiModelProperty("是否有商户号:1是,0否")
+	private Integer commercialTenant;
+
+	@ApiModelProperty("开户银行")
+	private String openingBank;
+
+	@ApiModelProperty("开户名称")
+	private String openingName;
+
+	@ApiModelProperty("收款账号")
+	private String proceedsAccount;
+
+}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/vo/SysTenantVo.java

@@ -37,4 +37,19 @@ public class SysTenantVo {
 	@ApiModelProperty("地址")
 	private String address;
 
+	@ApiModelProperty("分成模式 1机构分成 2业务员分成")
+	private Integer divideModel;
+
+	@ApiModelProperty("是否有商户号:1是,0否")
+	private Integer commercialTenant;
+
+	@ApiModelProperty("开户银行")
+	private String openingBank;
+
+	@ApiModelProperty("开户名称")
+	private String openingName;
+
+	@ApiModelProperty("收款账号")
+	private String proceedsAccount;
+
 }

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopOrderProceedsBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.top.financial.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
+
+/**
+ * 订单编辑对象 top_order
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Data
+@ApiModel("订单收款对象")
+public class TopOrderProceedsBo {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    @ApiModelProperty("订单号")
+    private String orderSn;
+
+    @ApiModelProperty("已收金额")
+    private BigDecimal orderReceived;
+}

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderCheckBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 订单编辑对象 top_order
@@ -24,6 +25,10 @@ public class TopOldOrderCheckBo {
     @ApiModelProperty("订单编号")
     private String orderSn;
 
+    /** 订单编号 */
+    @ApiModelProperty("订单商品IDs")
+    private List<Long> orderGoodsIds;
+
     /** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
     @ApiModelProperty("审核状态:0待审核,1已通过,2未通过,3已撤销")
     private Integer checkStatus;

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopRefundOrderCheckBo.java

@@ -30,4 +30,7 @@ public class TopRefundOrderCheckBo {
     @ApiModelProperty("审核意见")
     private String checkReason;
 
+    @ApiModelProperty("审核角色名称")
+    private String checkRoleName;
+
 }

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

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.top.goods.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.top.financial.bo.TopOrderProceedsBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRemindBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRevocationBo;
 import com.zhongzheng.modules.top.financial.bo.TopSellerDiscountBo;
@@ -78,6 +79,7 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	boolean updateRemark(TopOldOrderEditBo bo);
 
 	Map<String,Object> countOrderNum(TopOldOrderQueryBo bo);
+
     boolean orderRefundApply(TopOrderRefundApplyBo bo);
 
 	TopRefundOrderDetailVo refundOrderDetail(String orderSn);
@@ -116,4 +118,8 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	Boolean payToCompany(TopOldOrderQueryBo bo);
 
 	Boolean payToCompanyCallBack(PayOrderCallBackBo bo);
+
+	boolean orderProceeds(TopOrderProceedsBo bo);
+
+	boolean checkOrderStudent(TopOldOrderCheckBo bo);
 }

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

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.core.domain.entity.SysUser;
@@ -39,8 +40,11 @@ import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.system.domain.SysOldOrg;
+import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysOldOrgService;
+import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysUserService;
+import com.zhongzheng.modules.top.financial.bo.TopOrderProceedsBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRemindBo;
 import com.zhongzheng.modules.top.financial.bo.TopOrderRevocationBo;
 import com.zhongzheng.modules.top.financial.bo.TopSellerDiscountBo;
@@ -168,7 +172,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     private ITopCourseBusinessService topCourseBusinessService;
 
     @Autowired
-    private ISysOldOrgService sysOldOrgService;
+    private ISysTenantService sysTenantService;
 
     @Autowired
     private ITopOldSellerDiscountService topOldSellerDiscountService;
@@ -176,8 +180,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Autowired
     private ITopOrderBankPayService iTopOrderBankPayService;
 
-
-
     @Value("${oldOrder.studyRecord}")
     private String ORDER_STUDY;
 
@@ -190,6 +192,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Value("${oldOrder.finishOrder}")
     private String FINISH_ORDER;
 
+    @Value("${oldOrder.refuseCheck}")
+    private String REFUSE_CHECK;
+
+    @Value("${oldOrder.inputOrderSn}")
+    private String INPUT_ORDER;
+
     @Override
     public TopOldOrderVo queryById(String orderSn) {
         //查询视图 v_top_order
@@ -255,6 +263,16 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     TopSysRole role = topSysRoleService.getById(checkLog.getRoleId());
                     item.setRefundName(role.getRoleName());
                 }
+                //学员审核情况
+                int count = topOrderGoodsService.count(new LambdaQueryWrapper<TopOldOrderGoods>()
+                        .eq(TopOldOrderGoods::getOrderSn, item.getOrderSn())
+                        .eq(TopOldOrderGoods::getCheckStatus, 0)//待审核
+                        .eq(TopOldOrderGoods::getStatus, 1));
+                if (count > 0){
+                    item.setStudentCheckStatus(0);
+                }else {
+                    item.setStudentCheckStatus(1);
+                }
             });
         }
         return orderVoList;
@@ -358,6 +376,33 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         } else {
             add.setOrderUncollected(bo.getPayPrice().subtract(bo.getOrderReceived()));
         }
+        if (add.getOrderBase() == 1){
+            //底单在新系统 查询新系统订单号
+            Map<String, String> params = new HashMap<>();
+            Long nowTime = DateUtils.getNowTime();
+            String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
+            params.put("stamp", nowTime.toString());
+            params.put("sign", sign);
+            params.put("orderSn", add.getOrderSn());
+            String respone = "";
+            try {
+                respone = HttpUtils.postFormBody(INPUT_ORDER, params);
+                if (!respone.contains("\"Status\":true")) {
+                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
+                }
+                JSONObject jsonObject = JSONObject.parseObject(respone);
+                Object data = jsonObject.get("Data");
+                if (ObjectUtils.isNull(data)) {
+                    //data 为空
+                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
+                }else {
+                    add.setInputOrderSn(data.toString());
+                }
+            } catch (IOException e) {
+                log.error("旧系统查询新系统订单号接口请求错误" + respone);
+                throw new CustomException("旧系统查询新系统订单号接口请求错误");
+            }
+        }
         this.save(add);
         //订单商品
         if (CollectionUtils.isNotEmpty(bo.getOrderGoodsList())) {
@@ -563,16 +608,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     .eq(TopOldOrderGoods::getOrderSn, bo.getOrderSn())
                     .in(TopOldOrderGoods::getSignId, signIds));
         }
-        //订单待审核
-        TopOldOrder oldOrder = BeanUtil.toBean(bo, TopOldOrder.class);
-        oldOrder.setOrderId(order.getOrderId());
-        oldOrder.setCheckStatus(0);//待审核
-        oldOrder.setCheckRemark(bo.getOrderGoodsList().stream().map(x -> x.getSignId().toString()).collect(Collectors.joining(",")));
+        order.setCheckRemark(bo.getOrderGoodsList().stream().map(x -> x.getSignId().toString()).collect(Collectors.joining(",")));
         //重新计算成本
         if (StringUtils.isNotBlank(order.getCostJson())) {
-            recalculateCost(order.getCostJson(),oldOrder);
+            recalculateCost(order.getCostJson(),order);
         }
-        updateById(oldOrder);
+        updateById(order);
 
         if (bo.getOrderBase() == 1) {
             //新系统订单
@@ -590,7 +631,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     List<Order> orderList = orderService
                             .list(new LambdaQueryWrapper<Order>()
                                     .eq(Order::getUserId, user.getUserId())
-                                    .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
+                                    .eq(Order::getInputOrderSn, order.getInputOrderSn())
                                     .eq(Order::getStatus, 1));
                     if (CollectionUtils.isNotEmpty(orderList)) {
                         List<OrderGoods> orderGoods = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
@@ -772,28 +813,68 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         oldOrder.setCheckStatus(bo.getCheckStatus());
         oldOrder.setCheckBy(bo.getLoginName());
-        List<String> singIds = new ArrayList<>();
+
         LambdaQueryWrapper<TopOldOrderGoods> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn());
         wrapper.eq(TopOldOrderGoods::getStatus, 1);
-        if (StringUtils.isNotBlank(oldOrder.getCheckRemark())) {
-            wrapper.in(TopOldOrderGoods::getSignId, Arrays.asList(oldOrder.getCheckRemark().split(",")));
-            singIds = Arrays.stream(oldOrder.getCheckRemark().split(",")).collect(Collectors.toList());
-        }
         List<TopOldOrderGoods> orderGoods = topOrderGoodsService.list(wrapper);
         if (CollectionUtils.isNotEmpty(orderGoods)) {
             orderGoods.forEach(x -> x.setCheckStatus(bo.getCheckStatus()));
             topOrderGoodsService.updateBatchById(orderGoods);
         }
-        if (CollectionUtils.isNotEmpty(singIds) && oldOrder.getOrderBase() == 1) {
+
+        updateById(oldOrder);
+        // 订单审核通知业务系统
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(bo.getOrderSn() + nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("orderSn", bo.getOrderSn());
+        params.put("status", bo.getCheckStatus().toString());
+        if (StringUtils.isNotBlank(bo.getCheckReason())) {
+            params.put("remark", bo.getCheckReason());
+        }
+        params.put("auditor", bo.getLoginName());
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(ORDER_CHECK, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("旧系统订单审核接口请求错误");
+            }
+        } catch (IOException e) {
+            log.error("旧系统订单审核接口请求错误" + respone);
+            throw new CustomException("旧系统订单审核接口请求错误");
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean checkOrderStudent(TopOldOrderCheckBo bo) {
+        TopOldOrder oldOrder = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+
+        //校验当前登入角色
+        List<TopSysUserRole> userRoles = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getOrderId()));
+        if (CollectionUtils.isEmpty(userRoles) && !"admin".equals(bo.getLoginName())) {
+            throw new CustomException("当前账号没有审核权限");
+        }
+        List<TopOldOrderCheck> checks = topOldOrderCheckService
+                .list(new LambdaQueryWrapper<TopOldOrderCheck>().eq(TopOldOrderCheck::getCheckType, 1));
+        if (CollectionUtils.isNotEmpty(checks)) {
+            throw new CustomException("没有设置审核流程!请检查");
+        }
+        List<Long> roles = checks.stream().map(TopOldOrderCheck::getCheckRole).collect(Collectors.toList());
+        List<Long> roleIdList = userRoles.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
+        if (roleIdList.stream().noneMatch(x -> roles.contains(x)) && !"admin".equals(bo.getLoginName())) {
+            throw new CustomException("当前账号没有审核权限");
+        }
+
+        if (oldOrder.getOrderBase() == 1) {
             //处理退学学员 并且订单在新系统
             switch (bo.getCheckStatus()) {
                 case 1://审核通过
-                    List<TopOldOrderGoods> list = topOrderGoodsService
-                            .list(new LambdaQueryWrapper<TopOldOrderGoods>()
-                                    .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
-                                    .in(TopOldOrderGoods::getSignId, singIds)
-                                    .eq(TopOldOrderGoods::getCheckStatus, -1));
+                    List<TopOldOrderGoods> list = topOrderGoodsService.listByIds(bo.getOrderGoodsIds());
                     List<String> userNames = new ArrayList<>();
                     list.forEach(item -> {
                         User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
@@ -827,11 +908,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     this.informRemind(userNames);
                     break;
                 case 2: //审核未通过
-                    List<TopOldOrderGoods> list2 = topOrderGoodsService
-                            .list(new LambdaQueryWrapper<TopOldOrderGoods>()
-                                    .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
-                                    .in(TopOldOrderGoods::getSignId, singIds)
-                                    .eq(TopOldOrderGoods::getCheckStatus, -1));
+                    List<TopOldOrderGoods> list2 = topOrderGoodsService.listByIds(bo.getOrderGoodsIds());
                     list2.forEach(item -> {
                         User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
                         if (ObjectUtil.isNull(user)) {
@@ -863,29 +940,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
         }
 
-        updateById(oldOrder);
-        // 订单审核通知业务系统
-        Map<String, String> params = new HashMap<>();
-        Long nowTime = DateUtils.getNowTime();
-        String sign = ToolsUtils.EncoderByMd5(bo.getOrderSn() + nowTime.toString() + "pubilc2022");
-        params.put("stamp", nowTime.toString());
-        params.put("sign", sign);
-        params.put("orderSn", bo.getOrderSn());
-        params.put("status", bo.getCheckStatus().toString());
-        if (StringUtils.isNotBlank(bo.getCheckReason())) {
-            params.put("remark", bo.getCheckReason());
-        }
-        params.put("auditor", bo.getLoginName());
-        String respone = "";
-        try {
-            respone = HttpUtils.postFormBody(ORDER_CHECK, params);
-            if (!respone.contains("\"Status\":true")) {
-                throw new CustomException("旧系统订单审核接口请求错误");
-            }
-        } catch (IOException e) {
-            log.error("旧系统订单审核接口请求错误" + respone);
-            throw new CustomException("旧系统订单审核接口请求错误");
-        }
+        //todo 通知业务系统
         return true;
     }
 
@@ -948,7 +1003,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (CollectionUtils.isEmpty(orderGoods)) {
             throw new CustomException("订单学员课程信息获取有误");
         }
-        if (orderGoods.stream().allMatch(x -> x.getRefundStatus() != 0 || x.getRefundStatus() != 3)) {
+        if (orderGoods.stream().allMatch(x -> x.getRefundStatus() != 0 && x.getRefundStatus() != 3)) {
             throw new CustomException("订单申请退款学员有误,请检查");
         }
 
@@ -984,7 +1039,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         updateById(order);
 
         //处理新系统订单
-        if (ObjectUtils.isNotNull(order.getInputOrderSn())) {
+        if (ObjectUtils.isNotNull(order.getInputOrderSn()) && order.getOrderBase() == 1) {
             orderGoods.forEach(item -> {
                 User user = userService.getOne(new LambdaQueryWrapper<User>()
                         .eq(User::getIdCard, EncryptHandler.encrypt(item.getUserCard())));
@@ -1086,12 +1141,17 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             vo.setRefundReason(refunds.get(0).getApplyReason());
             vo.setApplyTime(refunds.get(0).getCreateTime());
         }
-        //todo 申请退款审核人
-        vo.setApplyName("申请退款公司(张三)");
+        // 申请退款审核人
+        SysTenant tenant = sysTenantService.getById(orderVo.getTenantId());
+        vo.setApplyName(String.format("%s(%s)",tenant.getTenantName(),orderVo.getCreateUsername()));
         vo.setCheckType(1);
         //审核进度
         List<TopOldOrderCheckLog> checkLogs = topOldOrderCheckLogService
-                .list(new LambdaQueryWrapper<TopOldOrderCheckLog>().eq(TopOldOrderCheckLog::getRefundSn, vo.getRefundSn()).eq(TopOldOrderCheckLog::getStatus, 1));
+                .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                        .eq(TopOldOrderCheckLog::getRefundSn, vo.getRefundSn())
+                        .eq(TopOldOrderCheckLog::getStatus, 1)
+                        .orderByAsc(TopOldOrderCheckLog::getType)
+                        .orderByAsc(TopOldOrderCheckLog::getCheckSort));
         if (CollectionUtils.isNotEmpty(checkLogs)) {
             List<TopOldOrderCheckLogVo> checkLogVoList = checkLogs.stream().map(item -> {
                 TopOldOrderCheckLogVo logVo = BeanUtil.toBean(item, TopOldOrderCheckLogVo.class);
@@ -1167,6 +1227,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
         }
         String refundSn = refundList.get(0).getRefundSn();
+        Integer type = refundList.get(0).getType();
         //当前退款流程
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                 .eq(TopOldOrderCheckLog::getRefundSn, refundSn).eq(TopOldOrderCheckLog::getStatus, 1)
@@ -1177,10 +1238,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
         switch (bo.getCheckResult()) {
             case 1://同意
-                consentCheck(checkLog, bo);
+                consentCheck(checkLog, bo,type);
                 break;
             case -1://拒绝
-                refuseCheck(checkLog, bo);
+                refuseCheck(checkLog, bo,type);
                 break;
             default:
                 break;
@@ -1189,7 +1250,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
-    private void refuseCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo) {
+    private void refuseCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo,Integer type) {
         List<TopOldOrderCheckLog> checkLogList = topOldOrderCheckLogService
                 .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                         .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
@@ -1212,6 +1273,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
                     .eq(TopOldOrderCheckLog::getType, 2)//订单退款审核
                     .eq(TopOldOrderCheckLog::getCheckSort, checkLog.getCheckSort() - 1));
+            // 订单退款通知业务系统
+            checkInform(bo.getOrderSn(),type,bo.getCheckReason(),2,0,String.format("审核中(%s)",bo.getCheckRoleName()));
         } else {
             //初审拒绝
             //处理订单状态
@@ -1233,18 +1296,80 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
             //订单处理
             TopOldOrder order = baseMapper.getOrderBySn(refundList.get(0).getOrderSn());
+            // 订单退款通知业务系统
+            checkInform(order.getOrderSn(),type,bo.getCheckReason(),2,1,String.format("审核中(%s)",bo.getCheckRoleName()));
             if (order.getOrderFrom() == 1) {
                 //新系统订单
                 orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
                         .set(OrderGoods::getRefundStatus, 3)
                         .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
             } else {
-                //todo 旧系统订单
+                if (order.getOrderBase() == 1){
+                    //底单在新系统
+                    List<TopOldOrderGoods> orderGoods = topOrderGoodsService.listByIds(orderGoodsIds);
+                    orderGoods.forEach(item -> {
+                        User user = userService.getOne(new LambdaQueryWrapper<User>()
+                                .eq(User::getIdCard, EncryptHandler.encrypt(item.getUserCard())));
+                        if (ObjectUtils.isNotNull(user)) {
+                            //处理新系统订单商品
+                            List<Order> list = orderService
+                                    .list(new LambdaUpdateWrapper<Order>()
+                                            .eq(Order::getInputOrderSn, order.getInputOrderSn())
+                                            .eq(Order::getStatus, 1)
+                                            .eq(Order::getUserId, user.getUserId()));
+                            if (CollectionUtils.isNotEmpty(list)) {
+                                List<OrderGoods> goodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
+                                        .eq(OrderGoods::getGoodsId,item.getGoodsId())
+                                        .eq(OrderGoods::getRefundStatus,1)//退款中
+                                        .in(OrderGoods::getOrderSn, list.stream().map(Order::getOrderSn).collect(Collectors.toList()))
+                                        .eq(OrderGoods::getStatus, 1));
+                                if (CollectionUtils.isNotEmpty(goodsList)) {
+                                    //修改订单状态
+                                    goodsList.forEach(x -> x.setRefundStatus(3));
+                                    orderGoodsService.updateBatchById(goodsList);
+                                }
+                            }
+                        }
+                    });
+                }
+            }
+        }
+    }
+
+    private void checkInform(String orderSn,Integer type,String remark,Integer status,Integer isend,String checkName){
+
+        // 订单退款通知业务系统
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(orderSn + nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("orderSn", orderSn);
+        params.put("type", type.toString());
+        params.put("status", status.toString());
+        if (StringUtils.isNotBlank(remark)) {
+            params.put("remark", remark);
+        }
+        if (ObjectUtils.isNotNull(isend)) {
+            params.put("isend", isend.toString());
+        }
+        if (StringUtils.isNotBlank(checkName)) {
+            params.put("statusname", checkName);
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(REFUSE_CHECK, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("旧系统退款审核结果推送接口请求错误");
             }
+        } catch (IOException e) {
+            log.error("旧系统退款审核结果推送接口请求错误" + respone);
+            throw new CustomException("旧系统退款审核结果推送接口请求错误");
         }
     }
 
-    private void consentCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo) {
+
+    private void consentCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo,Integer type) {
         List<TopOldOrderCheckLog> checkLogList = topOldOrderCheckLogService
                 .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                         .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
@@ -1285,6 +1410,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 topOldOrderCheckLogService.updateById(check);
             }
         }
+        checkInform(bo.getOrderSn(),type,bo.getCheckReason(),1,0,String.format("审核中(%s)",bo.getCheckRoleName()));
 
         //处理订单状态
         List<TopOldOrderRefund> refundList = topOldOrderRefundService
@@ -1338,9 +1464,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (CollectionUtils.isEmpty(bo.getOrderSnList())) {
             throw new CustomException("订单号不能为空");
         }
-        if (ObjectUtils.isNotNull(bo.getLoginId())) {
-            validFinish(bo);
-        }
+        validFinish(bo);
+
         bo.getOrderSnList().forEach(orderSn -> {
                     TopOldOrder order = baseMapper.getOrderBySn(orderSn);
                     if (ObjectUtils.isNull(order)) {
@@ -1380,10 +1505,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                 return;
                             }
                             //获取机构分成方式
-                            SysOldOrg oldOrg = sysOldOrgService
-                                    .getOne(new LambdaQueryWrapper<SysOldOrg>()
-                                            .eq(SysOldOrg::getOrgId, order.getTenantId()));
-                            Integer divideModel = oldOrg.getDivideModel();
+                            SysTenant tenant = sysTenantService
+                                    .getOne(new LambdaQueryWrapper<SysTenant>()
+                                            .eq(SysTenant::getTenantId, order.getTenantId()));
+                            Integer divideModel = tenant.getDivideModel();
                             //分成金额
                             TopCostTpVo topCostTpVo = JSONObject.parseObject(costJson, TopCostTpVo.class);
                             List<TopCostTpItemVo> itemList = topCostTpVo.getItemList();
@@ -2050,6 +2175,38 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
+    @Override
+    public boolean orderProceeds(TopOrderProceedsBo bo) {
+        TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
+        if (ObjectUtil.isNull(order)){
+            throw new CustomException("订单号错误");
+        }
+        //更新订单已收金额
+        if (ObjectUtils.isNotNull(order.getOrderReceived())){
+            order.setOrderReceived(bo.getOrderReceived().add(order.getOrderReceived()));
+        }else {
+            order.setOrderReceived(bo.getOrderReceived());
+        }
+        order.setOrderUncollected(order.getPayPrice().subtract(order.getOrderReceived()));
+        order.setOrderStatus(1);//已支付
+        Integer payStatus = 0;
+        if (order.getOrderUncollected().compareTo(new BigDecimal(0.00)) > 0){
+            payStatus = 2;//部分付款
+        }else {
+            payStatus = 3;//完全付款
+        }
+        order.setPayStatus(payStatus);
+        topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+        .set(TopOldOrderGoods::getPayStatus,payStatus)
+        .eq(TopOldOrderGoods::getOrderSn,order.getOrderSn())
+        .ne(TopOldOrderGoods::getCheckStatus,-1)
+        .eq(TopOldOrderGoods::getStatus,1));
+
+        return updateById(order);
+    }
+
+
+
     @Override
     public TopSellerDiscountVo getSellerDiscount(TopSellerDiscountBo bo) {
         TopOldSellerDiscount discount = topOldSellerDiscountService.getOne(new LambdaQueryWrapper<TopOldSellerDiscount>()

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderVo.java

@@ -230,6 +230,8 @@ public class TopOldOrderVo {
 	@ApiModelProperty("角色名称")
 	private String roleName;
 
+	@ApiModelProperty("学员审核状态:0待审核,1已审核")
+	private Integer studentCheckStatus;
 
 	@ApiModelProperty("退款审核角色名称")
 	private String refundName;

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

@@ -68,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="userName != null and userName != ''">
             AND user_name LIKE CONCAT( '%', #{userName}, '%' )
         </if>
+          ORDER BY check_status ASC
     </select>
 
 </mapper>

+ 19 - 1
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -153,6 +153,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="endTime != null and endTime != ''">
             AND ot.create_time <![CDATA[ <= ]]> #{endTime}
         </if>
+        <if test="orderSn != null and orderSn != ''">
+            AND ot.order_sn = #{orderSn}
+        </if>
+        <if test="orderSnList != null and orderSnList.size()!=0 ">
+            AND ot.order_sn in
+            <foreach collection="orderSnList" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="keyword != null and keyword != ''">
             AND (
             ot.create_org LIKE CONCAT( '%', #{keyword}, '%' )
@@ -203,6 +212,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         <if test="endTime != null and endTime != ''">
             AND o.create_time <![CDATA[ <= ]]> #{endTime}
+        </if>
+        <if test="orderSn != null and orderSn != ''">
+            AND o.order_sn = #{orderSn}
+        </if>
+        <if test="orderSnList != null and orderSnList.size()!=0 ">
+            AND o.order_sn in
+            <foreach collection="orderSnList" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
         </if>
                 )) as number
     </select>
@@ -212,7 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="queryBusinessBySn" parameterType="java.lang.String" resultType="java.lang.String">
-        SELECT business_name FROM v_top_order_business WHERE order_sn = #{orderSn}
+        SELECT DISTINCT business_name FROM v_top_order_business WHERE order_sn = #{orderSn}
     </select>
 
     <select id="queryByOrderSns" parameterType="java.lang.String" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderVo">