Ver Fonte

bugfix:登录与租户相关问题

xiari há 1 ano atrás
pai
commit
284d49504b

+ 3 - 0
ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java

@@ -391,6 +391,7 @@ public class SysLoginService {
     public Map<String, String> getLoginUser(String token) {
         String openId = "";
         String ssoId = "";
+        String tenantId = "";
         // 获取登录用户地址
         String interface_url =  wechatConfig.getPortUrl() + "prod-api/system/oauth2/user/get";
 
@@ -403,9 +404,11 @@ public class SysLoginService {
 
         openId = resultJson.getJSONObject("data").getStr("wxxcxOpenid");
         ssoId = resultJson.getJSONObject("data").getStr("wxUnionid");
+        tenantId = resultJson.getJSONObject("data").getStr("tenantId");
         Map<String, String> map = new HashMap<>(2);
         map.put("ssoId", ssoId);
         map.put("openId", openId);
+        map.put("tenantId", tenantId); //业务中台的租户id
         if (StrUtil.isEmpty(ssoId) || StrUtil.isEmpty(openId)) {
             throw new ServiceException(String.format("获取用户失败,token:%s,业务域名:%s", token, interface_url));
         }

+ 2 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/service/impl/PtCardServiceImpl.java

@@ -393,7 +393,8 @@ public class PtCardServiceImpl implements IPtCardService {
         QueryWrapper<PtCard> lqw = new QueryWrapper<>();
         lqw.select("max(card_no) as card_no");
         lqw.in("status", "1", "2", "7");
-        lqw.eq("tenant_id", "20200813044411");
+        // todo 写死了,导致启动失败
+//        lqw.eq("tenant_id", "20200813044411");
         PtCard card = baseMapper.selectOne(lqw);
 
         return card.getCardNo();

+ 9 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java

@@ -1,9 +1,13 @@
 package org.dromara.system.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Options;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.dromara.common.mybatis.annotation.DataColumn;
 import org.dromara.common.mybatis.annotation.DataPermission;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -74,4 +78,9 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
         @DataColumn(key = "userName", value = "user_id")
     })
     long countUserById(Long userId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<SysUserVo> selectByOtherId(@Param("otherId")String otherId);
+
+
 }

+ 9 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -709,15 +709,21 @@ public class SysUserServiceImpl implements ISysUserService {
     }
 
     /**
-     * 根据第三方标识查询用户信息
+     * 根据第三方标识查询用户信息  不要加租户的查询条件
      *
      * @param otherId 第三方标识
      * @return 用户信息
      */
     @Override
     public SysUserVo selectUserVoByOtherId(String otherId) {
-        return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>()
-            .eq(SysUser::getOtherId, otherId));
+        List<SysUserVo> sysUser = baseMapper.selectByOtherId(otherId);
+        if (CollUtil.isEmpty(sysUser)) {
+            return null;
+        }
+        if (sysUser.size() > 1) {
+            throw new ServiceException("根据otherId查询到多个用户!");
+        }
+        return sysUser.get(0);
     }
 
     /**

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@@ -4,6 +4,6 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.SysDictDataMapper">
 
-    <select id="selectDictDataByType" resultType="org.dromara.system.domain.vo.SysDictDataVo"
-            parameterType="java.lang.String"></select>
+    <!--<select id="selectDictDataByType" resultType="org.dromara.system.domain.vo.SysDictDataVo"
+            parameterType="java.lang.String"></select>-->
 </mapper>

+ 4 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -67,5 +67,9 @@
         select count(*) from t_sys_user where del_flag = '0' and user_id = #{userId}
     </select>
 
+    <select id="selectByOtherId" resultMap="SysUserResult">
+        select * from t_sys_user where other_id = #{otherId} and del_flag = '0'
+    </select>
+
 
 </mapper>