|
|
|
@ -8,12 +8,15 @@ import cc.yunxi.common.utils.CollUtils;
|
|
|
|
|
import cc.yunxi.common.utils.CommonUtil;
|
|
|
|
|
import cc.yunxi.domain.dto.LocationDTO;
|
|
|
|
|
import cc.yunxi.domain.dto.UserDTO;
|
|
|
|
|
import cc.yunxi.domain.po.Product;
|
|
|
|
|
import cc.yunxi.domain.po.RecycleOrderProduct;
|
|
|
|
|
import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO;
|
|
|
|
|
import cc.yunxi.domain.vo.recycleorder.*;
|
|
|
|
|
import cc.yunxi.domain.po.RecycleOrder;
|
|
|
|
|
import cc.yunxi.domain.query.RecycleOrderQuery;
|
|
|
|
|
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
|
|
|
|
|
import cc.yunxi.enums.UserTypeEnum;
|
|
|
|
|
import cc.yunxi.service.IPriceProductService;
|
|
|
|
|
import cc.yunxi.service.IRecycleOrderProductService;
|
|
|
|
|
import cc.yunxi.service.IRecycleOrderService;
|
|
|
|
|
import cc.yunxi.utils.UserContext;
|
|
|
|
@ -46,6 +49,8 @@ public class RecycleOrderController {
|
|
|
|
|
|
|
|
|
|
private final IRecycleOrderProductService recycleOrderProductService;
|
|
|
|
|
|
|
|
|
|
private final IPriceProductService priceProductService;
|
|
|
|
|
|
|
|
|
|
@ApiOperation("分页查询回收订单")
|
|
|
|
|
@PostMapping("/page")
|
|
|
|
|
public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) {
|
|
|
|
@ -106,6 +111,7 @@ public class RecycleOrderController {
|
|
|
|
|
public CommonResult<List<RecycleOrderDetailResponseVO>> OrderProductList(@RequestParam("orderId") String orderId) {
|
|
|
|
|
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(Collections.singletonList(orderId));
|
|
|
|
|
List<RecycleOrderDetailResponseVO> recycleOrderDetailVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
|
|
|
|
|
this.assembleProductInfo(recycleOrderDetailVOList);
|
|
|
|
|
// 是否展示最新价格? todo
|
|
|
|
|
return CommonResult.success(recycleOrderDetailVOList);
|
|
|
|
|
}
|
|
|
|
@ -162,18 +168,19 @@ public class RecycleOrderController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 组装订单废品信息、预估价
|
|
|
|
|
* 组装订单废品重量、预估价信息
|
|
|
|
|
* @param orderIds
|
|
|
|
|
* @param orderRespVOList
|
|
|
|
|
*/
|
|
|
|
|
private void computeOrderDetailsInfo(List<String> orderIds, List<RecycleOrderRespVO> orderRespVOList) {
|
|
|
|
|
if (CollUtils.isEmpty(orderIds) || CollUtils.isEmpty(orderRespVOList)) return;
|
|
|
|
|
// 查询订单下废品信息
|
|
|
|
|
List<RecycleOrderProduct> productsInOrders = recycleOrderProductService.getOrderProductsByOrderIds(orderIds);
|
|
|
|
|
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(productsInOrders, RecycleOrderDetailResponseVO.class);
|
|
|
|
|
// 查询订单-废品关联信息
|
|
|
|
|
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds);
|
|
|
|
|
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
|
|
|
|
|
this.assembleProductInfo(detailResponseVOList);
|
|
|
|
|
Map<String, List<RecycleOrderDetailResponseVO>> orderProductsMap =
|
|
|
|
|
detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId));
|
|
|
|
|
// 组装数据、计算预估值
|
|
|
|
|
// 组装废品重量回收价、计算预估值
|
|
|
|
|
for (RecycleOrderRespVO orderRespVO : orderRespVOList) {
|
|
|
|
|
List<RecycleOrderDetailResponseVO> orderDetails = orderProductsMap.get(orderRespVO.getId());
|
|
|
|
|
orderRespVO.setOrderDetails(orderDetails);
|
|
|
|
@ -186,4 +193,20 @@ public class RecycleOrderController {
|
|
|
|
|
orderRespVO.setExpectedPrice(expectedPrice);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 组装订单废品基本信息
|
|
|
|
|
* @param detailVOList
|
|
|
|
|
*/
|
|
|
|
|
private void assembleProductInfo(List<RecycleOrderDetailResponseVO> detailVOList) {
|
|
|
|
|
if (CollUtils.isEmpty(detailVOList)) return;
|
|
|
|
|
Set<String> productIds = detailVOList.stream().map(RecycleOrderDetailResponseVO::getProductId).collect(Collectors.toSet());
|
|
|
|
|
List<Product> productList = priceProductService.queryProductList(productIds);
|
|
|
|
|
Map<String, Product> productMap = productList.stream().collect(Collectors.toMap(Product::getId, p -> p, (k1, k2) -> k1));
|
|
|
|
|
for (RecycleOrderDetailResponseVO detailVO : detailVOList) {
|
|
|
|
|
String productId = detailVO.getProductId();
|
|
|
|
|
Product product = productMap.get(productId);
|
|
|
|
|
detailVO.setProduct(BeanUtils.copyBean(product, ProductSimpleVO.class));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|