第三方登录集成unionID

This commit is contained in:
pikachu1995@126.com
2023-03-02 10:45:43 +08:00
parent 74972eaa37
commit 8d8cffca71
18 changed files with 323 additions and 266 deletions

View File

@@ -0,0 +1,21 @@
package cn.lili.event;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
import cn.lili.modules.member.entity.dos.Member;
/**
* 会员联合登录消息
*
* @author Chopper
* @since 2020/11/17 7:13 下午
*/
public interface MemberConnectLoginEvent {
/**
* 会员联合登录
*
* @param member 会员
* @param authUser 第三方登录
*/
void memberConnectLogin(Member member, ConnectAuthUser authUser);
}

View File

@@ -1,25 +1,49 @@
package cn.lili.event.impl;
import cn.hutool.core.util.StrUtil;
import cn.lili.event.MemberConnectLoginEvent;
import cn.lili.event.MemberLoginEvent;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 会员自身业务
* 会员登录,会员第三方登录
*
* @author Chopper
* @version v1.0
* 2022-01-11 11:08
*/
@Service
public class MemberExecute implements MemberLoginEvent {
public class MemberExecute implements MemberLoginEvent, MemberConnectLoginEvent {
@Autowired
private MemberService memberService;
@Autowired
private ConnectService connectService;
@Autowired
private SettingService settingService;
@Override
public void memberLogin(Member member) {
memberService.updateMemberLoginTime(member.getId());
}
@Override
public void memberConnectLogin(Member member, ConnectAuthUser authUser) {
//保存UnionID
if (StrUtil.isNotBlank(authUser.getToken().getUnionId())) {
connectService.loginBindUser(member.getId(), authUser.getToken().getUnionId(), authUser.getType());
}
//保存OpenID
if (StrUtil.isNotBlank(authUser.getUuid())) {
connectService.loginBindUser(member.getId(), authUser.getUuid(), authUser.getType());
}
}
}

View File

@@ -3,6 +3,7 @@ package cn.lili.listener;
import cn.hutool.json.JSONUtil;
import cn.lili.event.*;
import cn.lili.event.impl.ImTalkExecute;
import cn.lili.modules.connect.entity.dto.MemberConnectLoginMessage;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberSign;
import cn.lili.modules.member.entity.dto.MemberPointMessage;
@@ -55,10 +56,10 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
*/
@Autowired
private List<MemberLoginEvent> memberLoginEvents;
@Autowired
private List<MemberInfoChangeEvent> memberInfoChangeEvents;
@Autowired
private List<MemberConnectLoginEvent> memberConnectLoginEvents;
@Override
public void onMessage(MessageExt messageExt) {
@@ -77,7 +78,7 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
}
}
break;
//用户登录
case MEMBER_LOGIN:
for (MemberLoginEvent memberLoginEvent : memberLoginEvents) {
@@ -139,6 +140,20 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
}
}
break;
//用户第三方登录
case MEMBER_CONNECT_LOGIN:
for (MemberConnectLoginEvent memberConnectLoginEvent : memberConnectLoginEvents) {
try {
MemberConnectLoginMessage memberConnectLoginMessage = JSONUtil.toBean(new String(messageExt.getBody()), MemberConnectLoginMessage.class);
memberConnectLoginEvent.memberConnectLogin(memberConnectLoginMessage.getMember(), memberConnectLoginMessage.getConnectAuthUser());
} catch (Exception e) {
log.error("会员{},在{}业务中,状态修改事件执行异常",
new String(messageExt.getBody()),
memberConnectLoginEvent.getClass().getName(),
e);
}
}
break;
default:
break;
}