联合登陆信息查询代码优化,更优雅的实现
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.dto.ConnectAuthUser;
|
||||
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
|
||||
import cn.lili.modules.member.entity.dto.ConnectQueryDTO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import javax.naming.NoPermissionException;
|
||||
@ -103,4 +104,12 @@ public interface ConnectService extends IService<Connect> {
|
||||
* @return token
|
||||
*/
|
||||
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.service.ConnectService;
|
||||
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.token.MemberTokenGenerate;
|
||||
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);
|
||||
}
|
||||
|
||||
@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>
|
||||
|
@ -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.entity.Connect;
|
||||
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.common.utils.UuidUtils;
|
||||
import cn.lili.modules.member.aop.annotation.PointLogPoint;
|
||||
import cn.lili.modules.member.entity.dos.Member;
|
||||
import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO;
|
||||
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.dto.*;
|
||||
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.member.entity.vo.MemberSearchVO;
|
||||
@ -469,10 +467,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||
* @param type 状态
|
||||
*/
|
||||
private void loginBindUser(Member member, String unionId, String type) {
|
||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Connect::getUnionId, unionId);
|
||||
queryWrapper.eq(Connect::getUnionType, type);
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().unionId(unionId).unionType(type).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
connect = new Connect(member.getId(), unionId, type);
|
||||
connectService.save(connect);
|
||||
@ -496,11 +493,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||
if (connectAuthUser == null) {
|
||||
return;
|
||||
}
|
||||
//检测是否已经绑定过用户
|
||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Connect::getUnionId, connectAuthUser.getUuid());
|
||||
queryWrapper.eq(Connect::getUnionType, connectType);
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().unionId(connectAuthUser.getUuid()).unionType(connectType).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
connect = new Connect(member.getId(), connectAuthUser.getUuid(), connectType);
|
||||
connectService.save(connect);
|
||||
@ -543,9 +538,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||
}
|
||||
//检测是否已经绑定过用户
|
||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Connect::getUnionId, connectAuthUser.getUuid());
|
||||
queryWrapper.eq(Connect::getUnionType, connectType);
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().unionType(connectType).unionId(connectAuthUser.getUuid()).build()
|
||||
);
|
||||
//没有关联则返回true,表示可以继续绑定
|
||||
if (connect == null) {
|
||||
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.enums.ConnectEnum;
|
||||
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.WechatMessage;
|
||||
import cn.lili.modules.message.entity.enums.WechatMessageItemEnums;
|
||||
@ -87,11 +88,9 @@ public class WechatMessageUtil {
|
||||
return;
|
||||
}
|
||||
|
||||
QueryWrapper<Connect> queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("user_id", order.getMemberId());
|
||||
queryWrapper.eq("union_type", ConnectEnum.WECHAT.name());
|
||||
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(ConnectEnum.WECHAT.name()).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
return;
|
||||
}
|
||||
@ -147,11 +146,9 @@ public class WechatMessageUtil {
|
||||
return;
|
||||
}
|
||||
|
||||
QueryWrapper<Connect> queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("user_id", order.getMemberId());
|
||||
queryWrapper.eq("union_type", ConnectEnum.WECHAT_MP_OPEN_ID.name());
|
||||
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import cn.lili.common.enums.ClientTypeEnum;
|
||||
import cn.lili.modules.connect.entity.Connect;
|
||||
import cn.lili.modules.connect.entity.enums.ConnectEnum;
|
||||
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.payment.entity.RefundLog;
|
||||
import cn.lili.modules.payment.kit.CashierSupport;
|
||||
@ -166,10 +167,9 @@ public class WechatPlugin implements Payment {
|
||||
public ResultMessage<Object> jsApiPay(HttpServletRequest request, PayParam payParam) {
|
||||
|
||||
try {
|
||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Connect::getUserId, UserContext.getCurrentUser().getId())
|
||||
.eq(Connect::getUnionType, ConnectEnum.WECHAT.name());
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT.name()).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
return null;
|
||||
}
|
||||
@ -359,10 +359,9 @@ public class WechatPlugin implements Payment {
|
||||
public ResultMessage<Object> mpPay(HttpServletRequest request, PayParam payParam) {
|
||||
|
||||
try {
|
||||
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Connect::getUserId, UserContext.getCurrentUser().getId())
|
||||
.eq(Connect::getUnionType, ConnectEnum.WECHAT_MP_OPEN_ID.name());
|
||||
Connect connect = connectService.getOne(queryWrapper);
|
||||
Connect connect = connectService.queryConnect(
|
||||
ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build()
|
||||
);
|
||||
if (connect == null) {
|
||||
return null;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user