Przeglądaj źródła

feat(product): 添加品牌名称搜索和会员价格筛选功能

- 在产品基础服务中添加品牌名称模糊查询条件
- 将价格区间筛选从市场价改为会员价
- 在产品池链接BO中新增底部分类ID字段
- 在产品池链接映射器中添加底部分类ID查询条件
- 在产品池VO中添加创建时间字段并支持Excel导出
- 在协议信息服务中优化员工姓名获取逻辑并添加产品数量统计
肖路 1 miesiąc temu
rodzic
commit
cd6350c6d6

+ 5 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/domain/bo/ProductPoolLinkBo.java

@@ -119,4 +119,9 @@ public class ProductPoolLinkBo extends BaseEntity {
      * 供应商
      */
     private String supplier;
+
+    /**
+    * 分类id
+    * */
+    private Long bottomCategoryId;
 }

+ 6 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/domain/vo/ProductPoolVo.java

@@ -102,5 +102,11 @@ public class ProductPoolVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
 
 }

+ 5 - 4
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProductBaseServiceImpl.java

@@ -466,6 +466,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
         LambdaEsQueryWrapper<ProductBaseVo> productBaseVoLambdaEsQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
             .eq(ObjectUtil.isNotEmpty(bo.getProductNo()), ProductBaseVo::getProductNo, bo.getProductNo())
             .like(ObjectUtil.isNotEmpty(bo.getItemName()), ProductBaseVo::getItemName, bo.getItemName())
+            .like(ObjectUtil.isNotEmpty(bo.getBrandName()), ProductBaseVo::getBrandName, bo.getBrandName())
             .eq(bo.getBrandId() != null, ProductBaseVo::getBrandId, bo.getBrandId())
             .eq(bo.getTopCategoryId() != null, ProductBaseVo::getTopCategoryId, bo.getTopCategoryId())
             .eq(bo.getMediumCategoryId() != null, ProductBaseVo::getMediumCategoryId, bo.getMediumCategoryId())
@@ -1981,16 +1982,16 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
                 //价格区间 1:1-100 2:100-500 3:500-1000 4:1000以上
                 switch (bo.getPriceRange()) {
                     case "1":
-                        esQueryWrapper.between(ProductBaseVo::getMarketPrice, 1, 100);
+                        esQueryWrapper.between(ProductBaseVo::getMemberPrice, 1, 100);
                         break;
                     case "2":
-                        esQueryWrapper.between(ProductBaseVo::getMarketPrice, 100, 500);
+                        esQueryWrapper.between(ProductBaseVo::getMemberPrice, 100, 500);
                         break;
                     case "3":
-                        esQueryWrapper.between(ProductBaseVo::getMarketPrice, 500, 1000);
+                        esQueryWrapper.between(ProductBaseVo::getMemberPrice, 500, 1000);
                         break;
                     case "4":
-                        esQueryWrapper.ge(ProductBaseVo::getMarketPrice, 1000);
+                        esQueryWrapper.ge(ProductBaseVo::getMemberPrice, 1000);
                         break;
                 }
             }

+ 16 - 1
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProtocolInfoServiceImpl.java

@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.product.domain.ProtocolProducts;
+import org.dromara.product.mapper.ProtocolProductsMapper;
 import org.dromara.system.api.RemoteComStaffService;
 import org.springframework.stereotype.Service;
 import org.dromara.product.domain.bo.ProtocolInfoBo;
@@ -34,6 +36,8 @@ public class ProtocolInfoServiceImpl  extends ServiceImpl<ProtocolInfoMapper, Pr
 
     private final ProtocolInfoMapper baseMapper;
 
+    private final ProtocolProductsMapper protocolProductsMapper;
+
     @DubboReference
     private RemoteComStaffService remoteComStaffService;
 
@@ -64,9 +68,20 @@ public class ProtocolInfoServiceImpl  extends ServiceImpl<ProtocolInfoMapper, Pr
         LambdaQueryWrapper<ProtocolInfo> lqw = buildQueryWrapper(bo);
         Page<ProtocolInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         result.getRecords().forEach(item -> {
-            Map<Long, String> staffMap = remoteComStaffService.selectStaffNameByIds(Set.of(item.getSalesmanId(), item.getServiceId()));
+            java.util.Set<Long> staffIds = new java.util.HashSet<>();
+            if (item.getSalesmanId() != null) {
+                staffIds.add(item.getSalesmanId());
+            }
+            if (item.getServiceId() != null) {
+                staffIds.add(item.getServiceId());
+            }
+            Map<Long, String> staffMap = remoteComStaffService.selectStaffNameByIds(staffIds);
             item.setSalesmanName(staffMap.get(item.getSalesmanId()));
             item.setServiceName(staffMap.get(item.getServiceId()));
+            item.setProductNum(protocolProductsMapper.selectCount(Wrappers.lambdaQuery(ProtocolProducts.class)
+                .eq(ProtocolProducts::getProtocolId, item.getId()))
+            );
+
         });
         return TableDataInfo.build(result);
     }

+ 3 - 0
ruoyi-modules/ruoyi-product/src/main/resources/mapper/product/ProductPoolLinkMapper.xml

@@ -167,6 +167,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="bo.categoryId != null">
                 AND pb.bottom_category_id = #{bo.categoryId}
             </if>
+            <if test="bo.bottomCategoryId != null">
+                AND pb.bottom_category_id = #{bo.bottomCategoryId}
+            </if>
             <!-- 商品状态 -->
             <if test="bo.productStatus != null and bo.productStatus != ''">
                 AND pb.product_status = #{bo.productStatus}