From 882a36fb944e0c7aaf1e2e8d8446dc6c76040977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 7 Apr 2025 10:55:32 +0800 Subject: [PATCH] =?UTF-8?q?pad=E7=82=B9=E9=A4=90=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/account/dto/pad/PadDetailDTO.java | 3 +- .../czg/product/service/ProductService.java | 4 + .../java/com/czg/product/vo/ProductVO.java | 16 ++++ .../service/impl/PadProdServiceImpl.java | 3 +- .../service/product/mapper/ProductMapper.java | 2 + .../service/impl/ProductServiceImpl.java | 6 ++ .../main/resources/mapper/ProductMapper.xml | 86 +++++++++++++------ 7 files changed, 91 insertions(+), 29 deletions(-) create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/product/vo/ProductVO.java diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pad/PadDetailDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pad/PadDetailDTO.java index f9916d5ce..57fd03c20 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pad/PadDetailDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pad/PadDetailDTO.java @@ -1,6 +1,7 @@ package com.czg.account.dto.pad; import com.czg.product.entity.Product; +import com.czg.product.vo.ProductVO; import lombok.Data; import java.util.List; @@ -13,5 +14,5 @@ public class PadDetailDTO { private Long id; private Long padLayoutId; private List productIdList; - private List productList; + private List productList; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java index f6e0a5cd7..4b08b8386 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java @@ -5,6 +5,7 @@ import com.czg.product.entity.Product; import com.czg.product.entity.ProductStockFlow; import com.czg.product.param.*; import com.czg.product.vo.ProductStatisticsVo; +import com.czg.product.vo.ProductVO; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -127,4 +128,7 @@ public interface ProductService extends IService { * @param records 商品数据集合 */ void refreshProductStock(ProductDTO param, List records); + + List listAndLowPrice(Long shopId, List productIds); + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ProductVO.java b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ProductVO.java new file mode 100644 index 000000000..9db815bc8 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ProductVO.java @@ -0,0 +1,16 @@ +package com.czg.product.vo; + +import com.czg.product.entity.Product; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * @author Administrator + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ProductVO extends Product { + private BigDecimal lowPrice; +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PadProdServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PadProdServiceImpl.java index b61e20e66..b7eb81f8f 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PadProdServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PadProdServiceImpl.java @@ -6,6 +6,7 @@ import com.czg.account.service.*; import com.czg.exception.ApiNotPrintException; import com.czg.product.entity.Product; import com.czg.product.service.ProductService; +import com.czg.product.vo.ProductVO; import com.czg.service.account.mapper.PadProductCategoryDetailMapper; import com.czg.utils.JoinQueryWrapper; import com.czg.utils.PageUtil; @@ -57,7 +58,7 @@ public class PadProdServiceImpl implements PadProdService { List productIds = padProductCategoryDetailMapper.selectListByQuery(new QueryWrapper().eq(PadProductCategoryDetail::getPadProductCategoryId, padProductCategory)).stream().map(PadProductCategoryDetail::getProductId).toList(); padDetailDTO.setProductIdList(productIds); if (!productIds.isEmpty()) { - List products = productService.list(new QueryWrapper().in(Product::getId, productIds).eq(Product::getShopId, shopId)); + List products = productService.listAndLowPrice(shopId, productIds); padDetailDTO.setProductList(products); } diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java index d975c4a0b..edd9e74f0 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java @@ -2,6 +2,7 @@ package com.czg.service.product.mapper; import com.czg.product.dto.ProductDTO; import com.czg.product.entity.Product; +import com.czg.product.vo.ProductVO; import com.czg.product.vo.RecommendProVO; import com.czg.product.vo.ShopProductInfoVo; import com.czg.product.vo.ShopProductVo; @@ -47,4 +48,5 @@ public interface ProductMapper extends BaseMapper { String getShopName(@Param("shopId") Long shopId); + List productList(@Param("shopId") Long shopId, @Param("productIds") List productIds); } diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java index 93815597a..b2f8268b4 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java @@ -22,6 +22,7 @@ import com.czg.product.service.ProductService; import com.czg.product.service.ProductStockFlowService; import com.czg.product.service.SensitiveOperationService; import com.czg.product.vo.ProductStatisticsVo; +import com.czg.product.vo.ProductVO; import com.czg.sa.StpKit; import com.czg.service.product.mapper.*; import com.czg.utils.PageUtil; @@ -645,4 +646,9 @@ public class ProductServiceImpl extends ServiceImpl impl record.setStockNumber(stock.getOrDefault(record.getId(), 0)); }); } + + @Override + public List listAndLowPrice(Long shopId, List productIds) { + return mapper.productList(shopId, productIds); + } } diff --git a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml index 86459c688..3da88ba05 100644 --- a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml +++ b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml @@ -79,7 +79,7 @@ t2.member_price, t1.cover_img, t1.images, - t3.name as unit_name, + t3.name as unit_name, t1.is_sold_stock, t1.stock_number, t1.type, @@ -88,25 +88,28 @@ t1.start_time, t1.end_time, t1.is_hot, - ifnull(t2.suit_num, 1) as suit_num, + ifnull(t2.suit_num, 1) as suit_num, t1.select_spec_info, t1.group_snap, t1.pack_fee, ifnull(t4.sales_volume, 0) as sales_volume from tb_product t1 - left join (select x.product_id, - x.id as sku_id, - MIN(x.sale_price) as sale_price, - x.origin_price, - x.member_price, - x.suit_num - from tb_prod_sku x - where x.is_del = 0 - and x.is_grounding = 1 - and x.shop_id = #{shopId} - group by x.product_id) t2 on t1.id = t2.product_id - left join tb_shop_prod_unit t3 on t1.unit_id = t3.id - left join (select product_id,sum(num) as sales_volume from tb_order_detail where pay_amount is not null group by product_id) t4 on t1.id = t4.product_id + left join (select x.product_id, + x.id as sku_id, + MIN(x.sale_price) as sale_price, + x.origin_price, + x.member_price, + x.suit_num + from tb_prod_sku x + where x.is_del = 0 + and x.is_grounding = 1 + and x.shop_id = #{shopId} + group by x.product_id) t2 on t1.id = t2.product_id + left join tb_shop_prod_unit t3 on t1.unit_id = t3.id + left join (select product_id, sum(num) as sales_volume + from tb_order_detail + where pay_amount is not null + group by product_id) t4 on t1.id = t4.product_id select ifnull( ROUND(ST_Distance_Sphere(POINT(b.lng, b.lat), POINT(#{lng}, #{lat})) / 1000, 2), 0) AS distance, - c.name, a.origin_price, a.sale_price, b.shop_name, b.districts, c.cover_img, b.logo, c.id, - a.real_sales_number saleNum, (round(a.sale_price / a.origin_price, 2) * 10) AS discount, + c.name, a.origin_price, a.sale_price, b.shop_name, b.districts, c.cover_img, b.logo, c.id, + a.real_sales_number saleNum, (round(a.sale_price / a.origin_price, 2) * 10) AS discount, c.id productId, a.id skuId, b.id shopId from tb_prod_sku as a left join tb_product c on c.id=a.product_id @@ -208,17 +216,41 @@ + update tb_product