tjf vor 2 Monaten
Ursprung
Commit
cb99e28c40

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -68,9 +68,9 @@ spring:
   servlet:
     multipart:
       # 单个文件大小
-      max-file-size: 10MB
+      max-file-size: 100MB
       # 设置总上传的文件大小
-      max-request-size: 20MB
+      max-request-size: 500MB
   mvc:
     # 设置静态资源路径 防止所有请求都去查静态资源
     static-path-pattern: /static/**

+ 9 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java

@@ -190,4 +190,13 @@ public class SysTenantController extends BaseController {
         return R.ok("同步租户字典成功");
     }
 
+    /**
+     * 根据username查询租户信息
+     */
+    @GetMapping("/userName/list")
+    public R<List<SysTenantVo>> usernameList() {
+        List<SysTenantVo> tenants = tenantService.usernameList();
+        return R.ok(tenants);
+    }
+
 }

+ 5 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@@ -21,7 +21,6 @@ import org.dromara.common.log.annotation.Log;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.common.web.core.BaseController;
@@ -40,7 +39,8 @@ import org.springframework.web.multipart.MultipartFile;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.dromara.common.core.constant.Constants.*;
+import static org.dromara.common.core.constant.Constants.N;
+import static org.dromara.common.core.constant.Constants.Y;
 
 /**
  * 用户信息
@@ -129,10 +129,9 @@ public class SysUserController extends BaseController {
             UserType userType = LoginHelper.getUserType();
             if (UserType.APP_USER.equals(userType)) {
                 //住户信息认证
-            }else if (UserType.APP_STAFF.equals(userType)) {
-                //查询员工staff_manage 表中是否有未认证的 从redis中查询
-                String key = STAFF_MANAGE_AUTHENTICATION + user.getUserId();
-                if (RedisUtils.getCacheObject(key) != null) {
+            } else if (UserType.APP_STAFF.equals(userType) || UserType.PC_USER.equals(userType)) {
+                //判断这个用户是否一个认证都没有
+                if (user.getIsAuthentication().equals(N)) {
                     userInfoVo.setAuthenticationUser(Y);
                 }
             }

+ 4 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java

@@ -102,7 +102,10 @@ public class SysUser extends TenantEntity {
      * 备注
      */
     private String remark;
-
+    /**
+     * 是否认证过 N:未认证 Y:认证 当非系统用户租户id不为000000时是认证过
+     */
+    private String isAuthentication;
 
     public SysUser(Long userId) {
         this.userId = userId;

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@@ -136,4 +136,9 @@ public class SysUserVo implements Serializable {
      * 数据权限 当前角色ID
      */
     private Long roleId;
+
+    /**
+     * 是否认证过 N:未认证 Y:认证 当非系统用户租户id不为000000时是认证过
+     */
+    private String isAuthentication;
 }

+ 7 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java

@@ -1,8 +1,11 @@
 package org.dromara.system.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.SysTenant;
 import org.dromara.system.domain.vo.SysTenantVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
 
 /**
  * 租户Mapper接口
@@ -11,4 +14,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  */
 public interface SysTenantMapper extends BaseMapperPlus<SysTenant, SysTenantVo> {
 
+
+    @InterceptorIgnore(tenantLine = "true", dataPermission = "false")
+    List<SysTenantVo> selectVoListByUserName(String userName);
 }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java

@@ -84,4 +84,6 @@ public interface ISysTenantService {
      * 同步租户字典
      */
     void syncTenantDict();
+
+    List<SysTenantVo> usernameList();
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

@@ -23,6 +23,7 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.CacheUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.core.TenantEntity;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.system.domain.*;
@@ -496,4 +497,11 @@ public class SysTenantServiceImpl implements ISysTenantService {
         }
     }
 
+    @Override
+    public List<SysTenantVo> usernameList() {
+        String userName = LoginHelper.getLoginUser().getUsername();
+        List<SysTenantVo> tenants = baseMapper.selectVoListByUserName(userName);
+        return tenants;
+    }
+
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml

@@ -4,4 +4,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.SysTenantMapper">
 
+    <resultMap type="org.dromara.system.domain.vo.SysTenantVo" id="SysTenantResult">
+    </resultMap>
+    <select id="selectVoListByUserName" resultMap="SysTenantResult">
+        select t.id, t.tenant_id, t.contact_user_name, t.contact_phone, t.company_name, t.license_number, t.address, t.intro, t.domain, t.remark, t.package_id, t.expire_time, t.account_count, t.status, t.del_flag, t.create_dept, t.create_by, t.create_time, t.update_by, t.update_time
+        from sys_tenant t
+                 left join sys_user s on t.tenant_id = s.tenant_id
+        where t.del_flag = '0' and s.user_name = #{userName}
+    </select>
 </mapper>

+ 1 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/staffManage/StaffManageController.java

@@ -72,7 +72,7 @@ public class StaffManageController extends BaseController {
      *
      * @param staffId 主键
      */
-    @SaCheckPermission("wuYe:staffManage:query")
+    //@SaCheckPermission("wuYe:staffManage:query")
     @GetMapping("/{staffId}")
     public R<StaffManageVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long staffId) {

+ 50 - 15
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/StaffManageServiceImpl.java

@@ -14,7 +14,6 @@ import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.domain.staffManage.StaffManage;
 import org.dromara.domain.staffManage.bo.StaffManageBo;
@@ -27,6 +26,7 @@ import org.dromara.system.domain.SysUserRole;
 import org.dromara.system.domain.SysUserTenant;
 import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.vo.SysRoleVo;
+import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.mapper.SysRoleMapper;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.mapper.SysUserRoleMapper;
@@ -152,14 +152,20 @@ public class StaffManageServiceImpl implements IStaffManageService {
         boolean flag = checkPhoneNumberUnique(add);
         if (!flag) {
             throw new UserException("staff.manage.error");
-        }else if (flag) {
+        } else if (flag) {
             validEntityBeforeSave(add);
             flag = baseMapper.insert(add) > 0;
+
+            SysUserBo sysUser = new SysUserBo();
+            sysUser.setUserId(bo.getUserId());
+            //把租户id更新到sys_user表/sys_user_tenant表中
+            sysUser.setIsAuthentication(Y);
+            userService.updateUserByIdNoTenantId(sysUser);
             if (flag) {
                 bo.setStaffId(add.getStaffId());
             }
         }
-        //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
+/*        //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
         String key = STAFF_MANAGE_AUTHENTICATION + bo.getUserId();
         Object cacheObject = RedisUtils.getCacheObject(key);
         int count = 0;
@@ -168,7 +174,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
             RedisUtils.setCacheObject(key, count);
         } else {
             RedisUtils.setCacheObject(key, 1);
-        }
+        }*/
         return flag;
     }
 
@@ -356,12 +362,13 @@ public class StaffManageServiceImpl implements IStaffManageService {
             Long[] roles;
             SysRoleVo sysRoleVo = sysRoleMapper.selectVoOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleKey, examineStaffManage.getStaffCategory()));
             if (sysRoleVo != null) {
-                roles = new Long[]{sysRoleVo.getRoleId()};
-                sysUser.setRoleIds(roles);
+                Long[] longArray = new Long[1];
+                longArray[0] = sysRoleVo.getRoleId();
+                sysUser.setRoleIds(longArray);
             }
             userService.insertUserRole(sysUser, false);
 
-            //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
+/*            //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
             String key = STAFF_MANAGE_AUTHENTICATION + bo.getUserId();
             Object cacheObject = RedisUtils.getCacheObject(key);
             int count = 0;
@@ -372,11 +379,9 @@ public class StaffManageServiceImpl implements IStaffManageService {
                 }else {
                     RedisUtils.deleteObject(key);
                 }
-            }
-        } else {
-            return baseMapper.updateById(examineStaffManage) > 0;
+            }*/
         }
-        return true;
+        return baseMapper.updateById(examineStaffManage) > 0;
     }
 
     /**
@@ -394,13 +399,43 @@ public class StaffManageServiceImpl implements IStaffManageService {
         boolean flag = baseMapper.deleteById(staffId) > 0;
         // userMapper.deleteById(userId);
         if (TenantHelper.isEnable()) {
+            Long count = TenantHelper.ignore(() -> {
+                return baseMapper.selectCount(new LambdaQueryWrapper<StaffManage>().eq(StaffManage::getUserId, userId));
+            });
+            //查询该用户是否一个认证信息都没有则需要把用户租户重置为000000,认证状态改为未认证
+            SysUser sysUser = new SysUser();
+            sysUser.setUserId(userId);
+            if (count == 0) {
+                sysUser.setTenantId(TENANT_ID);
+                sysUser.setIsAuthentication(N);
+                TenantHelper.ignore(() -> {
+                    userMapper.updateById(sysUser);
+                });
+            }
             // 删除用户与角色关联
-            userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getTenantId, tenantId));
-            sysUserTenantMapper.delete(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantId));
+            TenantHelper.ignore(() -> {
+                userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getTenantId, tenantId));
+            });
+            // 删除用户与租户关联
+            TenantHelper.ignore(() -> {
+                sysUserTenantMapper.delete(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantId));
+            });
+            if (count > 0) {
+                //判断用户的默认租户是否是被删除的那个租户,是的情况下换一个租户id给sysUser表中
+                SysUserVo sysUserVo = userMapper.selectVoById(userId);
+                String tenantIdOld = sysUserVo.getTenantId();
+                if (tenantId.equals(tenantIdOld)) {
+                    SysUserTenant sysUserTenant = sysUserTenantMapper.selectVoOne(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId));
+                    sysUser.setTenantId(sysUserTenant.getTenantId());
+                    TenantHelper.ignore(() -> {
+                        userMapper.updateById(sysUser);
+                    });
+                }
+            }
         } else {
             userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
         }
-        //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
+/*        //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
         String key = STAFF_MANAGE_AUTHENTICATION + userId;
         Object cacheObject = RedisUtils.getCacheObject(key);
         int count = 0;
@@ -411,7 +446,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
             }else {
                 RedisUtils.deleteObject(key);
             }
-        }
+        }*/
         return flag;
     }