From aa3baba1e552595e62a6cc8272f7444cbe5997aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LI-CCONG=5C=E6=9D=8E=E8=81=AA=E8=81=AA?= <1441652193@qq.com> Date: Wed, 13 Mar 2024 18:41:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8B=E5=8D=95=E5=BA=9F?= =?UTF-8?q?=E5=93=81=E9=A2=84=E4=BC=B0=E9=87=8D=E9=87=8F=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=8F=98=E6=9B=B4v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../controller/RecycleOrderController.java | 44 +++++++++---------- .../java/cc/yunxi/domain/po/RecycleOrder.java | 7 +++ .../yunxi/domain/po/RecycleOrderProduct.java | 6 +-- .../vo/recycleorder/RecycleOrderCreateVO.java | 9 +++- .../vo/recycleorder/RecycleOrderRespVO.java | 12 ++--- .../RecycleOrderDetailCreateVO.java | 4 -- .../RecycleOrderDetailResponseVO.java | 3 -- 8 files changed, 46 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index 5eda243..86b0b89 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ logs +upload ### STS ### .apt_generated 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 14f29c6..c44a4a8 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -65,7 +65,7 @@ public class RecycleOrderController { t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude())); }); // 3.数据组装处理 - this.computeOrderDetailsInfo(recycleOrderPageVO.getList(), recycleOrderQuery.getLocation()); + this.assembleOrderDetailsInfo(recycleOrderPageVO.getList(), recycleOrderQuery.getLocation()); return CommonResult.success(recycleOrderPageVO); } @@ -87,7 +87,7 @@ public class RecycleOrderController { RecycleOrderRespVO recycleOrderRespVO = BeanUtils.copyBean(recycleOrder, RecycleOrderRespVO.class, (s, t) -> { t.setLocation(new LocationDTO(s.getLongitude(), s.getLatitude())); }); - this.computeOrderDetailsInfo(Collections.singletonList(recycleOrderRespVO), location); + this.assembleOrderDetailsInfo(Collections.singletonList(recycleOrderRespVO), location); return CommonResult.success(recycleOrderRespVO); } @@ -154,43 +154,43 @@ public class RecycleOrderController { } /** - * 组装订单废品重量、预估价信息 + * 组装订单-废品关联信息 * @param orderRespVOList * @param locationDTO */ - private void computeOrderDetailsInfo(List orderRespVOList, LocationDTO locationDTO) { + private void assembleOrderDetailsInfo(List orderRespVOList, LocationDTO locationDTO) { if (CollUtils.isEmpty(orderRespVOList)) return; List orderIds = orderRespVOList.stream().map(RecycleOrderRespVO::getId).collect(Collectors.toList()); - // 查询订单-废品关联信息 List orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(orderIds); List detailResponseVOList = BeanUtils.copyList(orderProducts, RecycleOrderDetailResponseVO.class); this.assembleProductInfo(detailResponseVOList); Map> orderProductsMap = detailResponseVOList.stream().collect(Collectors.groupingBy(RecycleOrderDetailResponseVO::getRecycleOrderId)); - // 组装废品重量回收价、计算订单距离、预估值 for (RecycleOrderRespVO orderRespVO : orderRespVOList) { + this.computeOrderDistance(orderRespVO, locationDTO); List orderDetails = orderProductsMap.get(orderRespVO.getId()); orderRespVO.setOrderDetails(orderDetails); - if (ObjectUtil.isNotEmpty(locationDTO)) { - String longitude = locationDTO.getLongitude(); - String latitude = locationDTO.getLatitude(); - String orderLongitude = orderRespVO.getLocation().getLongitude(); - String orderLatitude = orderRespVO.getLocation().getLatitude(); - BigDecimal distance = CommonUtil.getDistance(longitude, latitude, orderLongitude, orderLatitude); - orderRespVO.setDistance(distance.toString().concat("km")); - } - BigDecimal expectedPrice = new BigDecimal("0"); - for (RecycleOrderDetailResponseVO orderDetail : orderDetails) { - BigDecimal bigDecimal = new BigDecimal(orderDetail.getProductWeight().getCode()); - BigDecimal recoveryPrice = orderDetail.getRecoveryPrice(); - expectedPrice = expectedPrice.add(bigDecimal.multiply(recoveryPrice)); - } - orderRespVO.setExpectedPrice(expectedPrice); } } /** - * 组装订单废品基本信息 + * 计算订单距离 + * @param orderRespVO + * @param locationDTO + */ + private void computeOrderDistance(RecycleOrderRespVO orderRespVO, LocationDTO locationDTO) { + if (ObjectUtil.isNotEmpty(locationDTO)) { + String longitude = locationDTO.getLongitude(); + String latitude = locationDTO.getLatitude(); + String orderLongitude = orderRespVO.getLocation().getLongitude(); + String orderLatitude = orderRespVO.getLocation().getLatitude(); + BigDecimal distance = CommonUtil.getDistance(longitude, latitude, orderLongitude, orderLatitude); + orderRespVO.setDistance(distance.toString().concat("km")); + } + } + + /** + * 组装废品信息 * @param detailVOList */ private void assembleProductInfo(List detailVOList) { diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrder.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrder.java index a643f45..f07a905 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrder.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrder.java @@ -2,6 +2,7 @@ package cc.yunxi.domain.po; import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderTypeEnum; +import cc.yunxi.enums.ProductWeightEnum; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -14,6 +15,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotNull; + /** *

* 回收站回收订单 @@ -60,6 +63,10 @@ public class RecycleOrder { @TableField("client_name") private String clientName; + @ApiModelProperty(value = "废品预估重量", required = true) + @TableField("predict_weight") + private ProductWeightEnum predictWeight; + @ApiModelProperty("散户手机号") @TableField("client_mobile") private String clientMobile; diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrderProduct.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrderProduct.java index 0787652..e0fb982 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrderProduct.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleOrderProduct.java @@ -43,9 +43,9 @@ public class RecycleOrderProduct { @TableField("product_name") private String productName; - @ApiModelProperty("商品预估重量") - @TableField("product_weight") - private ProductWeightEnum productWeight; +// @ApiModelProperty("商品预估重量") +// @TableField("product_weight") +// private ProductWeightEnum productWeight; @ApiModelProperty("商品实际重量") @TableField("product_actual_weight") diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java index f35d0fb..b318b66 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java @@ -2,6 +2,7 @@ package cc.yunxi.domain.vo.recycleorder; import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailCreateVO; +import cc.yunxi.enums.ProductWeightEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,6 +19,9 @@ import java.util.List; @Data public class RecycleOrderCreateVO { + @ApiModelProperty(value = "散户id", hidden = true, example = "1763507031581421570") + private String clientId; + @ApiModelProperty(value = "回收站id", required = true, example = "521632060801030597") @NotBlank(message = "关联回收站不能为空") private String recycleStationId; @@ -26,8 +30,9 @@ public class RecycleOrderCreateVO { // @NotBlank(message = "订单类型不能为空") // private String orderType; - @ApiModelProperty(value = "散户id", hidden = true, example = "1763507031581421570") - private String clientId; + @ApiModelProperty(value = "废品预估重量", required = true) + @NotNull(message = "废品预估重量不能为空") + private ProductWeightEnum predictWeight; @ApiModelProperty(value = "散户地址", required = true, example = "xxx市yyy区") @NotBlank(message = "散户地址不能为空") 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 d10e804..dacd16e 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 @@ -4,6 +4,7 @@ import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderTypeEnum; +import cc.yunxi.enums.ProductWeightEnum; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -52,8 +53,11 @@ public class RecycleOrderRespVO { @ApiModelProperty("散户手机号") private String clientMobile; - @ApiModelProperty("回收地址") - private String recycleAddress; + @ApiModelProperty("散户地址") + private String recycleAddress; // todo + + @ApiModelProperty("预估重量") + private ProductWeightEnum predictWeight; @ApiModelProperty("订单地理位置") private LocationDTO location; @@ -121,10 +125,6 @@ public class RecycleOrderRespVO { @ApiModelProperty("订单距离(回收员专用)") private String distance; - - @ApiModelProperty("预估价") - private BigDecimal expectedPrice; - @ApiModelProperty("订单明细详情") private List orderDetails; diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailCreateVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailCreateVO.java index 901f8c0..c944d93 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailCreateVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailCreateVO.java @@ -27,10 +27,6 @@ public class RecycleOrderDetailCreateVO { // @NotBlank(message = "商品名称不能为空") // private String productName; - @ApiModelProperty(value = "废品预估重量", required = true) - @NotNull(message = "废品预估重量不能为空") - private ProductWeightEnum productWeight; - @ApiModelProperty(value = "下单时回收单价", required = true) @NotNull(message = "下单时回收单价不能为空") @DecimalMin(value = "0.01", message = "下单时回收单价数值错误") diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailResponseVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailResponseVO.java index 3efc6d9..6e6bda2 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailResponseVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailResponseVO.java @@ -40,9 +40,6 @@ public class RecycleOrderDetailResponseVO { @ApiModelProperty("废品信息") private ProductSimpleVO product; - @ApiModelProperty("废品预估重量") - private ProductWeightEnum productWeight; - @ApiModelProperty("废品实际重量") private Double productActualWeight;