tsurumure 1 сар өмнө
parent
commit
b0a31ac55c

+ 4 - 1
docker-compose.yml

@@ -2,12 +2,15 @@ version: "2"
 services:
   # 必须是小写
   backendsys-service:
+    build:
+      context: .
+      dockerfile: Dockerfile
     # 指定容器名称
     container_name: backendsys
     # 重启机制
     restart: always
     # 必须是小写
-    image: backendsys
+    image: backendsys:latest
     volumes:
       - /home/BackendSys/libs/:/app/build/libs/
       - /home/BackendSys/uploads/:/home/BackendSys/uploads/

+ 10 - 1
src/main/java/com/backendsys/modules/cms/article/controller/ArticleCategoryController.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.cms.article.controller;
 import com.backendsys.modules.cms.article.entity.ArticleCategory;
 import com.backendsys.modules.cms.article.service.ArticleCategoryService;
 import com.backendsys.modules.common.aspect.SysLog;
+import com.backendsys.modules.common.config.security.annotations.Anonymous;
 import com.backendsys.modules.common.utils.Result;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -22,10 +23,18 @@ public class ArticleCategoryController {
     @Operation(summary = "获取资讯分类列表")
     @PreAuthorize("@sr.hasPermission('10')")
     @GetMapping("/api/cms/article/getArticleCategoryList")
-    public Result getArticleCategory(@Validated ArticleCategory articleCategory) {
+    public Result getArticleCategoryList(@Validated ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.selectArticleCategoryList(articleCategory));
     }
 
+    @Anonymous
+    @Operation(summary = "获取资讯分类列表 (公开)")
+    @GetMapping("/api/public/cms/article/getArticleCategoryList")
+    public Result getArticleCategoryListPublic(@Validated ArticleCategory articleCategory) {
+        articleCategory.setStatus(1);
+        return Result.success().put("data", articleCategoryService.selectArticleCategoryListPublic(articleCategory));
+    }
+
     @Operation(summary = "获取资讯分类详情")
     @PreAuthorize("@sr.hasPermission('10.2.1')")
     @GetMapping("/api/cms/article/getArticleCategoryDetail")

+ 18 - 1
src/main/java/com/backendsys/modules/cms/article/controller/ArticleController.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.cms.article.controller;
 import com.backendsys.modules.cms.article.entity.Article;
 import com.backendsys.modules.cms.article.service.ArticleService;
 import com.backendsys.modules.common.aspect.SysLog;
+import com.backendsys.modules.common.config.security.annotations.Anonymous;
 import com.backendsys.modules.common.utils.Result;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -22,7 +23,15 @@ public class ArticleController {
     @Operation(summary = "获取资讯列表")
     @PreAuthorize("@sr.hasPermission('10.3')")
     @GetMapping("/api/cms/article/getArticleList")
-    public Result getArticle(@Validated Article article) {
+    public Result getArticleList(@Validated Article article) {
+        return Result.success().put("data", articleService.selectArticleList(article));
+    }
+
+    @Anonymous
+    @Operation(summary = "获取资讯列表 (公开)")
+    @GetMapping("/api/public/cms/article/getArticleList")
+    public Result getArticleListPublic(@Validated Article article) {
+        article.setStatus(1);
         return Result.success().put("data", articleService.selectArticleList(article));
     }
 
@@ -33,6 +42,14 @@ public class ArticleController {
         return Result.success().put("data", articleService.selectArticleDetail(article));
     }
 
+    @Anonymous
+    @Operation(summary = "获取资讯详情 (公共)")
+    @GetMapping("/api/public/cms/article/getArticleDetail")
+    public Result getArticleDetailPublic(@Validated(Article.DetailByUid.class) Article article) {
+        article.setStatus(1);
+        return Result.success().put("data", articleService.selectArticleDetailPublic(article));
+    }
+
     @SysLog("创建资讯")
     @Operation(summary = "创建资讯")
     @PreAuthorize("@sr.hasPermission('10.3.2')")

+ 1 - 1
src/main/java/com/backendsys/modules/cms/article/dao/ArticleDao.java

@@ -11,5 +11,5 @@ import java.util.Map;
 public interface ArticleDao extends BaseMapper<Article> {
     List<Map<String, Object>> selectArticleList(Article article);
     Map<String, Object> selectArticleDetail(Article article);
-//    Article selectArticle(Article article);
+    Map<String, Object> selectArticleDetailFull(Article article);
 }

+ 2 - 0
src/main/java/com/backendsys/modules/cms/article/entity/Article.java

@@ -16,6 +16,7 @@ import java.util.List;
 public class Article {
 
     public static interface Detail{}
+    public static interface DetailByUid{}
     public static interface Create{}
     public static interface Update{}
     public static interface Delete{}
@@ -29,6 +30,7 @@ public class Article {
     @TableField("id")
     @NotNull(message="article_id 不能为空", groups = { Detail.class, Update.class, Delete.class })
     private Long article_id;
+    @NotEmpty(message="uid 不能为空", groups = { DetailByUid.class })
     private String uid;
     private String thumb;
     @TableField(exist = false)

+ 2 - 0
src/main/java/com/backendsys/modules/cms/article/service/ArticleCategoryService.java

@@ -10,6 +10,8 @@ public interface ArticleCategoryService {
 
     // 获取资讯列表
     PageEntity selectArticleCategoryList(ArticleCategory articleCategory);
+    List<ArticleCategory> selectArticleCategoryListPublic(ArticleCategory articleCategory);
+
     // 获取资讯列表 (视图)
     List<ArticleCategory> selectArticleCategory(ArticleCategory articleCategory);
     // 获取资讯详情

+ 2 - 0
src/main/java/com/backendsys/modules/cms/article/service/ArticleService.java

@@ -11,6 +11,8 @@ public interface ArticleService {
     PageEntity selectArticleList(Article article);
     // 获取资讯详情
     Map<String, Object> selectArticleDetail(Article article);
+    // 获取资讯详情 (公开)
+    Map<String, Object> selectArticleDetailPublic(Article article);
 
     // 获取资讯详情 (视图)
     Article selectArticle(String lang, String uid);

+ 5 - 0
src/main/java/com/backendsys/modules/cms/article/service/impl/ArticleCategoryServiceImpl.java

@@ -38,6 +38,11 @@ public class ArticleCategoryServiceImpl implements ArticleCategoryService {
         return new PageInfoResult(list).toEntity();
     }
 
+    @Override
+    public List<ArticleCategory> selectArticleCategoryListPublic(ArticleCategory articleCategory) {
+        return articleCategoryDao.selectArticleCategoryList(articleCategory);
+    }
+
     /**
      * 获取资讯列表 (视图)
      */

+ 10 - 0
src/main/java/com/backendsys/modules/cms/article/service/impl/ArticleServiceImpl.java

@@ -69,6 +69,16 @@ public class ArticleServiceImpl implements ArticleService {
         return detail;
     }
 
+    /**
+     * 获取资讯详情 (公开)
+     */
+    @Override
+    public Map<String, Object> selectArticleDetailPublic(Article article) {
+        Map<String, Object> detail = articleDao.selectArticleDetailFull(article);
+        if (detail == null) throw new CustException("资讯不存在");
+        return detail;
+    }
+
     /**
      * 获取资讯详情 (视图)
      */

+ 9 - 0
src/main/java/com/backendsys/modules/cms/banner/controller/BannerController.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.cms.banner.controller;
 import com.backendsys.modules.cms.banner.entity.Banner;
 import com.backendsys.modules.cms.banner.service.BannerService;
 import com.backendsys.modules.common.aspect.SysLog;
+import com.backendsys.modules.common.config.security.annotations.Anonymous;
 import com.backendsys.modules.common.utils.Result;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,6 +27,14 @@ public class BannerController {
         return Result.success().put("data", bannerService.selectBannerList(banner));
     }
 
+    @Anonymous
+    @Operation(summary = "获取幻灯片列表 (公开)")
+    @GetMapping("/api/public/cms/banner/getBannerList")
+    public Result getBannerPublic(@Validated Banner banner) {
+        banner.setStatus(1);
+        return Result.success().put("data", bannerService.selectBannerList(banner));
+    }
+
     @Operation(summary = "获取幻灯片详情")
     @PreAuthorize("@sr.hasPermission('10.1.1')")
     @GetMapping("/api/cms/banner/getBannerDetail")

+ 8 - 0
src/main/java/com/backendsys/modules/cms/page/controller/PageController.java

@@ -2,6 +2,7 @@ package com.backendsys.modules.cms.page.controller;
 
 import com.backendsys.modules.cms.page.entity.Page;
 import com.backendsys.modules.cms.page.service.PageService;
+import com.backendsys.modules.common.config.security.annotations.Anonymous;
 import com.backendsys.modules.common.utils.Result;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -32,6 +33,13 @@ public class PageController {
         return Result.success().put("data", pageService.selectPageDetail(page));
     }
 
+    @Anonymous
+    @Operation(summary = "获取单页详情 (公开)")
+    @GetMapping("/api/public/cms/page/getPageDetail")
+    public Result getPageDetailPublic(@Validated(Page.Detail.class) Page page) {
+        return Result.success().put("data", pageService.selectPageDetailPublic(page));
+    }
+
     @Operation(summary = "创建单页")
     @PreAuthorize("@sr.hasPermission('10.4.2')")
     @PostMapping("/api/cms/page/createPage")

+ 1 - 0
src/main/java/com/backendsys/modules/cms/page/dao/PageDao.java

@@ -12,5 +12,6 @@ public interface PageDao extends BaseMapper<Page> {
 
     List<Page> selectPageList(Page page);
     Map<String, Object> selectPageDetail(Page page);
+    Map<String, Object> selectPageDetailFull(Page page);
 
 }

+ 2 - 0
src/main/java/com/backendsys/modules/cms/page/service/PageService.java

@@ -11,6 +11,8 @@ public interface PageService {
     PageEntity selectPageList(Page page);
     // 获取单页详情
     Map<String, Object> selectPageDetail(Page page);
+    // 获取单页详情 (公开)
+    Map<String, Object> selectPageDetailPublic(Page page);
     // 获取单页详情 (视图)
     Page selectPage(String lang, String page_sign);
     // 创建单页

+ 10 - 0
src/main/java/com/backendsys/modules/cms/page/service/impl/PageServiceImpl.java

@@ -47,6 +47,16 @@ public class PageServiceImpl implements PageService {
         return detail;
     }
 
+    /**
+     * 获取单页详情 (公开)
+     */
+    @Override
+    public Map<String, Object> selectPageDetailPublic(Page page) {
+        Map<String, Object> detail = pageDao.selectPageDetailFull(page);
+        if (detail == null) throw new CustException("单页不存在");
+        return detail;
+    }
+
     /**
      * 获取单页详情 (视图)
      */

+ 60 - 0
src/main/resources/mapper/cms/article/ArticleDao.xml

@@ -33,6 +33,7 @@
         a.create_time create_time,
         a.update_time update_time
     </sql>
+
     <sql id="includeArticleTranslation">
         id,
         article_id,
@@ -53,6 +54,29 @@
         LEFT JOIN cms_article_i18n at ON a.id = at.article_id
     </sql>
 
+    <sql id="includeArticleDetailFull">
+        a.id id,
+        a.id article_id,
+        at.language,
+        a.uid uid,
+        COALESCE(a.thumb, '') thumb,
+        uf.user_id user_id,
+        COALESCE(uf.nickname, '') user_nickname,
+        ac.id category_id,
+        ac.category_name category_name,
+
+        at.title,
+        at.description,
+        at.content,
+        COALESCE(at.meta_keyword, '') meta_keyword,
+        COALESCE(at.meta_description, '') meta_description,
+
+        a.status status,
+        a.is_top is_top,
+        a.create_time create_time,
+        a.update_time update_time
+    </sql>
+
 <!--    <resultMap id="resultMapArticle" type="com.backendsys.modules.cms.article.entity.Article">-->
     <resultMap id="resultMapArticle" type="java.util.LinkedHashMap">
         <id property="id" column="id" jdbcType="BIGINT" />
@@ -99,6 +123,29 @@
         </collection>
     </resultMap>
 
+    <resultMap id="resultMapArticleDetailFull" type="java.util.LinkedHashMap">
+        <id property="id" column="id" jdbcType="BIGINT" />
+        <result property="article_id" column="article_id" javaType="java.lang.Long" />
+        <result property="uid" column="uid" />
+        <result property="language" column="language" />
+        <result property="thumb" column="thumb" />
+        <result property="user_id" column="user_id" javaType="java.lang.Long" />
+        <result property="user_nickname" column="user_nickname" />
+        <result property="category_id" column="category_id" javaType="java.lang.Long" />
+        <result property="category_name" column="category_name" />
+
+        <result property="title" column="title" />
+        <result property="content" column="content" />
+        <result property="description" column="description" />
+        <result property="meta_keyword" column="meta_keyword" />
+        <result property="meta_description" column="meta_description" />
+
+        <result property="status" column="status" javaType="java.lang.Integer" />
+        <result property="is_top" column="is_top" javaType="java.lang.Integer" />
+        <result property="create_time" column="create_time" />
+        <result property="update_time" column="update_time" />
+    </resultMap>
+
 
     <!-- 查 列表 -->
     <select id="selectArticleList" resultMap="resultMapArticle">
@@ -146,6 +193,19 @@
         </where>
     </select>
 
+    <!-- 查 详情 完整 -->
+    <select id="selectArticleDetailFull" resultMap="resultMapArticleDetailFull">
+        SELECT <include refid="includeArticleDetailFull" />
+        FROM cms_article a
+        <include refid="leftJoinCategory" />
+        <include refid="leftJoinUser" />
+        <include refid="leftJoinTranslations" />
+        WHERE
+            at.language = #{lang}
+            AND a.uid = #{uid}
+            AND a.status = #{status}
+    </select>
+
     <!-- 查 翻译详情 (子查询) -->
     <select id="queryTranslationsById" resultType="java.util.LinkedHashMap">
         SELECT <include refid="includeArticleTranslation" />

+ 36 - 1
src/main/resources/mapper/cms/page/PageDao.xml

@@ -26,6 +26,20 @@
         COALESCE(meta_description, '') meta_description
     </sql>
 
+    <sql id="includePageDetailFull">
+        p.id id,
+        p.page_sign page_sign,
+        pt.language,
+        pt.title,
+        pt.description,
+        pt.content,
+        COALESCE(pt.meta_keyword, '') meta_keyword,
+        COALESCE(pt.meta_description, '') meta_description,
+        p.sort sort,
+        p.create_time create_time,
+        p.update_time update_time
+    </sql>
+
     <sql id="leftJoinTranslations">
         LEFT JOIN cms_page_i18n pt ON p.page_sign = pt.page_sign
     </sql>
@@ -40,7 +54,6 @@
         <result property="update_time" column="update_time" />
     </resultMap>
 
-    <!--  -->
     <resultMap id="resultMapPageDetail" type="java.util.LinkedHashMap" >
         <id property="id" column="id" jdbcType="BIGINT" />
         <result property="page_sign" column="page_sign" />
@@ -59,6 +72,20 @@
         </collection>
     </resultMap>
 
+    <resultMap id="resultMapPageDetailFull" type="java.util.LinkedHashMap" >
+        <id property="id" column="id" jdbcType="BIGINT" />
+        <result property="page_sign" column="page_sign" />
+        <result property="language" column="language" />
+        <result property="sort" column="sort" javaType="java.lang.Integer" />
+        <result property="page_sign" column="page_sign" />
+        <result property="title" column="title" />
+        <result property="content" column="content" />
+        <result property="description" column="description" />
+        <result property="meta_keyword" column="meta_keyword" />
+        <result property="meta_description" column="meta_description" />
+        <result property="create_time" column="create_time" />
+        <result property="update_time" column="update_time" />
+    </resultMap>
 
     <!-- 查 列表 -->
     <select id="selectPageList" resultMap="resultMapPage">
@@ -87,6 +114,14 @@
         </where>
     </select>
 
+    <!-- 查 详情 完整 -->
+    <select id="selectPageDetailFull" resultMap="resultMapPageDetailFull">
+        SELECT <include refid="includePageDetailFull" />
+        FROM cms_page p
+        <include refid="leftJoinTranslations" />
+        WHERE pt.language = #{lang} AND p.page_sign = #{page_sign}
+    </select>
+
     <!-- 查 翻译详情 (子查询) -->
     <select id="queryTranslationsById" resultType="java.util.LinkedHashMap">
         SELECT <include refid="includePageTranslation" />