diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java index 92acc4d..20fa39f 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -9,22 +9,18 @@ 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.ClientAddress; -import cc.yunxi.domain.po.Product; -import cc.yunxi.domain.po.RecycleOrderProduct; +import cc.yunxi.domain.po.*; import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO; 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.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.enums.UserTypeEnum; -import cc.yunxi.service.IClientAddressService; -import cc.yunxi.service.IPriceProductService; -import cc.yunxi.service.IRecycleOrderProductService; -import cc.yunxi.service.IRecycleOrderService; +import cc.yunxi.service.*; import cc.yunxi.utils.UserContext; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -53,6 +49,8 @@ public class RecycleOrderController { private final IRecycleOrderService recycleOrderService; + private final IRecyclerService recyclerService; + private final IRecycleOrderProductService recycleOrderProductService; private final IPriceProductService priceProductService; @@ -95,6 +93,14 @@ public class RecycleOrderController { t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude())); }); this.assembleOrderDetailsInfo(Collections.singletonList(recycleOrderRespVO), location); + // 接单后展示回收员信息 + if (StrUtil.isNotEmpty(recycleOrder.getStaffsId())) { + Recycler recycler = recyclerService.getRecyclerById(recycleOrder.getStaffsId()); + RecyclerSimpleVO recyclerSimpleVO = BeanUtils.copyBean(recycler, RecyclerSimpleVO.class); + recycleOrderRespVO.setRecyclerInfo(recyclerSimpleVO); + // 计算预计上门时间 + recycleOrderRespVO.setEstimateArrivalTime(recycleOrderRespVO.getAppointmentTimeStart().plusHours(1)); + } return CommonResult.success(recycleOrderRespVO); } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderRespVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderRespVO.java index 5d5551a..4657295 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderRespVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderRespVO.java @@ -3,6 +3,7 @@ package cc.yunxi.domain.vo.recycleorder; import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.vo.clientaddress.ClientAddressSimpleVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; +import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.ProductWeightEnum; @@ -129,9 +130,15 @@ public class RecycleOrderRespVO { @ApiModelProperty("订单->回收员距离(km)") private Double distance2; + @ApiModelProperty("预计到达时间") + private LocalDateTime estimateArrivalTime; + @ApiModelProperty("散户地址信息") private ClientAddressSimpleVO addressInfo; + @ApiModelProperty("回收员信息") + private RecyclerSimpleVO recyclerInfo; + @ApiModelProperty("订单明细详情") private List orderDetails;