Przeglądaj źródła

1.登录添加账号锁定错误码返回

yuanliang 1 rok temu
rodzic
commit
e691923f1a

+ 9 - 10
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java

@@ -124,6 +124,15 @@ public class OpenTenantController {
                 throw new BizException(5003, "请等待审核完成");
             }
         } else {
+            Long tenantId = tenantStaff.getTenantId();
+            TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
+            if(tenantInfo == null){
+                throw new BizException("机构不存在");
+            }
+            if (Boolean.FALSE.equals(tenantInfo.getEnableFlag())) {
+                // 机构冻结
+                throw new BizException(5004, openId);
+            }
             // 判断当前账号是否锁定
             if (UserLockFlag.LOCKED.equals(tenantStaff.getStatus())) {
                 throw new BizException(5005, "当前账号已锁定");
@@ -133,16 +142,6 @@ public class OpenTenantController {
                 throw new BizException("请登录您所绑定的机构");
             }
         }
-
-        Long tenantId = tenantStaff.getTenantId();
-        TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
-        if(tenantInfo == null){
-            throw new BizException("机构不存在");
-        }
-        if (Boolean.FALSE.equals(tenantInfo.getEnableFlag())) {
-            // 机构冻结
-            throw new BizException(5004, openId);
-        }
         tenantStaff.setWxOpenid(openId);
         tenantStaffService.updateById(tenantStaff);
         return HttpResponseResult.succeed();

+ 4 - 4
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java

@@ -100,14 +100,14 @@ public class DefaultUserDetailsService implements UserDetailsService {
             if (tenantStaff == null) {
                 throw new UsernameNotFoundException("账户不存在");
             }
-            if (UserLockFlag.LOCKED.name().equals(tenantStaff.getStatus())) {
-                // 账号被锁定
-                throw new UsernameNotFoundException("MA:5005:" + openid);
-            }
             if (Boolean.FALSE.equals(tenantStaff.getTenantEnableFlag())) {
                 // 机构锁定
                 throw new UsernameNotFoundException("MA:5004:" + openid);
             }
+            if (UserLockFlag.LOCKED.name().equals(tenantStaff.getStatus())) {
+                // 账号被锁定
+                throw new UsernameNotFoundException("MA:5005:" + openid);
+            }
         }
 
         List<GrantedAuthority> authorities = null;

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -403,7 +403,18 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         if (!updateStatus.getEnableFlag()) {
             tenantStaffMapper.update(null, Wrappers.<TenantStaff>lambdaUpdate()
                     .set(TenantStaff::getStatus, UserLockFlag.LOCKED)
+                    .set(TenantStaff::getWxOpenid, null)
                     .eq(TenantStaff::getTenantId, updateStatus.getId()));
+
+            // 账号退出登录
+            QueryWrapper<TenantStaff> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda()
+                    .eq(TenantStaff::getTenantId, updateStatus.getId());
+            List<TenantStaff> tenantStaffs = tenantStaffMapper.selectList(queryWrapper);
+            List<Long> userIdList = tenantStaffs.stream().map(TenantStaff::getUserId).collect(Collectors.toList());
+            Map<Long, String> idPhoneMap = sysUserMapper.selectBatchIds(userIdList).stream().collect(Collectors.toMap(SysUser::getId, SysUser::getPhone));
+            tenantStaffs.forEach(staff -> sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                    idPhoneMap.get(staff.getUserId()), staff.getWxOpenid()));
         } else {
             tenantStaffMapper.update(null, Wrappers.<TenantStaff>lambdaUpdate()
                     .set(TenantStaff::getStatus, UserLockFlag.NORMAL)