Преглед на файлове

企业新增用户和角色 修改和删除的限制,默认的管理员账号,企业端不允许删除和修改

xucaiqin преди 1 месец
родител
ревизия
856aa05aaf

+ 1 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsRoleController.java

@@ -69,6 +69,7 @@ public class KwsRoleController {
      **/
     @PostMapping("/add")
     public HttpResult add(@Valid @RequestBody EditRoleReqVo reqVo) {
+        reqVo.setAdminFlag(2);
         kwsRoleService.add(reqVo);
         return HttpResult.ok(HttpStatus.MSG_003);
     }

+ 6 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsRole.java

@@ -3,8 +3,10 @@ package com.sckw.system.model;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
+
 /**
  * 岗位角色
+ *
  * @author zk
  * @date 2023-05-31
  */
@@ -21,5 +23,9 @@ public class KwsRole extends BaseModel {
      */
     @TableField("ent_id")
     private Long entId;
+    /**
+     * 管理员标识 1-管理员 2-其它
+     */
+    private Integer adminFlag;
 
 }

+ 1 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EditRoleReqVo.java

@@ -60,4 +60,5 @@ public class EditRoleReqVo implements Serializable {
      * 是否是管理员
      */
     private Boolean isManage;
+    private Integer adminFlag;
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java

@@ -29,7 +29,7 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 母公司id(当注册的公司是一家子公司时,entPid必传)
      */
-    private Long pid;
+    private Long entPid;
 
     /**
      * 企业编号

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/RoleResVo.java

@@ -85,5 +85,7 @@ public class RoleResVo implements Serializable {
      * 菜单权限ids
      */
     private String menuIds;
+    private Integer adminFlag;
+
 
 }

+ 1 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -367,6 +367,7 @@ public class KwsEnterpriseService {
         kwsEnterprise.setHead(reqVo.getHead());
         kwsEnterprise.setRegSource(LoginUserHolder.getClientType());
         kwsEnterprise.setCityCode(reqVo.getCityCode());
+        kwsEnterprise.setPid(reqVo.getEntPid());
         SysArea sysArea = sysAreaDao.selectById(reqVo.getCityCode());
         if (Objects.nonNull(sysArea)) {
             kwsEnterprise.setCityName(sysArea.getMergerName());

+ 19 - 6
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -87,11 +87,11 @@ public class KwsRoleService {
      * @author: czh
      * @date: 2023/6/15
      */
-    public void add(KwsRole params) {
-        if (kwsRoleDao.insert(params) <= 0) {
-            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
-        }
-    }
+//    public void add(KwsRole params) {
+//        if (kwsRoleDao.insert(params) <= 0) {
+//            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+//        }
+//    }
 
     /**
      * @param reqVo 新增角色
@@ -115,6 +115,7 @@ public class KwsRoleService {
         kwsRole.setId(roleId);
         kwsRole.setEntId(reqVo.getEntId());
         kwsRole.setName(reqVo.getName());
+        kwsRole.setAdminFlag(reqVo.getAdminFlag());
         kwsRole.setRemark(reqVo.getRemark());
         if (kwsRoleDao.insert(kwsRole) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
@@ -194,6 +195,7 @@ public class KwsRoleService {
      *
      * @param ids 主键
      */
+    @Transactional(rollbackFor = Exception.class)
     public void deleteByKey(String ids) {
         List<Long> idList = Arrays.stream(ids.split(",")).map(Long::parseLong).toList();
         List<KwsRole> kwsRoles = kwsRoleDao.selectBatchByKeys(idList);
@@ -205,6 +207,13 @@ public class KwsRoleService {
         if (CollectionUtils.isNotEmpty(kwsUsers)) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_011);
         }
+        if (!LoginUserHolder.isManager()) {
+            for (KwsRole kwsRole : kwsRoles) {
+                if (Objects.equals(kwsRole.getAdminFlag(), 1)) {
+                    throw new SystemException("企业管理员角色不允许删除");
+                }
+            }
+        }
         deleteRole(kwsRoles);
     }
 
@@ -257,7 +266,11 @@ public class KwsRoleService {
         if (Objects.isNull(kwsRole)) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
         }
-
+        if (!LoginUserHolder.isManager()) {
+            if (Objects.equals(kwsRole.getAdminFlag(), 1)) {
+                throw new SystemException("企业管理员角色不允许修改");
+            }
+        }
         List<KwsMenuRights> kwsMenuRightsList = kwsMenuRightsDao.selectByRoleIds(Collections.singletonList(kwsRole.getId()));
         if (CollectionUtils.isNotEmpty(kwsMenuRightsList)) {
             for (KwsMenuRights kwsMenuRights : kwsMenuRightsList) {

+ 16 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.exception.BusinessException;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.ApprovalEnum;
@@ -233,6 +234,7 @@ public class KwsUserService {
             editRoleReqVo.setMenuIds(String.join(Global.COMMA, kwsMenus.stream().map(KwsMenu::getId).map(String::valueOf).toList()));
             editRoleReqVo.setVisiblePersonal(false);
             editRoleReqVo.setIsManage(true);
+            editRoleReqVo.setAdminFlag(1);
             kwsRoleService.add(editRoleReqVo);
         }
 
@@ -309,6 +311,11 @@ public class KwsUserService {
             }
             KwsUser kwsUser = kwsUserDao.selectByKey(Long.parseLong(id));
             if (null != kwsUser) {
+                if (!LoginUserHolder.isManager()) {
+                    if (Objects.equals(kwsUser.getIsMain(), 1)) {//企业管理员用户,默认用户不允许删除
+                        throw new BusinessException(String.format("默认企业管理员账号[%s]不允许删除", kwsUser.getName()));
+                    }
+                }
                 kwsUser.setDelFlag(Global.YES);
                 if (kwsUserDao.updateById(kwsUser) <= 0) {
                     throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
@@ -329,6 +336,14 @@ public class KwsUserService {
         if (Objects.isNull(kwsUser)) {
             throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.ACCOUNT_NOT_EXISTS);
         }
+        if (!LoginUserHolder.isManager()) {
+            if (Objects.equals(kwsUser.getIsMain(), 1)) {//企业管理员用户,只修改名称和备注,归属企业和角色都不允许修改。
+                kwsUser.setRemark(params.getRemark());
+                kwsUser.setName(params.getName());
+                kwsUserDao.updateById(kwsUser);
+                return;
+            }
+        }
         //更换账号后账号唯一性校验
 //        if (StringUtils.isNotBlank(params.getAccount())) {
 //            //用户信息
@@ -367,7 +382,7 @@ public class KwsUserService {
         fillUserRole(params.getRoleIds(), kwsUser.getId(), kwsUser.getSystemType());
 
         /*用户机构关系*/
-        fillUserDept(kwsUser.getId(), params.getDeptId());
+//        fillUserDept(kwsUser.getId(), params.getDeptId());
     }
 
     /**

+ 1 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsRoleDao.xml

@@ -141,6 +141,7 @@
                 and kur.role_id = sr.id) as count,
              sr.remark,
              sr.status,
+             sr.admin_flag                  adminFlag,
              su.name                        createBy,
              sr.create_time,
              sr.update_by,