Explorar o código

Merge branch 'master' of http://172.16.101.77:3000/suiyingying/IOT-BACK

zhangcl hai 6 meses
pai
achega
b5525db211

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java

@@ -175,7 +175,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
         }
 
         // 获得用户
-        AdminUserDO user = userService.getUser(socialUser.getUserId());
+        AdminUserDO user = userService.getUserByUsername(socialUser.getNickname());
         if (user == null) {
             throw exception(USER_NOT_EXISTS);
         }

+ 19 - 6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java

@@ -13,6 +13,10 @@ import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO;
 import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserBindMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper;
 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
+import cn.iocoder.yudao.module.system.util.DingtalkUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dingtalk.api.response.OapiV2UserGetResponse;
 import com.xingyuv.jushauth.model.AuthUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -46,6 +50,8 @@ public class SocialUserServiceImpl implements SocialUserService {
 
     @Resource
     private SocialClientService socialClientService;
+    @Resource
+    private DingtalkUtil dingtalkUtil;
 
     @Override
     public List<SocialUserDO> getSocialUserList(Long userId, Integer userType) {
@@ -112,12 +118,19 @@ public class SocialUserServiceImpl implements SocialUserService {
         // 获得社交用户
         SocialUserDO socialUser = authSocialUser(socialType, userType, code, state);
         Assert.notNull(socialUser, "社交用户不能为空");
-
-        // 获得绑定用户
-        SocialUserBindDO socialUserBind = socialUserBindMapper.selectByUserTypeAndSocialUserId(userType,
-                socialUser.getId());
-        return new SocialUserRespDTO(socialUser.getOpenid(), socialUser.getNickname(), socialUser.getAvatar(),
-                socialUserBind != null ? socialUserBind.getUserId() : null);
+        JSONObject jsonObject = JSON.parseObject(socialUser.getRawUserInfo());
+        String dingId = String.valueOf(jsonObject.get("dingId"));
+        try {
+            OapiV2UserGetResponse.UserGetResponse userDetail = dingtalkUtil.getUserDetail(dingId);
+
+            // 获得绑定用户
+            SocialUserBindDO socialUserBind = socialUserBindMapper.selectByUserTypeAndSocialUserId(userType,
+                    socialUser.getId());
+            return new SocialUserRespDTO(socialUser.getOpenid(), userDetail.getJobNumber(), socialUser.getAvatar(),
+                    socialUserBind != null ? socialUserBind.getUserId() : null);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /**