|
|
@@ -127,6 +127,17 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
orderVoList.forEach(item -> {
|
|
|
List<String> businessNames = baseMapper.queryBusinessBySn(item.getOrderSn());
|
|
|
item.setBusinessNames(businessNames);
|
|
|
+ if (item.getOrderFrom() == 2){
|
|
|
+ //B端订单转账凭证
|
|
|
+ List<TopOldOrderAttachment> list = topOrderAttachmentService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderAttachment>()
|
|
|
+ .eq(TopOldOrderAttachment::getOrderSn, item.getOrderSn())
|
|
|
+ .eq(TopOldOrderAttachment::getAttachmentType, 1)
|
|
|
+ .eq(TopOldOrderAttachment::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ item.setAttachmentList(list.stream().map(x -> BeanUtil.toBean(x,TopOldOrderAttachmentVo.class)).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
return orderVoList;
|
|
|
@@ -371,7 +382,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
|
|
|
//创建订单退款审核流程
|
|
|
List<TopOldOrderCheck> checkList = topOldOrderCheckService
|
|
|
- .list(new LambdaQueryWrapper<TopOldOrderCheck>().eq(TopOldOrderCheck::getCheckType, 2)
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderCheck>().in(TopOldOrderCheck::getCheckType, Arrays.asList(2,3))
|
|
|
.orderByAsc(TopOldOrderCheck::getCheckSort));
|
|
|
if (CollectionUtils.isNotEmpty(checkList)){
|
|
|
List<TopOldOrderCheckLog> logs = new ArrayList<>();
|
|
|
@@ -380,11 +391,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
TopOldOrderCheckLog log = new TopOldOrderCheckLog();
|
|
|
log.setRefundSn(refundSn);
|
|
|
log.setRoleId(check.getCheckRole());
|
|
|
- log.setCheckStatus(0);
|
|
|
+
|
|
|
log.setUpdateTime(DateUtils.getNowTime());
|
|
|
log.setCreateTime(DateUtils.getNowTime());
|
|
|
log.setTenantId(tenantId);
|
|
|
log.setCheckSign(i>0?0:1);
|
|
|
+ log.setCheckSort(check.getCheckSort());
|
|
|
+ if (check.getCheckType() == 3) {
|
|
|
+ //支付流程
|
|
|
+ log.setType(2);//支付角色
|
|
|
+ log.setCheckStatus(2);//待支付
|
|
|
+ }else {
|
|
|
+ log.setType(1);//审核角色
|
|
|
+ log.setCheckStatus(0);//待审核
|
|
|
+ }
|
|
|
logs.add(log);
|
|
|
}
|
|
|
topOldOrderCheckLogService.saveBatch(logs);
|
|
|
@@ -457,8 +477,158 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean refundOrderCheck(TopRefundOrderCheckBo bo) {
|
|
|
+ TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
|
|
|
+ if (ObjectUtils.isNull(order)){
|
|
|
+ throw new CustomException("订单信息获取失败!请检查订单号");
|
|
|
+ }
|
|
|
+ //校验当前角色审核权限
|
|
|
+ List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
|
|
|
+ if (CollectionUtils.isEmpty(userRoleList)){
|
|
|
+ throw new CustomException("当前账号没有审核权限");
|
|
|
+ }
|
|
|
+ List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
|
|
|
+ //找到当前申请退款的退款单号
|
|
|
+ List<TopOldOrderRefund> refundList = topOldOrderRefundService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
|
|
|
+ .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1));
|
|
|
+ if (CollectionUtils.isEmpty(refundList)){
|
|
|
+ throw new CustomException("当前订单没有申请退款!请检查:"+bo.getOrderSn());
|
|
|
+ }
|
|
|
+ String refundSn = refundList.get(0).getRefundSn();
|
|
|
+ //当前退款流程
|
|
|
+ TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn, refundSn).eq(TopOldOrderCheckLog::getStatus, 1)
|
|
|
+ .eq(TopOldOrderCheckLog::getCheckSign, 1).last("limit 1"));
|
|
|
+ if (!roleIds.contains(checkLog.getRoleId())){
|
|
|
+ throw new CustomException("当前账号没有审核权限");
|
|
|
+ }
|
|
|
|
|
|
- return false;
|
|
|
+ switch (bo.getCheckResult()){
|
|
|
+ case 1://同意
|
|
|
+ consentCheck(checkLog,bo);
|
|
|
+ break;
|
|
|
+ case 2://拒绝
|
|
|
+ refuseCheck(checkLog,bo);
|
|
|
+ break;
|
|
|
+ default :
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void refuseCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo) {
|
|
|
+ List<TopOldOrderCheckLog> checkLogList = topOldOrderCheckLogService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderCheckLog::getType,1)//审核
|
|
|
+ .eq(TopOldOrderCheckLog::getStatus, 1));
|
|
|
+
|
|
|
+ checkLog.setCheckReason(bo.getCheckReason());
|
|
|
+ checkLog.setCheckStatus(bo.getCheckResult());
|
|
|
+ checkLog.setCheckSign(0);
|
|
|
+ topOldOrderCheckLogService.updateById(checkLog);
|
|
|
+
|
|
|
+ Integer minSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).min().getAsInt();
|
|
|
+ if (checkLog.getCheckSort() > minSort){
|
|
|
+ //上个审核进入默认
|
|
|
+ topOldOrderCheckLogService.update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
|
|
|
+ .set(TopOldOrderCheckLog::getCheckSign,1)
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn,checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderCheckLog::getCheckSort,checkLog.getCheckSort() - 1));
|
|
|
+ }else {
|
|
|
+ //初审拒绝
|
|
|
+ //处理订单状态
|
|
|
+ List<TopOldOrderRefund> refundList = topOldOrderRefundService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1));
|
|
|
+ List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
|
|
|
+ for (TopOldOrderRefund item : refundList) {
|
|
|
+ item.setPeriodStatus(-1);//拒绝退款
|
|
|
+ }
|
|
|
+ topOldOrderRefundService.updateBatchById(refundList);
|
|
|
+ topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
|
|
|
+ .set(TopOldOrderGoods::getRefundStatus,3)//未通过
|
|
|
+ .in(TopOldOrderGoods::getOrderGoodsId,orderGoodsIds));
|
|
|
+
|
|
|
+ update(new LambdaUpdateWrapper<TopOldOrder>()
|
|
|
+ .set(TopOldOrder::getRefundStatus,4) //未通过
|
|
|
+ .eq(TopOldOrder::getOrderSn,refundList.get(0).getOrderSn()));
|
|
|
+ //订单处理
|
|
|
+ TopOldOrder order = baseMapper.getOrderBySn(refundList.get(0).getOrderSn());
|
|
|
+ if (order.getOrderFrom() == 1){
|
|
|
+ //新系统订单
|
|
|
+ orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
|
|
|
+ .set(OrderGoods::getRefundStatus,3)
|
|
|
+ .in(OrderGoods::getOrderGoodsId,orderGoodsIds));
|
|
|
+ }else {
|
|
|
+ //todo 旧系统订单
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void consentCheck(TopOldOrderCheckLog checkLog, TopRefundOrderCheckBo bo) {
|
|
|
+ List<TopOldOrderCheckLog> checkLogList = topOldOrderCheckLogService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderCheckLog::getType,1)//审核
|
|
|
+ .eq(TopOldOrderCheckLog::getStatus, 1));
|
|
|
+
|
|
|
+ checkLog.setCheckReason(bo.getCheckReason());
|
|
|
+ checkLog.setCheckStatus(bo.getCheckResult());
|
|
|
+ checkLog.setCheckSign(0);
|
|
|
+ topOldOrderCheckLogService.updateById(checkLog);
|
|
|
+
|
|
|
+ Integer maxSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).max().getAsInt();
|
|
|
+ Integer periodStatus = 0;
|
|
|
+ Integer refundStatus = 0;
|
|
|
+ if (checkLog.getCheckSort() < maxSort){
|
|
|
+ //下个审核进入默认
|
|
|
+ topOldOrderCheckLogService.update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
|
|
|
+ .set(TopOldOrderCheckLog::getCheckSign,1)
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn,checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderCheckLog::getCheckSort,checkLog.getCheckSort() + 1));
|
|
|
+ refundStatus = 1;//退款中
|
|
|
+ periodStatus = 1;//审核中
|
|
|
+ }else {
|
|
|
+ //最后一个审核
|
|
|
+ periodStatus = 2;//待退款
|
|
|
+ //进入支付流程
|
|
|
+ TopOldOrderCheckLog check = topOldOrderCheckLogService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
|
|
|
+ .eq(TopOldOrderCheckLog::getRefundSn, checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderCheckLog::getType, 2)//支付
|
|
|
+ .eq(TopOldOrderCheckLog::getStatus, 1)
|
|
|
+ .orderByAsc(TopOldOrderCheckLog::getCheckSort)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(check)){
|
|
|
+ check.setCheckSign(1);//开启当前流程
|
|
|
+ topOldOrderCheckLogService.updateById(check);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理订单状态
|
|
|
+ List<TopOldOrderRefund> refundList = topOldOrderRefundService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1));
|
|
|
+ List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
|
|
|
+ for (TopOldOrderRefund item : refundList) {
|
|
|
+ item.setPeriodStatus(periodStatus);
|
|
|
+ }
|
|
|
+ topOldOrderRefundService.updateBatchById(refundList);
|
|
|
+ topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
|
|
|
+ .set(TopOldOrderGoods::getRefundStatus,refundStatus)
|
|
|
+ .in(TopOldOrderGoods::getOrderGoodsId,orderGoodsIds));
|
|
|
+
|
|
|
+ if (periodStatus == 2){
|
|
|
+ update(new LambdaUpdateWrapper<TopOldOrder>()
|
|
|
+ .set(TopOldOrder::getRefundStatus,2) //未退款
|
|
|
+ .eq(TopOldOrder::getOrderSn,refundList.get(0).getOrderSn()));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -488,9 +658,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
public boolean finishOrder(TopFinishOrderBo bo) {
|
|
|
//todo 完单角色校验
|
|
|
|
|
|
- return update(new LambdaUpdateWrapper<TopOldOrder>()
|
|
|
- .set(TopOldOrder::getFinishStatus,bo.getFinishStatus())
|
|
|
- .in(TopOldOrder::getOrderSn,bo.getOrderSnList()));
|
|
|
+ update(new LambdaUpdateWrapper<TopOldOrder>()
|
|
|
+ .set(TopOldOrder::getFinishStatus,bo.getFinishStatus())
|
|
|
+ .in(TopOldOrder::getOrderSn,bo.getOrderSnList()));
|
|
|
+
|
|
|
+ //todo 分成处理
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|