Browse Source

fix 系统用户重名

he2802 3 năm trước cách đây
mục cha
commit
856613c8c3

+ 0 - 9
zhongzheng-framework/src/main/java/com/zhongzheng/framework/aspectj/DataScopeAspect.java

@@ -108,11 +108,8 @@ public class DataScopeAspect
     public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String businessAlias)
     {
         StringBuilder sqlString = new StringBuilder();
-        System.out.println("角色"+businessAlias);
-
         for (SysRole role : user.getRoles())
         {
-            System.out.println(role);
             String dataScope = role.getDataScope();
             if (DATA_SCOPE_ALL.equals(dataScope))
             {
@@ -149,16 +146,10 @@ public class DataScopeAspect
             }
             else if (DATA_SCOPE_BUSINESS.equals(dataScope))
             {
-                System.out.println(DATA_SCOPE_BUSINESS+"54545"+dataScope);
                 sqlString.append(StrUtil.format(
                         " OR {}.id IN ( SELECT business_id FROM sys_role_business WHERE role_id = {} ) ", businessAlias,
                         role.getRoleId()));
             }
-            System.out.println(DATA_SCOPE_BUSINESS+"54545"+dataScope);
-            System.out.println("CCC角色"+StrUtil.format(
-                    " OR {}.id IN ( SELECT business_id FROM sys_role_business WHERE role_id = {} ) ", businessAlias,
-                    role.getRoleId()));
-            System.out.println("CCC角色"+sqlString.toString());
         }
 
         if (StrUtil.isNotBlank(sqlString.toString()))

+ 25 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java

@@ -11,6 +11,7 @@ import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.exam.domain.ExamBefore;
 import com.zhongzheng.modules.system.domain.SysPost;
 import com.zhongzheng.modules.system.domain.SysUserPost;
 import com.zhongzheng.modules.system.domain.SysUserRole;
@@ -213,6 +214,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional
     public int insertUser(SysUser user) {
+        validEntityBeforeSave(user);
         // 新增用户信息
         user.setCode(ServletUtils.getEncoded("ZH"));
         int rows = baseMapper.insert(user);
@@ -232,6 +234,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional
     public int updateUser(SysUser user) {
+        validEntityBeforeSave(user);
         // 新增用户与角色管理
         if (!user.getStatus().equals(-1)) {
             insertUserRole(user);
@@ -243,6 +246,28 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return baseMapper.updateById(user);
     }
 
+    private void validEntityBeforeSave(SysUser entity){
+        //TODO 做一些数据校验,如唯一约束
+        if(checkNameUnique(entity)){
+            throw new CustomException("账号名称重复");
+        }
+    }
+
+    private boolean checkNameUnique(SysUser entity) {
+        SysUser info = getOne(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getUserName,entity.getUserName()).ne(SysUser::getStatus,-1).last("limit 1"));
+        if (Validator.isNotNull(info)) {
+            if(Validator.isNotEmpty(entity.getUserId())){
+                if(entity.getUserId().longValue() != info.getUserId().longValue()){
+                    return true;
+                }
+            }else{
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
      * 修改用户状态
      *

+ 2 - 1
zhongzheng-system/src/main/resources/mapper/modules/base/UserProfileMapper.xml

@@ -98,9 +98,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="realname != null and realname !='' ">
             AND (SELECT count(1) FROM `user` u where u.user_id = up.user_id and u.realname like concat('%', #{realname}, '%') )> 0
         </if>
-        order by up.create_time desc
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by up.create_time desc
+
     </select>
 
     <select id="getInfo" parameterType="com.zhongzheng.modules.base.bo.UserProfileQueryBo" resultMap="UserProfileVo">