Ver Fonte

4/10 建立订单表,人员关注产品表

lwhhszx há 1 ano atrás
pai
commit
ce01f0ea83

+ 1 - 5
src/main/java/com/example/xiaoshiweixinback/business/utils/LoginUtils.java

@@ -19,11 +19,7 @@ public class LoginUtils {
         ServletRequestAttributes sra = (ServletRequestAttributes) ra;
         HttpServletRequest httpRequest = sra.getRequest();
         String tem = httpRequest.getHeader("Cookie");
-        String token = "";
-        if (tem.contains("token=")) {
-            token = tem.substring(tem.indexOf("=") + 1);
-        }
-        return token;
+        return tem;
 //        List<String> lst = StringUtils.changeStringToString(tem, ";");
 //        final String[] token = {null};
 //        lst.forEach(item -> {

+ 9 - 0
src/main/java/com/example/xiaoshiweixinback/controller/ProductController.java

@@ -4,6 +4,7 @@ package com.example.xiaoshiweixinback.controller;
 import com.example.xiaoshiweixinback.business.common.Constants;
 import com.example.xiaoshiweixinback.business.common.Response;
 import com.example.xiaoshiweixinback.business.common.base.Records;
+import com.example.xiaoshiweixinback.checkLogin.checkLogin;
 import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
 import com.example.xiaoshiweixinback.entity.dto.AssoPersonProductDTO;
 import com.example.xiaoshiweixinback.entity.product.ProductAddDTO;
@@ -66,4 +67,12 @@ public class ProductController {
         records.setData(id);
         return Response.success(records);
     }
+
+    @checkLogin
+    @Operation(summary = "查询关注的产品")
+    @PostMapping("/queryConcernProduct")
+    public Response queryConcernProduct(@RequestBody ProductDTO productDTO) {
+        Records records = productService.queryConcernProduct(productDTO);
+        return Response.success(records);
+    }
 }

+ 1 - 0
src/main/java/com/example/xiaoshiweixinback/entity/dto/GetProductDTO.java

@@ -10,4 +10,5 @@ private List<Integer> categoryIds;
 private String name;
 private Long size;
 private Long current;
+private String personUuid;
 }

+ 1 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/ProductVO.java

@@ -51,4 +51,5 @@ public class ProductVO {
     private String platformLink;
     @Schema(description = "文件信息")
     private List<SystemFile> systemFileList;
+    private Integer concernType;
 }

+ 11 - 5
src/main/java/com/example/xiaoshiweixinback/mapper/ProductMapper.java

@@ -10,16 +10,22 @@ import org.springframework.stereotype.Repository;
 import java.util.List;
 
 /**
-* @author admin
-* @description 针对表【product(产品)】的数据库操作Mapper
-* @createDate 2024-03-29 16:23:21
-* @Entity xiaoshiweixinback.domain.Product
-*/
+ * @author admin
+ * @description 针对表【product(产品)】的数据库操作Mapper
+ * @createDate 2024-03-29 16:23:21
+ * @Entity xiaoshiweixinback.domain.Product
+ */
 @Repository
 public interface ProductMapper extends BaseMapper<Product> {
 
     public List<ProductVO> getProductByCategory(@Param("getProductDTO") GetProductDTO getProductDTO);
+
     public Long getProductCount(@Param("getProductDTO") GetProductDTO getProductDTO);
+
+    public List<ProductVO> getConcernProduct(@Param("getProductDTO") GetProductDTO getProductDTO);
+
+    public Long getConcernProductCount(@Param("getProductDTO") GetProductDTO getProductDTO);
+
 }
 
 

+ 52 - 1
src/main/java/com/example/xiaoshiweixinback/service/ProductService.java

@@ -7,6 +7,7 @@ import com.example.xiaoshiweixinback.business.common.base.Records;
 import com.example.xiaoshiweixinback.business.common.base.SystemFile;
 import com.example.xiaoshiweixinback.business.utils.CacheUtil;
 import com.example.xiaoshiweixinback.business.utils.LoginUtils;
+import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
 import com.example.xiaoshiweixinback.domain.AssoProductFile;
 import com.example.xiaoshiweixinback.domain.Product;
 import com.example.xiaoshiweixinback.entity.dto.GetProductDTO;
@@ -38,6 +39,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
     private final LoginUtils loginUtils;
     private final AssoProductFileService assoProductFileService;
     private final FileManagerService fileManagerService;
+    private final AssoPersonProductService assoPersonProductService;
 
     /**
      * 查询爆款产品
@@ -74,6 +76,19 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
     }
 
     private void loadProduct(List<ProductVO> productVOS) {
+        PersonnelVO personnelVO = null;
+        try {
+            personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
+        } catch (Exception e) {
+
+        }
+        List<AssoPersonProduct> assoPersonProducts = new ArrayList<>();
+        if (personnelVO != null) {
+            String personUuid = personnelVO.getUuid();
+            LambdaQueryWrapper<AssoPersonProduct> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(AssoPersonProduct::getPersonUuid, personUuid);
+            assoPersonProducts = assoPersonProductService.list(queryWrapper);
+        }
         List<AssoProductFile> assoProductFiles = new ArrayList<>();
         List<String> guids = new ArrayList<>();
         if (productVOS == null || productVOS.size() == 0) {
@@ -115,6 +130,11 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
                     }
                 }
             }
+
+            if (assoPersonProducts.size() != 0) {
+                AssoPersonProduct assoPersonProduct = assoPersonProducts.stream().filter(item -> item.getProductId().equals(productVO.getId())).findFirst().orElse(null);
+                productVO.setConcernType(assoPersonProduct.getConcernType());
+            }
         }
     }
 
@@ -137,7 +157,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
         Product product = new Product();
         BeanUtils.copyProperties(productAddDTO, product);
 //        PersonnelVO personnelVO = cacheUtil.getLoginUser(loginUtils.getId());
-        PersonnelVO personnelVO =new PersonnelVO();
+        PersonnelVO personnelVO = new PersonnelVO();
         personnelVO.setUuid("1213");
         product.setCreateId(personnelVO.getUuid());
         product.setIfCustomized(true);
@@ -157,6 +177,37 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
         product.updateById();
         return product;
     }
+
+
+    /**
+     * 查询爆款产品
+     *
+     * @param productDTO
+     * @return
+     */
+    public Records queryConcernProduct(ProductDTO productDTO) {
+        Records records = new Records();
+        Long size = productDTO.getSize();
+        Long current = productDTO.getCurrent();
+        records.setCurrent(current);
+        records.setSize(size);
+        records.setData(new ArrayList<>());
+        records.setTotal(0L);
+        String name = productDTO.getName();
+        PersonnelVO personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
+
+        GetProductDTO getProductDTO = new GetProductDTO();
+        getProductDTO.setName(name);
+        getProductDTO.setCurrent(current);
+        getProductDTO.setSize(size);
+        getProductDTO.setPersonUuid(personnelVO.getUuid());
+            List<ProductVO> productVOs = this.getBaseMapper().getConcernProduct(getProductDTO);
+            Long count = this.getBaseMapper().getConcernProductCount(getProductDTO);
+            this.loadProduct(productVOs);
+            records.setData(productVOs);
+            records.setTotal(count);
+        return records;
+    }
 }
 
 

+ 48 - 1
src/main/resources/mapper/ProductMapper.xml

@@ -4,7 +4,8 @@
 
     <select id="getProductByCategory" resultType="com.example.xiaoshiweixinback.entity.vo.ProductVO">
         select distinct p.id as id,p.name as name,p.description as description,p.sell_platform as sellPlatform,pe.name
-        as createName ,p.create_time as createTime,p.best_selling_brand as bestSellingBrand,p.price as price,p.platform_link as platformLink
+        as createName ,p.create_time as createTime,p.best_selling_brand as bestSellingBrand,p.price as
+        price,p.platform_link as platformLink
         from product as p
         left join asso_product_category as apc on p.id =product_id
         left join person as pe on p.create_id =pe.uuid
@@ -46,4 +47,50 @@
         ) as c
 
     </select>
+
+
+    <select id="getConcernProduct" resultType="com.example.xiaoshiweixinback.entity.vo.ProductVO">
+        select distinct p.id as id,p.name as name,p.description as description,p.sell_platform as sellPlatform,pe.name
+        as createName ,p.create_time as createTime,p.best_selling_brand as bestSellingBrand,p.price as
+        price,p.platform_link as platformLink
+        from
+        asso_person_product as app
+        left join product as p on app.product_id =p.id
+        left join person as pe on p.create_id =pe.uuid
+        <where>
+            app.person_uuid  #{getProductDTO.personUuid}
+            <if test="getProductDTO.name!=null and getProductDTO.name!=''">
+                and p.name like CONCAT('%',#{getProductDTO.name},'%')
+            </if>
+
+            <if test="getProductDTO.current!=null and getProductDTO.size!=null">
+                limit ${(getProductDTO.current -1)*getProductDTO.size},${getProductDTO.current*getProductDTO.size}
+            </if>
+        </where>
+
+    </select>
+
+
+    <select id="getConcernProductCount" resultType="java.lang.Long">
+        select count(*) from ( select distinct p.id as id,p.name as name,p.description as description,p.sell_platform as
+        sellPlatform,pe.name
+        as createName ,p.create_time as createTime,p.best_selling_brand as bestSellingBrand,p.price as
+        price,p.platform_link as platformLink
+        from
+        asso_person_product as app
+        left join product as p on app.product_id =p.id
+        left join person as pe on p.create_id =pe.uuid
+        <where>
+            app.person_uuid  #{getProductDTO.personUuid}
+            <if test="getProductDTO.name!=null and getProductDTO.name!=''">
+                and p.name like CONCAT('%',#{getProductDTO.name},'%')
+            </if>
+
+            <if test="getProductDTO.current!=null and getProductDTO.size!=null">
+                limit ${(getProductDTO.current -1)*getProductDTO.size},${getProductDTO.current*getProductDTO.size}
+            </if>
+        </where>
+        ) as c
+
+    </select>
 </mapper>