소스 검색

Merge branch 'refs/heads/xiaolu' into master

肖路 1 개월 전
부모
커밋
bab90b03ee

+ 11 - 1
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/controller/pc/IndexProductController.java

@@ -13,6 +13,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 首页
@@ -148,6 +149,15 @@ public class IndexProductController {
         return R.ok(serviceCaseService.getProjectCaseList(recommendId));
     }
 
+    /**
+    * 平台装修-采购指南
+    * */
+    @GetMapping("getProcurementTopicsList")
+    public R<List<ProcurementTopicsVo>> getProcurementTopicsList() {
+        Long recommendId = 2001108545239650398L;
+        return R.ok(procurementTopicsService.getProcurementTopicsList(recommendId));
+    }
+
     /**
      * 查询父级下一级的子集商品分类
      * */
@@ -260,7 +270,7 @@ public class IndexProductController {
     * 获取场景采购下的商品
     * */
     @GetMapping("/getProductProgramProductList/{programId}")
-    public R<List<PcProductVo>> getProductProgramProductList(@PathVariable Long programId) {
+    public R<Map<String, List<PcProductVo>>> getProductProgramProductList(@PathVariable Long programId) {
         return R.ok(productBaseService.getProductProgramProductList(programId));
     }
 

+ 14 - 3
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/controller/pc/MyProductController.java

@@ -192,9 +192,20 @@ public class MyProductController {
     * */
     @PostMapping("/addProductShoppingCart")
     public R addProductShoppingCart(@RequestBody ProductShoppingCartBo bo) {
-
-        bo.setUserId(LoginHelper.getUserId());
-        productShoppingCartService.insertByBo(bo);
+        Long userId = LoginHelper.getUserId();
+        //查看是否存在同一个商品
+        ProductShoppingCart one = productShoppingCartService.getOne(Wrappers.lambdaQuery(ProductShoppingCart.class)
+            .eq(ProductShoppingCart::getUserId, userId)
+            .eq(ProductShoppingCart::getProductId, bo.getProductId())
+        );
+        if(one != null){
+            one.setProductNum(one.getProductNum() + bo.getProductNum());
+            productShoppingCartService.updateById(one);
+            return R.ok();
+        }else {
+            bo.setUserId(userId);
+            productShoppingCartService.insertByBo(bo);
+        }
         return R.ok();
     }
 

+ 4 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/domain/vo/PcProductVo.java

@@ -19,6 +19,10 @@ public class PcProductVo {
      * 产品名称
      */
     private String itemName;
+    /**
+    * 分类名称
+    * */
+    private String categoryName;
     /**
      * 产品编号
      */

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

@@ -118,6 +118,12 @@ public class ProductProgramVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
     /**
      * 多个产品id
      * */

+ 2 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/IProcurementTopicsService.java

@@ -67,4 +67,6 @@ public interface IProcurementTopicsService extends IService<ProcurementTopics>{
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<ProcurementTopicsVo> getProcurementTopicsList(Long recommendId);
 }

+ 1 - 1
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/IProductBaseService.java

@@ -215,7 +215,7 @@ public interface IProductBaseService extends IService<ProductBase>{
     /**
     * PC端场景采购下的商品
      * */
-    List<PcProductVo> getProductProgramProductList(Long programId);
+    Map<String, List<PcProductVo>> getProductProgramProductList(Long programId);
 
     /**
     * PC端协议商品列表

+ 21 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProcurementTopicsServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.product.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,6 +11,10 @@ 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.ProductRecommendLink;
+import org.dromara.product.domain.ServiceCase;
+import org.dromara.product.domain.vo.ProductRecommendLinkVo;
+import org.dromara.product.mapper.ProductRecommendLinkMapper;
 import org.springframework.stereotype.Service;
 import org.dromara.product.domain.bo.ProcurementTopicsBo;
 import org.dromara.product.domain.vo.ProcurementTopicsVo;
@@ -34,6 +39,8 @@ public class ProcurementTopicsServiceImpl  extends ServiceImpl<ProcurementTopics
 
     private final ProcurementTopicsMapper baseMapper;
 
+    private final ProductRecommendLinkMapper productRecommendLinkMapper;
+
     /**
      * 查询采购主题
      *
@@ -152,4 +159,18 @@ public class ProcurementTopicsServiceImpl  extends ServiceImpl<ProcurementTopics
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+
+    @Override
+    public List<ProcurementTopicsVo> getProcurementTopicsList(Long recommendId) {
+        List<ProductRecommendLinkVo> productRecommendLinkVos = productRecommendLinkMapper.selectVoList(Wrappers.lambdaQuery(ProductRecommendLink.class)
+            .eq(ProductRecommendLink::getRecommendId, recommendId));
+        if (CollUtil.isNotEmpty(productRecommendLinkVos)) {
+            List<Long> ProgramIds = productRecommendLinkVos.stream().map(ProductRecommendLinkVo::getProgramId).toList();
+            return baseMapper.selectVoList(Wrappers.lambdaQuery(ProcurementTopics.class)
+                .eq(ProcurementTopics::getIsShow, "1")
+                .in(ProcurementTopics::getId, ProgramIds));
+        }
+        return List.of();
+    }
 }

+ 16 - 13
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProductBaseServiceImpl.java

@@ -487,7 +487,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
      */
     private LambdaEsQueryWrapper<ProductBaseVo> buildEsQueryWrapperForPc(PcProductBo bo) {
         LambdaEsQueryWrapper<ProductBaseVo> wrapper = new LambdaEsQueryWrapper<ProductBaseVo>()
-//            .eq(ProductBaseVo::getProductStatus, 1)
+            .eq(ProductBaseVo::getProductStatus, 1)
             ;
 
         if(ObjectUtil.isNotEmpty(bo.getProductNo())){
@@ -1499,7 +1499,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
                     .or()
                     .like(ProductBaseVo::getBrandName, bo.getSearchKeyword())
                     .or()
-                    .like(ProductBaseVo::getProductNo, bo.getProductNo())
+                    .like(ProductBaseVo::getProductNo, bo.getSearchKeyword())
                 );
             }
 
@@ -1507,16 +1507,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;
                 }
             }
@@ -1527,11 +1527,11 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
                 for (int i = 0; i < sortFields.length; i++) {
                     switch (sortFields[i]) {
                         case "1":
-                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
+//                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
                         case "2":
                             esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getTotalInventory);
                         case "3":
-                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getMarketPrice);
+                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getMemberPrice);
                     }
                 }
             }
@@ -1886,7 +1886,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
      * @param programId
      */
     @Override
-    public List<PcProductVo> getProductProgramProductList(Long programId) {
+    public Map<String, List<PcProductVo>> getProductProgramProductList(Long programId) {
         List<ProductProgramLinkVo> productProgramLinkVos = productProgramLinkMapper.selectVoList(
             Wrappers.lambdaQuery(ProductProgramLink.class)
                 .eq(ProductProgramLink::getProgramId, programId)
@@ -1897,12 +1897,15 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
             lqw.in("b.id", productIds);
             lqw.eq("b.product_status", 1);
             List<ProductBaseVo> productBaseVos = baseMapper.selectAllList(lqw);
-            if (CollUtil.isNotEmpty(productBaseVos)) {
-                return BeanUtil.copyToList(productBaseVos, PcProductVo.class);
+
+            List<PcProductVo> pcProductVos = BeanUtil.copyToList(productBaseVos, PcProductVo.class);
+            //通过分类名称分组
+            Map<String, List<PcProductVo>> map = pcProductVos.stream().collect(Collectors.groupingBy(PcProductVo::getCategoryName));
+            if (CollUtil.isNotEmpty(map)) {
+                return map;
             }
         }
-
-        return List.of();
+        return Map.of();
     }
     /**
      * PC端协议商品列表

+ 12 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/pc/IndexSystemController.java

@@ -50,7 +50,18 @@ public class IndexSystemController {
     private final ISysPriceRangeService sysPriceRangeService;
     //项目类型
     private final ISysProjectTypeService sysProjectTypeService;
-
+    //获取导航信息
+    private final IPlatformNavigationService platformNavigationService;
+    /**
+    * 平台设置-搜索导航
+    * */
+    @GetMapping("/getSearchTitle")
+    public R<List<PlatformNavigation>> getSearchTitle() {
+        List<PlatformNavigation> list = platformNavigationService.list(Wrappers.<PlatformNavigation>lambdaQuery(PlatformNavigation.class)
+            .eq(PlatformNavigation::getNavType, "setting_search")
+        );
+        return R.ok(list);
+    }
     /**
     * 轮播广告(平台装修-轮播广告)
     * */

+ 27 - 0
ruoyi-modules/ruoyi-system/system-Dockerfile

@@ -0,0 +1,27 @@
+# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
+FROM bellsoft/liberica-openjdk-rocky:17.0.15-cds
+#FROM bellsoft/liberica-openjdk-rocky:21.0.7-cds
+#FROM findepi/graalvm:java17-native
+
+LABEL maintainer="Lion Li"
+
+RUN mkdir -p /ruoyi/system/logs \
+    /ruoyi/system/temp \
+    /ruoyi/skywalking/agent
+
+WORKDIR /ruoyi/system
+
+ENV SERVER_PORT=9214 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+
+EXPOSE ${SERVER_PORT}
+
+ADD ./target/ruoyi-system.jar ./app.jar
+
+SHELL ["/bin/bash", "-c"]
+
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
+           #-Dskywalking.agent.service_name=ruoyi-system \
+           #-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \
+           -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
+           -jar app.jar
+

+ 23 - 0
ruoyi-visual/ruoyi-snailjob-server/snailjob-Dockerfile

@@ -0,0 +1,23 @@
+# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
+FROM bellsoft/liberica-openjdk-rocky:17.0.15-cds
+#FROM bellsoft/liberica-openjdk-rocky:21.0.7-cds
+#FROM findepi/graalvm:java17-native
+
+LABEL maintainer="Lion Li"
+
+RUN mkdir -p /ruoyi/snailjob/logs
+
+WORKDIR /ruoyi/snailjob
+
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+
+EXPOSE 8800
+EXPOSE 17888
+
+ADD ./target/ruoyi-snailjob-server.jar ./app.jar
+
+SHELL ["/bin/bash", "-c"]
+
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
+           -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
+           -jar app.jar