diff --git a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java index 7596f4fc..8121a900 100644 --- a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java +++ b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java @@ -30,6 +30,7 @@ public class FrontConfig { "/api/article/list", "/api/pc/getConfig", "/api/pc/index", + "/api/pc/articleCenter", "/api/pc/articleDetail", "/api/login/getScanCode", "/api/login/scanLogin", diff --git a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java index 14a2865b..31e8224a 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java @@ -6,6 +6,7 @@ import com.mdd.common.validator.annotation.IDMust; import com.mdd.front.LikeFrontThreadLocal; import com.mdd.front.service.IArticleService; import com.mdd.front.validate.ArticleCollectValidate; +import com.mdd.front.validate.ArticleSearchValidate; import com.mdd.front.validate.commons.PageValidate; import com.mdd.front.vo.article.ArticleCateVo; import com.mdd.front.vo.article.ArticleCollectVo; @@ -47,6 +48,7 @@ public class ArticleController { */ @GetMapping("/list") public AjaxResult> list(@Validated PageValidate pageValidate, + @Validated ArticleSearchValidate searchValidate, @RequestParam(value = "cid", defaultValue = "0") Integer cid) { Integer userId = LikeFrontThreadLocal.getUserId(); PageResult list = iArticleService.list(pageValidate, cid, userId); diff --git a/server/like-front/src/main/java/com/mdd/front/controller/PcController.java b/server/like-front/src/main/java/com/mdd/front/controller/PcController.java index a16431e8..e8411d83 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/PcController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/PcController.java @@ -4,6 +4,7 @@ import com.mdd.common.core.AjaxResult; import com.mdd.common.validator.annotation.IDMust; import com.mdd.front.LikeFrontThreadLocal; import com.mdd.front.service.IPcService; +import com.mdd.front.vo.PcArticleCenterVo; import com.mdd.front.vo.PcArticleDetailVo; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; import java.util.Map; /** @@ -47,6 +49,18 @@ public class PcController { return AjaxResult.success(config); } + /** + * 资讯中心 + * + * @author fzr + * @return AjaxResult> + */ + @GetMapping("/articleCenter") + public AjaxResult> articleCenter() { + List list = iPcService.articleCenter(); + return AjaxResult.success(list); + } + /** * 文章详情 * diff --git a/server/like-front/src/main/java/com/mdd/front/service/IPcService.java b/server/like-front/src/main/java/com/mdd/front/service/IPcService.java index 81ac2ea0..6b6834f1 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/IPcService.java +++ b/server/like-front/src/main/java/com/mdd/front/service/IPcService.java @@ -1,7 +1,9 @@ package com.mdd.front.service; +import com.mdd.front.vo.PcArticleCenterVo; import com.mdd.front.vo.PcArticleDetailVo; +import java.util.List; import java.util.Map; public interface IPcService { @@ -20,12 +22,20 @@ public interface IPcService { */ Map getConfig(); + /** + * 资讯中心 + * + * @authro fzr + * @return PcArticleCenterVo + */ + List articleCenter(); + /** * 文章详情 * * @author fzr * @param id 文章主键 - * @return Object + * @return PcArticleDetailVo */ PcArticleDetailVo articleDetail(Integer id, Integer userId); diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PcServiceImpI.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PcServiceImpI.java index f7ef6c2a..d12b2265 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PcServiceImpI.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PcServiceImpI.java @@ -13,6 +13,7 @@ import com.mdd.common.mapper.article.ArticleCollectMapper; import com.mdd.common.mapper.article.ArticleMapper; import com.mdd.common.util.*; import com.mdd.front.service.IPcService; +import com.mdd.front.vo.PcArticleCenterVo; import com.mdd.front.vo.PcArticleDetailVo; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -164,6 +165,42 @@ public class PcServiceImpI implements IPcService { return config; } + @Override + public List articleCenter() { + List articleCategoryList = articleCategoryMapper.selectList( + new QueryWrapper() + .eq("is_show", 1) + .eq("is_delete", 0) + .orderByDesc(Arrays.asList("sort", "id"))); + + List list = new LinkedList<>(); + for (ArticleCategory articleCategory : articleCategoryList) { + List
articleList = articleMapper.selectList(new QueryWrapper
() + .eq("cid", articleCategory.getId()) + .eq("is_show", 1) + .eq("is_delete", 0) + .orderByDesc(Arrays.asList("sort", "id")) + .last("limit 10")); + + List> articles = new LinkedList<>(); + for (Article article : articleList) { + Map a = new LinkedHashMap<>(); + a.put("id", article.getId()); + a.put("title", article.getTitle()); + a.put("image", UrlUtils.toAbsoluteUrl(article.getImage())); + articles.add(a); + } + + PcArticleCenterVo vo = new PcArticleCenterVo(); + vo.setId(articleCategory.getId()); + vo.setName(articleCategory.getName()); + vo.setArticle(articles); + list.add(vo); + } + + return list; + } + /** * 文章详情 * @@ -191,12 +228,12 @@ public class PcServiceImpI implements IPcService { // 分类名称 ArticleCategory articleCategory = articleCategoryMapper.selectOne( new QueryWrapper() - .eq("id", article.getId()) + .eq("id", article.getCid()) .eq("is_delete", 0)); // 上一条记录 Article prev = articleMapper.selectOne(new QueryWrapper
() - .select() + .select("id,title") .lt("id", id) .eq("is_delete", 0) .orderByDesc(Arrays.asList("sort", "id")) @@ -217,6 +254,25 @@ public class PcServiceImpI implements IPcService { .eq("is_delete", 0) .last("limit 1")); + // 最新资讯 + List
news = articleMapper.selectList(new QueryWrapper
() + .select("id,title,image,create_time,update_time") + .eq("cid", article.getCid()) + .eq("is_delete", 0) + .orderByDesc("id") + .last("limit 8")); + + List> newsList = new LinkedList<>(); + for (Article newArticle : news) { + Map newsMap = new LinkedHashMap<>(); + newsMap.put("id", newArticle.getId()); + newsMap.put("title", newArticle.getTitle()); + newsMap.put("image", UrlUtils.toAbsoluteUrl(newArticle.getImage())); + newsMap.put("createTime", TimeUtils.timestampToDate(newArticle.getCreateTime())); + newsMap.put("updateTime", TimeUtils.timestampToDate(newArticle.getUpdateTime())); + newsList.add(newsMap); + } + // 处理数据 PcArticleDetailVo vo = new PcArticleDetailVo(); BeanUtils.copyProperties(article, vo); @@ -224,6 +280,7 @@ public class PcServiceImpI implements IPcService { vo.setUpdateTime(TimeUtils.timestampToDate(vo.getUpdateTime())); vo.setCategory(StringUtils.isNotNull(articleCategory) ? articleCategory.getName() : ""); vo.setIsCollect(StringUtils.isNotNull(collect) ? 1 : 0); + vo.setNews(newsList); vo.setPrev(null); vo.setNext(null); diff --git a/server/like-front/src/main/java/com/mdd/front/validate/ArticleSearchValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/ArticleSearchValidate.java new file mode 100644 index 00000000..3192a356 --- /dev/null +++ b/server/like-front/src/main/java/com/mdd/front/validate/ArticleSearchValidate.java @@ -0,0 +1,19 @@ +package com.mdd.front.validate; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 文章搜索参数 + */ +@Data +public class ArticleSearchValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + private String keyword; + + private String sort; + +} diff --git a/server/like-front/src/main/java/com/mdd/front/vo/PcArticleCenterVo.java b/server/like-front/src/main/java/com/mdd/front/vo/PcArticleCenterVo.java new file mode 100644 index 00000000..06149496 --- /dev/null +++ b/server/like-front/src/main/java/com/mdd/front/vo/PcArticleCenterVo.java @@ -0,0 +1,17 @@ +package com.mdd.front.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 资讯中心数据 + */ +@Data +public class PcArticleCenterVo implements Serializable { + + private Integer id; + private String name; + private Object article; + +} diff --git a/server/like-front/src/main/java/com/mdd/front/vo/PcArticleDetailVo.java b/server/like-front/src/main/java/com/mdd/front/vo/PcArticleDetailVo.java index f420da96..f8e60170 100644 --- a/server/like-front/src/main/java/com/mdd/front/vo/PcArticleDetailVo.java +++ b/server/like-front/src/main/java/com/mdd/front/vo/PcArticleDetailVo.java @@ -13,6 +13,7 @@ public class PcArticleDetailVo implements Serializable { private Integer id; private Integer cid; private String category; + private String title; private String intro; private String summary; private String image; @@ -25,6 +26,6 @@ public class PcArticleDetailVo implements Serializable { private String updateTime; private Object prev; private Object next; - + private Object news; }