Browse Source

bugfix: 掌柜运营平台-组织架构

成员被禁用以后依然可以登录系统进行操作
原因:在登录的时候,原先没有对平台登录用户的处理
lipf 4 months ago
parent
commit
3d44091125

+ 23 - 0
authentication/src/main/java/com/jzg/client/PlatformClient.java

@@ -0,0 +1,23 @@
+package com.jzg.client;
+
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.vo.SysUserVo;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+
+@FeignClient(name = "jzg-platform")
+public interface PlatformClient {
+
+    /**
+     * 平台用户信息查询
+     * @param id sys_user表的序号
+     * @return HttpResult<SysUserVo> 平台用户信息
+     */
+    @GetMapping(value = { "/user/userGet"})
+    @Operation(summary = "平台用户信息查询")
+    public HttpResult<SysUserVo> userGet(@RequestParam("id") String id);
+
+}

+ 18 - 3
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -10,12 +10,13 @@ import com.alipay.api.request.AlipaySystemOauthTokenRequest;
 import com.alipay.api.response.AlipaySystemOauthTokenResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.jzg.client.OrganizationClient;
+import com.jzg.client.PlatformClient;
 import com.jzg.commons.constants.RedisKeyConstants;
 import com.jzg.commons.constants.SystemConstants;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.*;
-import com.jzg.commons.entity.user.vo.SysTennatVo;
 import com.jzg.commons.entity.vo.SysRoleDataScopeVo;
+import com.jzg.commons.entity.vo.SysUserVo;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.entity.SysRolePerms;
@@ -75,6 +76,9 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
     @Autowired
     private SysAreaMapper sysAreaMapper;
 
+    @Autowired
+    private PlatformClient platformClient;
+
     public JzgAuthenticationProvider(UserDetailsService userDetailsService, SysUserService sysUserService, SysUserRoleService sysUserRoleService,
                                      RedissonClient redissonClient, SysRoleDataScopeMapper sysRoleDataScopeMapper, SysRoleDataScopeLinkMapper sysRoleDataScopeLinkMapper,
                                      SysSystemService sysSystemService, SysUserJzgAppMapper sysUserJzgAppMapper,Map<String, WxMpService> wxMpService, SysUserJzgInfoMapper sysUserJzgInfoMapper) {
@@ -376,8 +380,19 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
 
         }else if("PLATFORM".equals(system)) {
             // 平台登录
-
-
+            HttpResult<SysUserVo> sysUserVoHttpResult = platformClient.userGet(userId);
+            SysUserVo sysUserVo = sysUserVoHttpResult.getData();
+            if(sysUserVo == null){
+                log.info("根据userId=[{}]查找平台用户未找到",userId);
+                throw new SystemException("用户不存在");
+            }
+            if(sysUserVo.getAccountStatus() == null || sysUserVo.getAccountStatus() == 0){
+                throw new SystemException("用户被锁定,无法登录");
+            }
+            Integer isEnable = sysUserVo.getIsEnable();
+            if(isEnable == null || isEnable == 0){
+                throw new SystemException("用户被禁用,无法登录");
+            }
         }else{
             //租户登录
             // 同一个业务可能存在于多个租户,因此这里可能查询出多个

+ 4 - 3
platform/src/main/java/com/jzg/controller/SysUserController.java

@@ -7,6 +7,7 @@ import com.jzg.commons.entity.dto.SysUserAddParam;
 import com.jzg.commons.entity.dto.SysUserEditParam;
 import com.jzg.commons.entity.dto.SysUserParam;
 import com.jzg.commons.entity.enums.YesNoEnum;
+import com.jzg.commons.entity.vo.SysUserVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.mapper.SysUserPlateInfoMapper;
@@ -51,12 +52,12 @@ public class SysUserController extends BaseController {
 
     /**
      * 平台用户信息查询
-     * @param id
-     * @return
+     * @param id sys_user表的序号
+     * @return HttpResult<SysUserVo> 平台用户信息
      */
     @GetMapping(value = { "/userGet"})
     @Operation(summary = "平台用户信息查询")
-    public HttpResult userGet(String id) {
+    public HttpResult<SysUserVo> userGet(@RequestParam("id") String id) {
         return HttpResult.ok(sysUserService.queryById(id));
     }
 

+ 3 - 4
platform/src/main/java/com/jzg/service/SysUserService.java

@@ -8,8 +8,6 @@ import com.jzg.commons.entity.dto.SysUserParam;
 import com.jzg.commons.entity.po.SysUser;
 import com.jzg.commons.entity.vo.SysUserVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
 
 import java.util.List;
 
@@ -31,10 +29,11 @@ public interface SysUserService extends IService<SysUser> {
 
     /**
      * 平台用户信息查询
-     * @param id
+     *
+     * @param userId
      * @return
      */
-    public SysUserVo queryById(String id);
+    public SysUserVo queryById(String userId);
 
     /**
      * 平台用户手机号重复校验

+ 11 - 4
platform/src/main/java/com/jzg/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,7 @@ package com.jzg.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,6 +21,8 @@ import com.jzg.mapper.SysRoleMapper;
 import com.jzg.mapper.SysUserPlateInfoMapper;
 import com.jzg.service.SysUserService;
 import com.jzg.commons.util.PasswordUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -39,6 +42,8 @@ import java.util.stream.Collectors;
 public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
     implements SysUserService {
 
+    private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
+
     @Autowired
     private SysRoleMapper sysRoleMapper;
     @Autowired
@@ -48,10 +53,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
 
     @Override
     public Page<SysUserVo> queryPage(Page page, SysUserParam param) {
+        log.info("查询成员信息:param=[{}]", JSONUtil.toJsonStr(param));
         Page<SysUserVo> userPage = baseMapper.queryPage(page, param);
         List<SysUserVo> userList = userPage.getRecords();
         if (!userList.isEmpty()) {
-            List<String> userIdList = userList.stream().map(user -> user.getId()).collect(Collectors.toList());
+            List<String> userIdList = userList.stream().map(SysUserVo::getId).collect(Collectors.toList());
             // 批量查询 角色信息
             List<SysUserRole> roleIds  = sysRoleMapper.queryByUserIds(userIdList);
             Map<String,List<SysUserRole>> nameMap = roleIds.stream()
@@ -73,12 +79,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
     }
 
     @Override
-    public SysUserVo queryById(String id) {
-        SysUser user = this.baseMapper.selectById(id);
+    public SysUserVo queryById(String userId) {
+        log.info("根据用户序号查询平台用户[{}]",userId);
+        SysUser user = this.baseMapper.selectById(userId);
         SysUserVo vo = new SysUserVo();
         BeanUtils.copyProperties(user, vo);
         List<SysUserPlateInfo> infos = sysUserPlateInfoMapper.selectList(new LambdaQueryWrapper<SysUserPlateInfo>()
-                .eq(SysUserPlateInfo::getUserId, id));
+                .eq(SysUserPlateInfo::getUserId, userId));
         if(CollUtil.isNotEmpty(infos)){
             vo.setIsEnable(infos.get(0).getIsEnable());
         }