Browse Source

'优化saas路由、菜单信息-获取菜单列表、菜单信息-根据菜单编号获取详细信息接口,增加备注内容输出展示;优化帮助中心-栏目管理列表接口,创建栏目列表类,增加租户隔离;'

james 1 year ago
parent
commit
013c90430d

+ 2 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/HceCategoryController.java

@@ -4,6 +4,7 @@ package com.usky.system.controller.web;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.system.domain.HceCategory;
 import com.usky.system.service.HceCategoryService;
+import com.usky.system.service.vo.HceCategoryListVO;
 import com.usky.system.service.vo.HceCategoryVO;
 import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +36,7 @@ public class HceCategoryController {
      * @return
      */
     @PostMapping("page")
-    public ApiResult<List<HceCategory>> page(@RequestBody HceCategoryVO hceCategoryVO){
+    public ApiResult<List<HceCategoryListVO>> page(@RequestBody HceCategoryVO hceCategoryVO){
         return ApiResult.success(hceCategoryService.page(hceCategoryVO));
     }
 

+ 8 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/HceCategoryMapper.java

@@ -2,6 +2,10 @@ package com.usky.system.mapper;
 
 import com.usky.system.domain.HceCategory;
 import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.service.vo.HceCategoryListVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,9 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @since 2023-08-29
  */
 public interface HceCategoryMapper extends CrudMapper<HceCategory> {
+    List<HceCategoryListVO> selectMenuTreeAll(@Param("categoryName") String categoryName, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<HceCategoryListVO> selectMenuTreeByUserId(@Param("categoryName") String categoryName, @Param("startTime") String startTime, @Param("endTime") String endTime,@Param("userId") Long userId);
 
+    List<HceCategoryListVO> selectMenuTreeByUserIdOne(@Param("categoryName") String categoryName, @Param("startTime") String startTime, @Param("endTime") String endTime,@Param("tenantId") Integer tenantId);
 }

+ 2 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/HceCategoryService.java

@@ -2,6 +2,7 @@ package com.usky.system.service;
 
 import com.usky.system.domain.HceCategory;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.service.vo.HceCategoryListVO;
 import com.usky.system.service.vo.HceCategoryVO;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -17,7 +18,7 @@ import java.util.List;
  */
 public interface HceCategoryService extends CrudService<HceCategory> {
 
-    List<HceCategory> page(HceCategoryVO hceCategoryVO);
+    List<HceCategoryListVO> page(HceCategoryVO hceCategoryVO);
 
     void add(HceCategory hceCategory);
 

+ 28 - 12
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/HceCategoryServiceImpl.java

@@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.exception.BusinessException;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.system.domain.HceArticle;
 import com.usky.system.domain.HceCategory;
+import com.usky.system.domain.SysUser;
 import com.usky.system.mapper.HceArticleMapper;
 import com.usky.system.mapper.HceCategoryMapper;
 import com.usky.system.service.HceArticleService;
 import com.usky.system.service.HceCategoryService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.system.service.ISysUserService;
+import com.usky.system.service.vo.HceCategoryListVO;
 import com.usky.system.service.vo.HceCategoryVO;
 import org.apache.tomcat.jni.Local;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,18 +39,30 @@ import java.util.stream.Collectors;
 public class HceCategoryServiceImpl extends AbstractCrudService<HceCategoryMapper, HceCategory> implements HceCategoryService {
     @Resource
     private HceArticleMapper hceArticleMapper;
+    @Autowired
+    private ISysUserService userService;
 
     @Override
-    public List<HceCategory> page(HceCategoryVO hceCategoryVO){
-        LambdaQueryWrapper<HceCategory> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(HceCategory::getStatus,1)
-                .like(StringUtils.isNotBlank(hceCategoryVO.getCategoryName()), HceCategory::getCategoryName,hceCategoryVO.getCategoryName())
-                .in(hceCategoryVO.getMenuIdList() != null,HceCategory::getMenuId,hceCategoryVO.getMenuIdList())
-                .between(StringUtils.isNotBlank(hceCategoryVO.getStartTime()) && StringUtils.isNotBlank(hceCategoryVO.getEndTime()),HceCategory::getCreatedate,hceCategoryVO.getStartTime(),hceCategoryVO.getEndTime())
-                .orderByAsc(HceCategory::getOrderNum,HceCategory::getId);
-        List<HceCategory> list = this.list(queryWrapper);
-        List<HceCategory> list1 = list.stream().filter(s ->s.getPid() == 0).map(
-                menu->{menu.setChildren(getChildrenData(menu,list));
+    public List<HceCategoryListVO> page(HceCategoryVO hceCategoryVO){
+        long userId = SecurityUtils.getUserId();
+        SysUser sysUser = userService.selectUserByIdOne(userId);
+        List<HceCategoryListVO> list = new ArrayList<>();
+        if(("00").equals(sysUser.getUserType())){
+            if (1L == userId)
+            {
+                list = baseMapper.selectMenuTreeAll(hceCategoryVO.getCategoryName(),hceCategoryVO.getStartTime(),hceCategoryVO.getEndTime());
+            }
+            else
+            {
+                list = baseMapper.selectMenuTreeByUserId(hceCategoryVO.getCategoryName(),hceCategoryVO.getStartTime(),hceCategoryVO.getEndTime(),userId);
+            }
+        }else{
+            list = baseMapper.selectMenuTreeByUserIdOne(hceCategoryVO.getCategoryName(),hceCategoryVO.getStartTime(),hceCategoryVO.getEndTime(),SecurityUtils.getTenantId());
+        }
+
+        List<HceCategoryListVO> finalList = list;
+        List<HceCategoryListVO> list1 = list.stream().filter(s ->s.getParentId() == 0).map(
+                menu->{menu.setChildren(getChildrenData(menu, finalList));
                     return menu;
                 }
         ).collect(Collectors.toList());
@@ -54,8 +70,8 @@ public class HceCategoryServiceImpl extends AbstractCrudService<HceCategoryMappe
         return list1;
     }
 
-    private List<HceCategory> getChildrenData(HceCategory parent, List<HceCategory> all){
-        List<HceCategory> children = all.stream().filter(k ->k.getPid().equals(parent.getId())).map(
+    private List<HceCategoryListVO> getChildrenData(HceCategoryListVO parent, List<HceCategoryListVO> all){
+        List<HceCategoryListVO> children = all.stream().filter(k ->k.getParentId().equals(parent.getMenuId())).map(
                 menu->{
                     menu.setChildren(getChildrenData(menu,all));
                     return menu;

+ 8 - 4
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMenuServiceImpl.java

@@ -226,7 +226,7 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
             router.setName(getRouteName(menu));
             router.setPath(getRouterPath(menu));
             router.setComponent(getComponent(menu));
-            router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew()));
+            router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
             List<SysMenu> cMenus = menu.getChildren();
             if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
             {
@@ -242,13 +242,13 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
                 children.setPath(menu.getPath());
                 children.setComponent(menu.getComponent());
                 children.setName(StringUtils.capitalize(menu.getPath()));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew()));
+                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
                 childrenList.add(children);
                 router.setChildren(childrenList);
             }
             else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
             {
-                router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getIsFrame(), menu.getIsNew()));
+                router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
                 router.setPath("/inner");
                 List<RouterVo> childrenList = new ArrayList<RouterVo>();
                 RouterVo children = new RouterVo();
@@ -256,7 +256,7 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
                 children.setPath(routerPath);
                 children.setComponent(UserConstants.INNER_LINK);
                 children.setName(StringUtils.capitalize(routerPath));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getPath(), menu.getIsFrame(), menu.getIsNew()));
+                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
                 childrenList.add(children);
                 router.setChildren(childrenList);
             }
@@ -414,6 +414,10 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
     @Override
     public int updateMenu(SysMenu menu)
     {
+        //变更平台菜单名称或者菜单移动位置更新时根据菜单名称、菜单id和菜单pid条件分别找到两条记录,菜单pid找到对应栏目id(pid),
+        // 菜单id找到对应的栏目信息,将菜单名称和刚才找到的栏目id(pid)同步处理帮助中心这条栏目记录中的栏目菜单pid和菜单名称字段
+
+
         return menuMapper.updateMenu(menu);
     }
 

+ 3 - 3
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMobileMenuServiceImpl.java

@@ -335,7 +335,7 @@ public class SysMobileMenuServiceImpl extends AbstractCrudService<SysMobileMenuM
             router.setName(getRouteName(menu));
             router.setPath(getRouterPath(menu));
             router.setComponent(getComponent(menu));
-            router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+            router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getRemark()));
             List<SysMobileMenu> cMenus = menu.getChildren();
             if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
             {
@@ -351,13 +351,13 @@ public class SysMobileMenuServiceImpl extends AbstractCrudService<SysMobileMenuM
                 children.setPath(menu.getPath());
                 children.setComponent(menu.getComponent());
                 children.setName(StringUtils.capitalize(menu.getPath()));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getRemark()));
                 childrenList.add(children);
                 router.setChildren(childrenList);
             }
             else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
             {
-                router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon()));
+                router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getRemark()));
                 router.setPath("/inner");
                 List<RouterVo> childrenList = new ArrayList<RouterVo>();
                 RouterVo children = new RouterVo();

+ 78 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/HceCategoryListVO.java

@@ -0,0 +1,78 @@
+package com.usky.system.service.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.usky.system.domain.HceCategory;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class HceCategoryListVO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 菜单ID
+     */
+    private Long menuId;
+
+    /**
+     * 菜单名称
+     */
+    private String menuName;
+
+    /**
+     * 菜单昵称
+     */
+    private String menuAliasName;
+
+    /**
+     * 父菜单ID
+     */
+    private Long parentId;
+
+    /**
+     * 显示顺序
+     */
+    private String orderNum;
+
+    /**
+     * 是否为外链(0是 1否)
+     */
+    private String isFrame;
+
+    /**
+     * 是否缓存(0缓存 1不缓存)
+     */
+    private String isCache;
+
+    /**
+     * 栏目ID
+     */
+    private Integer categoryId;
+
+    /**
+     * 栏目图片;
+     */
+    private String imagePath;
+
+    /**
+     * 创建时间;
+     */
+    private LocalDateTime createdate;
+
+    /**
+     * 修改时间;
+     */
+    private LocalDateTime modifydate;
+
+    /**
+     * 栏目描述
+     */
+    private String description;
+
+    /**
+     * 子级
+     */
+    private List<HceCategoryListVO> children;
+}

+ 27 - 6
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/MetaVo.java

@@ -39,24 +39,29 @@ public class MetaVo
     /** 是否新窗口;0:否 1:是 */
     private Integer isNew;
 
+    /** 备注 */
+    private String remark;
+
     public MetaVo()
     {
     }
 
-    public MetaVo(String title, String aliasTitle, String icon, String isFrame, Integer isNew)
+    public MetaVo(String title, String aliasTitle, String icon, String isFrame, Integer isNew, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
         this.isFrame = isFrame;
         this.isNew = isNew;
+        this.remark = remark;
     }
 
-    public MetaVo(String title, String aliasTitle, String icon)
+    public MetaVo(String title, String aliasTitle, String icon, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
+        this.remark = remark;
     }
 
     public MetaVo(String title, String aliasTitle, String icon, boolean noCache)
@@ -66,40 +71,44 @@ public class MetaVo
         this.icon = icon;
     }
 
-    public MetaVo(String title, String aliasTitle, String icon, String link, String isFrame, Integer isNew)
+    public MetaVo(String title, String aliasTitle, String icon, String link, String isFrame, Integer isNew, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
         this.isFrame = isFrame;
         this.isNew = isNew;
+        this.remark = remark;
     }
 
-    public MetaVo(String title, String aliasTitle, String icon, String link)
+    public MetaVo(String title, String aliasTitle, String icon, String link, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
+        this.remark = remark;
     }
 
-    public MetaVo(String title, String aliasTitle, String icon, boolean noCache, String link, String isFrame, Integer isNew)
+    public MetaVo(String title, String aliasTitle, String icon, boolean noCache, String link, String isFrame, Integer isNew, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
         this.isFrame = isFrame;
         this.isNew = isNew;
+        this.remark = remark;
         if (StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS))
         {
 
         }
     }
 
-    public MetaVo(String title, String aliasTitle, String icon, boolean noCache, String link)
+    public MetaVo(String title, String aliasTitle, String icon, boolean noCache, String link, String remark)
     {
         this.title = title;
         this.aliasTitle = aliasTitle;
         this.icon = icon;
+        this.remark = remark;
         if (StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS))
         {
 
@@ -162,4 +171,16 @@ public class MetaVo
     public Integer getIsNew() { return isNew; }
 
     public void setIsNew(Integer isNew) { this.isNew = isNew; }
+
+
+
+    public String getRemark()
+    {
+        return remark;
+    }
+
+    public void setRemark(String remark)
+    {
+        this.remark = remark;
+    }
 }

+ 90 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/HceCategoryMapper.xml

@@ -19,4 +19,94 @@
         <result column="order_num" property="orderNum" />
     </resultMap>
 
+    <select id="selectMenuTreeAll" resultType="com.usky.system.service.vo.HceCategoryListVO">
+        select distinct m.menu_id as menuId,
+                        m.menu_name as menuName,
+                        rm.menu_alias_name as menuAliasName,
+                        m.parent_id as parentId,
+                        m.order_num as orderNum,
+                        m.is_frame as isFrame,
+                        m.is_cache as isCache,
+                        h.id as categoryId,
+                        h.imagePath as imagePath,
+                        h.createdate as createdate,
+                        h.modifydate as modifydate,
+                        h.description as description
+        from sys_menu m
+            left join sys_role_menu rm on m.menu_id = rm.menu_id
+            LEFT JOIN hce_category h on m.menu_id = h.menu_id
+        where m.menu_type in ('M', 'C')
+          and m.visible = 0
+          and m.status = 0
+          <if test="categoryName != null">
+              and m.menu_name = #{categoryName}
+          </if>
+          <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+              and h.createdate between #{startTime} and #{endTime}
+          </if>
+        order by m.parent_id, m.order_num
+    </select>
+    <select id="selectMenuTreeByUserId" resultType="com.usky.system.service.vo.HceCategoryListVO">
+        select distinct m.menu_id as menuId,
+                        m.menu_name as menuName,
+                        rm.menu_alias_name as menuAliasName,
+                        m.parent_id as parentId,
+                        m.order_num as orderNum,
+                        m.is_frame as isFrame,
+                        m.is_cache as isCache,
+                        h.id as categoryId,
+                        h.imagePath as imagePath,
+                        h.createdate as createdate,
+                        h.modifydate as modifydate,
+                        h.description as description
+        from sys_menu m
+                 left join sys_role_menu rm on m.menu_id = rm.menu_id
+                 left join sys_user_role ur on rm.role_id = ur.role_id
+                 left join sys_role ro on ur.role_id = ro.role_id
+                 left join sys_user u on ur.user_id = u.user_id
+                 LEFT JOIN hce_category h on m.menu_id = h.menu_id
+        where u.user_id = #{userId}
+          and m.menu_type in ('M', 'C')
+          and m.visible = 0
+          and m.status = 0
+          AND ro.status = 0
+        <if test="categoryName != null">
+            and m.menu_name = #{categoryName}
+        </if>
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and h.createdate between #{startTime} and #{endTime}
+        </if>
+        order by m.parent_id, m.order_num
+    </select>
+    <select id="selectMenuTreeByUserIdOne" resultType="com.usky.system.service.vo.HceCategoryListVO">
+        SELECT
+            distinct m.menu_id as menuId,
+                    m.menu_name as menuName,
+                    t.menu_alias_name as menuAliasName,
+                    m.parent_id as parentId,
+                    m.order_num as orderNum,
+                    m.is_frame as isFrame,
+                    m.is_cache as isCache,
+                    h.id as categoryId,
+                    h.imagePath as imagePath,
+                    h.createdate as createdate,
+                    h.modifydate as modifydate,
+                    h.description as description
+        FROM
+            sys_menu m
+                JOIN sys_tenant_menu t on m.menu_id = t.menu_id
+                 LEFT JOIN hce_category h on m.menu_id = h.menu_id
+        WHERE m.menu_type IN ('M', 'C')
+          and m.visible = 0
+          and m.status = 0
+          AND t.tenant_id=#{tenantId}
+        <if test="categoryName != null">
+            and m.menu_name = #{categoryName}
+        </if>
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and h.createdate between #{startTime} and #{endTime}
+        </if>
+        ORDER BY m.parent_id, m.order_num
+    </select>
+
 </mapper>

+ 7 - 2
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -64,7 +64,9 @@
                status,
                ifnull(perms, '') as perms,
                icon,
-               create_time
+               create_time,
+               remark,
+               isNew
         from sys_menu
     </sql>
 
@@ -129,6 +131,7 @@
                         m.icon,
                         m.order_num,
                         m.create_time,
+                        m.remark,
                         m.isNew
         from sys_menu m
         where m.menu_type in ('M', 'C')
@@ -138,7 +141,7 @@
 
     <select id="selectMenuListByUserId" parameterType="com.usky.system.domain.SysMenu" resultMap="SysMenuResult">
         select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.visible, m.status,
-        ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time,m.isNew
+        ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.remark,m.isNew
         from sys_menu m
         left join sys_role_menu rm on m.menu_id = rm.menu_id
         left join sys_user_role ur on rm.role_id = ur.role_id
@@ -187,6 +190,7 @@
                         m.icon,
                         m.order_num,
                         m.create_time,
+                        m.remark,
                         m.isNew
         from sys_menu m
                  left join sys_role_menu rm on m.menu_id = rm.menu_id
@@ -217,6 +221,7 @@
             m.icon,
             m.order_num,
             m.create_time,
+            m.remark,
             m.isNew
         FROM
             sys_menu m