diff --git a/framework/src/main/java/cn/lili/modules/connect/service/ConnectService.java b/framework/src/main/java/cn/lili/modules/connect/service/ConnectService.java index 7a33b102..6df3b143 100644 --- a/framework/src/main/java/cn/lili/modules/connect/service/ConnectService.java +++ b/framework/src/main/java/cn/lili/modules/connect/service/ConnectService.java @@ -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 { * @return token */ Token miniProgramAutoLogin(WechatMPLoginParams params); + + /** + * 根据查询dto获取查询对象 + * + * @param connectQueryDTO + * @return + */ + Connect queryConnect(ConnectQueryDTO connectQueryDTO); } \ No newline at end of file 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 d5e03307..0d0b1ab2 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 @@ -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 impl return memberTokenGenerate.createToken(newMember.getUsername(), true); } + @Override + public Connect queryConnect(ConnectQueryDTO connectQueryDTO) { + + LambdaQueryWrapper 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); + } + /** * 会员绑定 绑定微信小程序 *

diff --git a/framework/src/main/java/cn/lili/modules/member/entity/dto/ConnectQueryDTO.java b/framework/src/main/java/cn/lili/modules/member/entity/dto/ConnectQueryDTO.java new file mode 100644 index 00000000..17f4877a --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/member/entity/dto/ConnectQueryDTO.java @@ -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; + +} diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index d536a224..5960e1ce 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java @@ -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 impleme * @param type 状态 */ private void loginBindUser(Member member, String unionId, String type) { - LambdaQueryWrapper 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 impleme if (connectAuthUser == null) { return; } - //检测是否已经绑定过用户 - LambdaQueryWrapper 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 impleme } //检测是否已经绑定过用户 LambdaQueryWrapper 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); diff --git a/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java b/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java index 553ef7ba..43cfba6f 100644 --- a/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java +++ b/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java @@ -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 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 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; } diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java index be768841..6a2ce8b6 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java @@ -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 jsApiPay(HttpServletRequest request, PayParam payParam) { try { - LambdaQueryWrapper 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 mpPay(HttpServletRequest request, PayParam payParam) { try { - LambdaQueryWrapper 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; }