he2802 2 năm trước cách đây
mục cha
commit
d220106e2f

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/service/impl/TopDivideLogServiceImpl.java

@@ -65,6 +65,7 @@ public class TopDivideLogServiceImpl extends ServiceImpl<TopDivideLogMapper, Top
         SysTenantVo tenantVo = iSysTenantService.queryById(Long.parseLong(db.getTenantId()));
         TopDivideLogVo divideLogVo = BeanUtil.toBean(db, TopDivideLogVo.class);
         divideLogVo.setTenantName(tenantVo.getTenantName());
+        divideLogVo.setBillType(tenantVo.getBillType());
         return divideLogVo;
     }
 

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideLogVo.java

@@ -128,4 +128,7 @@ public class TopDivideLogVo {
 	@ApiModelProperty("角色ID")
 	private Long roleId;
 
+	@ApiModelProperty("审核意见")
+	private String checkReason;
+
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideOrderVo.java

@@ -132,6 +132,7 @@ public class TopDivideOrderVo {
 	private String toBankTypeName;
 	@ApiModelProperty("支付时间")
 	private Long payTime;
-
+	@ApiModelProperty("审核意见")
+	private String checkReason;
 
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderBankPayAddBo.java

@@ -72,4 +72,7 @@ public class TopOrderBankPayAddBo {
     /** 支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账 */
     @ApiModelProperty("支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账")
     private Integer payType;
+    /** 类型:1分成,2退款,3供应商结算 4佣金 */
+    @ApiModelProperty("类型:1分成,2退款,3供应商结算 4佣金")
+    private Integer type;
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/domain/TopOrderBankPay.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.top.order.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -30,7 +31,7 @@ private static final long serialVersionUID=1L;
     private String paySn;
     /** 订单号 */
     private String orderSn;
-    /** 类型:1分成,2退款,3供应商结算 */
+    /** 类型:1分成,2退款,3供应商结算 4佣金*/
     private Integer type;
     /** 银行账号 */
     private String toBankAcount;
@@ -59,4 +60,5 @@ private static final long serialVersionUID=1L;
     private Long divideLogId;
     /** 支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账 */
     private Integer payType;
+
 }

+ 212 - 93
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderBankPayServiceImpl.java

@@ -152,108 +152,227 @@ public class TopOrderBankPayServiceImpl extends ServiceImpl<TopOrderBankPayMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean payToCompany(TopOrderBankPayAddBo bo) {
-        if(Validator.isEmpty(bo.getDivideLogId())||Validator.isEmpty(bo.getTenantId())){
-            throw new CustomException("参数错误");
+        if(Validator.isEmpty(bo.getType())){
+            throw new CustomException("类型参数错误");
         }
-        if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
-            throw new CustomException("支付参数错误");
-        }
-        //校验当前角色审核权限
-        List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
-        if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
-            throw new CustomException("当前账号没有审核权限");
-        }
-        List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
-        TopDivideLog divideLog = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
-                .eq(TopDivideLog::getId, bo.getDivideLogId()));
+        if(bo.getType()==4){
+            if(Validator.isEmpty(bo.getOrderSn())||Validator.isEmpty(bo.getTenantId())){
+                throw new CustomException("参数错误");
+            }
+            if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
+                throw new CustomException("支付参数错误");
+            }
+            //校验当前角色审核权限
+            List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
+            if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+            List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
+            TopOldOrder order = iTopOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
+                    .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+            TopOldOrderCheckLog checkLog = iTopOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                    .eq(TopOldOrderCheckLog::getOrderSn, bo.getOrderSn()).eq(TopOldOrderCheckLog::getCheckFrom, 4)
+                    .eq(TopOldOrderCheckLog::getCheckSign, 1));
+            if(Validator.isEmpty(checkLog)||Validator.isEmpty(order)){
+                throw new CustomException("审核数据错误");
+            }
+            if(checkLog.getCheckStatus()!=2&&checkLog.getCheckStatus()!=5){
+                throw new CustomException("非待支付状态");
+            }
 
-        if(Validator.isEmpty(divideLog)){
-            throw new CustomException("审核数据错误");
-        }
-        if(divideLog.getPayStatus()!=0&&divideLog.getPayStatus()!=4){
-            throw new CustomException("非待支付状态");
-        }
-        List<Integer> pStatus = new ArrayList<>();
-        pStatus.add(0);
-        pStatus.add(4);
-        TopDivideLog divideLogFirst = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
-                .eq(TopDivideLog::getTenantId, divideLog.getTenantId())
-                .eq(TopDivideLog::getDivideType, divideLog.getDivideType())
-                .in(TopDivideLog::getPayStatus, pStatus).last("limit 1"));
-        if(!divideLogFirst.getId().equals(divideLog.getId())){
-            throw new CustomException("存在历史未支付月份");
-        }
-        TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
-                .eq(TopSysRole::getRoleName, "出纳")
-                .eq(TopSysRole::getStatus, 1).last("limit 1"));
-        if(Validator.isEmpty(sysRole)){
-            throw new CustomException("当前系统没有出纳角色");
-        }
-        if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+            TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
+                    .eq(TopSysRole::getRoleName, "出纳")
+                    .eq(TopSysRole::getStatus, 1).last("limit 1"));
+            if(Validator.isEmpty(sysRole)){
+                throw new CustomException("当前系统没有出纳角色");
+            }
+            if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+        /*if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
             throw new CustomException("当前账号没有审核权限");
-        }
+        }*/
+            if(order.getBrokerage().compareTo(BigDecimal.ZERO)==0){
+                //免费
+                checkLog.setCheckStatus(3);
+                checkLog.setCheckTime(DateUtils.getNowTime());
+                checkLog.setUpdateTime(DateUtils.getNowTime());
+                iTopOldOrderCheckLogService.updateById(checkLog);
+                return true;
+            }
+
+            bo.setTrainOrgId(checkLog.getTenantId().toString());//旧机构ID
+            String paySn = DateUtils.getTagOrderSn("CP");
+            TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
+            add.setPaySn(paySn);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setResultStatus(0);
+            add.setPayUsername(bo.getLoginName());
+            add.setDivideLogId(bo.getDivideLogId());
+            BigDecimal money = null;
+            money =order.getBrokerage();
+            add.setMoney(money);
+            //网银支付
+            if(add.getPayType()==5){
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("MainUniqueId", paySn);
+                params.put("ToBankAcount", bo.getToBankAcount());
+                params.put("ToBankName", bo.getToBankName());
+                params.put("ToBankTypeName", bo.getToBankTypeName());
+                params.put("Money", money.toString());
+                params.put("TrainOrgId", bo.getTrainOrgId());
+                if(Validator.isNotEmpty(bo.getToBankConnetNum())){
+                    params.put("ToBankConnetNum", bo.getToBankConnetNum());
+                }
+                if(Validator.isNotEmpty(bo.getRemark())){
+                    params.put("Remark", bo.getRemark());
+                }
+                String respone = "";
+                String paramStr = JSON.toJSONString(params);
+                add.setParamJson(paramStr);
+                log.info("网银支付参数" + paramStr, "");
+                String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
+                try {
+                    respone = HttpUtils.postFormBody(path, params);
+                    if (!respone.contains("\"Status\":true")) {
+
+                        throw new CustomException("同步请求错误"+respone);
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("同步请求错误"+e.getMessage());
+                }
+            }
+
+            if(this.save(add)){
+                if(add.getPayType()==4){
+                    checkLog.setCheckStatus(3);
+                }else{
+                    checkLog.setCheckStatus(6);//支付中
+                }
+                checkLog.setCheckTime(DateUtils.getNowTime());
+                checkLog.setUpdateTime(DateUtils.getNowTime());
+                iTopOldOrderCheckLogService.updateById(checkLog);
+                return  true;
+            }
+            return false;
+        }else{
+            if(Validator.isEmpty(bo.getDivideLogId())||Validator.isEmpty(bo.getTenantId())){
+                throw new CustomException("参数错误");
+            }
+            if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
+                throw new CustomException("支付参数错误");
+            }
+            //校验当前角色审核权限
+            List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
+            if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+            List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
+            TopDivideLog divideLog = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
+                    .eq(TopDivideLog::getId, bo.getDivideLogId()));
+
+            if(Validator.isEmpty(divideLog)){
+                throw new CustomException("审核数据错误");
+            }
+            if(divideLog.getPayStatus()!=0&&divideLog.getPayStatus()!=4){
+                throw new CustomException("非待支付状态");
+            }
+            List<Integer> pStatus = new ArrayList<>();
+            pStatus.add(0);
+            pStatus.add(4);
+            TopDivideLog divideLogFirst = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
+                    .eq(TopDivideLog::getTenantId, divideLog.getTenantId())
+                    .eq(TopDivideLog::getDivideType, divideLog.getDivideType())
+                    .in(TopDivideLog::getPayStatus, pStatus).last("limit 1"));
+            if(!divideLogFirst.getId().equals(divideLog.getId())){
+                throw new CustomException("存在历史未支付月份");
+            }
+            TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
+                    .eq(TopSysRole::getRoleName, "出纳")
+                    .eq(TopSysRole::getStatus, 1).last("limit 1"));
+            if(Validator.isEmpty(sysRole)){
+                throw new CustomException("当前系统没有出纳角色");
+            }
+            if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+                throw new CustomException("当前账号没有审核权限");
+            }
         /*if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
             throw new CustomException("当前账号没有审核权限");
         }*/
-        if(divideLog.getPayMoney().compareTo(BigDecimal.ZERO)==0){
-            //免费
-            divideLog.setPayStatus(1);
-            divideLog.setPayTime(DateUtils.getNowTime());
-            divideLog.setUpdateTime(DateUtils.getNowTime());
-            iTopDivideLogService.updateById(divideLog);
-            return true;
-        }
+            if(divideLog.getPayMoney().compareTo(BigDecimal.ZERO)==0){
+                //免费
+                divideLog.setPayStatus(1);
+                divideLog.setPayTime(DateUtils.getNowTime());
+                divideLog.setUpdateTime(DateUtils.getNowTime());
+                iTopDivideLogService.updateById(divideLog);
+                return true;
+            }
 
-        bo.setTrainOrgId(divideLog.getTenantId().toString());//旧机构ID
-        String paySn = DateUtils.getTagOrderSn("CP");
-        TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
-        add.setPaySn(paySn);
-        validEntityBeforeSave(add);
-        add.setCreateTime(DateUtils.getNowTime());
-        add.setUpdateTime(DateUtils.getNowTime());
-        add.setResultStatus(0);
-        add.setPayUsername(bo.getLoginName());
-        add.setType(1);//分成
-        add.setDivideLogId(bo.getDivideLogId());
-        BigDecimal money = null;
-        money =divideLog.getPayMoney();
-        add.setMoney(money);
-        Map<String, String> params = new HashMap<>();
-        Long nowTime = DateUtils.getNowTime();
-        String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
-        params.put("stamp", nowTime.toString());
-        params.put("sign", sign);
-        params.put("MainUniqueId", paySn);
-        params.put("ToBankAcount", bo.getToBankAcount());
-        params.put("ToBankName", bo.getToBankName());
-        params.put("ToBankTypeName", bo.getToBankTypeName());
-        params.put("Money", money.toString());
-        params.put("TrainOrgId", bo.getTrainOrgId());
-        if(Validator.isNotEmpty(bo.getToBankConnetNum())){
-            params.put("ToBankConnetNum", bo.getToBankConnetNum());
-        }
-        if(Validator.isNotEmpty(bo.getRemark())){
-            params.put("Remark", bo.getRemark());
-        }
-        String respone = "";
-        String paramStr = JSON.toJSONString(params);
-        add.setParamJson(paramStr);
-        log.info("网银支付参数" + paramStr, "");
-        String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
-        try {
-            respone = HttpUtils.postFormBody(path, params);
-            if (!respone.contains("\"Status\":true")) {
+            bo.setTrainOrgId(divideLog.getTenantId().toString());//旧机构ID
+            String paySn = DateUtils.getTagOrderSn("CP");
+            TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
+            add.setPaySn(paySn);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setResultStatus(0);
+            add.setPayUsername(bo.getLoginName());
+            add.setDivideLogId(bo.getDivideLogId());
+            BigDecimal money = null;
+            money =divideLog.getPayMoney();
+            add.setMoney(money);
+            //网银支付
+            if(add.getPayType()==5){
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("MainUniqueId", paySn);
+                params.put("ToBankAcount", bo.getToBankAcount());
+                params.put("ToBankName", bo.getToBankName());
+                params.put("ToBankTypeName", bo.getToBankTypeName());
+                params.put("Money", money.toString());
+                params.put("TrainOrgId", bo.getTrainOrgId());
+                if(Validator.isNotEmpty(bo.getToBankConnetNum())){
+                    params.put("ToBankConnetNum", bo.getToBankConnetNum());
+                }
+                if(Validator.isNotEmpty(bo.getRemark())){
+                    params.put("Remark", bo.getRemark());
+                }
+                String respone = "";
+                String paramStr = JSON.toJSONString(params);
+                add.setParamJson(paramStr);
+                log.info("网银支付参数" + paramStr, "");
+                String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
+                try {
+                    respone = HttpUtils.postFormBody(path, params);
+                    if (!respone.contains("\"Status\":true")) {
 
-                throw new CustomException("同步请求错误"+respone);
+                        throw new CustomException("同步请求错误"+respone);
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("同步请求错误"+e.getMessage());
+                }
             }
-        } catch (IOException e) {
-            throw new CustomException("同步请求错误"+e.getMessage());
-        }
-        if(this.save(add)){
-            divideLog.setPayStatus(3);//支付中
-            iTopDivideLogService.updateById(divideLog);
-            return  true;
+
+            if(this.save(add)){
+                if(add.getPayType()==4){
+                    divideLog.setPayStatus(1);//支付完成
+                }else{
+                    divideLog.setPayStatus(3);//支付中
+                }
+                iTopDivideLogService.updateById(divideLog);
+                return  true;
+            }
+            return false;
         }
-        return false;
+
     }
 }

+ 26 - 2
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml

@@ -50,7 +50,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         AND cl.check_sign = 1
         AND tdo.order_type = 1
         AND tdo.divide_log_id = dl.id
-        LIMIT 1) as role_name
+        LIMIT 1) as role_name,
+        (SELECT
+        cl.check_reason
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 2
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        AND cl.check_status = -1
+        ORDER BY cl.check_sort
+        LIMIT 1) as check_reason
         FROM
             top_divide_log dl
                 LEFT JOIN sys_tenant st ON dl.tenant_id = st.tenant_id
@@ -237,7 +249,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         AND cl.check_sign = 1
         AND tdo.order_type = 1
         AND tdo.divide_log_id = dl.id
-        LIMIT 1) as role_name
+        LIMIT 1) as role_name,
+        (SELECT
+        cl.check_reason
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 3
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        AND cl.check_status = -1
+        ORDER BY cl.check_sort
+        LIMIT 1) as check_reason
         FROM
         top_divide_log dl
         LEFT JOIN sys_tenant st ON dl.tenant_id = st.tenant_id

+ 12 - 3
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideOrderMapper.xml

@@ -255,7 +255,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         v.order_price,
         st.tenant_name,
         v.pretax_brokerage,
-        v.pay_type,
         r.role_name,
         r.role_id,
         cl.check_status,
@@ -264,14 +263,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         bp.to_bank_acount,
         bp.to_bank_name,
         bp.to_bank_type_name,
-        bp.create_time as pay_time
+        bp.create_time as pay_time,
+        (SELECT
+        ocl.check_reason
+        FROM
+        top_old_order_check_log ocl
+        WHERE
+        ocl.check_from = 4
+        AND ocl.order_sn = v.order_sn
+        AND ocl.check_status = -1
+        ORDER BY ocl.check_sort
+        LIMIT 1) as check_reason
         FROM
         top_old_order v
         LEFT JOIN sys_tenant st ON v.tenant_id = st.tenant_id
         LEFT JOIN
         top_old_order_check_log cl ON cl.check_from = 4 AND  cl.check_sign = 1  AND  v.order_sn = cl.order_sn
         LEFT JOIN top_sys_role r ON cl.role_id = r.role_id
-        LEFT JOIN top_order_bank_pay bp ON bp.type = 3 AND bp.order_sn = v.order_sn AND bp.result_status = 1
+        LEFT JOIN top_order_bank_pay bp ON bp.type = 4 AND bp.order_sn = v.order_sn AND bp.result_status = 1
         WHERE
         1 = 1
         <if test="accomplishStartTime != null and accomplishStartTime != ''">