订单模块相关接口修改

This commit is contained in:
donqi 2022-09-20 00:45:45 +08:00
parent 80df72d80c
commit efcd5f274e
11 changed files with 123 additions and 9 deletions

View File

@ -431,7 +431,56 @@ public class OrderController extends BaseController {
response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount);
// 统计未排的单量
orderMaster.setOrderStatus(OrderStatus.PLAIN.code());
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster));
orderDetail.setOrderStatus(OrderStatus.PLAIN.code());
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
// 统计待上门单量
orderMaster.setOrderStatus(OrderStatus.GOING.code());
orderDetail.setOrderStatus(OrderStatus.GOING.code());
response.setWaitServOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
// 统计服务中单量
orderMaster.setOrderStatus(OrderStatus.SERVER.code());
orderDetail.setOrderStatus(OrderStatus.SERVER.code());
response.setServingOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
// 统计待确认单量
orderMaster.setOrderStatus(OrderStatus.FINISH_CHECK.code());
orderDetail.setOrderStatus(OrderStatus.FINISH_CHECK.code());
response.setWaitSureOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
// 统计超时单量
OrderListRequest orderListRequest = new OrderListRequest();
orderListRequest.setIsOverTime(true);
orderListRequest.setWorkerId(request.getWorkerId());
AjaxResult overTimeRes = this.appMixOrderList(orderListRequest);
List<OrderListResponse> overTimeList = (List)overTimeRes.get("data");
response.setOverTimeOrderNum(overTimeList.size());
// 统计今日单量
Calendar today = Calendar.getInstance();
today.set(Calendar.SECOND, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MILLISECOND, 0);
orderDetail.setOrderStatus(OrderStatus.GOING.code());
orderDetail.setExpectTimeStart(today.getTime());
today.set(Calendar.SECOND, 23);
today.set(Calendar.MINUTE, 59);
today.set(Calendar.HOUR_OF_DAY, 59);
today.set(Calendar.MILLISECOND, 0);
orderDetail.setExpectTimeEnd(today.getTime());
response.setTodayOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计明日单量
Calendar tomorrow = Calendar.getInstance();
tomorrow.add(Calendar.DATE, 1);
tomorrow.set(Calendar.SECOND, 0);
tomorrow.set(Calendar.MINUTE, 0);
tomorrow.set(Calendar.HOUR_OF_DAY, 0);
tomorrow.set(Calendar.MILLISECOND, 0);
orderDetail.setOrderStatus(OrderStatus.GOING.code());
orderDetail.setExpectTimeStart(today.getTime());
tomorrow.set(Calendar.SECOND, 23);
tomorrow.set(Calendar.MINUTE, 59);
tomorrow.set(Calendar.HOUR_OF_DAY, 59);
tomorrow.set(Calendar.MILLISECOND, 0);
orderDetail.setExpectTimeEnd(today.getTime());
response.setTomorrowOrderNum(orderDetailService.countOrderDetailList(orderDetail));
} catch (Exception e) {
e.printStackTrace();
logger.error(ExceptionUtils.getStackTrace(e));
@ -476,8 +525,7 @@ public class OrderController extends BaseController {
public List<OrderListResponse> getMasterList(OrderMaster orderMaster) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
list.forEach(master -> {
// 初始化属性
for (OrderMaster master : list) {// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
@ -500,6 +548,19 @@ public class OrderController extends BaseController {
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId());
String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress();
// 查询是否超时
List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>();
List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId());
detailOrderList.stream().forEach(detail -> {
OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
if (timeoutRecord != null) {
timeoutRecords.add(timeoutRecord);
}
});
if (Boolean.TRUE.equals(orderMaster.getIsOverTime()) && timeoutRecords.size() == 0) continue;
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
@ -527,21 +588,20 @@ public class OrderController extends BaseController {
orderListResponse.setPayType(master.getPayType());
orderListResponse.setOrderMasterCode(master.getCode());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(customerAddress.getAddress());
orderListResponse.setAddress(completeAddress);
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(master.getRemark());
orderListResponse.setOrderTimeoutRecords(timeoutRecords);
orderListResponses.add(orderListResponse);
});
}
return orderListResponses;
}
public List<OrderListResponse> getDetailList(OrderDetail orderDetail) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetail);
list.forEach(detail -> {
// 主单信息
for (OrderDetail detail : list) {// 主单信息
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
@ -582,6 +642,7 @@ public class OrderController extends BaseController {
// 查询是否超时
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
if (Boolean.TRUE.equals(orderDetail.getIsOverTime()) && !isOverTime) continue;
// 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId());
@ -612,7 +673,7 @@ public class OrderController extends BaseController {
orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setIsOverTime(isOverTime);
orderListResponses.add(orderListResponse);
});
}
return orderListResponses;
}
}

View File

@ -29,7 +29,9 @@ import com.ghy.order.service.OrderDetailService;
import com.ghy.order.service.OrderGoodsService;
import com.ghy.order.service.OrderMasterService;
import com.ghy.payment.domain.FinancialMaster;
import com.ghy.payment.domain.OrderTimeoutRecord;
import com.ghy.payment.service.FinancialMasterService;
import com.ghy.payment.service.OrderFineRecordService;
import com.ghy.web.pojo.vo.OrderListResponse;
import com.ghy.web.pojo.vo.OrderMasterResponseVo;
import com.ghy.web.pojo.vo.OrderStandard;
@ -84,6 +86,8 @@ public class OrderMasterController extends BaseController {
private FinancialMasterService financialMasterService;
@Autowired
private GoodsStandardService goodsStandardService;
@Autowired
private OrderFineRecordService orderFineRecordService;
@RequiresPermissions("order:master:view")
@GetMapping()
@ -123,6 +127,13 @@ public class OrderMasterController extends BaseController {
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
// 查询是否超时
List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId());
List<Long> detailOrderIds = detailOrderList.stream().map(OrderDetail::getId).collect(Collectors.toList());
OrderTimeoutRecord params = new OrderTimeoutRecord();
params.setOrderDetailIds(detailOrderIds);
List<OrderTimeoutRecord> timeoutRecords = orderFineRecordService.selectList(params);
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
orderStandard.setStandardName(orderGoods.getGoodsName());
@ -152,6 +163,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setAddress(customerAddress.getAddress());
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(master.getRemark());
orderListResponse.setOrderTimeoutRecords(timeoutRecords);
orderListResponses.add(orderListResponse);
});

View File

@ -21,4 +21,6 @@ public class OrderListRequest {
private String goodsName;
private Long countryId;
private Boolean isOverTime;
}

View File

@ -1,5 +1,6 @@
package com.ghy.web.pojo.vo;
import com.ghy.payment.domain.OrderTimeoutRecord;
import lombok.Data;
import java.math.BigDecimal;
@ -65,6 +66,8 @@ public class OrderListResponse {
private Boolean isOverTime;
private List<OrderTimeoutRecord> orderTimeoutRecords;
private List<OrderStandard> standardList;
private List<OrderStandardDetail> orderStandardDetailList;

View File

@ -12,4 +12,10 @@ import lombok.Data;
public class OrderStatisticsResponse {
private long planOrderNum;
private long newOrderNum;
private long waitServOrderNum;
private long servingOrderNum;
private long waitSureOrderNum;
private long overTimeOrderNum;
private long todayOrderNum;
private long tomorrowOrderNum;
}

View File

@ -62,4 +62,6 @@ public class OrderDetail extends BaseEntity {
private String goodsName;
private Long countryId;
private Boolean isOverTime;
}

View File

@ -75,4 +75,6 @@ public class OrderMaster extends BaseEntity {
private Integer exceptOrderStatus;
private Boolean isOverTime;
}

View File

@ -3,6 +3,7 @@ package com.ghy.payment.domain;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 订单超时扣款记录表
@ -19,6 +20,8 @@ public class OrderTimeoutRecord {
*/
private Long orderDetailId;
private List<Long> orderDetailIds;
/**
* 超时时的订单状态
*/

View File

@ -2,6 +2,8 @@ package com.ghy.payment.service;
import com.ghy.payment.domain.OrderTimeoutRecord;
import java.util.List;
/**
* 订单超时扣款记录接口
* @author ydq
@ -15,4 +17,11 @@ public interface OrderFineRecordService {
* @return 超时记录
*/
OrderTimeoutRecord selectByDetailIdAndStatus(Long orderDetailId, Integer orderStatus);
/**
* 查询超时List
* @param params 查询条件
* @return 超时List
*/
List<OrderTimeoutRecord> selectList(OrderTimeoutRecord params);
}

View File

@ -6,6 +6,7 @@ import com.ghy.payment.service.OrderFineRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author ydq
@ -22,4 +23,11 @@ public class OrderFineRecordServiceImpl implements OrderFineRecordService {
public OrderTimeoutRecord selectByDetailIdAndStatus(Long orderDetailId, Integer orderStatus) {
return orderFineRecordMapper.selectByDetailIdAndStatus(orderDetailId, orderStatus);
}
@Override
public List<OrderTimeoutRecord> selectList(OrderTimeoutRecord params) {
return orderFineRecordMapper.selectList(params);
}
}

View File

@ -29,6 +29,12 @@
<if test="orderDetailId != null">
AND order_detail_id = #{orderDetailId}
</if>
<if test="orderDetailIds != null and orderDetailIds != ''">
AND order_detail_id IN
<foreach collection="orderDetailIds" item="orderDetailId" open="(" separator="," close=")">
#{orderDetailId}
</foreach>
</if>
<if test="orderStatus != null">
AND order_status = #{orderStatus}
</if>