perf:优化订单查询(支持根据下单时间查询,增加区域字段&考虑支撑数据权限)

This commit is contained in:
chenxiky 2025-07-25 19:52:40 +08:00
parent c72132dd57
commit 8d414ac646
5 changed files with 47 additions and 6 deletions

View File

@ -2,6 +2,7 @@ package com.aircraft.modules.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.aircraft.exception.BadRequestException;
@ -45,6 +46,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -185,6 +187,15 @@ public class OrderBiz {
*/
private List<OrderMain> adminAllOrderQueryList(OrderMainPageQueryDTO pageQueryDTO) {
// TODO 需要考虑用户角色获取对应的数据财务区域管理员角色
// 处理时间格式
if (ObjectUtil.isNotNull(pageQueryDTO.getQueryStartTime())) {
Date start = DateUtil.beginOfDay(pageQueryDTO.getQueryStartTime());
pageQueryDTO.setQueryStartTime(start);
}
if (ObjectUtil.isNotNull(pageQueryDTO.getQueryEndTime())) {
Date end = DateUtil.endOfDay(pageQueryDTO.getQueryEndTime());
pageQueryDTO.setQueryEndTime(end);
}
List<OrderMain> list = orderMainService.queryAll(pageQueryDTO);
return list;
}
@ -247,6 +258,7 @@ public class OrderBiz {
orderMain.setOrderCreateTime(addOrderDTO.getOrderCreateTime());
orderMain.setMainOrderStatus(MainOrderStatusEnum.NOT_STARTED.getCode());
orderMain.setSettlementStatus(OrderSettlementStatusEnum.NOT_SETTLED.getCode());
orderMain.setAreaId(scenic.getAreaId());
return orderMain;
}

View File

@ -50,6 +50,11 @@ public class OrderMain extends BaseEntity {
*/
private String phone;
/**
* 区域ID
*/
private Long areaId;
/**
* 景区ID
*/

View File

@ -2,6 +2,9 @@ package com.aircraft.modules.order.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
@ -29,13 +32,27 @@ public class OrderMainPageQueryDTO {
/**
* 客户手机号
*/
@ApiModelProperty(value = "客户手机号", example = "13788888888")
@ApiModelProperty(value = "客户手机号", example = "13456767894")
private String phone;
/**
* 发起人ID
*/
@ApiModelProperty(value = "发起人ID(无需填写)")
private Long orderInitiatorId;
/**
* 下单开始时间
*/
@ApiModelProperty(value = "下单开始时间", example = "2025-07-19")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date queryStartTime;
/**
* 下单结束时间
*/
@ApiModelProperty(value = "下单结束时间", example = "2025-07-19")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date queryEndTime;
}

View File

@ -57,6 +57,12 @@ public class OrderMainPageQueryVO {
@ApiModelProperty(value = "发起人手机号")
private String initiatorPhone;
/**
* 区域ID
*/
@ApiModelProperty(value = "区域ID")
private Long areaId;
/**
* 景区ID
*/

View File

@ -33,12 +33,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
private OrderMainMapper orderMainMapper;
@Override
public List<OrderMain> queryAll(OrderMainPageQueryDTO pageQueryDTO) {
// TODO 构建查询条件
LambdaQueryWrapper<OrderMain> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getAttractionId()),OrderMain::getAttractionId, pageQueryDTO.getAttractionId());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getAttractionId()),OrderMain::getCustomerId, pageQueryDTO.getCustomerId());
queryWrapper.eq(StrUtil.isNotBlank(pageQueryDTO.getPhone()),OrderMain::getPhone, pageQueryDTO.getPhone());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getAttractionId()), OrderMain::getAttractionId, pageQueryDTO.getAttractionId());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getCustomerId()), OrderMain::getCustomerId, pageQueryDTO.getCustomerId());
queryWrapper.eq(StrUtil.isNotBlank(pageQueryDTO.getPhone()), OrderMain::getPhone, pageQueryDTO.getPhone());
// 添加时间查询条件
queryWrapper.ge(ObjectUtil.isNotNull(pageQueryDTO.getQueryStartTime()), OrderMain::getOrderCreateTime, pageQueryDTO.getQueryStartTime());
queryWrapper.le(ObjectUtil.isNotNull(pageQueryDTO.getQueryEndTime()), OrderMain::getOrderCreateTime, pageQueryDTO.getQueryEndTime());
return list(queryWrapper);
}