diff --git a/consumer/src/main/java/cn/lili/event/impl/MemberExecute.java b/consumer/src/main/java/cn/lili/event/impl/MemberExecute.java index 1ec23a5b5..27ce3bf75 100644 --- a/consumer/src/main/java/cn/lili/event/impl/MemberExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/MemberExecute.java @@ -11,6 +11,7 @@ import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.service.MemberService; import cn.lili.modules.system.service.SettingService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,6 +23,7 @@ import org.springframework.stereotype.Service; * @version v1.0 * 2022-01-11 11:08 */ +@Slf4j @Service public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent { @Autowired @@ -38,13 +40,16 @@ public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent @Override public void memberConnectLogin(Member member, ConnectAuthUser authUser) { - + log.info("unionid:"+authUser.getToken().getUnionId()); + log.info("openid:"+authUser.getUuid()); //保存UnionID if (StrUtil.isNotBlank(authUser.getToken().getUnionId())) { connectService.loginBindUser(member.getId(), authUser.getToken().getUnionId(), authUser.getSource()); } //保存OpenID if (StrUtil.isNotBlank(authUser.getUuid())) { + log.info("authUser.getSource():"+authUser.getSource()); + log.info("authUser.getType():"+authUser.getType()); SourceEnum sourceEnum = SourceEnum.getSourceEnum(ConnectEnum.valueOf(authUser.getSource()), ClientTypeEnum.valueOf(authUser.getType())); connectService.loginBindUser(member.getId(), authUser.getUuid(), sourceEnum.name()); } diff --git a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java index e01b65c52..ed8ee89db 100644 --- a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java @@ -188,7 +188,7 @@ public class ConnectServiceImpl extends ServiceImpl impl connectAuthUser.setUsername("m" + phone); connectAuthUser.setPhone(phone); - AuthToken authToken=new AuthToken(); + AuthToken authToken = new AuthToken(); authToken.setUnionId(unionId); connectAuthUser.setToken(authToken); return this.unionLoginCallback(connectAuthUser, true); @@ -227,9 +227,14 @@ public class ConnectServiceImpl extends ServiceImpl impl Connect connect = this.queryConnect( ConnectQueryDTO.builder().unionId(unionId).unionType(type).build() ); + //如果未绑定则直接绑定 if (connect == null) { connect = new Connect(userId, unionId, type); this.save(connect); + //如果已绑定不是当前用户信息则删除绑定信息,重新绑定 + } else if (!connect.getUserId().equals(userId)) { + this.removeById(connect.getId()); + this.loginBindUser(userId, unionId, type); } }