Pārlūkot izejas kodu

完成navigation接口

Mure 8 mēneši atpakaļ
vecāks
revīzija
6e635cb695
21 mainītis faili ar 300 papildinājumiem un 93 dzēšanām
  1. 5 4
      db/cms_article.sql
  2. 13 10
      db/cms_navigation.sql
  3. 0 4
      db/cms_navigation_i18n.sql
  4. 9 0
      src/main/java/com/backendsys/controller/TestController.java
  5. 2 1
      src/main/java/com/backendsys/modules/cms/article/controller/ArticleController.java
  6. 0 1
      src/main/java/com/backendsys/modules/cms/article/dao/ArticleI18nDao.java
  7. 4 1
      src/main/java/com/backendsys/modules/cms/article/entity/Article.java
  8. 7 4
      src/main/java/com/backendsys/modules/cms/article/service/impl/ArticleServiceImpl.java
  9. 35 26
      src/main/java/com/backendsys/modules/cms/navigation/controller/NavigationController.java
  10. 2 0
      src/main/java/com/backendsys/modules/cms/navigation/dao/NavigationDao.java
  11. 7 0
      src/main/java/com/backendsys/modules/cms/navigation/dao/NavigationI18nDao.java
  12. 9 4
      src/main/java/com/backendsys/modules/cms/navigation/entity/Navigation.java
  13. 3 0
      src/main/java/com/backendsys/modules/cms/navigation/entity/NavigationI18n.java
  14. 11 1
      src/main/java/com/backendsys/modules/cms/navigation/service/NavigationService.java
  15. 101 0
      src/main/java/com/backendsys/modules/cms/navigation/service/impl/NavigationServiceImpl.java
  16. 5 7
      src/main/java/com/backendsys/modules/cms/siteinfo/controller/SiteInfoController.java
  17. 0 2
      src/main/java/com/backendsys/modules/cms/siteinfo/entity/SiteInfo.java
  18. 24 11
      src/main/resources/mapper/cms/article/ArticleDao.xml
  19. 4 3
      src/main/resources/mapper/cms/article/ArticleI18nDao.xml
  20. 25 14
      src/main/resources/mapper/cms/navigation/NavigationDao.xml
  21. 34 0
      src/main/resources/mapper/cms/navigation/NavigationI18nDao.xml

+ 5 - 4
db/cms_article.sql

@@ -11,6 +11,7 @@ CREATE TABLE `cms_article` (
     `id` BIGINT(10) AUTO_INCREMENT COMMENT 'ID',
     `user_id` BIGINT(10) NOT NULL COMMENT '作者/用户ID',
     `category_id` BIGINT(10) NOT NULL COMMENT '资讯分类ID',
+    `uid` VARCHAR(36) NOT NULL COMMENT 'UID',
     `is_top` TINYINT(1) DEFAULT '-1' COMMENT '是否置顶 (-1否, 1是)',
     `status` TINYINT(1) DEFAULT '1' COMMENT '资讯状态 (-1禁用, 1启用)',
     -- `audit_status` TINYINT(1) DEFAULT '1' COMMENT '审核状态 (-1审核拒绝, 1待审核, 2审核通过)',
@@ -20,8 +21,8 @@ CREATE TABLE `cms_article` (
     INDEX `idx_user_id` (`user_id`)
 ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资讯表';
 
-INSERT INTO cms_article(user_id, category_id, is_top) VALUES
-    (1, 3, 1),
-    (1, 2, -1),
-    (1, 2, -1)
+INSERT INTO cms_article(user_id, category_id, uid, is_top) VALUES
+    (1, 3, '2a2ee08c7d', 1),
+    (1, 2, 'fdd95c7c53', -1),
+    (1, 2, '47add894f7', -1)
 ;

+ 13 - 10
db/cms_navigation.sql

@@ -9,17 +9,20 @@ DROP TABLE IF EXISTS `cms_navigation`;
 CREATE TABLE `cms_navigation` (
     PRIMARY KEY (`id`),
     `id` BIGINT(10) AUTO_INCREMENT COMMENT 'ID',
-    `parent_id` BIGINT(10) NOT NULL DEFAULT '-1' COMMENT '父ID',
+    `parent_id` BIGINT(10) DEFAULT '-1' COMMENT '父ID',
+    `uid` VARCHAR(36) NOT NULL COMMENT 'UID',
     `sort` BIGINT(10) DEFAULT '1' COMMENT '排序',
-    `is_blank` TINYINT(1) DEFAULT '-1' COMMENT '是否跳转窗口 (-1否, 1是)'
+    `is_blank` TINYINT(1) DEFAULT '-1' COMMENT '是否跳转窗口 (-1否, 1是)',
+    UNIQUE KEY `uid_unique` (`uid`)
 ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='导航表';
 
-INSERT INTO cms_navigation(parent_id, sort) VALUES
-    (-1, 6),
-        (1, 1), (1, 2), (1, 3), (1, 4), (1, 5),
-    (-1, 5),
-    (-1, 4),
-    (-1, 3),
-    (-1, 2),
-    (-1, 1)
+INSERT INTO cms_navigation(parent_id, uid, sort) VALUES
+    (-1, 'c605271df4', 6),
+        (1, '6d24a51067', 1),
+        (1, 'f34f0b2b99', 2),
+    (-1, '3f482604bc', 1),
+    (-1, '8920b8e8e4', 4),
+    (-1, 'bb897b34d9', 3),
+    (-1, 'b86f989757', 2),
+    (-1, '6e9d24eb8a', 5)
 ;

+ 0 - 4
db/cms_navigation_i18n.sql

@@ -19,13 +19,9 @@ INSERT INTO cms_navigation_i18n(navigation_id, language, navigation_name, link)
     (1, 'zh', '手表品牌', '/article?category_id=1'),
         (2, 'zh', '劳力士', '/article?category_id=2'),
         (3, 'zh', '万国', '/article?category_id=3'),
-        (4, 'zh', '沛纳海', '/article?category_id=4'),
-        (5, 'zh', '爱彼', '/article?category_id=5'),
     (1, 'en', 'Product', '/article?category_id=1'),
         (2, 'en', 'Rolex', '/article?category_id=2'),
         (3, 'en', 'IWC', '/article?category_id=3'),
-        (4, 'en', 'Panerai', '/article?category_id=4'),
-        (5, 'en', 'Audemars Piguet', '/article?category_id=5'),
     (41, 'zh', '品牌世界', '/page/brand'),
     (41, 'en', 'Brand', '/page/brand'),
     (42, 'zh', '新闻资讯', '/article?category_id=41'),

+ 9 - 0
src/main/java/com/backendsys/controller/TestController.java

@@ -1,5 +1,6 @@
 package com.backendsys.controller;
 
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -681,6 +682,14 @@ public class TestController {
         return UUID.randomUUID().toString();
     }
 
+    @GetMapping("testGetShortUUID")
+    public String testGetShortUUID(Integer length) {
+//        return UUID.randomUUID().toString()
+//            .replace("-", "")
+//            .substring(0, length);
+        return IdUtil.simpleUUID().substring(0, length);
+    }
+
     /**
      * BCrypt算法进行加密
      */

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

@@ -53,9 +53,10 @@ public class ArticleController {
         return Result.success().put("data", articleService.deleteArticle(article));
     }
 
+    @Operation(summary = "删除资讯 (批量)")
     @PreAuthorize("@ss.hasPermi('10.3.4')")
     @DeleteMapping("/api/v2/cms/article/deleteArticleBatch")
-    public Result deleteArticleBatch(@Validated(Article.Delete.class) @RequestBody Article article) {
+    public Result deleteArticleBatch(@Validated(Article.DeleteBatch.class) @RequestBody Article article) {
         return Result.success().put("data", articleService.deleteArticleBatch(article));
     }
 

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

@@ -9,7 +9,6 @@ import java.util.List;
 @Mapper
 public interface ArticleI18nDao extends BaseMapper<ArticleI18n> {
 
-    // 批量插入
     int insertBatch(List<ArticleI18n> translations);
     int updateBatch(List<ArticleI18n> translations);
 

+ 4 - 1
src/main/java/com/backendsys/modules/cms/article/entity/Article.java

@@ -19,6 +19,7 @@ public class Article {
     public static interface Create{}
     public static interface Update{}
     public static interface Delete{}
+    public static interface DeleteBatch{}
 
     @TableField(exist = false)
     private String lang;
@@ -26,9 +27,11 @@ public class Article {
     @TableId(type = IdType.AUTO)
     private Long id;
     @TableField("id")
-    @NotNull(message="article_id 不能为空", groups = { Detail.class, Update.class })
+    @NotNull(message="article_id 不能为空", groups = { Detail.class, Update.class, Delete.class })
     private Long article_id;
+    private String uid;
     @TableField(exist = false)
+    @NotNull(message="article_id 不能为空", groups = { Delete.class })
     private List<Long> article_ids;
     @TableField(exist = false)
     private String title;

+ 7 - 4
src/main/java/com/backendsys/modules/cms/article/service/impl/ArticleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.modules.cms.article.service.impl;
 
+import cn.hutool.core.util.IdUtil;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.cms.article.dao.ArticleDao;
 import com.backendsys.modules.cms.article.dao.ArticleI18nDao;
@@ -45,9 +46,9 @@ public class ArticleServiceImpl implements ArticleService {
      */
     @Override
     public Map<String, Object> selectArticleDetail(Article article) {
-        Map<String, Object> articleDetail = articleDao.selectArticleDetail(article);
-        if (articleDetail == null) throw new CustException("资讯不存在");
-        return articleDetail;
+        Map<String, Object> detail = articleDao.selectArticleDetail(article);
+        if (detail == null) throw new CustException("资讯不存在");
+        return detail;
     }
 
     /**
@@ -57,6 +58,9 @@ public class ArticleServiceImpl implements ArticleService {
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertArticle(Article article) {
 
+        // 生成随机UUID
+        article.setUid(IdUtil.simpleUUID().substring(0, 10));
+
         // 插入
         article.setUser_id(httpRequestUtil.getUserId());
         articleDao.insert(article);
@@ -86,7 +90,6 @@ public class ArticleServiceImpl implements ArticleService {
 
         // 更新
         article.setId(article_id);
-        article.setUser_id(httpRequestUtil.getUserId());
         articleDao.updateById(article);
 
         // 批量更新 (翻译字段)

+ 35 - 26
src/main/java/com/backendsys/modules/cms/navigation/controller/NavigationController.java

@@ -21,35 +21,44 @@ public class NavigationController {
 
     @Operation(summary = "获取导航列表")
     @PreAuthorize("@ss.hasPermi('14.3')")
-    @GetMapping("/api/cms/navigation/getNavigation")
+    @GetMapping("/api/cms/navigation/getNavigationList")
     public Result getNavigation(@Validated Navigation navigation) {
         return Result.success().put("data", navigationService.selectNavigationList(navigation));
     }
 
-//    @PreAuthorize("@ss.hasPermi('14.3.1')")
-//    @GetMapping("/api/cms/navigation/getNavigationDetail")
-//    public Result getNavigationDetail(@Validated(CmsNavigationDTO.Detail.class) CmsNavigationDTO cmsNavigationDTO) {
-//        return Result.success(cmsNavigationService.queryNavigationDetail(cmsNavigationDTO));
-//    }
-//    @PreAuthorize("@ss.hasPermi('14.3.2')")
-//    @PostMapping("/api/cms/navigation/createNavigation")
-//    public Result createNavigation(@Validated(CmsNavigationI18nDTO.Create.class) @RequestBody CmsNavigationI18nDTO cmsNavigationI18nDTO) {
-//        return Result.success(cmsNavigationService.insertNavigationTranslations(cmsNavigationI18nDTO), "创建成功");
-//    }
-//    @PreAuthorize("@ss.hasPermi('14.3.3')")
-//    @PutMapping("/api/cms/navigation/updateNavigation")
-//    public Result updateNavigation(@Validated(CmsNavigationI18nDTO.Update.class) @RequestBody CmsNavigationI18nDTO cmsNavigationI18nDTO) {
-//        return Result.success(cmsNavigationService.updateNavigationTranslations(cmsNavigationI18nDTO), "更新成功");
-//    }
-//    @PreAuthorize("@ss.hasPermi('14.3.4')")
-//    @DeleteMapping("/api/cms/navigation/deleteNavigation")
-//    public Result deleteNavigation(@Validated(CmsNavigationDTO.Delete.class) @RequestBody CmsNavigationDTO cmsNavigationDTO) {
-//        return Result.success(cmsNavigationService.deleteNavigation(cmsNavigationDTO), "删除成功");
-//    }
-//    @PreAuthorize("@ss.hasPermi('14.3.4')")
-//    @DeleteMapping("/api/cms/navigation/deleteNavigationBatch")
-//    public Result deleteNavigationBatch(@Validated(CmsNavigationDTO.Delete.class) @RequestBody CmsNavigationDTO cmsNavigationDTO) {
-//        return Result.success(cmsNavigationService.deleteNavigationBatch(cmsNavigationDTO.getNavigation_ids()), "删除成功");
-//    }
+    @Operation(summary = "获取导航详情")
+    @PreAuthorize("@ss.hasPermi('14.3.1')")
+    @GetMapping("/api/cms/navigation/getNavigationDetail")
+    public Result getNavigationDetail(@Validated(Navigation.Detail.class) Navigation navigation) {
+        return Result.success().put("data", navigationService.selectNavigationDetail(navigation));
+    }
+
+    @Operation(summary = "创建导航")
+    @PreAuthorize("@ss.hasPermi('14.3.2')")
+    @PostMapping("/api/cms/navigation/createNavigation")
+    public Result createNavigation(@Validated(Navigation.Create.class) @RequestBody Navigation navigation) {
+        return Result.success().put("data", navigationService.insertNavigation(navigation));
+    }
+
+    @Operation(summary = "编辑导航")
+    @PreAuthorize("@ss.hasPermi('14.3.3')")
+    @PutMapping("/api/cms/navigation/updateNavigation")
+    public Result updateNavigation(@Validated(Navigation.Update.class) @RequestBody Navigation navigation) {
+        return Result.success().put("data", navigationService.updateNavigation(navigation));
+    }
+
+    @Operation(summary = "删除导航")
+    @PreAuthorize("@ss.hasPermi('14.3.4')")
+    @DeleteMapping("/api/cms/navigation/deleteNavigation")
+    public Result deleteNavigation(@Validated(Navigation.Delete.class) @RequestBody Navigation navigation) {
+        return Result.success().put("data", navigationService.deleteNavigation(navigation));
+    }
+
+    @Operation(summary = "删除导航 (批量)")
+    @PreAuthorize("@ss.hasPermi('14.3.4')")
+    @DeleteMapping("/api/cms/navigation/deleteNavigationBatch")
+    public Result deleteNavigationBatch(@Validated(Navigation.DeleteBatch.class) @RequestBody Navigation navigation) {
+        return Result.success().put("data", navigationService.deleteNavigationBatch(navigation));
+    }
     
 }

+ 2 - 0
src/main/java/com/backendsys/modules/cms/navigation/dao/NavigationDao.java

@@ -9,7 +9,9 @@ import java.util.Map;
 
 @Mapper
 public interface NavigationDao extends BaseMapper<Navigation> {
+
     List<Navigation> selectNavigationList(Navigation navigation);
+    Map<String, Object> selectNavigationDetail(Navigation navigation);
 
 //    Map<String, Object> queryNavigationDetail(CmsNavigationDTO cmsNavigationDTO);
 //    Map<String, Object> queryNavigationDetailPublic(CmsNavigationDTO cmsNavigationDTO);

+ 7 - 0
src/main/java/com/backendsys/modules/cms/navigation/dao/NavigationI18nDao.java

@@ -1,9 +1,16 @@
 package com.backendsys.modules.cms.navigation.dao;
 
+import com.backendsys.modules.cms.article.entity.ArticleI18n;
 import com.backendsys.modules.cms.navigation.entity.NavigationI18n;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 @Mapper
 public interface NavigationI18nDao extends BaseMapper<NavigationI18n> {
+
+    int insertBatch(List<NavigationI18n> translations);
+    int updateBatch(List<NavigationI18n> translations);
+
 }

+ 9 - 4
src/main/java/com/backendsys/modules/cms/navigation/entity/Navigation.java

@@ -2,10 +2,7 @@ package com.backendsys.modules.cms.navigation.entity;
 
 
 import com.backendsys.entity.validator.RangeArray;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Size;
 import lombok.Data;
@@ -21,6 +18,7 @@ public class Navigation {
     public static interface Create{}
     public static interface Update{}
     public static interface Delete{}
+    public static interface DeleteBatch{}
 
     @TableField(exist = false)
     private String lang;
@@ -32,12 +30,19 @@ public class Navigation {
     private Long navigation_id;
 
     @TableField(exist = false)
+    @NotNull(message="navigation_id 不能为空", groups = { DeleteBatch.class })
     private List<Long> navigation_ids;
 
     @TableField(exist = false)
     private String navigation_name;
 
+    @TableField(exist = false)
+    private List<NavigationI18n> translations;
+
     private Long parent_id;
+    private String uid;
+
+    @TableField(insertStrategy = FieldStrategy.DEFAULT)
     @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间", groups = { Create.class, Update.class })
     private Integer sort;
     @RangeArray(message="是否跳转新窗口取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = { Create.class, Update.class })

+ 3 - 0
src/main/java/com/backendsys/modules/cms/navigation/entity/NavigationI18n.java

@@ -15,6 +15,9 @@ public class NavigationI18n {
     public static interface Update{}
     public static interface Delete{}
 
+    @Size(max = 20, message = "菜单名称长度不超过 {max} 字符", groups = { Create.class, Update.class })
+    private Long navigation_id;
+
     @NotEmpty(message="语言不能为空")
     private String language;
     @Size(max = 20, message = "菜单名称长度不超过 {max} 字符", groups = { Create.class, Update.class })

+ 11 - 1
src/main/java/com/backendsys/modules/cms/navigation/service/NavigationService.java

@@ -3,9 +3,19 @@ package com.backendsys.modules.cms.navigation.service;
 import com.backendsys.modules.cms.navigation.entity.Navigation;
 import com.backendsys.utils.response.PageEntity;
 
+import java.util.Map;
+
 public interface NavigationService {
 
     // 获取导航列表
     PageEntity selectNavigationList(Navigation navigation);
-
+    // 获取导航详情
+    Map<String, Object> selectNavigationDetail(Navigation navigation);
+    // 创建导航
+    Map<String, Object> insertNavigation(Navigation navigation);
+    // 编辑导航
+    Map<String, Object> updateNavigation(Navigation navigation);
+    // 删除导航
+    Map<String, Object> deleteNavigation(Navigation navigation);
+    Map<String, Object> deleteNavigationBatch(Navigation navigation);
 }

+ 101 - 0
src/main/java/com/backendsys/modules/cms/navigation/service/impl/NavigationServiceImpl.java

@@ -1,21 +1,31 @@
 package com.backendsys.modules.cms.navigation.service.impl;
 
+import cn.hutool.core.util.IdUtil;
+import com.backendsys.exception.CustException;
 import com.backendsys.modules.cms.navigation.dao.NavigationDao;
+import com.backendsys.modules.cms.navigation.dao.NavigationI18nDao;
 import com.backendsys.modules.cms.navigation.entity.Navigation;
+import com.backendsys.modules.cms.navigation.entity.NavigationI18n;
 import com.backendsys.modules.cms.navigation.service.NavigationService;
 import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageInfoResult;
 import com.backendsys.utils.v2.PageUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class NavigationServiceImpl implements NavigationService {
 
     @Autowired
     private NavigationDao navigationDao;
+    @Autowired
+    private NavigationI18nDao navigationI18nDao;
 
     /**
      * 获取导航列表
@@ -26,4 +36,95 @@ public class NavigationServiceImpl implements NavigationService {
         List<Navigation> list = navigationDao.selectNavigationList(navigation);
         return new PageInfoResult(list).toEntity();
     }
+
+
+    /**
+     * 获取导航详情
+     */
+    @Override
+    public Map<String, Object> selectNavigationDetail(Navigation navigation) {
+        Map<String, Object> detail = navigationDao.selectNavigationDetail(navigation);
+        if (detail == null) throw new CustException("导航不存在");
+        return detail;
+    }
+
+    /**
+     * 创建导航
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> insertNavigation(Navigation navigation) {
+
+        // 生成随机UUID
+        navigation.setUid(IdUtil.simpleUUID().substring(0, 10));
+
+        // 插入
+        navigationDao.insert(navigation);
+        Long navigation_id = navigation.getId();
+
+        // 批量插入 (翻译字段)
+        List<NavigationI18n> translations = navigation.getTranslations().stream()
+            .map(t -> { t.setNavigation_id(navigation_id); return t; })
+            .collect(Collectors.toList());
+        navigationI18nDao.insertBatch(translations);
+
+        return Map.of("navigation_id", navigation_id);
+    }
+
+    /**
+     * 编辑导航
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> updateNavigation(Navigation navigation) {
+        Long navigation_id = navigation.getNavigation_id();
+
+        Navigation navigationDetail = navigationDao.selectById(navigation_id);
+        if (navigationDetail == null) throw new CustException("导航不存在");
+
+        // 更新
+        navigation.setId(navigation_id);
+        navigationDao.updateById(navigation);
+
+        // 批量更新 (翻译字段)
+        List<NavigationI18n> translations = navigation.getTranslations().stream()
+            .map(t -> { t.setNavigation_id(navigation_id); return t; })
+            .collect(Collectors.toList());
+        navigationI18nDao.updateBatch(translations);
+
+        return Map.of("navigation_id", navigation_id);
+    }
+
+    /**
+     * 删除导航
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> deleteNavigation(Navigation navigation) {
+        Long navigation_id = navigation.getNavigation_id();
+
+        Navigation navigationDetail = navigationDao.selectById(navigation_id);
+        if (navigationDetail == null) throw new CustException("导航不存在");
+
+        navigationDao.deleteById(navigation_id);
+        navigationI18nDao.delete(new QueryWrapper<NavigationI18n>().eq("navigation_id", navigation_id));
+
+        return Map.of("navigation_id", navigation_id);
+    }
+
+    /**
+     * 删除导航 (批量)
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> deleteNavigationBatch(Navigation navigation) {
+
+        List<Long> navigation_ids = navigation.getNavigation_ids();
+
+        navigationDao.deleteBatchIds(navigation_ids);
+        navigationI18nDao.delete(new QueryWrapper<NavigationI18n>().in("navigation_id", navigation_ids));
+
+        return Map.of("navigation_ids", navigation_ids);
+    }
+
 }

+ 5 - 7
src/main/java/com/backendsys/modules/cms/siteinfo/controller/SiteInfoController.java

@@ -1,6 +1,5 @@
 package com.backendsys.modules.cms.siteinfo.controller;
 
-import com.backendsys.entity.Cms.CmsSiteInfoDTO;
 import com.backendsys.modules.cms.siteinfo.entity.SiteInfo;
 import com.backendsys.modules.cms.siteinfo.service.SiteInfoService;
 import com.backendsys.modules.common.utils.Result;
@@ -29,12 +28,6 @@ public class SiteInfoController {
         return Result.success().put("data", siteInfoService.selectSiteInfo());
     }
 
-//
-//    @GetMapping("/api/public/cms/site/getSiteInfo")
-//    public Result getSiteInfoPublic(@Validated CmsSiteInfoDTO cmsSiteInfoDTO) {
-//        return Result.success(cmsSiteInfoService.querySiteInfo(cmsSiteInfoDTO));
-//    }
-
     @PreAuthorize("@ss.hasPermi('13.1')")
     @PutMapping("/api/v2/cms/site/updateSiteInfo")
     public Result updateSiteInfo(@Validated(SiteInfo.Update.class) @RequestBody SiteInfo siteInfo) {
@@ -42,4 +35,9 @@ public class SiteInfoController {
         return Result.success().put("data", siteInfoService.updateSiteInfo(siteInfo));
     }
 
+//    @GetMapping("/api/public/cms/site/getSiteInfo")
+//    public Result getSiteInfoPublic(@Validated CmsSiteInfoDTO cmsSiteInfoDTO) {
+//        return Result.success(cmsSiteInfoService.querySiteInfo(cmsSiteInfoDTO));
+//    }
+
 }

+ 0 - 2
src/main/java/com/backendsys/modules/cms/siteinfo/entity/SiteInfo.java

@@ -2,11 +2,9 @@ package com.backendsys.modules.cms.siteinfo.entity;
 
 import com.backendsys.entity.validator.RangeArray;
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Size;
 import lombok.Data;
 

+ 24 - 11
src/main/resources/mapper/cms/article/ArticleDao.xml

@@ -5,6 +5,7 @@
     <sql id="includeArticle">
         a.id id,
         a.id article_id,
+        a.uid uid,
         sf.user_id user_id,
         COALESCE(sf.nickname, '') user_nickname,
         ac.id category_id,
@@ -20,6 +21,7 @@
     <sql id="includeArticleDetail">
         a.id id,
         a.id article_id,
+        a.uid uid,
         sf.user_id user_id,
         COALESCE(sf.nickname, '') user_nickname,
         ac.id category_id,
@@ -52,6 +54,7 @@
     <resultMap id="resultMapArticle" 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="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" />
@@ -67,6 +70,7 @@
     <resultMap id="resultMapArticleDetail" 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="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" />
@@ -98,6 +102,9 @@
             <if test="title != null and title != ''">
                 AND at.title LIKE CONCAT('%', #{title}, '%')
             </if>
+            <if test="uid != null and uid != ''">
+                AND a.uid = #{uid}
+            </if>
             <if test="user_id != null and user_id != ''">
                 AND a.user_id = #{user_id}
             </if>
@@ -120,7 +127,14 @@
         FROM cms_article a
         <include refid="leftJoinCategory" />
         <include refid="leftJoinUser" />
-        WHERE a.id = #{article_id}
+        <where>
+            <if test="uid != null and uid != ''">
+                AND a.uid = #{uid}
+            </if>
+            <if test="article_id != null and article_id != ''">
+                AND a.id = #{article_id}
+            </if>
+        </where>
     </select>
 
     <!-- 查 翻译详情 (子查询) -->
@@ -130,15 +144,14 @@
         WHERE article_id = #{id}
     </select>
 
-    <!--&lt;!&ndash; 查 详情 (公共) (带翻译 Object) (关联查询) &ndash;&gt;-->
-    <!--<select id="queryArticleDetailPublic" resultMap="resultMapArticle">-->
-    <!--    SELECT <include refid="includeArticle" />, content-->
-    <!--    FROM cms_article a-->
-    <!--    <include refid="leftJoinCategory" />-->
-    <!--    <include refid="leftJoinUser" />-->
-    <!--    <include refid="leftJoinTranslations" />-->
-    <!--    WHERE a.id = #{article_id} AND at.language = #{lang}-->
-    <!--</select>-->
-
+    <!-- 查 详情 (公共) (带翻译 Object) (关联查询) -->
+<!--    <select id="queryArticleDetailPublic" resultMap="resultMapArticle">-->
+<!--        SELECT <include refid="includeArticle" />, content-->
+<!--        FROM cms_article a-->
+<!--        <include refid="leftJoinCategory" />-->
+<!--        <include refid="leftJoinUser" />-->
+<!--        <include refid="leftJoinTranslations" />-->
+<!--        WHERE a.uid = #{uid} AND at.language = #{lang}-->
+<!--    </select>-->
 
 </mapper>

+ 4 - 3
src/main/resources/mapper/cms/article/ArticleI18nDao.xml

@@ -5,13 +5,14 @@
     <!-- 批量插入 -->
     <insert id="insertBatch" parameterType="java.util.List">
         INSERT INTO cms_article_i18n (
-            article_id, language, title, description, content, meta_keyword, meta_description
+            article_id, language,
+            title, description, content, meta_keyword, meta_description
         )
         VALUES
         <foreach collection="translations" item="item" separator=",">
         (
-            #{item.article_id}, #{item.language}, #{item.title},
-            #{item.description}, #{item.content},
+            #{item.article_id}, #{item.language},
+            #{item.title}, #{item.description}, #{item.content},
             #{item.meta_keyword}, #{item.meta_description}
         )
         </foreach>

+ 25 - 14
src/main/resources/mapper/cms/navigation/NavigationDao.xml

@@ -6,6 +6,7 @@
         n.id id,
         n.id navigation_id,
         n.parent_id parent_id,
+        n.uid uid,
         nt.navigation_name navigation_name,
         COALESCE(nt.link, '') link,
         n.sort sort,
@@ -15,6 +16,7 @@
     <sql id="includeNavigationDetail">
         n.id id,
         n.id navigation_id,
+        n.uid uid,
         n.parent_id parent_id,
         n.sort sort,
         n.is_blank is_blank
@@ -26,21 +28,23 @@
 
     <resultMap id="resultMapNavigation" type="java.util.LinkedHashMap">
         <id property="id" column="id" jdbcType="BIGINT" />
-        <result property="navigation_id" column="navigation_id" javaType="java.lang.Long"/>
-        <result property="parent_id" column="parent_id" javaType="java.lang.Long"/>
+        <result property="navigation_id" column="navigation_id" javaType="java.lang.Long" />
+        <result property="parent_id" column="parent_id" javaType="java.lang.Long" />
+        <result property="uid" column="uid" />
         <result property="navigation_name" column="navigation_name" />
         <result property="link" column="link" />
-        <result property="sort" column="sort" javaType="java.lang.Integer"/>
+        <result property="sort" column="sort" javaType="java.lang.Integer" />
         <result property="is_blank" column="is_blank" javaType="java.lang.Integer" />
     </resultMap>
 
     <resultMap id="resultMapNavigationDetail" type="java.util.LinkedHashMap">
         <id property="id" column="id" jdbcType="BIGINT" />
-        <result property="navigation_id" column="navigation_id" javaType="java.lang.Long"/>
-        <result property="parent_id" column="parent_id" javaType="java.lang.Long"/>
+        <result property="navigation_id" column="navigation_id" javaType="java.lang.Long" />
+        <result property="parent_id" column="parent_id" javaType="java.lang.Long" />
+        <result property="uid" column="uid" />
         <result property="navigation_name" column="navigation_name" />
         <result property="link" column="link" />
-        <result property="sort" column="sort" javaType="java.lang.Integer"/>
+        <result property="sort" column="sort" javaType="java.lang.Integer" />
         <result property="is_blank" column="is_blank" javaType="java.lang.Integer" />
         <collection property="translations" javaType="java.util.List"
             select="queryTranslationsById" column="id">
@@ -70,10 +74,17 @@
     </select>
 
     <!-- 查 详情 (带翻译 Array) (二次查询) -->
-    <select id="queryNavigationDetail" resultMap="resultMapNavigationDetail">
+    <select id="selectNavigationDetail" resultMap="resultMapNavigationDetail">
         SELECT <include refid="includeNavigationDetail" />
         FROM cms_navigation n
-        WHERE n.id = #{navigation_id}
+        <where>
+            <if test="uid != null and uid != ''">
+                AND n.uid = #{uid}
+            </if>
+            <if test="navigation_id != null and navigation_id != ''">
+                AND n.id = #{navigation_id}
+            </if>
+        </where>
     </select>
 
     <!-- 查 翻译集合 (子查询) -->
@@ -84,12 +95,12 @@
     </select>
 
     <!-- 查 详情 (公共) (带翻译 Object) (关联查询) -->
-    <select id="queryNavigationDetailPublic" resultMap="resultMapNavigation">
-        SELECT <include refid="includeNavigation" />
-        FROM cms_navigation n
-        <include refid="leftJoinTranslations" />
-        WHERE n.id = #{navigation_id} AND nt.language = #{lang}
-    </select>
+<!--    <select id="queryNavigationDetailPublic" resultMap="resultMapNavigation">-->
+<!--        SELECT <include refid="includeNavigation" />-->
+<!--        FROM cms_navigation n-->
+<!--        <include refid="leftJoinTranslations" />-->
+<!--        WHERE n.uid = #{uid} AND nt.language = #{lang}-->
+<!--    </select>-->
 
     <!-- 创建 -->
 <!--    <insert id="insertNavigation" parameterType="com.backendsys.modules.cms.navigation.entity."-->

+ 34 - 0
src/main/resources/mapper/cms/navigation/NavigationI18nDao.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.backendsys.modules.cms.navigation.dao.NavigationI18nDao">
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" parameterType="java.util.List">
+        INSERT INTO cms_navigation_i18n (
+            navigation_id, language,
+            navigation_name, link
+        )
+        VALUES
+        <foreach collection="translations" item="item" separator=",">
+        (
+            #{item.navigation_id}, #{item.language},
+            #{item.navigation_name}, #{item.link}
+        )
+        </foreach>
+    </insert>
+
+    <!-- 批量更新 -->
+    <update id="updateBatch" parameterType="com.backendsys.modules.cms.navigation.entity.NavigationI18n">
+        <foreach collection="translations" item="item" separator=";">
+            UPDATE cms_navigation_i18n
+            <set>
+                <trim suffixOverrides="," suffix=" ">
+                    navigation_name = #{item.navigation_name},
+                    link = #{item.link}
+                </trim>
+            </set>
+            WHERE navigation_id = #{item.navigation_id} AND language = #{item.language}
+        </foreach>
+    </update>
+
+</mapper>