|
|
@@ -1840,13 +1840,13 @@ public class ProductOrderService {
|
|
|
}
|
|
|
|
|
|
public Result<Map<String, Object>> adminOrderPage(int page, int size, String status, String keyword, String startDate, String endDate, List<Map<String, String>> sortSpecs) {
|
|
|
- return adminOrderPage(page, size, status, keyword, startDate, endDate, sortSpecs, null);
|
|
|
+ return adminOrderPage(page, size, status, keyword, null, startDate, endDate, sortSpecs, null);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理端订单分页(B-5:supplierUserId 非空时按供应商行级隔离——自己名下 supplier_id 或自己商品产生的订单)
|
|
|
*/
|
|
|
- public Result<Map<String, Object>> adminOrderPage(int page, int size, String status, String keyword, String startDate, String endDate, List<Map<String, String>> sortSpecs, Long supplierUserId) {
|
|
|
+ public Result<Map<String, Object>> adminOrderPage(int page, int size, String status, String keyword, String buyerKeyword, String startDate, String endDate, List<Map<String, String>> sortSpecs, Long supplierUserId) {
|
|
|
Page<ProductOrder> pageParam = new Page<>(page, size);
|
|
|
LambdaQueryWrapper<ProductOrder> wrapper = new LambdaQueryWrapper<ProductOrder>()
|
|
|
.orderByDesc(ProductOrder::getCreatedAt);
|
|
|
@@ -1861,6 +1861,24 @@ public class ProductOrderService {
|
|
|
String kw = keyword.trim();
|
|
|
wrapper.and(w -> w.like(ProductOrder::getProductName, kw).or().like(ProductOrder::getOrderNo, kw));
|
|
|
}
|
|
|
+ // 按用户筛选:匹配购买人昵称/手机号(纯数字再按用户ID),过滤 buyer_id
|
|
|
+ if (buyerKeyword != null && !buyerKeyword.trim().isEmpty()) {
|
|
|
+ String bkw = buyerKeyword.trim();
|
|
|
+ LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<User>()
|
|
|
+ .like(User::getNickname, bkw)
|
|
|
+ .or().like(User::getPhone, bkw);
|
|
|
+ if (bkw.matches("\\d+")) {
|
|
|
+ userWrapper.or().eq(User::getId, Long.valueOf(bkw));
|
|
|
+ }
|
|
|
+ List<User> matchedUsers = userMapper.selectList(userWrapper);
|
|
|
+ if (matchedUsers.isEmpty()) {
|
|
|
+ // 无匹配用户:强制空结果,避免 buyer_id IN () 语法错误
|
|
|
+ wrapper.in(ProductOrder::getBuyerId, -1L);
|
|
|
+ } else {
|
|
|
+ List<Long> buyerIds = matchedUsers.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ wrapper.in(ProductOrder::getBuyerId, buyerIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (startDate != null && !startDate.isEmpty()) {
|
|
|
try {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|