售后,超时订单列表同个师傅的单只展示子单

This commit is contained in:
donqi 2022-12-05 22:15:27 +08:00
parent c2da55522f
commit 750e56a66d
4 changed files with 34 additions and 12 deletions

View File

@ -545,15 +545,21 @@ public class OrderController extends BaseController {
// 校验参数
Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空");
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
orderListResponses.addAll(this.getMasterList(orderMasterReq));
// 查询子单
OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
orderListResponses.addAll(this.getDetailList(orderDetailReq));
List<OrderListResponse> detailList = this.getDetailList(orderDetailReq);
orderListResponses.addAll(detailList);
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
// 超时查询需要排除同个师傅的主单子单同时出现
if (orderListRequest.getIsOverTime()) {
List<Long> exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList());
orderMasterReq.setExceptWorkerIds(exceptWorkerIds);
}
orderListResponses.addAll(this.getMasterList(orderMasterReq));
// 根据预约时间倒序排列
CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator<OrderListResponse>() {
@ -574,15 +580,19 @@ public class OrderController extends BaseController {
// 校验参数
Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空");
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
orderListResponses.addAll(this.getMasterAfterList(orderMasterReq));
// 查询子单
OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
orderListResponses.addAll(this.getDetailAfterList(orderDetailReq));
List<OrderListResponse> detailList = this.getDetailAfterList(orderDetailReq);
orderListResponses.addAll(detailList);
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
// 需要排除同个师傅的主单子单同时出现
List<Long> exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList());
orderMasterReq.setExceptWorkerIds(exceptWorkerIds);
orderListResponses.addAll(this.getMasterAfterList(orderMasterReq));
// 根据预约时间倒序排列
CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator<OrderListResponse>() {
@ -839,6 +849,7 @@ public class OrderController extends BaseController {
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
orderListResponse.setWorkerId(detail.getWorkerId());
orderListResponse.setWorkerName(workerName);
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customerAddress.getName());
@ -1037,6 +1048,7 @@ public class OrderController extends BaseController {
orderListResponse.setPayMoney(financialDetail.getPayMoney());
orderListResponse.setWorkerName(worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setWorkerId(detail.getWorkerId());
orderListResponse.setCustomerName(customerAddress.getName());
orderListResponse.setCustomerPhone(customerAddress.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus());

View File

@ -22,6 +22,8 @@ public class OrderListResponse {
private String orderDetailCode;
private Long workerId;
private String workerName;
private String workerPhone;

View File

@ -97,4 +97,6 @@ public class OrderMaster extends BaseEntity {
private List<Long> customerIds;
private Boolean shelveStatus;
private List<Long> exceptWorkerIds;
}

View File

@ -146,6 +146,12 @@
<if test="hasDispatchedAll != null">
AND om.has_dispatched_all = #{hasDispatchedAll}
</if>
<if test="exceptWorkerIds != null and exceptWorkerIds.size > 0">
AND om.worker_id not in
<foreach collection="exceptWorkerIds" item="workerId" open="(" separator="," close=")">
#{workerId}
</foreach>
</if>
</where>
order by om.create_time
<trim suffixOverrides=",">