Commit 27724e37b73dd0e894a32876c9ef064ff1611c65
1 parent
c146806b
feat(shop): 添加产品关联文章功能
- 新增产品关联文章导入接口和相关服务 - 实现产品和文章的关联逻辑- 添加文章和文章类别相关的数据结构和接口
Showing
17 changed files
with
211 additions
and
101 deletions
admin/pom.xml
... | ... | @@ -36,6 +36,11 @@ |
36 | 36 | <optional>true</optional> |
37 | 37 | </dependency> |
38 | 38 | <dependency> |
39 | + <groupId>com.alibaba</groupId> | |
40 | + <artifactId>easyexcel</artifactId> | |
41 | + <version>3.3.4</version> | |
42 | + </dependency> | |
43 | + <dependency> | |
39 | 44 | <groupId>org.springframework.boot</groupId> |
40 | 45 | <artifactId>spring-boot-starter-aop</artifactId> |
41 | 46 | </dependency> | ... | ... |
admin/src/main/java/com/canrd/shop/domain/dto/ImportProductRelatedArticle.java
0 → 100644
1 | +package com.canrd.shop.domain.dto; | |
2 | + | |
3 | +import com.alibaba.excel.annotation.ExcelProperty; | |
4 | +import lombok.Data; | |
5 | + | |
6 | +/** | |
7 | + * @author zgt | |
8 | + * @project canrd-services | |
9 | + * @description | |
10 | + * @date 2024/11/22 | |
11 | + */ | |
12 | +@Data | |
13 | +public class ImportProductRelatedArticle { | |
14 | + @ExcelProperty("Product ID") | |
15 | + private String productId; | |
16 | + @ExcelProperty("Link") | |
17 | + private String link; | |
18 | + @ExcelProperty("Title") | |
19 | + private String title; | |
20 | +} | ... | ... |
shop/src/main/java/com/canrd/shop/common/excel/listenter/ImportRelatedArticleListener.java
0 → 100644
1 | +package com.canrd.shop.common.excel.listenter; | |
2 | + | |
3 | +import com.alibaba.excel.context.AnalysisContext; | |
4 | +import com.alibaba.excel.event.AnalysisEventListener; | |
5 | +import com.alibaba.excel.metadata.data.ReadCellData; | |
6 | +import com.canrd.shop.module.dto.*; | |
7 | +import com.canrd.shop.service.*; | |
8 | +import lombok.NoArgsConstructor; | |
9 | +import lombok.NonNull; | |
10 | +import lombok.RequiredArgsConstructor; | |
11 | + | |
12 | +import java.util.HashSet; | |
13 | +import java.util.List; | |
14 | +import java.util.Map; | |
15 | +import java.util.Set; | |
16 | +import java.util.stream.Collectors; | |
17 | + | |
18 | +/** | |
19 | + * @author zgt | |
20 | + * @project canrd-services | |
21 | + * @description | |
22 | + * @date 2024/11/22 | |
23 | + */ | |
24 | +@RequiredArgsConstructor | |
25 | +@NoArgsConstructor | |
26 | +public class ImportRelatedArticleListener extends AnalysisEventListener<ImportProductRelatedJournal> { | |
27 | + @NonNull | |
28 | + private ProductService productService; | |
29 | + @NonNull | |
30 | + private IProductcategoryrelationService productCategoryrelationService; | |
31 | + @NonNull | |
32 | + private IJournalCategoryRelationService journalCategoryService; | |
33 | + @NonNull | |
34 | + private IJournalService journalService; | |
35 | + @NonNull | |
36 | + private ProductCategoryService productCategoryService; | |
37 | + private Set<String> rootCategoryIds = new HashSet<>(); | |
38 | + @Override | |
39 | + public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) { | |
40 | + List<ProductCategoryDO> list = productCategoryService.list(); | |
41 | + Set<String> parentIds = list.stream().map(ProductCategoryDO::getParentId).collect(Collectors.toSet()); | |
42 | + List<ProductCategoryDO> rootCate = list.stream().filter(cate -> !parentIds.contains(cate.getId())).collect(Collectors.toList()); | |
43 | + rootCategoryIds = rootCate.stream().map(ProductCategoryDO::getId).collect(Collectors.toSet()); | |
44 | + super.invokeHead(headMap, context); | |
45 | + } | |
46 | + | |
47 | + @Override | |
48 | + public void invoke(ImportProductRelatedJournal importProductRelatedJournal, AnalysisContext analysisContext) { | |
49 | + String productId = importProductRelatedJournal.getProductId(); | |
50 | + Journal journal = Journal.builder() | |
51 | + .link(importProductRelatedJournal.getLink()) | |
52 | + .title(importProductRelatedJournal.getTitle()) | |
53 | + .productId(productId) | |
54 | + .build(); | |
55 | + journalService.save(journal); | |
56 | + List<Productcategoryrelation> list = productCategoryrelationService.lambdaQuery() | |
57 | + .eq(Productcategoryrelation::getProductId, productId) | |
58 | + .in(Productcategoryrelation::getCategoryId, rootCategoryIds) | |
59 | + .list(); | |
60 | + List<JournalCategoryRelation> relations = list.stream().map(productcategoryrelation -> JournalCategoryRelation.builder() | |
61 | + .journalId(journal.getId()) | |
62 | + .categoryId(productcategoryrelation.getCategoryId()) | |
63 | + .build()).collect(Collectors.toList()); | |
64 | + journalCategoryService.saveBatch(relations); | |
65 | + } | |
66 | + | |
67 | + @Override | |
68 | + public void doAfterAllAnalysed(AnalysisContext analysisContext) { | |
69 | + } | |
70 | +} | ... | ... |
shop/src/main/java/com/canrd/shop/controller/ProductController.java
... | ... | @@ -4,9 +4,11 @@ import cn.hutool.core.collection.CollUtil; |
4 | 4 | import com.alibaba.excel.EasyExcel; |
5 | 5 | import com.canrd.shop.common.constant.ServerResult; |
6 | 6 | import com.canrd.shop.common.excel.listenter.ImportRelatedCategoryListenter; |
7 | +import com.canrd.shop.common.excel.listenter.ImportRelatedArticleListener; | |
7 | 8 | import com.canrd.shop.common.exception.BusinessException; |
8 | 9 | import com.canrd.shop.common.jsr303.OperateGroup; |
9 | 10 | import com.canrd.shop.config.StaticHtmlConfig; |
11 | +import com.canrd.shop.module.dto.ImportProductRelatedJournal; | |
10 | 12 | import com.canrd.shop.module.dto.ProductCategoryDO; |
11 | 13 | import com.canrd.shop.module.dto.ProductDO; |
12 | 14 | import com.canrd.shop.module.dto.ProductFunctionDO; |
... | ... | @@ -14,14 +16,11 @@ import com.canrd.shop.module.vo.ImportRelatedCategoryVo; |
14 | 16 | import com.canrd.shop.module.vo.ProductCategoryQueryVO; |
15 | 17 | import com.canrd.shop.module.vo.ProductQueryVO; |
16 | 18 | import com.canrd.shop.module.vo.ProductVO; |
17 | -import com.canrd.shop.service.IEbCategorysRelationService; | |
18 | -import com.canrd.shop.service.ProductCategoryService; | |
19 | -import com.canrd.shop.service.ProductFunctionService; | |
20 | -import com.canrd.shop.service.ProductService; | |
19 | +import com.canrd.shop.service.*; | |
21 | 20 | import freemarker.template.Configuration; |
22 | 21 | import freemarker.template.Template; |
23 | 22 | import freemarker.template.TemplateException; |
24 | -import org.apache.catalina.Server; | |
23 | +import lombok.NonNull; | |
25 | 24 | import org.apache.commons.lang3.StringUtils; |
26 | 25 | import org.springframework.beans.factory.annotation.Autowired; |
27 | 26 | import org.springframework.beans.factory.annotation.Value; |
... | ... | @@ -32,10 +31,7 @@ import org.springframework.web.multipart.MultipartFile; |
32 | 31 | |
33 | 32 | import javax.annotation.Resource; |
34 | 33 | import java.io.*; |
35 | -import java.lang.reflect.Field; | |
36 | -import java.net.URL; | |
37 | 34 | import java.util.*; |
38 | -import java.util.stream.Stream; | |
39 | 35 | |
40 | 36 | /** |
41 | 37 | * (Product)表控制层 |
... | ... | @@ -47,6 +43,12 @@ import java.util.stream.Stream; |
47 | 43 | @RequestMapping("/shop/product") |
48 | 44 | public class ProductController { |
49 | 45 | @Autowired |
46 | + private IProductcategoryrelationService productCategoryrelationService; | |
47 | + @Autowired | |
48 | + private IJournalCategoryRelationService journalCategoryService; | |
49 | + @Autowired | |
50 | + private IJournalService journalService; | |
51 | + @Autowired | |
50 | 52 | private Configuration freeMarkerConfig; |
51 | 53 | @Value("${spring.profiles.active}") |
52 | 54 | private String activeProfile; |
... | ... | @@ -238,5 +240,16 @@ public class ProductController { |
238 | 240 | return ServerResult.success(); |
239 | 241 | } |
240 | 242 | |
243 | + | |
244 | + @PostMapping("importRelatedJournal") | |
245 | + @ResponseBody | |
246 | + public ServerResult importRelatedJournal(MultipartFile file) throws IOException { | |
247 | + EasyExcel.read(file.getInputStream(), | |
248 | + ImportProductRelatedJournal.class, | |
249 | + new ImportRelatedArticleListener(productService,productCategoryrelationService,journalCategoryService,journalService,productCategoryService)) | |
250 | + .sheet() | |
251 | + .doRead(); | |
252 | + return ServerResult.success(); | |
253 | + } | |
241 | 254 | } |
242 | 255 | ... | ... |
src/main/java/com/order/erp/mapper/ProductcategoryrelationMapper.java renamed to shop/src/main/java/com/canrd/shop/mapper/JournalCategoryRelationMapper.java
1 | -package com.order.erp.mapper; | |
1 | +package com.canrd.shop.mapper; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.Productcategoryrelation; | |
4 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | +import com.canrd.shop.module.dto.JournalCategoryRelation; | |
5 | 5 | |
6 | 6 | /** |
7 | 7 | * <p> |
... | ... | @@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
9 | 9 | * </p> |
10 | 10 | * |
11 | 11 | * @author author |
12 | - * @since 2024-11-14 | |
12 | + * @since 2024-11-25 | |
13 | 13 | */ |
14 | -public interface ProductcategoryrelationMapper extends BaseMapper<Productcategoryrelation> { | |
14 | +public interface JournalCategoryRelationMapper extends BaseMapper<JournalCategoryRelation> { | |
15 | 15 | |
16 | 16 | } | ... | ... |
src/main/java/com/order/erp/mapper/EbCategorysRelationMapper.java renamed to shop/src/main/java/com/canrd/shop/mapper/JournalMapper.java
1 | -package com.order.erp.mapper; | |
1 | +package com.canrd.shop.mapper; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.EbCategorysRelation; | |
4 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | +import com.canrd.shop.module.dto.Journal; | |
5 | 5 | |
6 | 6 | /** |
7 | 7 | * <p> |
... | ... | @@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
9 | 9 | * </p> |
10 | 10 | * |
11 | 11 | * @author author |
12 | - * @since 2024-11-14 | |
12 | + * @since 2024-11-25 | |
13 | 13 | */ |
14 | -public interface EbCategorysRelationMapper extends BaseMapper<EbCategorysRelation> { | |
14 | +public interface JournalMapper extends BaseMapper<Journal> { | |
15 | 15 | |
16 | 16 | } | ... | ... |
shop/src/main/java/com/canrd/shop/module/dto/ImportProductRelatedJournal.java
0 → 100644
1 | +package com.canrd.shop.module.dto; | |
2 | + | |
3 | +import com.alibaba.excel.annotation.ExcelProperty; | |
4 | +import lombok.Data; | |
5 | + | |
6 | +/** | |
7 | + * @author zgt | |
8 | + * @project canrd-services | |
9 | + * @description | |
10 | + * @date 2024/11/22 | |
11 | + */ | |
12 | +@Data | |
13 | +public class ImportProductRelatedJournal { | |
14 | + @ExcelProperty("Product ID") | |
15 | + private String productId; | |
16 | + @ExcelProperty("Link") | |
17 | + private String link; | |
18 | + @ExcelProperty("Title") | |
19 | + private String title; | |
20 | +} | ... | ... |
src/main/java/com/order/erp/domain/model/Productcategoryrelation.java renamed to shop/src/main/java/com/canrd/shop/module/dto/Journal.java
1 | -package com.order.erp.domain.model; | |
1 | +package com.canrd.shop.module.dto; | |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.annotation.TableName; |
4 | 4 | import com.baomidou.mybatisplus.annotation.IdType; |
5 | -import java.time.LocalDateTime; | |
6 | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
7 | 6 | import java.io.Serializable; |
8 | -import io.swagger.annotations.ApiModel; | |
9 | -import io.swagger.annotations.ApiModelProperty; | |
7 | + | |
8 | +import lombok.AllArgsConstructor; | |
10 | 9 | import lombok.Data; |
11 | 10 | import lombok.EqualsAndHashCode; |
11 | +import lombok.NoArgsConstructor; | |
12 | 12 | import lombok.experimental.Accessors; |
13 | +import lombok.experimental.SuperBuilder; | |
13 | 14 | |
14 | 15 | /** |
15 | 16 | * <p> |
... | ... | @@ -17,22 +18,25 @@ import lombok.experimental.Accessors; |
17 | 18 | * </p> |
18 | 19 | * |
19 | 20 | * @author author |
20 | - * @since 2024-11-14 | |
21 | + * @since 2024-11-25 | |
21 | 22 | */ |
22 | 23 | @Data |
23 | 24 | @EqualsAndHashCode(callSuper = false) |
24 | -@Accessors(chain = true) | |
25 | -@TableName("productcategoryrelation") | |
26 | -@ApiModel(value="Productcategoryrelation对象", description="") | |
27 | -public class Productcategoryrelation implements Serializable { | |
25 | +@SuperBuilder | |
26 | +@AllArgsConstructor | |
27 | +@NoArgsConstructor | |
28 | +@TableName("journal") | |
29 | +public class Journal implements Serializable { | |
28 | 30 | |
29 | 31 | private static final long serialVersionUID = 1L; |
30 | 32 | |
31 | - private String productId; | |
33 | + @TableId(value = "id", type = IdType.AUTO) | |
34 | + private Long id; | |
32 | 35 | |
33 | - private String categoryId; | |
36 | + private String link; | |
34 | 37 | |
35 | - private LocalDateTime modifyDate; | |
38 | + private String productId; | |
36 | 39 | |
40 | + private String title; | |
37 | 41 | |
38 | 42 | } | ... | ... |
src/main/java/com/order/erp/domain/model/EbCategorysRelation.java renamed to shop/src/main/java/com/canrd/shop/module/dto/JournalCategoryRelation.java
1 | -package com.order.erp.domain.model; | |
1 | +package com.canrd.shop.module.dto; | |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.annotation.TableName; |
4 | 4 | import com.baomidou.mybatisplus.annotation.IdType; |
5 | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
6 | 6 | import java.io.Serializable; |
7 | -import io.swagger.annotations.ApiModel; | |
8 | -import io.swagger.annotations.ApiModelProperty; | |
7 | + | |
8 | +import lombok.AllArgsConstructor; | |
9 | 9 | import lombok.Data; |
10 | 10 | import lombok.EqualsAndHashCode; |
11 | +import lombok.NoArgsConstructor; | |
11 | 12 | import lombok.experimental.Accessors; |
13 | +import lombok.experimental.SuperBuilder; | |
12 | 14 | |
13 | 15 | /** |
14 | 16 | * <p> |
... | ... | @@ -16,29 +18,24 @@ import lombok.experimental.Accessors; |
16 | 18 | * </p> |
17 | 19 | * |
18 | 20 | * @author author |
19 | - * @since 2024-11-14 | |
21 | + * @since 2024-11-25 | |
20 | 22 | */ |
21 | 23 | @Data |
22 | 24 | @EqualsAndHashCode(callSuper = false) |
23 | -@Accessors(chain = true) | |
24 | -@TableName("eb_categorys_relation") | |
25 | -@ApiModel(value="EbCategorysRelation对象", description="") | |
26 | -public class EbCategorysRelation implements Serializable { | |
25 | +@SuperBuilder | |
26 | +@AllArgsConstructor | |
27 | +@NoArgsConstructor | |
28 | +@TableName("journal_category_relation") | |
29 | +public class JournalCategoryRelation implements Serializable { | |
27 | 30 | |
28 | 31 | private static final long serialVersionUID = 1L; |
29 | 32 | |
30 | 33 | @TableId(value = "id", type = IdType.AUTO) |
31 | 34 | private Long id; |
32 | 35 | |
33 | - private String categoryName; | |
34 | - | |
35 | - private String relatedCategoryName; | |
36 | - | |
37 | - private Integer categoryId; | |
38 | - | |
39 | - private Integer relatedCategoryId; | |
36 | + private Long journalId; | |
40 | 37 | |
41 | - private Integer relevance; | |
38 | + private String categoryId; | |
42 | 39 | |
43 | 40 | |
44 | 41 | } | ... | ... |
shop/src/main/java/com/canrd/shop/module/vo/ProductVO.java
1 | 1 | package com.canrd.shop.module.vo; |
2 | 2 | |
3 | +import com.canrd.shop.module.dto.Journal; | |
3 | 4 | import lombok.*; |
4 | 5 | import lombok.experimental.SuperBuilder; |
5 | 6 | |
... | ... | @@ -145,4 +146,6 @@ public class ProductVO implements Serializable { |
145 | 146 | |
146 | 147 | private List<String> RelatedProductIds; |
147 | 148 | |
149 | + private List<Journal> journals; | |
150 | + | |
148 | 151 | } | ... | ... |
src/main/java/com/order/erp/service/IProductcategoryrelationService.java renamed to shop/src/main/java/com/canrd/shop/service/IJournalCategoryRelationService.java
1 | -package com.order.erp.service; | |
1 | +package com.canrd.shop.service; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.Productcategoryrelation; | |
4 | 3 | import com.baomidou.mybatisplus.extension.service.IService; |
4 | +import com.canrd.shop.module.dto.JournalCategoryRelation; | |
5 | 5 | |
6 | 6 | /** |
7 | 7 | * <p> |
... | ... | @@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.extension.service.IService; |
9 | 9 | * </p> |
10 | 10 | * |
11 | 11 | * @author author |
12 | - * @since 2024-11-14 | |
12 | + * @since 2024-11-25 | |
13 | 13 | */ |
14 | -public interface IProductcategoryrelationService extends IService<Productcategoryrelation> { | |
14 | +public interface IJournalCategoryRelationService extends IService<JournalCategoryRelation> { | |
15 | 15 | |
16 | 16 | } | ... | ... |
src/main/java/com/order/erp/service/IEbCategorysRelationService.java renamed to shop/src/main/java/com/canrd/shop/service/IJournalService.java
1 | -package com.order.erp.service; | |
1 | +package com.canrd.shop.service; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.EbCategorysRelation; | |
4 | 3 | import com.baomidou.mybatisplus.extension.service.IService; |
4 | +import com.canrd.shop.module.dto.Journal; | |
5 | 5 | |
6 | 6 | /** |
7 | 7 | * <p> |
... | ... | @@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.extension.service.IService; |
9 | 9 | * </p> |
10 | 10 | * |
11 | 11 | * @author author |
12 | - * @since 2024-11-14 | |
12 | + * @since 2024-11-25 | |
13 | 13 | */ |
14 | -public interface IEbCategorysRelationService extends IService<EbCategorysRelation> { | |
14 | +public interface IJournalService extends IService<Journal> { | |
15 | 15 | |
16 | 16 | } | ... | ... |
src/main/java/com/order/erp/service/impl/ProductcategoryrelationServiceImpl.java renamed to shop/src/main/java/com/canrd/shop/service/impl/JournalCategoryRelationServiceImpl.java
1 | -package com.order.erp.service.impl; | |
1 | +package com.canrd.shop.service.impl; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.Productcategoryrelation; | |
4 | -import com.order.erp.mapper.ProductcategoryrelationMapper; | |
5 | -import com.order.erp.service.IProductcategoryrelationService; | |
6 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
4 | +import com.canrd.shop.mapper.JournalCategoryRelationMapper; | |
5 | +import com.canrd.shop.module.dto.JournalCategoryRelation; | |
6 | +import com.canrd.shop.service.IJournalCategoryRelationService; | |
7 | 7 | import org.springframework.stereotype.Service; |
8 | 8 | |
9 | 9 | /** |
... | ... | @@ -12,9 +12,9 @@ import org.springframework.stereotype.Service; |
12 | 12 | * </p> |
13 | 13 | * |
14 | 14 | * @author author |
15 | - * @since 2024-11-14 | |
15 | + * @since 2024-11-25 | |
16 | 16 | */ |
17 | 17 | @Service |
18 | -public class ProductcategoryrelationServiceImpl extends ServiceImpl<ProductcategoryrelationMapper, Productcategoryrelation> implements IProductcategoryrelationService { | |
18 | +public class JournalCategoryRelationServiceImpl extends ServiceImpl<JournalCategoryRelationMapper, JournalCategoryRelation> implements IJournalCategoryRelationService { | |
19 | 19 | |
20 | 20 | } | ... | ... |
src/main/java/com/order/erp/service/impl/EbCategorysRelationServiceImpl.java renamed to shop/src/main/java/com/canrd/shop/service/impl/JournalServiceImpl.java
1 | -package com.order.erp.service.impl; | |
1 | +package com.canrd.shop.service.impl; | |
2 | 2 | |
3 | -import com.order.erp.domain.model.EbCategorysRelation; | |
4 | -import com.order.erp.mapper.EbCategorysRelationMapper; | |
5 | -import com.order.erp.service.IEbCategorysRelationService; | |
3 | +import com.canrd.shop.module.dto.Journal; | |
4 | +import com.canrd.shop.service.IJournalService; | |
6 | 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
6 | +import com.canrd.shop.mapper.JournalMapper; | |
7 | 7 | import org.springframework.stereotype.Service; |
8 | 8 | |
9 | 9 | /** |
... | ... | @@ -12,9 +12,9 @@ import org.springframework.stereotype.Service; |
12 | 12 | * </p> |
13 | 13 | * |
14 | 14 | * @author author |
15 | - * @since 2024-11-14 | |
15 | + * @since 2024-11-25 | |
16 | 16 | */ |
17 | 17 | @Service |
18 | -public class EbCategorysRelationServiceImpl extends ServiceImpl<EbCategorysRelationMapper, EbCategorysRelation> implements IEbCategorysRelationService { | |
18 | +public class JournalServiceImpl extends ServiceImpl<JournalMapper, Journal> implements IJournalService { | |
19 | 19 | |
20 | 20 | } | ... | ... |
shop/src/main/java/com/canrd/shop/service/impl/ProductServiceImpl.java
... | ... | @@ -77,6 +77,11 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im |
77 | 77 | @Autowired |
78 | 78 | private IEbCategorysRelationService ebCategorysRelationService; |
79 | 79 | |
80 | + @Autowired | |
81 | + private IJournalCategoryRelationService journalCategoryService; | |
82 | + @Autowired | |
83 | + private IJournalService journalService; | |
84 | + | |
80 | 85 | /** |
81 | 86 | * 通过ID查询单条数据 |
82 | 87 | * <p> |
... | ... | @@ -144,9 +149,11 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im |
144 | 149 | StringJoiner orderByJoiner = new StringJoiner(" when "," order by case pc.id when "," else 0 end "); |
145 | 150 | cateId2Relevance.forEach((k,v)->orderByJoiner.add("'"+k+"'"+" then "+v)); |
146 | 151 | QueryWrapper<ProductDO> objectQueryWrapper = new QueryWrapper<ProductDO>() |
152 | + .eq("ismarketable",true) | |
147 | 153 | .in("pc.id", cateId2Relevance.keySet()) |
148 | 154 | .select("distinct p.id","pc.id") |
149 | 155 | .last(orderByJoiner.toString()); |
156 | + | |
150 | 157 | List<ProductDO> relatedProducts = this |
151 | 158 | .list(objectQueryWrapper); |
152 | 159 | List<String> relatedProductIds = relatedProducts.stream() |
... | ... | @@ -156,6 +163,14 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im |
156 | 163 | .collect(Collectors.toList()); |
157 | 164 | productVO.setRelatedProductIds(relatedProductIds); |
158 | 165 | |
166 | + List<JournalCategoryRelation> journalCategoryRelations = journalCategoryService.lambdaQuery() | |
167 | + .in(JournalCategoryRelation::getCategoryId, categoryIds) | |
168 | + .list(); | |
169 | + List<Long> journalIds = journalCategoryRelations.stream().map(JournalCategoryRelation::getJournalId).collect(Collectors.toList()); | |
170 | + List<Journal> journals = journalService.lambdaQuery() | |
171 | + .in(Journal::getId, journalIds) | |
172 | + .page(new Page<>(1,10)).getRecords(); | |
173 | + productVO.setJournals(journals); | |
159 | 174 | productVO.setPriceShow(productPriceShow); |
160 | 175 | |
161 | 176 | ... | ... |
src/main/resources/mapper/EbCategorysRelationMapper.xml deleted
100644 → 0
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | -<mapper namespace="com.order.erp.mapper.EbCategorysRelationMapper"> | |
4 | - | |
5 | - <!-- 通用查询映射结果 --> | |
6 | - <resultMap id="BaseResultMap" type="com.order.erp.domain.model.EbCategorysRelation"> | |
7 | - <id column="id" property="id" /> | |
8 | - <result column="category_name" property="categoryName" /> | |
9 | - <result column="related_category_name" property="relatedCategoryName" /> | |
10 | - <result column="category_id" property="categoryId" /> | |
11 | - <result column="related_category_id" property="relatedCategoryId" /> | |
12 | - <result column="relevance" property="relevance" /> | |
13 | - </resultMap> | |
14 | - | |
15 | - <!-- 通用查询结果列 --> | |
16 | - <sql id="Base_Column_List"> | |
17 | - id, category_name, related_category_name, category_id, related_category_id, relevance | |
18 | - </sql> | |
19 | - | |
20 | -</mapper> |
src/main/resources/mapper/ProductcategoryrelationMapper.xml deleted
100644 → 0
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | -<mapper namespace="com.order.erp.mapper.ProductcategoryrelationMapper"> | |
4 | - | |
5 | - <!-- 通用查询映射结果 --> | |
6 | - <resultMap id="BaseResultMap" type="com.order.erp.domain.model.Productcategoryrelation"> | |
7 | - <result column="productId" property="productId" /> | |
8 | - <result column="categoryId" property="categoryId" /> | |
9 | - <result column="modifyDate" property="modifyDate" /> | |
10 | - </resultMap> | |
11 | - | |
12 | - <!-- 通用查询结果列 --> | |
13 | - <sql id="Base_Column_List"> | |
14 | - productId, categoryId, modifyDate | |
15 | - </sql> | |
16 | - | |
17 | -</mapper> |