|
|
@@ -265,13 +265,6 @@ public class SalesOrderController {
|
|
|
PcBladeOrderVO vo = new PcBladeOrderVO();
|
|
|
// 方案1:使用Spring的BeanUtils(要求VO和实体类属性名一致,大小写敏感)
|
|
|
BeanUtils.copyProperties(order, vo);
|
|
|
-
|
|
|
- // 方案2:如果属性名不一致,手动赋值(示例)
|
|
|
- // vo.setOrderId(order.getId());
|
|
|
- // vo.setOrderCode(order.getOrderCode());
|
|
|
- // vo.setCustomerName(order.getCustomerName());
|
|
|
- // ... 其他字段同理
|
|
|
-
|
|
|
return vo;
|
|
|
})
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -285,51 +278,74 @@ public class SalesOrderController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
- * 获取访问人自己的订单列表
|
|
|
- * @param orderParams
|
|
|
- * @param query
|
|
|
- * @param bladeUser
|
|
|
- * @return
|
|
|
+ * 统一订单查询接口(支持物料ID查询和个人订单查询)
|
|
|
+ * @param orderParams 查询参数集合
|
|
|
+ * @param query 分页参数
|
|
|
+ * @param bladeUser 用户信息
|
|
|
+ * @return 分页订单VO列表
|
|
|
*/
|
|
|
@GetMapping("/getOrderList")
|
|
|
public R<IPage<PcBladeOrderVO>> getOrderList(
|
|
|
@ApiIgnore @RequestParam Map<String, Object> orderParams,
|
|
|
Query query,
|
|
|
BladeUser bladeUser) {
|
|
|
+
|
|
|
// 1. 构建基础查询条件
|
|
|
QueryWrapper<PcBladeOrder> queryWrapper = Condition.getQueryWrapper(orderParams, PcBladeOrder.class);
|
|
|
|
|
|
- // 2. 增加当前用户的订单过滤条件(根据实体类,使用customerId关联用户)
|
|
|
- // 假设BladeUser的id对应PcBladeOrder的customerId
|
|
|
- Long userId = AuthUtil.getUserId();
|
|
|
- queryWrapper.eq("CUSTOMER_ID", userId);
|
|
|
-
|
|
|
-
|
|
|
+ // 2. 处理物料ID查询逻辑
|
|
|
+ List<Long> orderIdList = null;
|
|
|
+ if (orderParams.containsKey("itemId") && StringUtils.isNotBlank(orderParams.get("itemId").toString())) {
|
|
|
+ try {
|
|
|
+ Long itemId = Long.parseLong(orderParams.get("itemId").toString());
|
|
|
+
|
|
|
+ // 根据物料ID查询关联的订单项
|
|
|
+ QueryWrapper<PcBladeOrderItem> orderItemWrapper = new QueryWrapper<>();
|
|
|
+ orderItemWrapper.eq("ITEM_ID", itemId);
|
|
|
+ List<PcBladeOrderItem> orderItemList = orderItemService.list(orderItemWrapper);
|
|
|
+
|
|
|
+ // 提取订单ID列表(去重)
|
|
|
+ orderIdList = orderItemList.stream()
|
|
|
+ .map(PcBladeOrderItem::getOrderId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 如果没有关联订单,直接返回空结果
|
|
|
+ if (orderIdList.isEmpty()) {
|
|
|
+ IPage<PcBladeOrderVO> emptyPage = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+ emptyPage.setRecords(Collections.emptyList());
|
|
|
+ emptyPage.setTotal(0);
|
|
|
+ return R.data(emptyPage, "未查询到该物料关联的订单");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加入订单ID过滤条件
|
|
|
+ queryWrapper.in("ID", orderIdList);
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ return R.fail("物料ID(itemId)格式错误");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 3. 非物料查询时,应用个人订单过滤(仅查看自己的订单)
|
|
|
+ Long userId = AuthUtil.getUserId();
|
|
|
+ queryWrapper.eq("CUSTOMER_ID", userId);
|
|
|
+ }
|
|
|
|
|
|
- // 3. 处理查询参数,与selectPcBladeOrderListPro方法逻辑保持一致
|
|
|
+ // 4. 处理通用查询参数
|
|
|
// 订单编号模糊查询
|
|
|
if (orderParams.containsKey("orderCode") && StringUtils.isNotBlank(orderParams.get("orderCode").toString())) {
|
|
|
queryWrapper.like("order_code", orderParams.get("orderCode"));
|
|
|
}
|
|
|
|
|
|
- // 收货人姓名模糊查询
|
|
|
+ // 收货人信息查询
|
|
|
if (orderParams.containsKey("receiverName") && StringUtils.isNotBlank(orderParams.get("receiverName").toString())) {
|
|
|
queryWrapper.like("receiver_name", orderParams.get("receiverName"));
|
|
|
}
|
|
|
-
|
|
|
- // 收货人手机号模糊查询
|
|
|
if (orderParams.containsKey("receiverPhone") && StringUtils.isNotBlank(orderParams.get("receiverPhone").toString())) {
|
|
|
queryWrapper.like("receiver_phone", orderParams.get("receiverPhone"));
|
|
|
}
|
|
|
-
|
|
|
- // 收货人地址模糊查询
|
|
|
if (orderParams.containsKey("receiverAddress") && StringUtils.isNotBlank(orderParams.get("receiverAddress").toString())) {
|
|
|
queryWrapper.like("receiver_address", orderParams.get("receiverAddress"));
|
|
|
}
|
|
|
-
|
|
|
- // 省市区查询
|
|
|
if (orderParams.containsKey("receiverRegion") && StringUtils.isNotBlank(orderParams.get("receiverRegion").toString())) {
|
|
|
queryWrapper.like("receiver_region", orderParams.get("receiverRegion"));
|
|
|
}
|
|
|
@@ -340,37 +356,33 @@ public class SalesOrderController {
|
|
|
Integer orderType = Integer.parseInt(orderParams.get("orderType").toString());
|
|
|
queryWrapper.eq("order_type", orderType);
|
|
|
} catch (NumberFormatException e) {
|
|
|
- // 处理参数格式错误
|
|
|
+ // 忽略格式错误的参数
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 精确查询状态(0草稿 1已提交 2已确认 3部分发货 4已完成 5已取消)
|
|
|
+ // 订单状态查询
|
|
|
if (orderParams.containsKey("status") && StringUtils.isNotBlank(orderParams.get("status").toString())) {
|
|
|
try {
|
|
|
Integer status = Integer.parseInt(orderParams.get("status").toString());
|
|
|
queryWrapper.eq("status", status);
|
|
|
} catch (NumberFormatException e) {
|
|
|
- // 处理状态参数不是数字的情况
|
|
|
+ // 忽略格式错误的参数
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 时间范围查询 - 创建时间
|
|
|
+ // 时间范围查询
|
|
|
if (orderParams.containsKey("createTimeStart") && StringUtils.isNotBlank(orderParams.get("createTimeStart").toString())) {
|
|
|
queryWrapper.ge("create_time", orderParams.get("createTimeStart"));
|
|
|
}
|
|
|
if (orderParams.containsKey("createTimeEnd") && StringUtils.isNotBlank(orderParams.get("createTimeEnd").toString())) {
|
|
|
queryWrapper.le("create_time", orderParams.get("createTimeEnd"));
|
|
|
}
|
|
|
-
|
|
|
- // 时间范围查询 - 提交时间
|
|
|
if (orderParams.containsKey("submitTimeStart") && StringUtils.isNotBlank(orderParams.get("submitTimeStart").toString())) {
|
|
|
queryWrapper.ge("submit_time", orderParams.get("submitTimeStart"));
|
|
|
}
|
|
|
if (orderParams.containsKey("submitTimeEnd") && StringUtils.isNotBlank(orderParams.get("submitTimeEnd").toString())) {
|
|
|
queryWrapper.le("submit_time", orderParams.get("submitTimeEnd"));
|
|
|
}
|
|
|
-
|
|
|
- // 时间范围查询 - 确认时间
|
|
|
if (orderParams.containsKey("confirmTimeStart") && StringUtils.isNotBlank(orderParams.get("confirmTimeStart").toString())) {
|
|
|
queryWrapper.ge("confirm_time", orderParams.get("confirmTimeStart"));
|
|
|
}
|
|
|
@@ -381,18 +393,18 @@ public class SalesOrderController {
|
|
|
// 排序 - 按创建时间降序
|
|
|
queryWrapper.orderByDesc("create_time");
|
|
|
|
|
|
- // 4. 执行分页查询
|
|
|
+ // 5. 执行分页查询
|
|
|
IPage<PcBladeOrder> pages = orderService.page(Condition.getPage(query), queryWrapper);
|
|
|
|
|
|
- // 5. 关联查询订单详情
|
|
|
+ // 6. 关联查询订单详情
|
|
|
pages.getRecords().forEach(item -> {
|
|
|
- PcBladeOrderItem pcBladeOrderItem = new PcBladeOrderItem();
|
|
|
- pcBladeOrderItem.setOrderId(item.getId());
|
|
|
- List<PcBladeOrderItem> pcBladeOrderItemList = orderItemService.selectPcBladeOrderItemList(pcBladeOrderItem);
|
|
|
+ QueryWrapper<PcBladeOrderItem> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("order_id", item.getId());
|
|
|
+ List<PcBladeOrderItem> pcBladeOrderItemList = orderItemService.list(queryWrapper1);
|
|
|
item.setPcBladeOrderItemList(pcBladeOrderItemList);
|
|
|
});
|
|
|
|
|
|
- // 6. 转换VO并返回
|
|
|
+ // 7. 转换VO并返回
|
|
|
return R.data(PcBladeOrderWrapper.build().pageVO(pages));
|
|
|
}
|
|
|
|
|
|
@@ -741,6 +753,9 @@ public class SalesOrderController {
|
|
|
return R.fail("未获取到登录用户信息,请先登录");
|
|
|
}
|
|
|
|
|
|
+ // TODO 修改---重要修复 userID需要修改成CUSTOMER_ID传参
|
|
|
+
|
|
|
+
|
|
|
// 构建查询条件
|
|
|
QueryWrapper<PcBladeUserLinkGoods> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("CUSTOMER_ID", userId)
|