|
|
@ -9,14 +9,17 @@ import cc.yunxi.common.utils.CollUtils;
|
|
|
|
import cc.yunxi.common.utils.CommonUtil;
|
|
|
|
import cc.yunxi.common.utils.CommonUtil;
|
|
|
|
import cc.yunxi.domain.dto.LocationDTO;
|
|
|
|
import cc.yunxi.domain.dto.LocationDTO;
|
|
|
|
import cc.yunxi.domain.dto.UserDTO;
|
|
|
|
import cc.yunxi.domain.dto.UserDTO;
|
|
|
|
|
|
|
|
import cc.yunxi.domain.po.ClientAddress;
|
|
|
|
import cc.yunxi.domain.po.Product;
|
|
|
|
import cc.yunxi.domain.po.Product;
|
|
|
|
import cc.yunxi.domain.po.RecycleOrderProduct;
|
|
|
|
import cc.yunxi.domain.po.RecycleOrderProduct;
|
|
|
|
|
|
|
|
import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO;
|
|
|
|
import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO;
|
|
|
|
import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO;
|
|
|
|
import cc.yunxi.domain.vo.recycleorder.*;
|
|
|
|
import cc.yunxi.domain.vo.recycleorder.*;
|
|
|
|
import cc.yunxi.domain.po.RecycleOrder;
|
|
|
|
import cc.yunxi.domain.po.RecycleOrder;
|
|
|
|
import cc.yunxi.domain.query.RecycleOrderQuery;
|
|
|
|
import cc.yunxi.domain.query.RecycleOrderQuery;
|
|
|
|
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
|
|
|
|
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
|
|
|
|
import cc.yunxi.enums.UserTypeEnum;
|
|
|
|
import cc.yunxi.enums.UserTypeEnum;
|
|
|
|
|
|
|
|
import cc.yunxi.service.IClientAddressService;
|
|
|
|
import cc.yunxi.service.IPriceProductService;
|
|
|
|
import cc.yunxi.service.IPriceProductService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderProductService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderProductService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderService;
|
|
|
@ -52,6 +55,8 @@ public class RecycleOrderController {
|
|
|
|
|
|
|
|
|
|
|
|
private final IPriceProductService priceProductService;
|
|
|
|
private final IPriceProductService priceProductService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IClientAddressService clientAddressService;
|
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation("分页查询回收订单")
|
|
|
|
@ApiOperation("分页查询回收订单")
|
|
|
|
@PostMapping("/page")
|
|
|
|
@PostMapping("/page")
|
|
|
|
public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) {
|
|
|
|
public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) {
|
|
|
@ -154,22 +159,32 @@ public class RecycleOrderController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 组装订单-废品关联信息
|
|
|
|
* 组装订单关联信息
|
|
|
|
* @param orderRespVOList
|
|
|
|
* @param orderRespVOList
|
|
|
|
* @param locationDTO
|
|
|
|
* @param locationDTO
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void assembleOrderDetailsInfo(List<RecycleOrderRespVO> orderRespVOList, LocationDTO locationDTO) {
|
|
|
|
private void assembleOrderDetailsInfo(List<RecycleOrderRespVO> orderRespVOList, LocationDTO locationDTO) {
|
|
|
|
if (CollUtils.isEmpty(orderRespVOList)) return;
|
|
|
|
if (CollUtils.isEmpty(orderRespVOList)) return;
|
|
|
|
|
|
|
|
// 废品关联信息
|
|
|
|
List<String> orderIds = orderRespVOList.stream().map(RecycleOrderRespVO::getId).collect(Collectors.toList());
|
|
|
|
List<String> orderIds = orderRespVOList.stream().map(RecycleOrderRespVO::getId).collect(Collectors.toList());
|
|
|
|
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds);
|
|
|
|
List<RecycleOrderProduct> orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds);
|
|
|
|
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
|
|
|
|
List<RecycleOrderDetailResponseVO> detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class);
|
|
|
|
this.assembleProductInfo(detailResponseVOList);
|
|
|
|
this.assembleProductInfo(detailResponseVOList);
|
|
|
|
Map<String, List<RecycleOrderDetailResponseVO>> orderProductsMap =
|
|
|
|
Map<String, List<RecycleOrderDetailResponseVO>> orderProductsMap =
|
|
|
|
detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId));
|
|
|
|
detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId));
|
|
|
|
|
|
|
|
// 地址关联信息
|
|
|
|
|
|
|
|
Map<String, String> orderAddressMap = orderRespVOList.stream().collect(Collectors.toMap(
|
|
|
|
|
|
|
|
RecycleOrderRespVO::getId, RecycleOrderRespVO::getClientAddressId));
|
|
|
|
|
|
|
|
Set<String> addressIds = new HashSet<>(orderAddressMap.values());
|
|
|
|
|
|
|
|
List<ClientAddress> clientAddresses = clientAddressService.queryAddressList(addressIds);
|
|
|
|
|
|
|
|
List<ClientAddressSimpleVO> addressSimpleVOList = BeanUtils.copyList(clientAddresses, ClientAddressSimpleVO.class);
|
|
|
|
|
|
|
|
Map<String, ClientAddressSimpleVO> clientAddressMap = addressSimpleVOList.stream().collect(Collectors.toMap(
|
|
|
|
|
|
|
|
ClientAddressSimpleVO::getId, cas -> cas));
|
|
|
|
for (RecycleOrderRespVO orderRespVO : orderRespVOList) {
|
|
|
|
for (RecycleOrderRespVO orderRespVO : orderRespVOList) {
|
|
|
|
this.computeOrderDistance(orderRespVO, locationDTO);
|
|
|
|
this.computeOrderDistance(orderRespVO, locationDTO);
|
|
|
|
List<RecycleOrderDetailResponseVO> orderDetails = orderProductsMap.get(orderRespVO.getId());
|
|
|
|
List<RecycleOrderDetailResponseVO> orderDetails = orderProductsMap.get(orderRespVO.getId());
|
|
|
|
orderRespVO.setOrderDetails(orderDetails);
|
|
|
|
orderRespVO.setOrderDetails(orderDetails);
|
|
|
|
|
|
|
|
orderRespVO.setAddressInfo(clientAddressMap.get(orderRespVO.getClientAddressId()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|