diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/IndexController.java b/nxhs-service/src/main/java/cc/yunxi/controller/IndexController.java index 4e56ce2..11ade86 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/IndexController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/IndexController.java @@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import java.util.Collections; import java.util.List; @Api(tags = "首页接口") @@ -28,7 +29,7 @@ public class IndexController { @ApiOperation("废品类目列表") @GetMapping("/products") public CommonResult> queryProductList() { - List productList = priceProductService.queryProductList(); + List productList = priceProductService.queryProductList(Collections.emptyList()); List productSimpleVOList = BeanUtils.copyList(productList, ProductSimpleVO.class); return CommonResult.success(productSimpleVOList); } 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 87c2d55..8edba13 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -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> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) { @@ -106,6 +111,7 @@ public class RecycleOrderController { public CommonResult> OrderProductList(@RequestParam("orderId") String orderId) { List orderProducts = recycleOrderProductService.getOrderProductsByOrderIds(Collections.singletonList(orderId)); List 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 orderIds, List orderRespVOList) { if (CollUtils.isEmpty(orderIds) || CollUtils.isEmpty(orderRespVOList)) return; - // 查询订单下废品信息 - List productsInOrders = recycleOrderProductService.getOrderProductsByOrderIds(orderIds); - List detailResponseVOList = BeanUtils.copyList(productsInOrders, RecycleOrderDetailResponseVO.class); + // 查询订单-废品关联信息 + 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) { List orderDetails = orderProductsMap.get(orderRespVO.getId()); orderRespVO.setOrderDetails(orderDetails); @@ -186,4 +193,20 @@ public class RecycleOrderController { orderRespVO.setExpectedPrice(expectedPrice); } } + + /** + * 组装订单废品基本信息 + * @param detailVOList + */ + private void assembleProductInfo(List detailVOList) { + if (CollUtils.isEmpty(detailVOList)) return; + Set productIds = detailVOList.stream().map(RecycleOrderDetailResponseVO::getProductId).collect(Collectors.toSet()); + List productList = priceProductService.queryProductList(productIds); + Map 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)); + } + } } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/po/Product.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/Product.java index f126484..d5dffcd 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/po/Product.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/Product.java @@ -44,8 +44,8 @@ public class Product { private String spec; @ApiModelProperty("描述") - @TableField("describe") - private String describe; + @TableField("description") + private String description; @ApiModelProperty("图片") @TableField("photo") diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductRespVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductRespVO.java index 40cae34..e346542 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductRespVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductRespVO.java @@ -48,7 +48,7 @@ public class ProductRespVO { private String spec; @ApiModelProperty("废品描述") - private String describe; + private String description; @ApiModelProperty("废品图") private String photo; diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductSimpleVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductSimpleVO.java index 884f597..c78e3eb 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductSimpleVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/priceproduct/ProductSimpleVO.java @@ -29,7 +29,7 @@ public class ProductSimpleVO { private String name; @ApiModelProperty("废品描述") - private String describe; + private String description; @ApiModelProperty("废品图") private String photo; 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 7e6da42..901f8c0 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 @@ -19,16 +19,16 @@ public class RecycleOrderDetailCreateVO { @ApiModelProperty(value = "订单id", hidden = true, example = "1763827319099719682") private String recycleOrderId; - @ApiModelProperty(value = "商品id", required = true, example = "534658869696135686") - @NotBlank(message = "商品id不能为空") + @ApiModelProperty(value = "废品id", required = true, example = "534658869696135686") + @NotBlank(message = "废品id不能为空") private String productId; - @ApiModelProperty(value = "商品名称", required = true) - @NotBlank(message = "商品名称不能为空") - private String productName; +// @ApiModelProperty(value = "商品名称", required = true) +// @NotBlank(message = "商品名称不能为空") +// private String productName; - @ApiModelProperty(value = "商品预估重量", required = true) - @NotNull(message = "商品预估重量不能为空") + @ApiModelProperty(value = "废品预估重量", required = true) + @NotNull(message = "废品预估重量不能为空") private ProductWeightEnum productWeight; @ApiModelProperty(value = "下单时回收单价", required = true) 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 3caf2c1..3efc6d9 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 @@ -1,5 +1,6 @@ package cc.yunxi.domain.vo.recycleorderdetail; +import cc.yunxi.domain.vo.priceproduct.ProductSimpleVO; import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.ProductWeightEnum; @@ -33,16 +34,16 @@ public class RecycleOrderDetailResponseVO { @ApiModelProperty("订单id") private String recycleOrderId; - @ApiModelProperty("商品id") + @ApiModelProperty("废品id") private String productId; - @ApiModelProperty("商品名称") - private String productName; + @ApiModelProperty("废品信息") + private ProductSimpleVO product; - @ApiModelProperty("商品预估重量") + @ApiModelProperty("废品预估重量") private ProductWeightEnum productWeight; - @ApiModelProperty("商品实际重量") + @ApiModelProperty("废品实际重量") private Double productActualWeight; @ApiModelProperty("下单时回收单价") diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailUpdateVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailUpdateVO.java index f88ce36..b6f15d4 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailUpdateVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorderdetail/RecycleOrderDetailUpdateVO.java @@ -19,13 +19,13 @@ public class RecycleOrderDetailUpdateVO { @NotBlank(message = "id不能为空") private String id; - @ApiModelProperty(value = "商品id", required = true, example = "534658869696135686") - @NotBlank(message = "商品id不能为空") + @ApiModelProperty(value = "废品id", required = true, example = "534658869696135686") + @NotBlank(message = "废品id不能为空") private String productId; - @ApiModelProperty(value = "商品实际重量", required = true, example = "1.08") - @NotNull(message = "商品实际重量不能为空") - @DecimalMin(value = "0.00", message = "商品实际重量数值错误") + @ApiModelProperty(value = "废品实际重量", required = true, example = "1.08") + @NotNull(message = "废品实际重量不能为空") + @DecimalMin(value = "0.00", message = "废品实际重量数值错误") private Double productActualWeight; diff --git a/nxhs-service/src/main/java/cc/yunxi/service/IPriceProductService.java b/nxhs-service/src/main/java/cc/yunxi/service/IPriceProductService.java index d476feb..33c2bb2 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/IPriceProductService.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/IPriceProductService.java @@ -1,9 +1,11 @@ package cc.yunxi.service; import cc.yunxi.domain.po.Price; +import cc.yunxi.domain.po.PriceProduct; import cc.yunxi.domain.po.Product; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; import java.util.List; /** @@ -14,12 +16,13 @@ import java.util.List; * @author ccongli * @since 2024-03-08 01:37:49 */ -public interface IPriceProductService extends IService { +public interface IPriceProductService extends IService { /** * 获取废品类目 * @return List */ - List queryProductList(); + List queryProductList(Collection productIds); + } diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/PriceProductServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/PriceProductServiceImpl.java index c83e74b..aba541d 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/PriceProductServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/PriceProductServiceImpl.java @@ -1,14 +1,20 @@ package cc.yunxi.service.impl; +import cc.yunxi.common.domain.LambdaQueryWrapperX; +import cc.yunxi.common.utils.CollUtils; import cc.yunxi.domain.po.Price; +import cc.yunxi.domain.po.PriceProduct; import cc.yunxi.domain.po.Product; import cc.yunxi.mapper.PriceMapper; +import cc.yunxi.mapper.PriceProductMapper; import cc.yunxi.mapper.ProductMapper; import cc.yunxi.service.IPriceProductService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collection; import java.util.List; /** @@ -20,14 +26,18 @@ import java.util.List; * @since 2024-03-08 01:37:49 */ @Service -public class PriceProductServiceImpl extends ServiceImpl implements IPriceProductService { +public class PriceProductServiceImpl extends ServiceImpl implements IPriceProductService { @Resource private ProductMapper productMapper; @Override - public List queryProductList() { - return productMapper.selectList(null); + public List queryProductList(Collection productIds) { + LambdaQueryWrapperX wrapperX = new LambdaQueryWrapperX<>(); + if (CollUtils.isNotEmpty(productIds)) { + wrapperX.inIfPresent(Product::getId, productIds); + } + return productMapper.selectList(wrapperX); } } diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleStationServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleStationServiceImpl.java index c26e39b..a332d89 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleStationServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleStationServiceImpl.java @@ -111,7 +111,7 @@ public class RecycleStationServiceImpl extends ServiceImpl