mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-19 17:35:54 +08:00
[功能]:1、跳转url 放到配置文件里面 2、优化登录管理界面 3、添加qq登录解绑和重新绑定功能 4、个人中心增加 qq绑定信息 展示view
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package com.ruoyi.iot.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.iot.domain.UserSocialProfile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IUserSocialProfileService {
|
||||
/**
|
||||
* 找到用户绑定的社交账户
|
||||
*
|
||||
* @param sysUserId 用户主键
|
||||
* @return
|
||||
*/
|
||||
List<UserSocialProfile> selectUserSocialProfile(Long sysUserId);
|
||||
|
||||
/**
|
||||
* 绑定用户
|
||||
*
|
||||
* @param bindId 绑定的Id
|
||||
* @param sysUserId 用户主键
|
||||
* @return
|
||||
*/
|
||||
AjaxResult bindUser(String bindId, Long sysUserId);
|
||||
|
||||
/**
|
||||
* 点击绑定跳转api
|
||||
*
|
||||
* @param platform 平台
|
||||
* @return
|
||||
*/
|
||||
AjaxResult bindSocialAccount(String platform);
|
||||
|
||||
/**
|
||||
* 解除绑定
|
||||
*
|
||||
* @param socialUserId 要解除的社交账户主键
|
||||
* @param sysUserId 用户主键
|
||||
* @return
|
||||
*/
|
||||
AjaxResult unbindSocialAccount(Long socialUserId, Long sysUserId);
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.iot.service.impl;
|
||||
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.enums.SocialPlatformType;
|
||||
import com.ruoyi.iot.domain.SocialUser;
|
||||
import com.ruoyi.iot.domain.UserSocialProfile;
|
||||
import com.ruoyi.iot.model.login.BindIdValue;
|
||||
import com.ruoyi.iot.service.ISocialPlatformService;
|
||||
import com.ruoyi.iot.service.ISocialUserService;
|
||||
import com.ruoyi.iot.service.IUserSocialProfileService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.ruoyi.iot.service.impl.SocialLoginServiceImpl.BIND_REDIS_KEY;
|
||||
|
||||
@Service
|
||||
public class UserSocialProfileServiceImpl implements IUserSocialProfileService {
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@Autowired
|
||||
private ISocialUserService iSocialUserService;
|
||||
@Autowired
|
||||
private ISocialPlatformService iSocialPlatformService;
|
||||
|
||||
@Override
|
||||
public List<UserSocialProfile> selectUserSocialProfile(Long sysUserId) {
|
||||
SocialUser selectSocialUser = new SocialUser();
|
||||
selectSocialUser.setSysUserId(sysUserId);
|
||||
List<SocialUser> socialUserList = iSocialUserService.selectSocialUserList(selectSocialUser);
|
||||
List<UserSocialProfile> userSocialProfileList = new ArrayList<>();
|
||||
for (SocialUser socialUser : socialUserList) {
|
||||
//如果是删除的标记
|
||||
if (socialUser.getDelFlag().equals("1")) {
|
||||
continue;
|
||||
}
|
||||
UserSocialProfile userSocialProfile = new UserSocialProfile();
|
||||
userSocialProfile.setSocialUserId(socialUser.getSocialUserId());
|
||||
userSocialProfile.setAvatar(socialUser.getAvatar());
|
||||
userSocialProfile.setSource(socialUser.getSource());
|
||||
userSocialProfile.setUsername(socialUser.getUsername());
|
||||
userSocialProfile.setNickname(socialUser.getNickname());
|
||||
userSocialProfile.setStatus(socialUser.getStatus());
|
||||
userSocialProfileList.add(userSocialProfile);
|
||||
}
|
||||
return userSocialProfileList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult bindUser(String bindId, Long sysUserId) {
|
||||
BindIdValue bindValue = redisCache.getCacheObject(BIND_REDIS_KEY + bindId);
|
||||
if (bindValue == null) {
|
||||
//不作提示
|
||||
return AjaxResult.error(HttpStatus.NO_MESSAGE_ALERT, "未知异常");
|
||||
}
|
||||
SocialUser socialUser = findSocialUser(bindValue.getUuid(), bindValue.getSource());
|
||||
SocialUser updateSocialUser = new SocialUser();
|
||||
updateSocialUser.setSocialUserId(socialUser.getSocialUserId());
|
||||
updateSocialUser.setSysUserId(sysUserId);
|
||||
iSocialUserService.updateSocialUser(updateSocialUser);
|
||||
redisCache.deleteObject(BIND_REDIS_KEY + bindId);
|
||||
return AjaxResult.success("绑定成功!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult bindSocialAccount(String platform) {
|
||||
try {
|
||||
SocialPlatformType.valueOf(platform);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("错误平台类型");
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult unbindSocialAccount(Long socialUserId, Long sysUserId) {
|
||||
SocialUser socialUser = iSocialUserService.selectSocialUserBySocialUserId(socialUserId);
|
||||
if (socialUser == null) {
|
||||
return AjaxResult.error("绑定账户不存在!");
|
||||
} else if (!socialUser.getSysUserId().equals(socialUserId)) {
|
||||
return AjaxResult.error("用户账户和绑定账户不匹配!");
|
||||
} else {
|
||||
SocialUser updateSocialUser = new SocialUser();
|
||||
updateSocialUser.setSocialUserId(socialUserId);
|
||||
updateSocialUser.setSysUserId(-1L);
|
||||
iSocialUserService.updateSocialUser(updateSocialUser);
|
||||
return AjaxResult.success("解除绑定成功!");
|
||||
}
|
||||
}
|
||||
|
||||
public SocialUser findSocialUser(String uuid, String source) {
|
||||
SocialUser socialUser = new SocialUser();
|
||||
socialUser.setSource(source);
|
||||
socialUser.setUuid(uuid);
|
||||
List<SocialUser> socialUserList = iSocialUserService.selectSocialUserList(socialUser);
|
||||
return socialUserList == null || socialUserList.isEmpty() ? null : socialUserList.get(0);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user