瀏覽代碼

Merge remote-tracking branch 'origin/V0.0.1' into V0.0.1

jingyuanchao 2 年之前
父節點
當前提交
92bcef1fa3

+ 38 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/vo/SysOrgVO.java

@@ -0,0 +1,38 @@
+package com.xunmei.system.api.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.xunmei.system.api.domain.SysOrg;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/9/5
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysOrgVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    private String name;
+    private String path;
+    public Long parentId;
+    private List<SysOrgVO> children = new ArrayList<SysOrgVO>();
+
+    @Override
+    public String toString() {
+        return "SysOrgVO{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", path='" + path + '\'' +
+                ", parentId=" + parentId +
+                ", children=" + children +
+                '}';
+    }
+}

+ 12 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysOrgMapper.java

@@ -3,6 +3,7 @@ package com.xunmei.system.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.SysOrgVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.web.bind.annotation.PathVariable;
 
@@ -21,7 +22,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @param id 【请填写功能名称】主键
      * @return 【请填写功能名称】
      */
-     SysOrg selectSysOrgById(Long id);
+    SysOrg selectSysOrgById(Long id);
 
     /**
      * 查询【请填写功能名称】列表
@@ -29,7 +30,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @param sysOrg 【请填写功能名称】
      * @return 【请填写功能名称】集合
      */
-     List<SysOrg> selectSysOrgList(SysOrg sysOrg);
+    List<SysOrg> selectSysOrgList(SysOrg sysOrg);
 
     /**
      * 新增【请填写功能名称】
@@ -37,7 +38,8 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @param sysOrg 【请填写功能名称】
      * @return 结果
      */
-     int insertSysOrg(SysOrg sysOrg);
+    int insertSysOrg(SysOrg sysOrg);
+
     List<Long> selectCheckSubOrgIdList(@Param("orgId") Long orgId);
 
     /**
@@ -46,7 +48,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @param sysOrg 【请填写功能名称】
      * @return 结果
      */
-     int updateSysOrg(SysOrg sysOrg);
+    int updateSysOrg(SysOrg sysOrg);
 
     /**
      * 删除【请填写功能名称】
@@ -54,7 +56,7 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
      * @param id 【请填写功能名称】主键
      * @return 结果
      */
-     int deleteSysOrgById(Long id);
+    int deleteSysOrgById(Long id);
 
     /**
      * 批量删除【请填写功能名称】
@@ -68,8 +70,13 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
 
     SysOrg selectSysOrgByUserId(@Param("userId") Long userId);
 
+    SysOrgVO selectSysOrgVoByUserId(@Param("userId") Long userId);
+
+    List<SysOrgVO> selectSysOrgVOList();
+
     /**
      * 获取机构及父级机构的名称
+     *
      * @param ids
      * @return
      */

+ 3 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeptService.java

@@ -3,6 +3,7 @@ package com.xunmei.system.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.system.api.domain.SysDept;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.domain.vo.TreeSelect;
 
 import java.util.List;
@@ -28,10 +29,11 @@ public interface ISysDeptService extends IService<SysDept> {
      * @param dept 部门信息
      * @return 部门树信息集合
      */
-    List<SysOrg> selectDeptTreeList(SysOrg dept);
+    List<SysOrgVO> selectDeptTreeList(SysOrg dept);
 
     /**
      * 部门管理
+     *
      * @param dept
      * @return
      */

+ 6 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOrgService.java

@@ -3,6 +3,7 @@ package com.xunmei.system.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.SysOrgVO;
 
 import java.util.List;
 
@@ -35,7 +36,7 @@ public interface ISysOrgService extends IService<SysOrg> {
      */
     List<SysOrg> selectSysOrgList(SysOrg sysOrg);
 
-    void  batchSaveOrUpdate(List<SysOrg> orgList);
+    void batchSaveOrUpdate(List<SysOrg> orgList);
 
     /**
      * 新增【机构管理】
@@ -96,8 +97,8 @@ public interface ISysOrgService extends IService<SysOrg> {
 
     /**
      * 缓存机构数据
-      */
-    List<SysOrg> loadingOrgCache();
+     */
+    List<SysOrgVO> loadingOrgCache();
 
     /**
      * 清楚机构缓存
@@ -106,6 +107,7 @@ public interface ISysOrgService extends IService<SysOrg> {
 
     /**
      * 保存或者更新机构
+     *
      * @param org
      * @return
      */
@@ -113,6 +115,7 @@ public interface ISysOrgService extends IService<SysOrg> {
 
     /**
      * 删除机构
+     *
      * @param orgId
      * @return
      */

+ 14 - 17
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xunmei.system.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,6 +19,7 @@ import com.xunmei.system.api.domain.SysDept;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.domain.SysUser;
+import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.domain.vo.TreeSelect;
 import com.xunmei.system.mapper.SysDeptMapper;
 import com.xunmei.system.mapper.SysOrgMapper;
@@ -81,12 +83,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return trees;
     }
 
-    public static List<SysOrg> handleTree(Map<Long, List<SysOrg>> map, Long parentId) {
-        final List<SysOrg> orgList = map.get(parentId);
+    public static List<SysOrgVO> handleTree(Map<Long, List<SysOrgVO>> map, Long parentId) {
+        final List<SysOrgVO> orgList = map.get(parentId);
         if (ObjectUtil.isNotEmpty(orgList)) {
             orgList.forEach(org -> {
-                final List<SysOrg> tree = handleTree(map, org.getId());
-                org.setChildren(tree);
+                final List<SysOrgVO> tree = handleTree(map, org.getId());
+                if (CollectionUtils.isNotEmpty(tree)) {
+                    org.setChildren(tree);
+                }
             });
         }
         return orgList;
@@ -108,40 +112,33 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return 部门树信息集合
      */
     @Override
-    public List<SysOrg> selectDeptTreeList(SysOrg dept) {
+    public List<SysOrgVO> selectDeptTreeList(SysOrg dept) {
         Long s = System.currentTimeMillis();
         Long userId = SecurityUtils.getUserId();
         SysOrg sysOrg = orgMapper.selectSysOrgByUserId(userId);
         if (ObjectUtil.isNull(sysOrg)) {
             throw new ServiceException("当前用户没有部门信息");
         }
-        List<SysOrg> cacheList = null;
+        List<SysOrgVO> cacheList = null;
         Boolean isOk = RedisUtils.hasKey(CacheConstants.ORG_CACHE_LIST_KEY);
         if (!isOk) {
             cacheList = orgService.loadingOrgCache();
         } else {
             cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
         }
-        List<SysOrg> orgs = new ArrayList<>();
-        for (SysOrg org : cacheList) {
+        List<SysOrgVO> orgs = new ArrayList<>();
+        for (SysOrgVO org : cacheList) {
             String path = org.getPath();
             if (StringUtils.isNotEmpty(path) && path.startsWith(sysOrg.getPath())) {
                 orgs.add(org);
             }
         }
-
-        /*final LambdaQueryWrapper<SysOrg> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysOrg::getDeleted, 0);
-        wrapper.isNotNull(SysOrg::getParentId);*/
         Long parentId = Constants.TOP_ORG_PARENT_ID;
         if (ObjectUtil.notEqual(Constants.TOP_ORG_PARENT_ID, sysOrg.getParentId())) {
             parentId = sysOrg.getParentId();
-            //wrapper.likeRight(SysOrg::getPath, sysOrg.getPath());
         }
-        /*List<SysOrg> depts = orgMapper.selectList(wrapper);*/
-        final Map<Long, List<SysOrg>> collect = orgs.stream().collect(Collectors.groupingBy(SysOrg::getParentId));
-        List<SysOrg> r = handleTree(collect, parentId);
-        s = System.currentTimeMillis() - s;
+        final Map<Long, List<SysOrgVO>> collect = orgs.stream().collect(Collectors.groupingBy(SysOrgVO::getParentId));
+        List<SysOrgVO> r = handleTree(collect, parentId);
         return r;
     }
 

+ 5 - 7
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -15,6 +15,7 @@ import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.mapper.SysUserMapper;
 import com.xunmei.system.service.ISysOrgService;
@@ -242,14 +243,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     }
 
     @Override
-    public List<SysOrg> loadingOrgCache() {
-        QueryWrapper<SysOrg> qw = new QueryWrapper<>();
-        qw.lambda().ge(SysOrg::getDeleted, 0);
-        List<SysOrg> list = baseMapper.selectList(qw);
+    public List<SysOrgVO> loadingOrgCache() {
+        List<SysOrgVO> sysOrgVOS = baseMapper.selectSysOrgVOList();
         clearOrgCache();
-        RedisUtils.setCacheList(CacheConstants.ORG_CACHE_LIST_KEY, list);
-        //redisService.setCacheList(CacheConstants.ORG_CACHE_LIST_KEY, list);
-        return list;
+        RedisUtils.setCacheList(CacheConstants.ORG_CACHE_LIST_KEY, sysOrgVOS);
+        return sysOrgVOS;
     }
 
     @Override

+ 14 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -588,4 +588,18 @@
         </foreach>
         and so.deleted=0
     </select>
+    <select id="selectSysOrgVoByUserId" resultType="com.xunmei.system.api.vo.SysOrgVO">
+        select so.id as id, so.name as name, so.path as path, so.parent_id as parentId
+        from sys_org so
+                 inner join sys_user suo on so.id = suo.org_id
+        where suo.id = #{userId}
+    </select>
+    <select id="selectSysOrgVOList" resultType="com.xunmei.system.api.vo.SysOrgVO">
+        SELECT id,
+               `name`,
+               path,
+               parent_id
+        FROM sys_org
+        WHERE deleted = 0
+    </select>
 </mapper>