diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java index 8412deccf..ed4492e29 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java @@ -17,6 +17,10 @@ package com.pig4cloud.pigx.admin.handler; +import java.util.HashMap; +import java.util.List; + +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.URLUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; @@ -34,8 +38,6 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import java.util.HashMap; - /** * @author lengleng * @date 2019/4/8 @@ -97,4 +99,28 @@ public class GiteeLoginHandler extends AbstractLoginHandler { return sysUserService.findUserInfo(user); } + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(SysUser user, String identify) { + List userList = sysUserService + .list(Wrappers.query().lambda().eq(SysUser::getGiteeLogin, identify)); + + // 先把原有绑定关系去除,设置绑定为NULL + if (CollUtil.isNotEmpty(userList)) { + SysUser condition = new SysUser(); + condition.setGiteeLogin(identify); + sysUserService.update(condition, Wrappers.lambdaUpdate().set(SysUser::getGiteeLogin, null)); + log.info("码云账号 {} 更换账号绑定", identify); + } + + user.setGiteeLogin(identify); + sysUserService.updateById(user); + return true; + } + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java index 3db227aee..8c42c2b6a 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.admin.handler; import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.admin.api.entity.SysUser; /** * @author lengleng @@ -55,4 +56,12 @@ public interface LoginHandler { */ UserInfo handle(String loginStr); + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + Boolean bind(SysUser user, String identify); + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java index b662a6858..5678a1115 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java @@ -17,6 +17,9 @@ package com.pig4cloud.pigx.admin.handler; +import java.util.List; + +import cn.hutool.core.collection.CollUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -85,4 +88,28 @@ public class MiniAppLoginHandler extends AbstractLoginHandler { return sysUserService.findUserInfo(user); } + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(SysUser user, String identify) { + List userList = sysUserService + .list(Wrappers.query().lambda().eq(SysUser::getMiniOpenid, identify)); + + // 先把原有绑定关系去除,设置绑定为NULL + if (CollUtil.isNotEmpty(userList)) { + SysUser condition = new SysUser(); + condition.setMiniOpenid(identify); + sysUserService.update(condition, Wrappers.lambdaUpdate().set(SysUser::getMiniOpenid, null)); + log.info("小程序账号 {} 更换账号绑定", identify); + } + + user.setMiniOpenid(identify); + sysUserService.updateById(user); + return null; + } + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java index 4435894f4..bff127278 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java @@ -17,6 +17,11 @@ package com.pig4cloud.pigx.admin.handler; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import cn.hutool.core.collection.CollUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -33,9 +38,6 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import java.util.HashMap; -import java.util.Map; - /** * @author lengleng * @date 2019/4/8 @@ -105,4 +107,28 @@ public class OscChinaLoginHandler extends AbstractLoginHandler { return sysUserService.findUserInfo(user); } + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(SysUser user, String identify) { + List userList = sysUserService + .list(Wrappers.query().lambda().eq(SysUser::getOscId, identify)); + + // 先把原有绑定关系去除,设置绑定为NULL + if (CollUtil.isNotEmpty(userList)) { + SysUser condition = new SysUser(); + condition.setOscId(identify); + sysUserService.update(condition, Wrappers.lambdaUpdate().set(SysUser::getOscId, null)); + log.info("开源中国账号 {} 更换账号绑定", identify); + } + + user.setOscId(identify); + sysUserService.updateById(user); + return null; + } + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java index 3096041bc..1e9fb5127 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java @@ -62,4 +62,17 @@ public class SmsLoginHandler extends AbstractLoginHandler { return sysUserService.findUserInfo(user); } + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(SysUser user, String identify) { + user.setGiteeLogin(identify); + sysUserService.updateById(user); + return null; + } + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java index 1245a1f4d..3279dc6f3 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java @@ -17,6 +17,9 @@ package com.pig4cloud.pigx.admin.handler; +import java.util.List; + +import cn.hutool.core.collection.CollUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -83,4 +86,28 @@ public class WeChatLoginHandler extends AbstractLoginHandler { return sysUserService.findUserInfo(user); } + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(SysUser user, String identify) { + List userList = sysUserService + .list(Wrappers.query().lambda().eq(SysUser::getWxOpenid, identify)); + + // 先把原有绑定关系去除,设置绑定为NULL + if (CollUtil.isNotEmpty(userList)) { + SysUser condition = new SysUser(); + condition.setWxOpenid(identify); + sysUserService.update(condition, Wrappers.lambdaUpdate().set(SysUser::getWxOpenid, null)); + log.info("微信账号 {} 更换账号绑定", identify); + } + + user.setWxOpenid(identify); + sysUserService.updateById(user); + return null; + } + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java index f1b5321b2..825fc65d2 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java @@ -17,6 +17,8 @@ package com.pig4cloud.pigx.admin.service.impl; +import java.util.Map; + import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.dto.UserInfo; @@ -27,15 +29,12 @@ import com.pig4cloud.pigx.admin.mapper.SysSocialDetailsMapper; import com.pig4cloud.pigx.admin.mapper.SysUserMapper; import com.pig4cloud.pigx.admin.service.SysSocialDetailsService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; -import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; import com.pig4cloud.pigx.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.CacheManager; import org.springframework.stereotype.Service; -import java.util.Map; - /** * @author lengleng * @date 2018年08月16日 @@ -60,26 +59,12 @@ public class SysSocialDetailsServiceImpl extends ServiceImpl