Browse Source

优化权限管理。

lighter 4 years ago
parent
commit
a24b50be33

+ 7 - 2
src/main/java/thyyxxk/webserver/controller/settings/SettingsController.java

@@ -32,8 +32,13 @@ public class SettingsController {
         return service.changePassword(param);
     }
 
+    @GetMapping("/getDeptTree")
+    public ResultVo<List<DeptTree>> getDeptTree() {
+        return service.getDeptTree();
+    }
+
     @GetMapping("/getAllUsers")
-    public ResultVo<List<DeptUserTreePojo>> getAllUsers() {
+    public ResultVo<List<UserInfoPojo>> getAllUsers() {
         return service.getAllUsers();
     }
 
@@ -48,7 +53,7 @@ public class SettingsController {
     }
 
     @PostMapping("/saveUserRoles")
-    public ResultVo<String> saveUserRoles(@RequestBody @Validated SaveUserRolesParam param) {
+    public ResultVo<String> saveUserRoles(@RequestBody SaveUserRolesParam param) {
         return service.saveUserRoles(param);
     }
 

+ 17 - 14
src/main/java/thyyxxk/webserver/dao_his/settings/SettingsDao.java

@@ -1,9 +1,9 @@
 package thyyxxk.webserver.dao_his.settings;
 
 import org.apache.ibatis.annotations.*;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.pojo.settings.deptphones.DeptPhonesPojo;
 import thyyxxk.webserver.pojo.settings.users.UserInfoPojo;
-import thyyxxk.webserver.pojo.settings.permissions.DeptUserTreePojo;
 import thyyxxk.webserver.pojo.settings.permissions.MenuTreePojo;
 import thyyxxk.webserver.pojo.settings.permissions.RolePojo;
 
@@ -31,31 +31,33 @@ public interface SettingsDao {
     List<Integer> getUserRoles(@Param("code") String code);
 
     @Select("select rtrim(code) code, rtrim(name) name from zd_unit_code where isnull(del_flag,0)!=1 order by code")
-    List<DeptUserTreePojo> getAllDepts();
+    List<PureCodeName> selectAllDepts();
 
-    @Select("select rtrim(code) as code, rtrim(name) as name from zd_unit_code where " +
-            "code=(select dept_code from a_employee_mi where code=#{code})")
-    DeptUserTreePojo getDeptInfo(@Param("code") String code);
+    @Select("select rtrim(code) code, rtrim(name) name from zd_unit_code where code=(" +
+            "select rtrim(dept_code) from a_employee_mi where code=#{code})")
+    List<PureCodeName> selectDeptsByUserCode(@Param("code") String code);
 
     @Select("select rtrim(code) as code, rtrim(code_rs) as codeRs, rtrim(name) as name, " +
             "rtrim(dept_code) as deptCode, deptName=(select rtrim(name) from zd_unit_code where code=dept_code), " +
             "title=(select rtrim(name) from zd_emp_title where code=emp_tit_code), " +
             "position=(select rtrim(name) from zd_emp_position where code=emp_po_code) " +
-            "from a_employee_mi where dept_code=(select dept_code from a_employee_mi where code=#{code}) " +
-            "and isnull(del_flag,0)!=1 ")
-    List<UserInfoPojo> getDeptUsersByUserCode(@Param("code") String code);
+            "from a_employee_mi where isnull(del_flag,0)!=1 and isnull(dept_code,'')!=''")
+    List<UserInfoPojo> selectAllUsers();
 
     @Select("select rtrim(code) as code, rtrim(code_rs) as codeRs, rtrim(name) as name, " +
             "rtrim(dept_code) as deptCode, deptName=(select rtrim(name) from zd_unit_code where code=dept_code), " +
             "title=(select rtrim(name) from zd_emp_title where code=emp_tit_code), " +
             "position=(select rtrim(name) from zd_emp_position where code=emp_po_code) " +
-            "from a_employee_mi where dept_code=#{code} and isnull(del_flag,0)!=1 ")
-    List<UserInfoPojo> getDeptUsersByDeptCode(@Param("code") String code);
+            "from a_employee_mi where dept_code=(select dept_code from a_employee_mi where code=#{code}) " +
+            "and isnull(del_flag,0)!=1 ")
+    List<UserInfoPojo> getDeptUsersByUserCode(@Param("code") String code);
 
-    @Select("select * from dj_dict_role")
+    @Select("select id,name,create_datetime,createStaff=(select rtrim(name) " +
+            "from a_employee_mi where code=create_staff) from dj_dict_role")
     List<RolePojo> getAllRoles();
 
-    @Select("select * from dj_dict_role where id>2")
+    @Select("select id,name,create_datetime,createStaff=(select rtrim(name) " +
+            "from a_employee_mi where code=create_staff) from dj_dict_role where id>2")
     List<RolePojo> getAllRolesExceptAdmin();
 
     @Delete("delete from dj_user_role where user_code=#{code}")
@@ -72,8 +74,9 @@ public interface SettingsDao {
     @Select("select count(1) from dj_dict_role where name=#{name}")
     Integer isRoleExist(@Param("name") String name);
 
-    @Insert("insert into dj_dict_role (name) values (#{name})")
-    void addNewRole(@Param("name") String name);
+    @Insert("insert into dj_dict_role (name,create_datetime,create_staff) values " +
+            "(#{name},getdate(),#{createStaff})")
+    void addNewRole(RolePojo role);
 
     @Select("select * from dj_dict_menu where parent=#{code}")
     List<MenuTreePojo> getMenusByParent(@Param("code") Integer code);

+ 13 - 0
src/main/java/thyyxxk/webserver/pojo/settings/permissions/DeptTree.java

@@ -0,0 +1,13 @@
+package thyyxxk.webserver.pojo.settings.permissions;
+
+import lombok.Data;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+
+import java.util.List;
+
+@Data
+public class DeptTree {
+    private String code;
+    private String name;
+    private List<PureCodeName> children;
+}

+ 4 - 0
src/main/java/thyyxxk/webserver/pojo/settings/permissions/RolePojo.java

@@ -2,8 +2,12 @@ package thyyxxk.webserver.pojo.settings.permissions;
 
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class RolePojo {
     private Integer id;
     private String name;
+    private Date createDatetime;
+    private String createStaff;
 }

+ 0 - 2
src/main/java/thyyxxk/webserver/pojo/settings/permissions/SaveUserRolesParam.java

@@ -2,12 +2,10 @@ package thyyxxk.webserver.pojo.settings.permissions;
 
 import lombok.Data;
 
-import javax.validation.constraints.NotEmpty;
 import java.util.List;
 
 @Data
 public class SaveUserRolesParam {
     private String code;
-    @NotEmpty(message = "数据没有变更,无需保存。")
     private List<RolePojo> roles;
 }

+ 25 - 17
src/main/java/thyyxxk/webserver/service/settings/SettingsService.java

@@ -18,6 +18,7 @@ import thyyxxk.webserver.utils.TokenUtil;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @Service
@@ -56,26 +57,31 @@ public class SettingsService {
         return ResultVoUtil.success();
     }
 
-    public ResultVo<List<DeptUserTreePojo>> getAllUsers() {
+    public ResultVo<List<DeptTree>> getDeptTree() {
+        List<DeptTree> list = new ArrayList<>();
+        DeptTree deptTree = new DeptTree();
+        deptTree.setCode("");
+        deptTree.setName("湖南泰和医院");
+
         String code = TokenUtil.getTokenUserId();
         List<Integer> roles = dao.getUserRoles(code);
-        List<DeptUserTreePojo> tree = new ArrayList<>();
         if (roles.contains(1) || roles.contains(2)) {
-            List<DeptUserTreePojo> depts = dao.getAllDepts();
-            for (DeptUserTreePojo dept : depts) {
-                List<UserInfoPojo> users = dao.getDeptUsersByDeptCode(dept.getCode());
-                if (null == users || users.isEmpty()) {
-                    continue;
-                }
-                dept.setUsers(users);
-                tree.add(dept);
-            }
+            deptTree.setChildren(dao.selectAllDepts());
         } else {
-            DeptUserTreePojo dept = dao.getDeptInfo(code);
-            dept.setUsers(dao.getDeptUsersByUserCode(code));
-            tree.add(dept);
+            deptTree.setChildren(dao.selectDeptsByUserCode(code));
+        }
+        list.add(deptTree);
+        return ResultVoUtil.success(list);
+    }
+
+    public ResultVo<List<UserInfoPojo>> getAllUsers() {
+        String code = TokenUtil.getTokenUserId();
+        List<Integer> roles = dao.getUserRoles(code);
+        if (roles.contains(1) || roles.contains(2)) {
+            return ResultVoUtil.success(dao.selectAllUsers());
+        } else {
+            return ResultVoUtil.success(dao.getDeptUsersByUserCode(code));
         }
-        return ResultVoUtil.success(tree);
     }
 
     public ResultVo<List<RolePojo>> getAllRoles() {
@@ -106,8 +112,10 @@ public class SettingsService {
         if (dao.isRoleExist(name) > 0) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该角色已存在,请匆重复添加!");
         }
-        log.info("添加新角色 => 操作员:{},添加角色:{}", TokenUtil.getTokenUserId(), name);
-        dao.addNewRole(name);
+        RolePojo rolePojo = new RolePojo();
+        rolePojo.setName(name);
+        rolePojo.setCreateStaff(TokenUtil.getTokenUserId());
+        dao.addNewRole(rolePojo);
         return ResultVoUtil.success();
     }