Selaa lähdekoodia

用户创建数量限制

WXF 2 vuotta sitten
vanhempi
commit
f1279475e7

+ 0 - 1
api-common/src/main/java/api/common/pojo/po/log/LogLoginPO.java

@@ -1,6 +1,5 @@
 package api.common.pojo.po.log;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.sql.Timestamp;

+ 4 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/system/ctrl/UserCtrl.java

@@ -48,9 +48,12 @@ public class UserCtrl {
         if(ObjectUtil.isNull(userPO)){
             return new ResponseBodyVO(false, 400, "没有创建账户的权限!",null);
         }
-        if(ObjectUtil.isNull(userPO.getId())){
+        if("checkUsername".equals(userPO.getId())){
             return new ResponseBodyVO(false, 400, "账户名重复!",null);
         }
+        if("subUserNum".equals(userPO.getId())){
+            return new ResponseBodyVO(false, 400, "超出可创建子账户数量!",null);
+        }
         response.setInfo(userPO);
         return response;
     }

+ 3 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/mapper/UserMapper.java

@@ -38,4 +38,7 @@ public interface UserMapper {
     List<UserVO> checkPassword(UserVO userVO);
 
     void savePassword(UserPO userPO);
+
+    int getSubUserNum(@Param("createUserId") String createUserId);
+
 }

+ 16 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/system/service/UserService.java

@@ -4,6 +4,7 @@ import api.common.pojo.constants.DictConstants;
 import api.common.pojo.constants.LogConstants;
 import api.common.pojo.param.system.UserParam;
 import api.common.pojo.po.system.UserPO;
+import api.common.pojo.vo.system.ParameterVO;
 import api.common.pojo.vo.system.UserVO;
 import api.common.util.EncryptUtil;
 import api.common.util.ObjectUtil;
@@ -38,6 +39,9 @@ public class UserService {
     @Autowired
     DictService dictService;
 
+    @Autowired
+    ParameterService parameterService;
+
     public UserVO getCurrentUserInfo() {
         String userId = AuthUtil.getCurrentUserId();
         UserVO userVO = userMapper.getUserInfo(userId);
@@ -83,6 +87,17 @@ public class UserService {
         }else if(DictConstants.ROLE_CODE_ADMIN.equals(currentUserRoleCode)){//子管理员
             userPO.setRoleCode(DictConstants.ROLE_CODE_UESR);
         }else if(DictConstants.ROLE_CODE_UESR.equals(currentUserRoleCode)){//普通用户
+            //新增参数校验
+            if(ObjectUtil.isNull(userPO.getId())){
+                ParameterVO parameter = parameterService.getParameterByUserId();
+                int num = parameter.getNumCreateUser();//最大用户数
+                String userId = AuthUtil.getCurrentUserId();
+                int subUserNum = userMapper.getSubUserNum(userId);
+                if(subUserNum >= num ){
+                    userPO.setId("subUserNum");
+                    return userPO;
+                }
+            }
             userPO.setRoleCode(DictConstants.ROLE_CODE_SUBUESR);
             //普通用户创建子账户时,占用类型继承
             userPO.setUseType(AuthUtil.getCurrentUseType());
@@ -92,7 +107,7 @@ public class UserService {
         //重名校验
         List<UserPO> list = userMapper.checkUsername(userPO);
         if(ObjectUtil.isNotNull(list)){
-            userPO.setId(null);
+            userPO.setId("checkUsername");
             return userPO;
         }
         PoUtil.initAddPo(userPO);

+ 4 - 1
simulation-resource-server/src/main/resources/mapper/system/UserMapper.xml

@@ -190,5 +190,8 @@
         where id = #{id,jdbcType=VARCHAR}
     </update>
 
-
+    <select id="getSubUserNum" parameterType="java.lang.String" resultType="java.lang.Integer">
+        select count(1) from system_user
+        where is_deleted = '0' AND create_user_id = #{createUserId,jdbcType=VARCHAR};
+    </select>
 </mapper>