he2802 2 年之前
父節點
當前提交
b32e84c8b4

+ 12 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderCheckLogController.java

@@ -3,6 +3,9 @@ package com.zhongzheng.controller.order;
 import java.util.List;
 import java.util.Arrays;
 
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TopTokenService;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogQueryBo;
@@ -42,6 +45,8 @@ public class TopOldOrderCheckLogController extends BaseController {
 
     private final ITopOldOrderCheckLogService iTopOldOrderCheckLogService;
 
+    private final TopTokenService tokenService;
+
     /**
      * 查询订单退款审核记录列表
      */
@@ -80,12 +85,15 @@ public class TopOldOrderCheckLogController extends BaseController {
     /**
      * 修改订单退款审核记录
      */
-    @ApiOperation("修改订单退款审核记录")
+    @ApiOperation("修改订单分成审核记录")
     @PreAuthorize("@ss.hasPermi('system:log:edit')")
     @Log(title = "订单退款审核记录", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult<Void> edit(@RequestBody TopOldOrderCheckLogEditBo bo) {
-        return toAjax(iTopOldOrderCheckLogService.updateByEditBo(bo) ? 1 : 0);
+    @PostMapping("/editDivide")
+    public AjaxResult<Void> editDivide(@RequestBody TopOldOrderCheckLogEditBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderCheckLogService.updateDivideByEditBo(bo) ? 1 : 0);
     }
 
 

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

@@ -234,4 +234,11 @@ public class TopOldOrderController extends BaseController {
         return toAjax(iTopOldOrderService.updateOrderCost(bo) ? 1 : 0);
     }
 
+
+    @ApiOperation("订单分成审核详情")
+    @GetMapping("/divide/detail/{orderSn}")
+    public AjaxResult<TopOldOrderVo> divideOrderDetail(@PathVariable("orderSn") String orderSn) {
+        return AjaxResult.success(iTopOldOrderService.divideOrderDetail(orderSn));
+    }
+
 }

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

@@ -65,4 +65,10 @@ public class TopOldOrderCheckLogEditBo {
     @ApiModelProperty("企业ID")
     private String tenantId;
 
+    private String loginName;
+
+    private Long loginId;
+
+    @ApiModelProperty("审核结果:1同意,-1拒绝")
+    private Integer checkResult;
 }

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

@@ -43,6 +43,8 @@ public interface ITopOldOrderCheckLogService extends IService<TopOldOrderCheckLo
 	 */
 	Boolean updateByEditBo(TopOldOrderCheckLogEditBo bo);
 
+	Boolean updateDivideByEditBo(TopOldOrderCheckLogEditBo bo);
+
 	/**
 	 * 校验并删除数据
 	 * @param ids 主键集合

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

@@ -74,6 +74,8 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 
 	TopRefundOrderDetailVo refundOrderDetail(String orderSn);
 
+	TopOldOrderVo divideOrderDetail(String orderSn);
+
 	boolean refundOrderCheck(TopRefundOrderCheckBo bo);
 
 	boolean updateRemark(TopUpdateRemarkBo bo);

+ 134 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderCheckLogServiceImpl.java

@@ -1,20 +1,32 @@
 package com.zhongzheng.modules.top.goods.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogQueryBo;
+import com.zhongzheng.modules.top.goods.bo.TopRefundOrderCheckBo;
+import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrderCheckLog;
 import com.zhongzheng.modules.top.goods.mapper.TopOldOrderCheckLogMapper;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckLogService;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderCheckLogVo;
+import com.zhongzheng.modules.top.user.domain.TopSysUserRole;
+import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -30,6 +42,12 @@ import java.util.stream.Collectors;
 @Service
 public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheckLogMapper, TopOldOrderCheckLog> implements ITopOldOrderCheckLogService {
 
+    @Autowired
+    private ITopSysUserRoleService topSysUserRoleService;
+
+    @Autowired
+    private ITopOldOrderService iTopOldOrderService;
+
     @Override
     public TopOldOrderCheckLogVo queryById(Long id){
         TopOldOrderCheckLog db = this.baseMapper.selectById(id);
@@ -91,6 +109,122 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
         return this.updateById(update);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateDivideByEditBo(TopOldOrderCheckLogEditBo bo) {
+        if(Validator.isEmpty(bo.getOrderSn())||Validator.isEmpty(bo.getCheckFrom())||Validator.isEmpty(bo.getCheckResult())){
+            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());
+        TopOldOrderCheckLog checkLog = getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                .eq(TopOldOrderCheckLog::getOrderSn, bo.getOrderSn()).eq(TopOldOrderCheckLog::getStatus, 1)
+                .eq(TopOldOrderCheckLog::getCheckSign, 1)
+                .eq(TopOldOrderCheckLog::getCheckFrom, bo.getCheckFrom()).last("limit 1"));
+        if(Validator.isEmpty(checkLog)){
+            throw new CustomException("审核数据错误");
+        }
+        if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+            throw new CustomException("当前账号没有审核权限");
+        }
+        switch (bo.getCheckResult()) {
+            case 1://同意
+                consentCheck(checkLog, bo);
+                break;
+            case -1://拒绝
+                refuseCheck(checkLog, bo);
+                break;
+            default:
+                break;
+        }
+
+        return true;
+    }
+
+    public void consentCheck(TopOldOrderCheckLog checkLog, TopOldOrderCheckLogEditBo bo) {
+        List<TopOldOrderCheckLog> checkLogList = list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                        .eq(TopOldOrderCheckLog::getOrderSn, checkLog.getOrderSn())
+                        .eq(TopOldOrderCheckLog::getType, 1)//审核
+                        .eq(TopOldOrderCheckLog::getStatus, 1)
+                        .eq(TopOldOrderCheckLog::getCheckFrom, checkLog.getCheckFrom()));
+        checkLog.setCheckTime(DateUtils.getNowTime());
+        checkLog.setCheckUsername(bo.getLoginName());
+        checkLog.setCheckReason(bo.getCheckReason());
+        checkLog.setCheckStatus(bo.getCheckResult());
+        checkLog.setCheckSign(0);
+        updateById(checkLog);
+
+        Integer maxSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).max().getAsInt();
+        Integer periodStatus = 0;
+        Integer refundStatus = 0;
+        if (checkLog.getCheckSort() < maxSort) {
+            //下个审核进入默认
+            update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
+                    .set(TopOldOrderCheckLog::getCheckSign, 1)
+                    .set(TopOldOrderCheckLog::getCheckStatus, 0)
+                    .eq(TopOldOrderCheckLog::getOrderSn, checkLog.getOrderSn())
+                    .eq(TopOldOrderCheckLog::getType, 1)//审核
+                    .eq(TopOldOrderCheckLog::getCheckSort, checkLog.getCheckSort() + 1)
+                    .eq(TopOldOrderCheckLog::getCheckFrom, checkLog.getCheckFrom()));
+            refundStatus = 1;//退款中
+            periodStatus = 1;//审核中
+        } else {
+            //最后一个审核
+            periodStatus = 2;//待退款
+            //进入支付流程
+            TopOldOrderCheckLog check = getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                            .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
+                            .eq(TopOldOrderCheckLog::getType, 2)//支付
+                            .eq(TopOldOrderCheckLog::getStatus, 1)
+                            .eq(TopOldOrderCheckLog::getCheckFrom, checkLog.getCheckFrom())
+                            .orderByAsc(TopOldOrderCheckLog::getCheckSort)
+                            .last("limit 1"));
+            if (ObjectUtils.isNotNull(check)) {
+                check.setCheckSign(1);//开启当前流程
+                updateById(check);
+            }
+        }
+        iTopOldOrderService.update(new LambdaUpdateWrapper<TopOldOrder>()
+                .set(TopOldOrder::getDivideStatus, 5)
+                .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+    }
+
+    public void refuseCheck(TopOldOrderCheckLog checkLog, TopOldOrderCheckLogEditBo bo) {
+        List<TopOldOrderCheckLog> checkLogList = list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                .eq(TopOldOrderCheckLog::getOrderSn, bo.getOrderSn())
+                .eq(TopOldOrderCheckLog::getType, 1)//审核
+                .eq(TopOldOrderCheckLog::getStatus, 1)
+                .eq(TopOldOrderCheckLog::getCheckFrom, checkLog.getCheckFrom()));
+
+        checkLog.setCheckTime(DateUtils.getNowTime());
+        checkLog.setCheckUsername(bo.getLoginName());
+        checkLog.setCheckReason(bo.getCheckReason());
+        checkLog.setCheckStatus(bo.getCheckResult());
+        checkLog.setCheckSign(0);
+        updateById(checkLog);
+        Integer minSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).min().getAsInt();
+        if (checkLog.getCheckSort() > minSort) {
+            //上个审核进入默认
+            update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
+                    .set(TopOldOrderCheckLog::getCheckSign, 1)
+                    .set(TopOldOrderCheckLog::getCheckStatus, 0)
+                    .eq(TopOldOrderCheckLog::getOrderSn, checkLog.getOrderSn())
+                    .eq(TopOldOrderCheckLog::getType, 1)//审核
+                    .eq(TopOldOrderCheckLog::getCheckSort, checkLog.getCheckSort() - 1)
+                    .eq(TopOldOrderCheckLog::getCheckFrom, checkLog.getCheckFrom()));
+        } else {
+            //初审拒绝
+            //处理订单状态
+            iTopOldOrderService.update(new LambdaUpdateWrapper<TopOldOrder>()
+                    .set(TopOldOrder::getDivideStatus, 4) //未通过
+                    .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+        }
+    }
+
     /**
      * 保存前的数据校验
      *

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

@@ -667,6 +667,28 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return vo;
     }
 
+    @Override
+    public TopOldOrderVo divideOrderDetail(String orderSn) {
+        //查询视图 v_top_order
+        TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
+        if (ObjectUtils.isNull(orderVo)) {
+            throw new CustomException("订单号错误!");
+        }
+
+        //审核进度
+        TopOldOrderCheckLogQueryBo queryBo = new TopOldOrderCheckLogQueryBo();
+        queryBo.setOrderSn(orderVo.getOrderSn());
+        List<TopOldOrderCheckLogVo> checkLogVoList = topOldOrderCheckLogService
+                .getCheckList(queryBo);
+        for(TopOldOrderCheckLogVo vo : checkLogVoList){
+            if(vo.getCheckSign()==1){
+                orderVo.setCheckType(vo.getType());
+            }
+        }
+        orderVo.setCheckLogVos(checkLogVoList);
+        return orderVo;
+    }
+
     /**
      * 订单退款审核
      *

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

@@ -28,6 +28,8 @@ public class TopOldOrderCheckLogVo {
 	@Excel(name = "退款单号")
 	@ApiModelProperty("退款单号")
 	private String refundSn;
+	@ApiModelProperty("流程类型:1审核,2支付")
+	private Integer type;
 	/** 角色ID */
 	@Excel(name = "角色ID")
 	@ApiModelProperty("角色ID")

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

@@ -234,4 +234,11 @@ public class TopOldOrderVo {
 	@ApiModelProperty("退款审核角色名称")
 	private String refundName;
 
+	@ApiModelProperty("审核进度")
+	private List<TopOldOrderCheckLogVo> checkLogVos;
+
+
+
+	@ApiModelProperty("流程类型:1审核,2支付")
+	private Integer checkType;
 }