diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/ArticlePreviewController.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/ArticlePreviewController.java new file mode 100644 index 0000000..abe86c5 --- /dev/null +++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/ArticlePreviewController.java @@ -0,0 +1,29 @@ +package com.yuexiu.secp.read.controller; + +import com.yuexiu.secp.read.dto.ArticlePreviewDto; +import com.yuexiu.secp.read.model.service.IArticlePreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + + +@RestController +@RequestMapping("/read/article/preview") +public class ArticlePreviewController { + + + @Autowired + private IArticlePreviewService iReadService; + + @GetMapping(value = "/findRecommendedAndPast") + public String findRecommendedAndPast(ArticlePreviewDto articlePreviewDto) { + + return iReadService.findRecommendedAndPast(articlePreviewDto); + } + + + + +} diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IArticlePreviewService.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IArticlePreviewService.java new file mode 100644 index 0000000..96235c2 --- /dev/null +++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IArticlePreviewService.java @@ -0,0 +1,11 @@ +package com.yuexiu.secp.read.model.service; + + +import com.yuexiu.secp.read.dto.ArticlePreviewDto; + +public interface IArticlePreviewService { + + + String findRecommendedAndPast(ArticlePreviewDto articlePreviewDto); + +} diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/ArticlePreviewService.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/ArticlePreviewService.java new file mode 100644 index 0000000..f88088f --- /dev/null +++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/ArticlePreviewService.java @@ -0,0 +1,92 @@ +package com.yuexiu.secp.read.model.service.impl; + + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Iterables; +import com.yuexiu.secp.read.model.dao.ArticlePreviewDao; +import com.yuexiu.secp.read.model.entities.readonly.ArticlePreview; +import com.yuexiu.secp.read.dto.ArticlePreviewDto; +import com.yuexiu.secp.read.model.service.IArticlePreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.*; + +@Service +public class ArticlePreviewService implements IArticlePreviewService { + + + @Autowired + private StringRedisTemplate redisTemplate; + + @Autowired + private ArticlePreviewDao articlePreviewDao; + + + @Override + public String findRecommendedAndPast(ArticlePreviewDto articlePreviewDto) { + //项目的集合信息 + List projectList = new ArrayList<>(); + + //城市的集合信息 + List articlePreviewList = new ArrayList<>(); + + List dataList = new ArrayList<>(); + + //查询是否有最新推荐 + int count = articlePreviewDao.findRecommend(); + if (count < 1) { + return "为空"; + } + //获取当前登录用户 + + //获取我已推荐的文章 + Set recommendIdList = redisTemplate.opsForSet().members("sie:recommend:1"); + //获取所有文章的信息 + Map entries = redisTemplate.opsForHash().entries("sie:read:article"); + + ObjectMapper objectMapper = new ObjectMapper(); + //剔除我已推荐文章 + for (String recommendId : recommendIdList) { + entries.remove(recommendId); + } + Collection values = entries.values(); + + //判断是否有房产 + if (true) { + for (Object value : values) { + //匹配项目,任务状态为已发布 , 推广状态为有效 + ArticlePreview articlePreview = objectMapper.convertValue(value,ArticlePreview.class); + if(articlePreview.getPromotionStatus() == articlePreviewDto.getPromotionStatus() && + articlePreview.getTaskStatus() == articlePreviewDto.getTaskStatus()){ + //往城市里的集合塞数据 + projectList.add(articlePreview); + } + System.out.println(value); + } + } + + + for (Object value : values) { + //匹配城市,任务状态为已发布 , 推广状态为有效 + ArticlePreview articlePreview = objectMapper.convertValue(value,ArticlePreview.class); + if(articlePreview.getPromotionStatus() == articlePreviewDto.getPromotionStatus() && + articlePreview.getTaskStatus() == articlePreviewDto.getTaskStatus()){ + //往城市里的集合塞数据 + articlePreviewList.add(articlePreview); + } + System.out.println(value); + } + + //如果项目类型不为空,合并项目和城市 + if(!CollectionUtils.isEmpty(projectList)){ + Iterables.addAll(dataList, projectList); + Iterables.addAll(dataList, articlePreviewList); + } + + + return "不为空"; + } +}