Bläddra i källkod

信息中心V1.3.9

kaick 1 år sedan
förälder
incheckning
553530f937

+ 47 - 7
src/main/java/com/caimei/www/controller/unlimited/ArticleController.java

@@ -7,6 +7,8 @@ import com.caimei.www.pojo.page.*;
 import com.caimei.www.service.page.ArticleService;
 import com.caimei.www.service.page.CmBrandLandingService;
 import com.caimei.www.service.page.ProductService;
+import com.caimei.www.utils.PaginationVo;
+import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import org.springframework.web.server.ServerWebExchange;
 import org.thymeleaf.util.StringUtils;
 
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -59,8 +62,8 @@ public class ArticleController extends BaseController {
         List<BaseLink> typeList = articleService.getArticleTypes();
         List<CmBrandLandingVO> cmBrandLandingList = cmBrandLandingService.getCmBrandLandingList(new CmBrandLanding()
                 .setType("4").setAuthorId(id.toString()));
-        List<ImageLink> infoSelected = articleService.getArticleSelected();
-        List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime();
+        List<ImageLink> infoSelected = articleService.getArticleSelected(0, 5);
+        List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime(0, 3);
         List<ProductList> productSellNumbers = productService.getProductSellNumbers();
         List<BaseLink> data = articleService.getArticleLabels().getData();
         List<ImageLink> Ads = articleService.getLastestInfoAds().getData();
@@ -79,6 +82,7 @@ public class ArticleController extends BaseController {
         return ARTICLE_LIST_PATH;
     }
 
+
     /**
      * 文章列表【旧label】
      */
@@ -98,6 +102,38 @@ public class ArticleController extends BaseController {
         return ARTICLE_LIST_PATH;
     }
 
+    /**
+     * 精选文章和美业资料列表
+     */
+    @GetMapping("/info/articlerecommendation-{id}-{pageNum}.html")
+    public String selectedList(@PathVariable("id") Integer id, @PathVariable("pageNum") Integer pageNum, final Model model) {
+        PageHelper.startPage(pageNum, 10);
+        List<BaseLink> typeList = articleService.getArticleTypes();
+        PaginationVo pageData = null;
+        if (id == 1) {//精选文章
+            List<ImageLink> infoSelected = articleService.getArticleSelected(null, null);
+            pageData = new PaginationVo<ImageLink>(infoSelected);
+        } else {//美业资料
+            List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime(null, null);
+            pageData = new PaginationVo<CmProductArchiveFile>(archiveFiles);
+        }
+        if (id == 1) {//精选文章
+            List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime(0, 3);
+            List<ProductList> productSellNumbers = productService.getProductSellNumbers();
+            model.addAttribute("productSellNumbers", productSellNumbers);//销量前三商品
+            model.addAttribute("archiveFiles", archiveFiles);//最新美业资料top3
+        }
+        List<BaseLink> data = articleService.getArticleLabels().getData();
+        List<ImageLink> Ads = articleService.getLastestInfoAds().getData();
+        model.addAttribute("ads", Ads);
+        model.addAttribute("labels", data);
+        model.addAttribute("articleType", typeList);//导航栏
+        model.addAttribute("pageData", pageData);
+        model.addAttribute("labelId", 0);
+        model.addAttribute("pageNum", pageNum);
+        model.addAttribute("isSearch", true);
+        return ARTICLE_LIST_PATH;
+    }
     /**
      * 文章搜索结果
      */
@@ -156,16 +192,20 @@ public class ArticleController extends BaseController {
         log.info("文章详情访问来源记录完成========》" + source);
         List<BaseLink> data = articleService.getArticleLabels().getData();
         List<ImageLink> Ads = articleService.getLastestInfoAds().getData();
-//        List<Article> articles = articleService.getInfoById(id);
+        List<Article> articles = new ArrayList<>();
+        if (null != article && article.getAutoStatus() == 0) {
+            articles = articleService.getInfoById(id);
+        } else {
+            articles = articleService.getArticleRelatedId(id.toString());
+        }
         String relatedLabels = articleService.relatedLabel(id);
-        List<ImageLink> infoSelected = articleService.getArticleSelected();
-        List<ImageLink> infoRelated = articleService.getArticleRelatedId(id.toString());
-        List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime();
+        List<ImageLink> infoSelected = articleService.getArticleSelected(0, 5);
+        List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime(0, 3);
         List<ProductList> productSellNumbers = productService.getProductSellNumbers();
         model.addAttribute("infoSelected", infoSelected);//精选文章
         model.addAttribute("productSellNumbers", productSellNumbers);//销量前三商品
         model.addAttribute("archiveFiles", archiveFiles);//最新美业资料top3
-        model.addAttribute("articles", infoRelated);//相关文章
+        model.addAttribute("articles", articles);//相关文章
         model.addAttribute("ads", Ads);
         model.addAttribute("labels", data);
         model.addAttribute("article", article);

+ 4 - 4
src/main/java/com/caimei/www/mapper/ArticleDao.java

@@ -53,7 +53,7 @@ public interface ArticleDao {
      * @param
      * @return
      */
-    List<ImageLink> getArticleSelected();
+    List<ImageLink> getArticleSelected(@Param("pageNum") Integer pageNum,@Param("pageSize")  Integer pageSize);
 
     /**
      * 获取精选文章推荐
@@ -61,14 +61,14 @@ public interface ArticleDao {
      * @param
      * @return
      */
-    List<ImageLink> getArticleRelatedId(String relatedId);
+    List<Article> getArticleRelatedId(String relatedId);
     /**
-     * 获取最新美业资料top3
+     * 获取美业资料
      *
      * @param
      * @return
      */
-    List<CmProductArchiveFile> findArchiveFileAddTime();
+    List<CmProductArchiveFile> findArchiveFileAddTime(@Param("pageNum") Integer pageNum,@Param("pageSize")  Integer pageSize);
 
     /**
      * 获取文章广告

+ 4 - 0
src/main/java/com/caimei/www/pojo/page/Article.java

@@ -56,6 +56,10 @@ public class Article implements Serializable {
      * 标签
      */
     private String label;
+    /**
+     * 推荐方式
+     */
+    private Integer autoStatus;
     /**
      * 标签 id数组
      */

+ 3 - 3
src/main/java/com/caimei/www/service/page/ArticleService.java

@@ -35,18 +35,18 @@ public interface ArticleService {
     /**
      * 获取文章推荐
      */
-    List<ImageLink> getArticleSelected();
+    List<ImageLink> getArticleSelected(Integer pageNum,   Integer pageSize);
     /**
      * 获取相关文章
      */
-    List<ImageLink> getArticleRelatedId(String relatedId);
+    List<Article> getArticleRelatedId(String relatedId);
     /**
      * 获取最新美业资料top3
      *
      * @param
      * @return
      */
-    List<CmProductArchiveFile> findArchiveFileAddTime();
+    List<CmProductArchiveFile> findArchiveFileAddTime(Integer pageNum,   Integer pageSize);
     /**
      * 获取相关文章
      */

+ 7 - 6
src/main/java/com/caimei/www/service/page/impl/ArticleServiceImpl.java

@@ -13,6 +13,7 @@ import com.caimei.www.utils.PriceUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.util.StringUtil;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Service;
@@ -96,8 +97,8 @@ public class ArticleServiceImpl implements ArticleService {
      *
      */
     @Override
-    public List<ImageLink> getArticleSelected() {
-        List<ImageLink> selected = articleDao.getArticleSelected();
+    public List<ImageLink> getArticleSelected(Integer pageNum,   Integer pageSize) {
+        List<ImageLink> selected = articleDao.getArticleSelected( pageNum,    pageSize);
         selected.forEach(item -> {
             item.setImage(ImageUtil.getImageURL("", item.getImage(), 0, domain));
         });
@@ -108,8 +109,8 @@ public class ArticleServiceImpl implements ArticleService {
      *
      */
     @Override
-    public List<ImageLink> getArticleRelatedId(String relatedId){
-        List<ImageLink> infoRelated = articleDao.getArticleRelatedId(relatedId);
+    public List<Article> getArticleRelatedId(String relatedId){
+        List<Article> infoRelated = articleDao.getArticleRelatedId(relatedId);
         infoRelated.forEach(item -> {
             item.setImage(ImageUtil.getImageURL("", item.getImage(), 0, domain));
         });
@@ -120,8 +121,8 @@ public class ArticleServiceImpl implements ArticleService {
      *
      */
     @Override
-    public List<CmProductArchiveFile> findArchiveFileAddTime() {
-        List<CmProductArchiveFile> selected = articleDao.findArchiveFileAddTime();
+    public List<CmProductArchiveFile> findArchiveFileAddTime(Integer pageNum,   Integer pageSize) {
+        List<CmProductArchiveFile> selected = articleDao.findArchiveFileAddTime(pageNum,pageSize);
         return selected;
     }
 

+ 113 - 0
src/main/java/com/caimei/www/utils/PaginationVo.java

@@ -0,0 +1,113 @@
+package com.caimei.www.utils;
+
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/4/7
+ */
+@Data
+public class PaginationVo<T> implements Serializable {
+    /** 当前页码 */
+    @Builder.Default
+    private int pageNum = 1;
+    /** 每页大小 */
+    @Builder.Default
+    private int pageSize = 10;
+    /** 总记录数 */
+    private int totalRecord;
+    /** 总页数 */
+    private int totalPage;
+    /** 是否有后一页 */
+    private boolean hasNextPage;
+    /** 是否有前一页 */
+    private boolean hasPreviousPage;
+    /** 查询结果 */
+    List<T> results;
+
+    public PaginationVo(List<T> list) {
+        if (list instanceof com.github.pagehelper.Page) {
+            com.github.pagehelper.Page<T> page = (com.github.pagehelper.Page<T>) list;
+            this.pageNum = page.getPageNum();
+            this.pageSize = page.getPageSize();
+            this.totalRecord = (int) page.getTotal();
+            this.totalPage = page.getPages();
+            setHasPreviousAndNext();
+            this.results = page;
+        } else if (list != null) {
+            this.pageSize = list.size();
+            this.totalRecord = list.size();
+            this.totalPage = 1;
+            this.results = list;
+        }
+    }
+
+    public PaginationVo(int pageNum, int pageSize, int totalRecord, List<T> results) {
+        super();
+        this.pageNum = pageNum;
+        this.pageSize = pageSize;
+        this.totalRecord = totalRecord;
+        this.totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
+        this.results = results;
+        if (this.pageNum < 2) {
+            hasPreviousPage = false;
+        } else {
+            hasPreviousPage = true;
+        }
+        if (this.pageNum < totalPage) {
+            hasNextPage = true;
+        } else {
+            hasNextPage = false;
+        }
+    }
+
+    public PaginationVo(int pageNum, int maxSize, int totalRecord, int totalPage,
+                        List<T> results) {
+        super();
+        this.pageNum = pageNum;
+        this.pageSize = maxSize;
+        this.totalRecord = totalRecord;
+        this.totalPage = totalPage;
+        this.results = results;
+        if (this.pageNum < 2) {
+            hasPreviousPage = false;
+        } else {
+            hasPreviousPage = true;
+        }
+        if (this.pageNum < totalPage) {
+            hasNextPage = true;
+        } else {
+            hasNextPage = false;
+        }
+    }
+
+    public PaginationVo() {super();}
+
+    public void setHasPreviousAndNext() {
+        if (this.pageNum < 2) {
+            hasPreviousPage = false;
+        } else {
+            hasPreviousPage = true;
+        }
+        if (this.pageNum < totalPage) {
+            hasNextPage = true;
+        } else {
+            hasNextPage = false;
+        }
+    }
+
+    public int countTotalPage() {
+        int total = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
+        this.setTotalPage(total);
+        return total;
+    }
+
+    private static final long serialVersionUID = 1L;
+}
+

+ 22 - 6
src/main/resources/mapper/ArticleMapper.xml

@@ -53,14 +53,26 @@
 		and a.auditStatus = 2
 		and NOW() >= a.pubdate
 		order by cr.sort asc, a.pubdate desc
+		<if test="pageNum != null">
+			limit #{pageNum},#{pageSize}
+		</if>
 	</select>
 
-    <select id="getArticleRelatedId" resultType="com.caimei.www.pojo.page.ImageLink" parameterType="string">
-		select  a.id,
-				a.title,
-				a.guidanceImage as image
+    <select id="getArticleRelatedId" resultType="com.caimei.www.pojo.page.Article" parameterType="string">
+		select  a.id as id,
+				a.title as title,
+				a.guidanceImage as image,
+				a.publisher as publisher,
+				a.pubdate as publishDate,
+				a.recommendContent as intro,
+				a.infoContent as content,
+				(IFNULL(c.pv, 0) + IFNULL(a.basePv, 0) + IFNULL((c.num + a.basePraise), 0)) as pv,
+				a.label as label,
+				a.typeId as typeId,
+				a.relatedLabels
 		from cm_related cr
-		left join info a on a.id=cr.relatedId
+				 left join info a on a.id=cr.relatedId
+				 left join info_praise c on a.id = c.infoId
 		where cr.type=1
 		and a.enabledStatus = 1
 		and a.auditStatus = 2
@@ -73,7 +85,10 @@
 		select cf.id,cc.productArchiveId,cf.archiveContentId,fileName, ossName,waterOssName,ossUrl,uploadTime
 		from cm_product_archive_file cf left join cm_product_archive_content cc on cf.archiveContentId = cc.id
 		where cc.type = 3
-		order by addTime desc  limit 0,3
+		order by addTime desc
+		<if test="pageNum != null">
+			limit #{pageNum},#{pageSize}
+		</if>
 	</select>
     <select id="getArticleRelated" resultType="com.caimei.www.pojo.page.Article">
         select
@@ -158,6 +173,7 @@
 		  a.label AS label,
 		  a.typeId AS typeId,
 		  a.keyword AS keyword,
+		  a.autoStatus AS autoStatus,
 		  a.recommendContent AS recommendContent,
 		  a.source AS source,
 		  IFNULL((c.num + a.basePraise), 0) AS likes