|
@@ -20,9 +20,11 @@ import com.haha.common.vo.OrderVO;
|
|
|
import com.haha.entity.Device;
|
|
import com.haha.entity.Device;
|
|
|
import com.haha.entity.Order;
|
|
import com.haha.entity.Order;
|
|
|
import com.haha.entity.Shop;
|
|
import com.haha.entity.Shop;
|
|
|
|
|
+import com.haha.entity.User;
|
|
|
import com.haha.mapper.DeviceMapper;
|
|
import com.haha.mapper.DeviceMapper;
|
|
|
import com.haha.mapper.OrderMapper;
|
|
import com.haha.mapper.OrderMapper;
|
|
|
import com.haha.mapper.ShopMapper;
|
|
import com.haha.mapper.ShopMapper;
|
|
|
|
|
+import com.haha.mapper.UserMapper;
|
|
|
import com.haha.service.UserTagService;
|
|
import com.haha.service.UserTagService;
|
|
|
import com.haha.service.OrderGoodsService;
|
|
import com.haha.service.OrderGoodsService;
|
|
|
import com.haha.service.OrderService;
|
|
import com.haha.service.OrderService;
|
|
@@ -58,6 +60,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
|
|
private final DeviceMapper deviceMapper;
|
|
private final DeviceMapper deviceMapper;
|
|
|
private final ShopMapper shopMapper;
|
|
private final ShopMapper shopMapper;
|
|
|
|
|
+ private final UserMapper userMapper;
|
|
|
private final CommonConfig commonConfig;
|
|
private final CommonConfig commonConfig;
|
|
|
private final UserTagService userTagService;
|
|
private final UserTagService userTagService;
|
|
|
|
|
|
|
@@ -81,6 +84,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
public IPage<Order> getPage(int page, int pageSize, String orderNo, String deviceId,
|
|
public IPage<Order> getPage(int page, int pageSize, String orderNo, String deviceId,
|
|
|
String payStatus, Integer status, String startDate, String endDate,
|
|
String payStatus, Integer status, String startDate, String endDate,
|
|
|
List<Integer> statusList) {
|
|
List<Integer> statusList) {
|
|
|
|
|
+ return getPage(page, pageSize, orderNo, deviceId, payStatus, status, startDate, endDate, statusList, null);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public IPage<Order> getPage(int page, int pageSize, String orderNo, String deviceId,
|
|
|
|
|
+ String payStatus, Integer status, String startDate, String endDate,
|
|
|
|
|
+ List<Integer> statusList, String phone) {
|
|
|
// 确保分页参数有效(MyBatis-Plus 要求页码从 1 开始)
|
|
// 确保分页参数有效(MyBatis-Plus 要求页码从 1 开始)
|
|
|
if (page < 1) {
|
|
if (page < 1) {
|
|
|
page = 1;
|
|
page = 1;
|
|
@@ -89,11 +99,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
pageSize = 10; // 默认每页 10 条,最大 100 条
|
|
pageSize = 10; // 默认每页 10 条,最大 100 条
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- log.info("订单分页查询:page={}, pageSize={}, orderNo={}, deviceId={}", page, pageSize, orderNo, deviceId);
|
|
|
|
|
|
|
+ log.info("订单分页查询:page={}, pageSize={}, orderNo={}, deviceId={}, phone={}", page, pageSize, orderNo, deviceId, phone);
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
|
- // 构建查询条件
|
|
|
|
|
|
|
+ // 手机号查询:先根据手机号查出用户ID,再按用户ID过滤订单
|
|
|
|
|
+ List<Long> userIdsByPhone = null;
|
|
|
|
|
+ if (phone != null && !phone.isEmpty()) {
|
|
|
|
|
+ LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ userWrapper.like(User::getPhone, phone);
|
|
|
|
|
+ List<User> users = userMapper.selectList(userWrapper);
|
|
|
|
|
+ if (users != null && !users.isEmpty()) {
|
|
|
|
|
+ userIdsByPhone = users.stream().map(User::getId).collect(Collectors.toList());
|
|
|
|
|
+ wrapper.in(Order::getUserId, userIdsByPhone);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 没有匹配到用户,返回空结果
|
|
|
|
|
+ return new Page<>(page, pageSize);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 构建其他查询条件
|
|
|
wrapper.like(orderNo != null && !orderNo.isEmpty(), Order::getOrderNo, orderNo)
|
|
wrapper.like(orderNo != null && !orderNo.isEmpty(), Order::getOrderNo, orderNo)
|
|
|
.like(deviceId != null && !deviceId.isEmpty(), Order::getDeviceId, deviceId)
|
|
.like(deviceId != null && !deviceId.isEmpty(), Order::getDeviceId, deviceId)
|
|
|
.eq(payStatus != null && !payStatus.isEmpty(), Order::getPayStatus, payStatus)
|
|
.eq(payStatus != null && !payStatus.isEmpty(), Order::getPayStatus, payStatus)
|
|
@@ -452,15 +477,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
Map<Long, UserTag> userTagMap = userTagService.batchComputeUserTags(userIds);
|
|
Map<Long, UserTag> userTagMap = userTagService.batchComputeUserTags(userIds);
|
|
|
|
|
|
|
|
- // 2. 逐条填充标签
|
|
|
|
|
|
|
+ // 2. 批量查询用户信息(手机号)
|
|
|
|
|
+ Map<Long, User> userMap = new HashMap<>();
|
|
|
|
|
+ if (!userIds.isEmpty()) {
|
|
|
|
|
+ List<User> users = userMapper.selectBatchIds(userIds);
|
|
|
|
|
+ if (users != null) {
|
|
|
|
|
+ userMap = users.stream().collect(Collectors.toMap(User::getId, u -> u, (a, b) -> a));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 逐条填充标签
|
|
|
for (Order order : orders) {
|
|
for (Order order : orders) {
|
|
|
- // 用户消费标签
|
|
|
|
|
|
|
+ // 用户消费标签 + 手机号
|
|
|
if (order.getUserId() != null) {
|
|
if (order.getUserId() != null) {
|
|
|
UserTag tag = userTagMap.get(order.getUserId());
|
|
UserTag tag = userTagMap.get(order.getUserId());
|
|
|
if (tag != null) {
|
|
if (tag != null) {
|
|
|
order.setUserTag(tag.getCode());
|
|
order.setUserTag(tag.getCode());
|
|
|
order.setUserTagLabel(tag.getDescription());
|
|
order.setUserTagLabel(tag.getDescription());
|
|
|
}
|
|
}
|
|
|
|
|
+ // 填充手机号
|
|
|
|
|
+ User user = userMap.get(order.getUserId());
|
|
|
|
|
+ if (user != null) {
|
|
|
|
|
+ order.setPhone(user.getPhone());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 支付状态标签
|
|
// 支付状态标签
|