This commit is contained in:
YiFei Kuang 2025-03-10 21:07:02 +08:00
parent ffb560da51
commit b4617d3135
7 changed files with 108 additions and 59 deletions

View File

@ -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<OrderListResponse> detailList = this.getDetailList(orderDetailReq);
orderListResponses.addAll(detailList);
List<OrderListResponse> allList = new ArrayList<>();
List<Long> masterIdSet = new ArrayList<Long>();
if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
// 增加主单下子单有超时的
// 增加主单下子单有超时的
OrderMaster param = new OrderMaster();
param.setWorkerId(orderListRequest.getWorkerId());
List<OrderMaster> allOrderMaster = orderMasterService.selectOrderMasterList(param);
if(CollectionUtils.isNotEmpty(allOrderMaster)){
OrderDetail countParam = new OrderDetail();
countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList()));
List<OrderDetail> orderDetails = orderDetailService.selectOrderDetailList(countParam);
List<OrderDetail> 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<OrderListResponse> allList = new ArrayList<>();
// List<Long> masterIdSet = new ArrayList<Long>();
// if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
// // 增加主单下子单有超时的
// // 增加主单下子单有超时的
// OrderMaster param = new OrderMaster();
// param.setWorkerId(orderListRequest.getWorkerId());
// List<OrderMaster> allOrderMaster = orderMasterService.selectOrderMasterList(param);
// if(CollectionUtils.isNotEmpty(allOrderMaster)){
// OrderDetail countParam = new OrderDetail();
// countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList()));
// List<OrderDetail> orderDetails = orderDetailService.selectOrderDetailList(countParam);
// List<OrderDetail> 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<OrderListResponse> masterList = this.getMasterList(orderMasterReq);
allList.addAll(masterList);
// allList.addAll(masterList);
// 超时查询需要排除同个师傅的主单子单同时出现
if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
// 需要排除同个师傅的主单子单同时出现
List<OrderListResponse> filteredMasterList = new ArrayList<OrderListResponse>();
for (OrderListResponse master : allList) {
boolean isKeep = false;
// 查询该主单下所有售后中的子单
OrderDetail detailAfterListOfMasterQry = new OrderDetail();
detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode());
List<OrderListResponse> 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<OrderListResponse> filteredMasterList = new ArrayList<OrderListResponse>();
// for (OrderListResponse master : allList) {
// boolean isKeep = false;
// // 查询该主单下所有售后中的子单
// OrderDetail detailAfterListOfMasterQry = new OrderDetail();
// detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode());
// List<OrderListResponse> 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<OrderListResponse>() {

View File

@ -115,4 +115,6 @@ public interface OrderMasterMapper {
// 根据开始/结算时间进行查询有效的订单主数据
List<OrderMaster> searchByOrderStartTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
int updateCreateTime(Long id);
}

View File

@ -149,6 +149,8 @@ public interface OrderMasterService {
*/
int updateTimeout(Long id, int timeout);
int updateCreateTime(Long id);
/**
* 更新子订单超时状态
*

View File

@ -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));

View File

@ -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);

View File

@ -145,7 +145,7 @@
AND ca.country_id = #{district}
</if>
<if test="isMonitoredOrder">
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
</if>
<if test="allSelfAssigned != null">
AND all_self_assigned = #{allSelfAssigned}
@ -512,6 +512,12 @@
WHERE id = #{id}
</update>
<update id="updateCreateTime">
UPDATE order_master
SET create_time = SYSDATE()
WHERE id = #{id}
</update>
<update id="removeWorker">
UPDATE order_master
SET worker_id = NULL,

View File

@ -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;
}