Bläddra i källkod

处理文档空间信息

wukai 1 år sedan
förälder
incheckning
8932e16209

+ 17 - 1
doc-admin/src/main/java/com/doc/web/controller/system/SysDeptController.java

@@ -1,12 +1,18 @@
 package com.doc.web.controller.system;
 
+import com.doc.biz.domain.DocSpace;
+import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.annotation.Log;
 import com.doc.common.constant.UserConstants;
 import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
 import com.doc.common.core.domain.entity.SysDept;
+import com.doc.common.core.domain.entity.SysUser;
 import com.doc.common.enums.BusinessType;
+import com.doc.common.enums.SpaceType;
+import com.doc.common.utils.SecurityUtils;
 import com.doc.common.utils.StringUtils;
+import com.doc.system.service.ISysConfigService;
 import com.doc.system.service.ISysDeptService;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -14,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -26,6 +33,10 @@ import java.util.List;
 public class SysDeptController extends BaseController {
     @Resource
     private ISysDeptService deptService;
+    @Resource
+    private IDocSpaceService docSpaceService;
+    @Resource
+    private ISysConfigService configService;
 
     /**
      * 获取部门列表
@@ -69,7 +80,9 @@ public class SysDeptController extends BaseController {
             return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
         dept.setCreateBy(getUsername());
-        return toAjax(deptService.insertDept(dept));
+        int i = deptService.insertDept(dept);
+        docSpaceService.initDeptSpace(dept);
+        return toAjax(i);
     }
 
     /**
@@ -88,6 +101,9 @@ public class SysDeptController extends BaseController {
         } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
             return error("该部门包含未停用的子部门!");
         }
+
+        docSpaceService.initDeptSpace(dept);
+
         dept.setUpdateBy(getUsername());
         return toAjax(deptService.updateDept(dept));
     }

+ 8 - 0
doc-admin/src/main/java/com/doc/web/controller/system/SysLoginController.java

@@ -1,5 +1,6 @@
 package com.doc.web.controller.system;
 
+import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.constant.Constants;
 import com.doc.common.core.domain.AjaxResult;
 import com.doc.common.core.domain.entity.SysMenu;
@@ -33,6 +34,9 @@ public class SysLoginController {
 
     @Resource
     private SysPermissionService permissionService;
+    @Resource
+    private IDocSpaceService docSpaceService;
+
 
     /**
      * 登录方法
@@ -66,6 +70,10 @@ public class SysLoginController {
         ajax.put("user", user);
         ajax.put("roles", roles);
         ajax.put("permissions", permissions);
+
+        //做个冗余,登录获取用户信息时初始化空间
+        docSpaceService.initUserSpace(user);
+
         return ajax;
     }
 

+ 6 - 0
doc-admin/src/main/java/com/doc/web/controller/system/SysProfileController.java

@@ -1,5 +1,6 @@
 package com.doc.web.controller.system;
 
+import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.annotation.Log;
 import com.doc.common.config.RuoYiConfig;
 import com.doc.common.core.controller.BaseController;
@@ -32,6 +33,9 @@ public class SysProfileController extends BaseController {
     @Resource
     private TokenService tokenService;
 
+    @Resource
+    private IDocSpaceService docSpaceService;
+
     /**
      * 个人信息
      */
@@ -71,6 +75,8 @@ public class SysProfileController extends BaseController {
             sysUser.setEmail(user.getEmail());
             sysUser.setSex(user.getSex());
             tokenService.setLoginUser(loginUser);
+            //更新用户空间信息
+            docSpaceService.initUserSpace(sysUser);
             return success();
         }
         return error("修改个人信息异常,请联系管理员");

+ 18 - 1
doc-admin/src/main/java/com/doc/web/controller/system/SysUserController.java

@@ -1,5 +1,6 @@
 package com.doc.web.controller.system;
 
+import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.annotation.Log;
 import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
@@ -45,6 +46,8 @@ public class SysUserController extends BaseController {
 
     @Resource
     private ISysPostService postService;
+    @Resource
+    private IDocSpaceService docSpaceService;
 
     /**
      * 获取用户列表
@@ -74,6 +77,12 @@ public class SysUserController extends BaseController {
         List<SysUser> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
         String message = userService.importUser(userList, updateSupport, operName);
+
+        //初始化用户空间
+        for (SysUser user : userList) {
+            docSpaceService.initUserSpace(user);
+        }
+
         return success(message);
     }
 
@@ -119,9 +128,14 @@ public class SysUserController extends BaseController {
         }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.insertUser(user));
+        int i = userService.insertUser(user);
+
+        docSpaceService.initUserSpace(user);
+
+        return toAjax(i);
     }
 
+
     /**
      * 修改用户
      */
@@ -138,6 +152,9 @@ public class SysUserController extends BaseController {
         } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
+
+        docSpaceService.initUserSpace(user);
+
         user.setUpdateBy(getUsername());
         return toAjax(userService.updateUser(user));
     }

+ 28 - 0
doc-biz/src/main/java/com/doc/biz/controller/DocSpaceController.java

@@ -7,13 +7,17 @@ import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
 import com.doc.common.core.page.TableDataInfo;
 import com.doc.common.enums.BusinessType;
+import com.doc.common.enums.SpaceType;
+import com.doc.common.utils.SecurityUtils;
 import com.doc.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.security.Security;
 import java.util.List;
 
 /**
@@ -65,6 +69,30 @@ public class DocSpaceController extends BaseController {
     }
 
     /**
+     * 获取空间详情
+     */
+    @ApiOperation("获取空间信息")
+    @GetMapping(value = "/{spaceType}")
+    public AjaxResult getInfo(@ApiParam(value = "空间类型(1.公共 2.部门 3.个人)", required = true) @PathVariable("spaceType") String spaceType) {
+        DocSpace search = new DocSpace();
+        search.setSpaceType(spaceType);
+        switch (spaceType) {
+//            case "1":
+//                break;
+            case "2":
+                search.setOwner(SecurityUtils.getDeptId());
+                break;
+            case "3":
+                search.setOwner(SecurityUtils.getUserId());
+                break;
+            default:
+        }
+
+        List<DocSpace> list = docSpaceService.selectDocSpaceList(search);
+        return success(list.get(0));
+    }
+
+    /**
      * 新增文档空间管理
      */
     @ApiOperation("新增文档空间管理")

+ 16 - 0
doc-biz/src/main/java/com/doc/biz/service/IDocSpaceService.java

@@ -1,6 +1,8 @@
 package com.doc.biz.service;
 
 import com.doc.biz.domain.DocSpace;
+import com.doc.common.core.domain.entity.SysDept;
+import com.doc.common.core.domain.entity.SysUser;
 
 import java.util.List;
 
@@ -58,4 +60,18 @@ public interface IDocSpaceService {
      * @return 结果
      */
     public int deleteDocSpaceBySpaceId(Long spaceId);
+
+    /**
+     * 初始化用户空间
+     *
+     * @param user 用户实体
+     */
+    void initUserSpace(SysUser user);
+
+    /**
+     * 初始化部门空间
+     *
+     * @param dept 部门实体
+     */
+    void initDeptSpace(SysDept dept);
 }

+ 66 - 1
doc-biz/src/main/java/com/doc/biz/service/impl/DocSpaceServiceImpl.java

@@ -3,10 +3,16 @@ package com.doc.biz.service.impl;
 import com.doc.biz.domain.DocSpace;
 import com.doc.biz.mapper.DocSpaceMapper;
 import com.doc.biz.service.IDocSpaceService;
+import com.doc.common.core.domain.entity.SysDept;
+import com.doc.common.core.domain.entity.SysUser;
+import com.doc.common.enums.SpaceType;
 import com.doc.common.utils.DateUtils;
+import com.doc.common.utils.SecurityUtils;
+import com.doc.system.service.ISysConfigService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -19,7 +25,8 @@ import java.util.List;
 public class DocSpaceServiceImpl implements IDocSpaceService {
     @Resource
     private DocSpaceMapper docSpaceMapper;
-
+    @Resource
+    private ISysConfigService configService;
     /**
      * 查询文档空间管理
      *
@@ -87,4 +94,62 @@ public class DocSpaceServiceImpl implements IDocSpaceService {
     public int deleteDocSpaceBySpaceId(Long spaceId) {
         return docSpaceMapper.deleteDocSpaceBySpaceId(spaceId);
     }
+
+    /**
+     * 初始化用户空间
+     *
+     * @param user 用户实体
+     */
+    @Override
+    public void initUserSpace(SysUser user) {
+        //初始化用户空间
+        DocSpace space = new DocSpace();
+        space.setSpaceType(SpaceType.PERSONAL.getValue());
+        space.setOwner(user.getUserId());
+        List<DocSpace> list = selectDocSpaceList(space);
+        if (list.size() > 0) {
+            //如果有记录,则更新空间名称
+            space = list.get(0);
+            space.setSpaceName("\"" + user.getNickName() + "\"的个人空间");
+            space.setUpdateBy(SecurityUtils.getUsername());
+            updateDocSpace(space);
+        } else {
+            //如果没有则插入
+            space.setSpaceName("\"" + user.getNickName() + "\"的个人空间");
+            String defaultCap = configService.selectConfigByKey("user.default.cap");
+            BigDecimal cap = new BigDecimal(defaultCap);
+            space.setSpaceCap(cap);
+            space.setCreateBy(SecurityUtils.getUsername());
+            insertDocSpace(space);
+        }
+    }
+
+    /**
+     * 初始化部门空间
+     *
+     * @param dept 部门实体
+     */
+    @Override
+    public void initDeptSpace(SysDept dept) {
+        //初始化用户空间
+        DocSpace space = new DocSpace();
+        space.setSpaceType(SpaceType.DEPT.getValue());
+        space.setOwner(dept.getDeptId());
+        List<DocSpace> list = selectDocSpaceList(space);
+        if (list.size() > 0) {
+            //如果有记录,则更新空间名称
+            space = list.get(0);
+            space.setSpaceName("\"" + dept.getDeptName() + "\"的部门空间");
+            space.setUpdateBy(SecurityUtils.getUsername());
+            updateDocSpace(space);
+        } else {
+            //如果没有则插入
+            space.setSpaceName("\"" + dept.getDeptName() + "\"的部门空间");
+            String defaultCap = configService.selectConfigByKey("dept.default.cap");
+            BigDecimal cap = new BigDecimal(defaultCap);
+            space.setSpaceCap(cap);
+            space.setCreateBy(SecurityUtils.getUsername());
+            insertDocSpace(space);
+        }
+    }
 }

+ 25 - 0
doc-common/src/main/java/com/doc/common/enums/SpaceType.java

@@ -0,0 +1,25 @@
+package com.doc.common.enums;
+
+/**
+ * 空间类型
+ *
+ * @author wukai
+ */
+public enum SpaceType {
+    PUBLIC("1" , "公共"), DEPT("2" , "部门"), PERSONAL("3" , "个人");
+    private final String value;
+    private final String name;
+
+    SpaceType(String value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getName() {
+        return name;
+    }
+}