diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index d903f18f..50cd8500 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -664,6 +664,15 @@ public class OrderController extends BaseController { // 分销扣点记录 Long customerPlaceId = customer.getCustomerPlace(); + Long parentCustomerPlaceId = customer.getParentCustomerPlace(); + Long reparentCustomerPlaceId = null; + if(customer.getParentCustomerPlace() != null){ + Customer parentPlaceCustomer =customerService.selectByCustomerId(customer.getParentCustomerPlace()); + if(parentPlaceCustomer != null){ + reparentCustomerPlaceId = parentPlaceCustomer.getCustomerPlace(); + } + } + // 一级分销 if (customerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), @@ -672,12 +681,9 @@ public class OrderController extends BaseController { // 剩余服务金额 serverMoney = serverMoney.subtract(threeMoney); - } else { - oneMoney = oneMoney.add(threeMoney); } // 二级分销 - Long parentCustomerPlaceId = customer.getParentCustomerPlace(); if (parentCustomerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), financialMaster.getId(), financialMaster.getCode(), twoMoney, FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); @@ -685,17 +691,42 @@ public class OrderController extends BaseController { // 剩余服务金额 serverMoney = serverMoney.subtract(twoMoney); - } else { - oneMoney = oneMoney.add(twoMoney); + }else if(customerPlaceId != null){ + // 二级没有,且三级有 + FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), + financialMaster.getId(), financialMaster.getCode(), twoMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialDetailService.insertFinancialDetail(financialDetail); + + // 剩余服务金额 + serverMoney = serverMoney.subtract(twoMoney); } - // 平台分销 - FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), null); - financialDetailService.insertFinancialDetail(financialDetail); + // 最上级分,没有则给下级,再没有再给下级 + if(reparentCustomerPlaceId != null){ + // 平台分销 + FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), + financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), reparentCustomerPlaceId); + financialDetailService.insertFinancialDetail(financialDetail); - // 剩余服务金额 - serverMoney = serverMoney.subtract(oneMoney); + // 剩余服务金额 + serverMoney = serverMoney.subtract(oneMoney); + }else if(parentCustomerPlaceId != null){ + // 平台分销 + FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), + financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); + financialDetailService.insertFinancialDetail(financialDetail); + + // 剩余服务金额 + serverMoney = serverMoney.subtract(oneMoney); + }else if(customerPlaceId != null){ + // 平台分销 + FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), + financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialDetailService.insertFinancialDetail(financialDetail); + + // 剩余服务金额 + serverMoney = serverMoney.subtract(oneMoney); + } financialMaster.setServerMoney(serverMoney); financialMasterService.updateFinancialMaster(financialMaster); @@ -979,63 +1010,64 @@ public class OrderController extends BaseController { // 查询子单 OrderDetail orderDetailReq = new OrderDetail(); BeanUtils.copyProperties(orderListRequest, orderDetailReq); + // 拿到所有正常筛选出来的子单 List detailList = this.getDetailList(orderDetailReq); orderListResponses.addAll(detailList); - List allList = new ArrayList<>(); - List masterIdSet = new ArrayList(); - if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { - // 增加主单下子单有超时的 - // 增加主单下子单有超时的 - OrderMaster param = new OrderMaster(); - param.setWorkerId(orderListRequest.getWorkerId()); - List allOrderMaster = orderMasterService.selectOrderMasterList(param); - if(CollectionUtils.isNotEmpty(allOrderMaster)){ - OrderDetail countParam = new OrderDetail(); - countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList())); - List orderDetails = orderDetailService.selectOrderDetailList(countParam); - List result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(result)) { - masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList()); - } - } - if (CollectionUtils.isNotEmpty(masterIdSet)) { - OrderMaster timeOutMaster = new OrderMaster(); - timeOutMaster.setOrderMasterIdList(masterIdSet); - allList.addAll(this.getMasterList(timeOutMaster)); - } - } +// List allList = new ArrayList<>(); +// List masterIdSet = new ArrayList(); +// if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { +// // 增加主单下子单有超时的 +// // 增加主单下子单有超时的 +// OrderMaster param = new OrderMaster(); +// param.setWorkerId(orderListRequest.getWorkerId()); +// List allOrderMaster = orderMasterService.selectOrderMasterList(param); +// if(CollectionUtils.isNotEmpty(allOrderMaster)){ +// OrderDetail countParam = new OrderDetail(); +// countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList())); +// List orderDetails = orderDetailService.selectOrderDetailList(countParam); +// List result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList()); +// if (CollectionUtils.isNotEmpty(result)) { +// masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList()); +// } +// } +// if (CollectionUtils.isNotEmpty(masterIdSet)) { +// OrderMaster timeOutMaster = new OrderMaster(); +// timeOutMaster.setOrderMasterIdList(masterIdSet); +// allList.addAll(this.getMasterList(timeOutMaster)); +// } +// } // 查询主单 OrderMaster orderMasterReq = new OrderMaster(); BeanUtils.copyProperties(orderListRequest, orderMasterReq); - orderMasterReq.setExceptOrderMasterIds(masterIdSet); +// orderMasterReq.setExceptOrderMasterIds(masterIdSet); orderMasterReq.setGoodsName(null); List masterList = this.getMasterList(orderMasterReq); - allList.addAll(masterList); +// allList.addAll(masterList); // 超时查询需要排除同个师傅的主单子单同时出现 - if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { - // 需要排除同个师傅的主单子单同时出现 - List filteredMasterList = new ArrayList(); - for (OrderListResponse master : allList) { - boolean isKeep = false; - // 查询该主单下所有售后中的子单 - OrderDetail detailAfterListOfMasterQry = new OrderDetail(); - detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); - List detailListOfMasters = this.getDetailList(detailAfterListOfMasterQry); - for (OrderListResponse detailListOfMaster : detailListOfMasters) { - if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { - isKeep = true; - break; - } - } - if (isKeep) { - filteredMasterList.add(master); - } - } - orderListResponses.addAll(filteredMasterList); - } else { +// if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { +// // 需要排除同个师傅的主单子单同时出现 +// List filteredMasterList = new ArrayList(); +// for (OrderListResponse master : allList) { +// boolean isKeep = false; +// // 查询该主单下所有售后中的子单 +// OrderDetail detailAfterListOfMasterQry = new OrderDetail(); +// detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); +// List detailListOfMasters = this.getDetailList(detailAfterListOfMasterQry); +// for (OrderListResponse detailListOfMaster : detailListOfMasters) { +// if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { +// isKeep = true; +// break; +// } +// } +// if (isKeep) { +// filteredMasterList.add(master); +// } +// } +// orderListResponses.addAll(filteredMasterList); +// } else { orderListResponses.addAll(masterList); - } +// } // 查询新订单列表根据创建时间倒叙排列,查询其他根据更新时间倒序排列 Collections.sort(orderListResponses, new Comparator() { diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java index b9e718ba..0e925227 100644 --- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java @@ -115,4 +115,6 @@ public interface OrderMasterMapper { // 根据开始/结算时间进行查询有效的订单主数据。 List searchByOrderStartTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime); + + int updateCreateTime(Long id); } diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java index 9728a061..a491d4dc 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java @@ -149,6 +149,8 @@ public interface OrderMasterService { */ int updateTimeout(Long id, int timeout); + int updateCreateTime(Long id); + /** * 更新子订单超时状态 * diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 3b34c48b..3c809583 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -650,6 +650,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { } else { // 没有罚金 自己承担手续费 divMembers.add(new DivMember(memberId, MoneyUtil.toS(odMoney), true)); + // 平台金额部分抽出来部分承担手续费 } String orderNo = "OD_" + orderDetailId + "_" + System.currentTimeMillis(); logger.info("子订单[{}]发起分账: {}", orderDetailId, JSON.toJSONString(divMembers)); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index ed882a4c..24a46c8b 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -559,6 +559,11 @@ public class OrderMasterServiceImpl implements OrderMasterService { return orderMasterMapper.updateTimeout(id, timeout, null); } + @Override + public int updateCreateTime(Long id) { + return orderMasterMapper.updateCreateTime(id); + } + @Override public int updateTimeout(Long id, int timeout, int timeoutFineTimes) { return orderMasterMapper.updateTimeout(id, timeout, timeoutFineTimes); diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 7403b10d..4d0caeb9 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -145,7 +145,7 @@ AND ca.country_id = #{district} - AND (om.all_self_assigned = 0 or om.all_self_assigned is null) AND om.order_status in (1,2,3,4) + AND (om.all_self_assigned = 0 or om.all_self_assigned is null) AND om.order_status in (0,1,2,3,4) and om.worker_id is not null AND all_self_assigned = #{allSelfAssigned} @@ -512,6 +512,12 @@ WHERE id = #{id} + + UPDATE order_master + SET create_time = SYSDATE() + WHERE id = #{id} + + UPDATE order_master SET worker_id = NULL, diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index 40d54ee8..d93e6fce 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -131,6 +131,7 @@ public class OrderServiceImpl implements OrderService { // 已超时 45min后取消超时状态 清空workerId orderMasterService.updateTimeout(order.getId(), 0); orderMasterService.removeWorker(order.getId()); + orderMasterService.updateCreateTime(order.getId()); } return; }