优化代码

This commit is contained in:
kuang.yife 2023-10-24 00:39:12 +08:00
parent 3eb06f5951
commit 7b1ed37c50
11 changed files with 65 additions and 183 deletions

View File

@ -807,6 +807,7 @@ public class OrderController extends BaseController {
orderListRequest.setWorkerId(request.getWorkerId());
orderListRequest.setIsMonitoredOrder(true);
orderListRequest.setAllSelfAssigned(0);
orderListRequest.setNeedImgs(false);
AjaxResult afterListRes = this.appMixAfterList(orderListRequest);
List<AfterServiceRecord> afterList = (List<AfterServiceRecord>) afterListRes.get("data");
response.setAfterListNum(afterList.size());
@ -816,6 +817,7 @@ public class OrderController extends BaseController {
orderListRequest.setTimeout(1);
orderListRequest.setWorkerId(request.getWorkerId());
orderListRequest.setIsMonitoredOrder(true);
orderListRequest.setNeedImgs(false);
response.setOverTimeOrderNum(this.appMixOrderCount(orderListRequest));
// 统计今日单量
LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
@ -858,18 +860,18 @@ public class OrderController extends BaseController {
OrderMaster param = new OrderMaster();
param.setWorkerId(orderListRequest.getWorkerId());
List<OrderMaster> allOrderMaster = orderMasterService.selectOrderMasterList(param);
StringBuilder ids = new StringBuilder();
for (OrderMaster model : allOrderMaster) {
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(model.getId());
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.add(model.getId());
ids.append(model.getId()).append(",");
masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList());
}
}
if (ids.length() > 0) {
if (CollectionUtils.isNotEmpty(masterIdSet)) {
OrderMaster timeOutMaster = new OrderMaster();
timeOutMaster.setOrderMasterIds(ids.substring(0, ids.length() - 1));
timeOutMaster.setOrderMasterIdList(masterIdSet);
allList.addAll(orderMasterService.selectOrderMasterList(timeOutMaster));
}
}
@ -933,22 +935,23 @@ public class OrderController extends BaseController {
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);
StringBuilder ids = new StringBuilder();
for (OrderMaster model : allOrderMaster) {
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(model.getId());
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.add(model.getId());
ids.append(model.getId()).append(",");
masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList());
}
}
if (ids.length() > 0) {
if (CollectionUtils.isNotEmpty(masterIdSet)) {
OrderMaster timeOutMaster = new OrderMaster();
timeOutMaster.setOrderMasterIds(ids.substring(0, ids.length() - 1));
timeOutMaster.setOrderMasterIdList(masterIdSet);
allList.addAll(this.getMasterList(timeOutMaster));
}
}
@ -957,6 +960,7 @@ public class OrderController extends BaseController {
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
orderMasterReq.setExceptOrderMasterIds(masterIdSet);
orderMasterReq.setGoodsName(null);
List<OrderListResponse> masterList = this.getMasterList(orderMasterReq);
allList.addAll(masterList);
// 超时查询需要排除同个师傅的主单子单同时出现
@ -1010,6 +1014,7 @@ public class OrderController extends BaseController {
// 查询子单
OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
orderDetailReq.setNeedImgs(orderListRequest.getNeedImgs());
List<OrderListResponse> detailList = this.getDetailAfterList(orderDetailReq);
orderListResponses.addAll(detailList);
@ -1183,6 +1188,7 @@ public class OrderController extends BaseController {
public List<OrderListResponse> getDetailAfterList(OrderDetail orderDetail) {
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
afterServiceRecord.setNeedImgs(orderDetail.getNeedImgs());
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
Map<Long, List<AfterServiceRecord>> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record -> record.getOrderDetailId()));
// 踢重后的子单ids
@ -1316,19 +1322,26 @@ public class OrderController extends BaseController {
orderMaster.setHasDispatchedAll(0);
}
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
List<Long> orderMasterIds = list.stream().map(OrderMaster::getId).collect(Collectors.toList());
// 缓存 orderDetailMap
OrderDetail masterIdsParam = new OrderDetail();
masterIdsParam.setMasterIds(orderMasterIds);
List<OrderDetail> orderDetailsList = orderDetailService.selectOrderDetailList(masterIdsParam);
Map<Long,List<OrderDetail>> orderMasterIdsMap = orderDetailsList.stream().collect(Collectors.groupingBy(OrderDetail::getOrderMasterId));
// -- 都是同一个师傅的,师傅信息
Worker worker = orderMaster.getWorkerId() != null ? workerService.selectById(orderMaster.getWorkerId()) : null;
for (OrderMaster master : list) {// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
// 查询所有子单
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(master.getId());
List<OrderDetail> orderDetails = orderMasterIdsMap.get(master.getId());
if(CollectionUtils.isEmpty(orderDetails)){
orderDetails = new ArrayList<>();
}
List<Long> orderDetailIds = orderDetails.stream().map(OrderDetail::getId).collect(Collectors.toList());
// 师傅信息
Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null;
// 消费者信息
// Customer customer = customerService.selectByCustomerId(master.getCustomerId());
// 商品规格及信息
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());

View File

@ -223,11 +223,13 @@ public class OrderMasterController extends BaseController {
if (CollectionUtils.isNotEmpty(orderMaster.getDistrictIds())
|| CollectionUtils.isNotEmpty(orderMaster.getCityIds())
|| CollectionUtils.isNotEmpty(orderMaster.getStreetIds())) {
List<CustomerAddress> addressList = addressService.getCustomerAddressList(new CustomerAddress(){{
setDistrictIds(orderMaster.getDistrictIds());
setCityIds(orderMaster.getCityIds());
setStreetIds(orderMaster.getStreetIds());
}});
CustomerAddress customerAddress = new CustomerAddress();
customerAddress.setDistrictIds(orderMaster.getDistrictIds());
customerAddress.setCityIds(orderMaster.getCityIds());
customerAddress.setStreetIds(orderMaster.getStreetIds());
customerAddress.setNeedNameFlag(true);
List<CustomerAddress> addressList = addressService.getCustomerAddressList(customerAddress);
orderMaster.setAddressIds(addressList.stream().map(CustomerAddress::getCustomerAddressId).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(orderMaster.getAddressIds())) {
return voDataTable(orderListResponses, new ArrayList<>());

View File

@ -34,4 +34,6 @@ public class OrderListRequest {
* 是否超时 1= 0=
*/
private Integer timeout;
private Boolean needImgs = true;
}

View File

@ -54,4 +54,6 @@ public class CustomerAddress extends BaseEntity {
private List<Long> cityIds;
private List<Long> streetIds;
private Boolean needNameFlag = false;
}

View File

@ -23,6 +23,9 @@ public class CustomerAddressServiceImpl implements CustomerAddressService {
@Override
public List<CustomerAddress> getCustomerAddressList(CustomerAddress customerAddress) {
List<CustomerAddress> addressList = customerAddressMapper.getCustomerAddressList(customerAddress);
if(customerAddress.getNeedNameFlag()){
return addressList;
}
for (CustomerAddress address : addressList) {
address.setCountryName(iSysAreaService.selectById(address.getCountryId()).getAreaName());
address.setCityName(iSysAreaService.selectById(address.getCityId()).getAreaName());

View File

@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ghy.common.annotation.Excel;
@ -15,6 +16,7 @@ import com.ghy.common.core.domain.BaseEntity;
* @author clunt
* @date 2022-09-25
*/
@Data
public class AfterServiceRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
@ -71,161 +73,5 @@ public class AfterServiceRecord extends BaseEntity
private List<AfterServiceImgs> imgsList;
public List<AfterServiceImgs> getImgsList() {
return imgsList;
}
public void setImgsList(List<AfterServiceImgs> imgsList) {
this.imgsList = imgsList;
}
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public void setCustomerReasonType(Long customerReasonType)
{
this.customerReasonType = customerReasonType;
}
public Long getCustomerReasonType()
{
return customerReasonType;
}
public void setCustomerReason(String customerReason)
{
this.customerReason = customerReason;
}
public String getCustomerReason()
{
return customerReason;
}
public void setOrderDetailId(Long orderDetailId)
{
this.orderDetailId = orderDetailId;
}
public Long getOrderDetailId()
{
return orderDetailId;
}
public void setOperType(Long operType)
{
this.operType = operType;
}
public Long getOperType()
{
return operType;
}
public void setWorkerFeedbackResult(Long workerFeedbackResult)
{
this.workerFeedbackResult = workerFeedbackResult;
}
public Long getWorkerFeedbackResult()
{
return workerFeedbackResult;
}
public void setWorkerFeedbackReasonType(Long workerFeedbackReasonType)
{
this.workerFeedbackReasonType = workerFeedbackReasonType;
}
public Long getWorkerFeedbackReasonType()
{
return workerFeedbackReasonType;
}
public void setWorkerFeedbackReason(String workerFeedbackReason)
{
this.workerFeedbackReason = workerFeedbackReason;
}
public String getWorkerFeedbackReason()
{
return workerFeedbackReason;
}
public void setRefund(BigDecimal refund)
{
this.refund = refund;
}
public BigDecimal getRefund()
{
return refund;
}
public void setAgreedRefund(BigDecimal agreedRefund)
{
this.agreedRefund = agreedRefund;
}
public BigDecimal getAgreedRefund()
{
return agreedRefund;
}
public void setCustomerFinalCheck(Long customerFinalCheck)
{
this.customerFinalCheck = customerFinalCheck;
}
public Long getCustomerFinalCheck()
{
return customerFinalCheck;
}
public BigDecimal getOriginalRefund() {
return originalRefund;
}
public void setOriginalRefund(BigDecimal originalRefund) {
this.originalRefund = originalRefund;
}
public boolean isExcludeAfterServiceFinished() {
return excludeAfterServiceFinished;
}
public void setExcludeAfterServiceFinished(boolean excludeAfterServiceFinished) {
this.excludeAfterServiceFinished = excludeAfterServiceFinished;
}
public Date getRefundApplyTime() {
return refundApplyTime;
}
public void setRefundApplyTime(Date refundApplyTime) {
this.refundApplyTime = refundApplyTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("customerReasonType", getCustomerReasonType())
.append("customerReason", getCustomerReason())
.append("orderDetailId", getOrderDetailId())
.append("operType", getOperType())
.append("workerFeedbackResult", getWorkerFeedbackResult())
.append("workerFeedbackReasonType", getWorkerFeedbackReasonType())
.append("workerFeedbackReason", getWorkerFeedbackReason())
.append("refund", getRefund())
.append("agreedRefund", getAgreedRefund())
.append("originalRefund", getOriginalRefund())
.append("refundApplyTime", getRefundApplyTime())
.append("customerFinalCheck", getCustomerFinalCheck())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("excludeAfterServiceFinished", isExcludeAfterServiceFinished())
.toString();
}
private Boolean needImgs = true;
}

View File

@ -196,4 +196,6 @@ public class OrderDetail extends BaseEntity {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
private Boolean needImgs;
}

View File

@ -185,4 +185,6 @@ public class OrderMaster extends BaseEntity {
private List<Long> streetIds;
private List<Long> addressIds;
private List<Long> orderMasterIdList;
}

View File

@ -2,6 +2,7 @@ package com.ghy.order.service;
import java.util.List;
import com.ghy.order.domain.AfterServiceImgs;
import org.springframework.cache.annotation.Cacheable;
/**
* 售后记录图片Service接口

View File

@ -79,6 +79,9 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
@Override
public List<AfterServiceRecord> selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord) {
List<AfterServiceRecord> list = afterServiceRecordMapper.selectAfterServiceRecordList(afterServiceRecord);
if(!afterServiceRecord.getNeedImgs()){
return list;
}
list.forEach(record -> {
AfterServiceImgs param = new AfterServiceImgs();
param.setAfterServiceRecordId(Long.valueOf(record.getId()));

View File

@ -176,6 +176,12 @@
<if test="orderMasterIds != null and orderMasterIds != ''">
AND om.id in (${orderMasterIds})
</if>
<if test="orderMasterIdList != null and orderMasterIdList.size > 0">
AND om.id in
<foreach collection="orderMasterIdList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="orderStatuses != null and orderStatuses != ''">
AND om.order_status in (${orderStatuses})
</if>