联合登陆信息查询代码优化,更优雅的实现
This commit is contained in:
parent
c224ad568e
commit
b0d39324ef
@ -5,6 +5,7 @@ import cn.lili.common.security.token.Token;
|
|||||||
import cn.lili.modules.connect.entity.Connect;
|
import cn.lili.modules.connect.entity.Connect;
|
||||||
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
||||||
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
|
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
|
||||||
|
import cn.lili.modules.member.entity.dto.ConnectQueryDTO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import javax.naming.NoPermissionException;
|
import javax.naming.NoPermissionException;
|
||||||
@ -103,4 +104,12 @@ public interface ConnectService extends IService<Connect> {
|
|||||||
* @return token
|
* @return token
|
||||||
*/
|
*/
|
||||||
Token miniProgramAutoLogin(WechatMPLoginParams params);
|
Token miniProgramAutoLogin(WechatMPLoginParams params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据查询dto获取查询对象
|
||||||
|
*
|
||||||
|
* @param connectQueryDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Connect queryConnect(ConnectQueryDTO connectQueryDTO);
|
||||||
}
|
}
|
@ -21,6 +21,7 @@ import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
|||||||
import cn.lili.modules.connect.mapper.ConnectMapper;
|
import cn.lili.modules.connect.mapper.ConnectMapper;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
|
import cn.lili.modules.member.entity.dto.ConnectQueryDTO;
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.member.token.MemberTokenGenerate;
|
import cn.lili.modules.member.token.MemberTokenGenerate;
|
||||||
import cn.lili.modules.system.entity.dos.Setting;
|
import cn.lili.modules.system.entity.dos.Setting;
|
||||||
@ -232,6 +233,16 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
|
|||||||
return memberTokenGenerate.createToken(newMember.getUsername(), true);
|
return memberTokenGenerate.createToken(newMember.getUsername(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Connect queryConnect(ConnectQueryDTO connectQueryDTO) {
|
||||||
|
|
||||||
|
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(StringUtils.isNotEmpty(connectQueryDTO.getUserId()), Connect::getUserId, connectQueryDTO.getUserId())
|
||||||
|
.eq(StringUtils.isNotEmpty(connectQueryDTO.getUnionType()), Connect::getUnionType, connectQueryDTO.getUnionType())
|
||||||
|
.eq(StringUtils.isNotEmpty(connectQueryDTO.getUnionId()), Connect::getUnionId, connectQueryDTO.getUnionId());
|
||||||
|
return this.getOne(queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员绑定 绑定微信小程序
|
* 会员绑定 绑定微信小程序
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
package cn.lili.modules.member.entity.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ConnectQueryDTO
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @version v1.0
|
||||||
|
* 2021-12-01 14:34
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class ConnectQueryDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方id
|
||||||
|
*/
|
||||||
|
private String unionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 联合登陆类型
|
||||||
|
*/
|
||||||
|
private String unionType;
|
||||||
|
|
||||||
|
}
|
@ -21,14 +21,12 @@ import cn.lili.common.vo.PageVO;
|
|||||||
import cn.lili.modules.connect.config.ConnectAuthEnum;
|
import cn.lili.modules.connect.config.ConnectAuthEnum;
|
||||||
import cn.lili.modules.connect.entity.Connect;
|
import cn.lili.modules.connect.entity.Connect;
|
||||||
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
||||||
|
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
import cn.lili.common.utils.UuidUtils;
|
import cn.lili.common.utils.UuidUtils;
|
||||||
import cn.lili.modules.member.aop.annotation.PointLogPoint;
|
import cn.lili.modules.member.aop.annotation.PointLogPoint;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO;
|
import cn.lili.modules.member.entity.dto.*;
|
||||||
import cn.lili.modules.member.entity.dto.MemberAddDTO;
|
|
||||||
import cn.lili.modules.member.entity.dto.MemberEditDTO;
|
|
||||||
import cn.lili.modules.member.entity.dto.MemberPointMessage;
|
|
||||||
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
||||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||||
import cn.lili.modules.member.entity.vo.MemberSearchVO;
|
import cn.lili.modules.member.entity.vo.MemberSearchVO;
|
||||||
@ -469,10 +467,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||||||
* @param type 状态
|
* @param type 状态
|
||||||
*/
|
*/
|
||||||
private void loginBindUser(Member member, String unionId, String type) {
|
private void loginBindUser(Member member, String unionId, String type) {
|
||||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq(Connect::getUnionId, unionId);
|
ConnectQueryDTO.builder().unionId(unionId).unionType(type).build()
|
||||||
queryWrapper.eq(Connect::getUnionType, type);
|
);
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
connect = new Connect(member.getId(), unionId, type);
|
connect = new Connect(member.getId(), unionId, type);
|
||||||
connectService.save(connect);
|
connectService.save(connect);
|
||||||
@ -496,11 +493,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||||||
if (connectAuthUser == null) {
|
if (connectAuthUser == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//检测是否已经绑定过用户
|
Connect connect = connectService.queryConnect(
|
||||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
ConnectQueryDTO.builder().unionId(connectAuthUser.getUuid()).unionType(connectType).build()
|
||||||
queryWrapper.eq(Connect::getUnionId, connectAuthUser.getUuid());
|
);
|
||||||
queryWrapper.eq(Connect::getUnionType, connectType);
|
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
connect = new Connect(member.getId(), connectAuthUser.getUuid(), connectType);
|
connect = new Connect(member.getId(), connectAuthUser.getUuid(), connectType);
|
||||||
connectService.save(connect);
|
connectService.save(connect);
|
||||||
@ -543,9 +538,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||||||
}
|
}
|
||||||
//检测是否已经绑定过用户
|
//检测是否已经绑定过用户
|
||||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(Connect::getUnionId, connectAuthUser.getUuid());
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq(Connect::getUnionType, connectType);
|
ConnectQueryDTO.builder().unionType(connectType).unionId(connectAuthUser.getUuid()).build()
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
);
|
||||||
//没有关联则返回true,表示可以继续绑定
|
//没有关联则返回true,表示可以继续绑定
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
connectAuthUser.setConnectEnum(authInterface);
|
connectAuthUser.setConnectEnum(authInterface);
|
||||||
|
@ -11,6 +11,7 @@ import cn.lili.common.enums.ClientTypeEnum;
|
|||||||
import cn.lili.modules.connect.entity.Connect;
|
import cn.lili.modules.connect.entity.Connect;
|
||||||
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
|
import cn.lili.modules.member.entity.dto.ConnectQueryDTO;
|
||||||
import cn.lili.modules.message.entity.dos.WechatMPMessage;
|
import cn.lili.modules.message.entity.dos.WechatMPMessage;
|
||||||
import cn.lili.modules.message.entity.dos.WechatMessage;
|
import cn.lili.modules.message.entity.dos.WechatMessage;
|
||||||
import cn.lili.modules.message.entity.enums.WechatMessageItemEnums;
|
import cn.lili.modules.message.entity.enums.WechatMessageItemEnums;
|
||||||
@ -87,11 +88,9 @@ public class WechatMessageUtil {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryWrapper<Connect> queryWrapper = new QueryWrapper();
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq("user_id", order.getMemberId());
|
ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(ConnectEnum.WECHAT.name()).build()
|
||||||
queryWrapper.eq("union_type", ConnectEnum.WECHAT.name());
|
);
|
||||||
|
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -147,11 +146,9 @@ public class WechatMessageUtil {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryWrapper<Connect> queryWrapper = new QueryWrapper();
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq("user_id", order.getMemberId());
|
ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build()
|
||||||
queryWrapper.eq("union_type", ConnectEnum.WECHAT_MP_OPEN_ID.name());
|
);
|
||||||
|
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import cn.lili.common.enums.ClientTypeEnum;
|
|||||||
import cn.lili.modules.connect.entity.Connect;
|
import cn.lili.modules.connect.entity.Connect;
|
||||||
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
|
import cn.lili.modules.member.entity.dto.ConnectQueryDTO;
|
||||||
import cn.lili.modules.order.order.service.OrderService;
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
import cn.lili.modules.payment.entity.RefundLog;
|
import cn.lili.modules.payment.entity.RefundLog;
|
||||||
import cn.lili.modules.payment.kit.CashierSupport;
|
import cn.lili.modules.payment.kit.CashierSupport;
|
||||||
@ -166,10 +167,9 @@ public class WechatPlugin implements Payment {
|
|||||||
public ResultMessage<Object> jsApiPay(HttpServletRequest request, PayParam payParam) {
|
public ResultMessage<Object> jsApiPay(HttpServletRequest request, PayParam payParam) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq(Connect::getUserId, UserContext.getCurrentUser().getId())
|
ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT.name()).build()
|
||||||
.eq(Connect::getUnionType, ConnectEnum.WECHAT.name());
|
);
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -359,10 +359,9 @@ public class WechatPlugin implements Payment {
|
|||||||
public ResultMessage<Object> mpPay(HttpServletRequest request, PayParam payParam) {
|
public ResultMessage<Object> mpPay(HttpServletRequest request, PayParam payParam) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
Connect connect = connectService.queryConnect(
|
||||||
queryWrapper.eq(Connect::getUserId, UserContext.getCurrentUser().getId())
|
ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build()
|
||||||
.eq(Connect::getUnionType, ConnectEnum.WECHAT_MP_OPEN_ID.name());
|
);
|
||||||
Connect connect = connectService.getOne(queryWrapper);
|
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user