From 6127f9c2f53b4e11d2ddfc5575631e5403da0410 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 05 Jun 2025 17:34:45 +0800 Subject: [PATCH] feat(mall): 添加年排行功能并优化积分查询性能 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 438 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 434 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index e732db2..5afa1cb 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.common.configure.FebsConfigure; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.*; import cc.mrbird.febs.common.exception.FebsException; @@ -9,11 +10,14 @@ import cc.mrbird.febs.mall.conversion.MallShopApplyConversion; import cc.mrbird.febs.mall.conversion.MallStoreConversion; import cc.mrbird.febs.mall.dto.*; +import cc.mrbird.febs.mall.dto.memberLevel.*; import cc.mrbird.febs.mall.dto.signActivity.ApiNewGiftSettingDto; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.mall.vo.memberLevel.*; +import cc.mrbird.febs.mall.vo.sale.ApiSaleRecordInfoVo; import cc.mrbird.febs.pay.model.BrandWCPayRequestData; import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.pay.util.MD5; @@ -22,6 +26,7 @@ import cc.mrbird.febs.vip.mapper.MallVipConfigMapper; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; @@ -36,6 +41,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; @@ -49,6 +55,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -90,6 +97,9 @@ private final MallDoctorMapper mallDoctorMapper; private final HappyMemberLevelMapper happyMemberLevelMapper; private final IApiMallMemberWalletService mallMemberWalletService; + private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper; + private final HappyMemberLabelMapper happyMemberLabelMapper; + private final FebsConfigure febsConfigure; @Value("${spring.profiles.active}") @@ -271,7 +281,7 @@ HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne( new LambdaQueryWrapper<HappyMemberLevel>() - .select(HappyMemberLevel::getName) + .select(HappyMemberLevel::getName, HappyMemberLevel::getIconPng) .eq(HappyMemberLevel::getCode, mallMember.getDirector()) ); if(happyMemberLevel != null){ @@ -323,6 +333,31 @@ mallMemberVo.setScore(wallet.getScore()); mallMemberVo.setPrizeScore(wallet.getPrizeScore()); // mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); + + List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList( + new LambdaQueryWrapper<HappyMemberLabelRecord>() + .eq(HappyMemberLabelRecord::getMemberId, id) + .orderByDesc(HappyMemberLabelRecord::getId) + .last("limit 5") + ); + if(CollUtil.isNotEmpty(happyMemberLabelRecords)){ + Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet()); + List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList( + new LambdaQueryWrapper<HappyMemberLabel>() + .select(HappyMemberLabel::getIconPng, HappyMemberLabel::getName) + .in(HappyMemberLabel::getId, collect) + ); + if(CollUtil.isNotEmpty(happyMemberLabels)){ + ArrayList<ApiLabelInfoVo> apiMemberLabelVos = new ArrayList<>(); + for (HappyMemberLabel happyMemberLabel : happyMemberLabels) { + ApiLabelInfoVo apiLabelInfoVo = new ApiLabelInfoVo(); + apiLabelInfoVo.setIconPng(happyMemberLabel.getIconPng()); + apiLabelInfoVo.setName(happyMemberLabel.getName()); + apiMemberLabelVos.add(apiLabelInfoVo); + } + mallMemberVo.setLabelList(apiMemberLabelVos); + } + } return new FebsResponse().success().data(mallMemberVo); } @@ -704,9 +739,29 @@ //分销员的邀请码赠送优惠卷 if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) { - GetCouponDto getCouponDto = new GetCouponDto(); - getCouponDto.setInviteId(apiXcxLoginDto.getInviteId()); - scanCoupon(getCouponDto); + String couponUUID = IdUtil.simpleUUID(); + //通过邀请人信息,获取能领取的优惠卷信息 + MallMember refMember = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId()); + if(ObjectUtil.isNotEmpty(refMember)){ + SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(refMember.getId()); + if(ObjectUtil.isNotEmpty(salemanCoupon)){ + Long couponId = salemanCoupon.getCouponId(); + List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(mallMember.getId(), couponId); + if(CollUtil.isEmpty(mallMemberCoupons)){ + //商品优惠卷如果绑定了,那么当前登陆者获取一张卷 + MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId); + MallMemberCoupon mallMemberCoupon = new MallMemberCoupon(); + mallMemberCoupon.setCouponId(couponId); + mallMemberCoupon.setCouponName(mallGoodsCoupon.getName()); + mallMemberCoupon.setMemberId(mallMember.getId()); + mallMemberCoupon.setCouponUuid(couponUUID); + mallMemberCoupon.setInviteId(refMember.getInviteId()); + mallMemberCoupon.setState(1); + mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay())); + mallMemberCouponMapper.insert(mallMemberCoupon); + } + } + } } } else { if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) { @@ -1670,6 +1725,381 @@ return new FebsResponse().success().data(apiMemberNewGiftSettingVo); } + @Override + public FebsResponse getLabelList() { + + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + ArrayList<ApiMemberLabelVo> apiMemberLabelVos = new ArrayList<>(); + + List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList( + new LambdaQueryWrapper<HappyMemberLabelRecord>() + .eq(HappyMemberLabelRecord::getMemberId,memberId) + ); + if(CollUtil.isNotEmpty(happyMemberLabelRecords)){ + Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet()); + List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList( + new LambdaQueryWrapper<HappyMemberLabel>() + .select( HappyMemberLabel::getId, HappyMemberLabel::getCode,HappyMemberLabel::getIconPng, HappyMemberLabel::getName, HappyMemberLabel::getContent, HappyMemberLabel::getHeaderPng) + .in(HappyMemberLabel::getId, collect) + .orderByDesc(HappyMemberLabel::getCode) + ); + if(CollUtil.isNotEmpty(happyMemberLabels)){ + for (HappyMemberLabel happyMemberLabel : happyMemberLabels) { + ApiMemberLabelVo apiMemberLabelVo = new ApiMemberLabelVo(); + apiMemberLabelVo.setId(happyMemberLabel.getId()); + apiMemberLabelVo.setCode(happyMemberLabel.getCode()); + apiMemberLabelVo.setName(happyMemberLabel.getName()); + apiMemberLabelVo.setContent(happyMemberLabel.getContent()); + apiMemberLabelVo.setHeaderPng(happyMemberLabel.getHeaderPng()); + apiMemberLabelVo.setIconPng(happyMemberLabel.getIconPng()); + apiMemberLabelVos.add(apiMemberLabelVo); + } + } + } + + return new FebsResponse().success().data(apiMemberLabelVos); + } + + @Override + public FebsResponse getLabelListById(ApiMemberLabelInfoDto dto) { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + List<ApiMemberLabelInfoVo> apiMemberLabelInfoVos = new ArrayList<>(); + + HappyMemberLabelRecord happyMemberLabelRecord = happyMemberLabelRecordMapper.selectOne( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .eq(HappyMemberLabelRecord::getMemberId, memberId) + .eq(HappyMemberLabelRecord::getLabelId, dto.getId()) + ); + if(ObjectUtil.isEmpty(happyMemberLabelRecord)){ + throw new FebsException("您没有该会员标签"); + } + HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(dto.getId()); + if(ObjectUtil.isEmpty(happyMemberLabel)){ + throw new FebsException("您没有该会员标签"); + } + if(!ObjectUtil.equal(happyMemberLabel.getCode(),1)){ + throw new FebsException("没有查看权限"); + } + + List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabel.class) + .eq(HappyMemberLabel::getParentId, dto.getId()) + ); + if(CollUtil.isNotEmpty(happyMemberLabels)){ + for (HappyMemberLabel happyMemberLabelItem : happyMemberLabels) { + ApiMemberLabelInfoVo apiMemberLabelInfoVo = new ApiMemberLabelInfoVo(); + + apiMemberLabelInfoVo.setId(happyMemberLabelItem.getId()); + apiMemberLabelInfoVo.setName(happyMemberLabelItem.getName()); + apiMemberLabelInfoVos.add(apiMemberLabelInfoVo); + } + } + + return new FebsResponse().success().data(apiMemberLabelInfoVos); + } + + @Override + public FebsResponse scoreRecord(ApiScoreRecordInfoDto dto) { + // 初始化结果列表 + List<ApiScoreRecordInfoVo> apiSaleRecordInfoVos = new ArrayList<>(); + + List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabel.class) + .eq(HappyMemberLabel::getCode, 1) + .eq(HappyMemberLabel::getParentId, 0) + ); + if(CollUtil.isEmpty(happyMemberLabels)){ + return new FebsResponse().success().data(apiSaleRecordInfoVos); + } + + // 获取类型参数 + Integer type = dto.getType(); + // 校验类型参数,确保其为1(月)或2(周) + if (type == null || (type != 1 && type != 2 && type != 3)) { + return new FebsResponse().fail().message("非法的类型参数"); + } + DateTime startTime = DateUtil.beginOfMonth(new Date()); + if(1 == type){ + startTime = DateUtil.beginOfMonth(new Date()); + } + if(2 == type){ + startTime = DateUtil.beginOfWeek(new Date()); + } + if(3 == type){ + startTime = DateUtil.beginOfYear(new Date()); + } + + // 合并查询所有子标签 + Set<Long> parentIds = happyMemberLabels.stream() + .map(HappyMemberLabel::getId) + .collect(Collectors.toSet()); + + List<HappyMemberLabel> allChildLabels = happyMemberLabelMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabel.class) + .in(HappyMemberLabel::getParentId, parentIds) + ); + + Map<Long, List<HappyMemberLabel>> childLabelMap = new HashMap<>(); + if (CollUtil.isNotEmpty(allChildLabels)) { + childLabelMap = allChildLabels.stream() + .collect(Collectors.groupingBy(HappyMemberLabel::getParentId)); + } + + // 提取所有子标签 ID + Set<Long> labelIds = allChildLabels.stream() + .map(HappyMemberLabel::getId) + .collect(Collectors.toSet()); + + // 获取所有绑定关系 + List<HappyMemberLabelRecord> labelRecords = CollUtil.isEmpty(labelIds) ? Collections.emptyList() : + happyMemberLabelRecordMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .in(HappyMemberLabelRecord::getLabelId, labelIds) + ); + + Map<Long, Set<Long>> labelToMembersMap = new HashMap<>(); + if (CollUtil.isNotEmpty(labelRecords)) { + labelToMembersMap = labelRecords.stream() + .collect(Collectors.groupingBy( + HappyMemberLabelRecord::getLabelId, + Collectors.mapping(HappyMemberLabelRecord::getMemberId, Collectors.toSet()) + )); + } + + Set<Long> memberIds = labelToMembersMap.values().stream() + .flatMap(Set::stream) + .collect(Collectors.toSet()); + + // 获取资金流 + List<MallMoneyFlow> moneyFlows = CollUtil.isEmpty(memberIds) ? Collections.emptyList() : + mallMoneyFlowMapper.selectList( + Wrappers.lambdaQuery(MallMoneyFlow.class) + .select(MallMoneyFlow::getAmount, MallMoneyFlow::getMemberId) + .in(MallMoneyFlow::getMemberId, memberIds) + .eq(MallMoneyFlow::getFlowType, FlowTypeEnum.PRIZE_SCORE.getValue()) + .gt(MallMoneyFlow::getAmount, BigDecimal.ZERO) + .ge(MallMoneyFlow::getCreatedTime, startTime) + ); + + Map<Long, BigDecimal> memberScoreMap = new HashMap<>(); + if (CollUtil.isNotEmpty(moneyFlows)) { + memberScoreMap = moneyFlows.stream() + .collect(Collectors.groupingBy( + MallMoneyFlow::getMemberId, + Collectors.mapping(MallMoneyFlow::getAmount, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)) + )); + } + + List<CompletableFuture<ApiScoreRecordInfoVo>> futures = new ArrayList<>(); + + Map<Long, List<HappyMemberLabel>> finalChildLabelMap = childLabelMap; + Map<Long, Set<Long>> finalLabelToMembersMap = labelToMembersMap; + Map<Long, BigDecimal> finalMemberScoreMap = memberScoreMap; + happyMemberLabels.forEach(item -> { + CompletableFuture<ApiScoreRecordInfoVo> uCompletableFuture = CompletableFuture.supplyAsync(() -> { + ApiScoreRecordInfoVo vo = new ApiScoreRecordInfoVo(); + vo.setName(item.getName()); + vo.setAvatar(item.getIconPng()); + vo.setScore(BigDecimal.ZERO); + + List<HappyMemberLabel> children = finalChildLabelMap.getOrDefault(item.getId(), Collections.emptyList()); + if (CollUtil.isEmpty(children)) { + return vo; + } + + Set<Long> childIds = children.stream().map(HappyMemberLabel::getId).collect(Collectors.toSet()); + Set<Long> members = new HashSet<>(); + for (Long childId : childIds) { + Set<Long> ids = finalLabelToMembersMap.getOrDefault(childId, Collections.emptySet()); + members.addAll(ids); + } + + if (CollUtil.isEmpty(members)) { + return vo; + } + + BigDecimal total = BigDecimal.ZERO; + for (Long memberId : members) { + total = total.add(finalMemberScoreMap.getOrDefault(memberId, BigDecimal.ZERO)); + } + vo.setScore(total.setScale(0, RoundingMode.DOWN)); + return vo; + }, febsConfigure.asyncThreadPoolTaskExecutor()).exceptionally(ex -> { + // 异常兜底返回默认值 + ApiScoreRecordInfoVo vo = new ApiScoreRecordInfoVo(); + vo.setName(item.getName()); + vo.setAvatar(item.getIconPng()); + vo.setScore(BigDecimal.ZERO); + return vo; + }); + + futures.add(uCompletableFuture); + }); + // 等待所有任务完成 + CompletableFuture<Void> allOf = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])); + allOf.join(); // 阻塞直到所有任务完成 + + //等任务结束,获取返回结果 + apiSaleRecordInfoVos = futures.stream() + .map(CompletableFuture::join) + .sorted(Comparator.comparing(ApiScoreRecordInfoVo::getScore).reversed()) + .collect(Collectors.toList()); + + + // 返回成功响应,包含销售记录信息 + return new FebsResponse().success().data(apiSaleRecordInfoVos); + } + + @Override + public FebsResponse getMemberLabelListById(ApiMemberLabelItemDto dto) { + + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + List<ApiMemberLabelItemVo> apiMemberLabelItemVos = new ArrayList<>(); + + Integer labelId = dto.getLabelId(); + List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .eq(HappyMemberLabelRecord::getLabelId, labelId) + ); + if(CollUtil.isNotEmpty(happyMemberLabelRecords)){ + + //stream流操作happyMemberLabelRecords,返回memberId的set集合 + Set<Long> memberIdSet = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getMemberId).collect(Collectors.toSet()); + List<MallMember> mallMembers = this.baseMapper.selectList( + Wrappers.lambdaQuery(MallMember.class) + .select(MallMember::getId, MallMember::getName, MallMember::getPhone, MallMember::getAvatar) + .in(MallMember::getId, memberIdSet) + .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE) + ); + + List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList( + Wrappers.lambdaQuery(MallMoneyFlow.class) + .select(MallMoneyFlow::getAmount, MallMoneyFlow::getMemberId) + .in(MallMoneyFlow::getMemberId, memberIdSet) + .eq(MallMoneyFlow::getFlowType, FlowTypeEnum.PRIZE_SCORE.getValue()) + .gt(MallMoneyFlow::getAmount, BigDecimal.ZERO) + ); + //stream流操作mallMoneyFlows,返回一个map<Long,BigDecimal>,其中key为memberId,value为mallMoneyFlow的memberId等于key的amount的总和 + Map<Long, BigDecimal> prizeScoreMap = mallMoneyFlows.stream() + .filter(Objects::nonNull) // 防止 MallMoneyFlow 为 null + .collect(Collectors.groupingBy( + MallMoneyFlow::getMemberId, + Collectors.mapping( + MallMoneyFlow::getAmount, + Collectors.reducing(BigDecimal.ZERO, BigDecimal::add) + ) + )); + for (MallMember mallMember : mallMembers){ + ApiMemberLabelItemVo apiMemberLabelItemVo = new ApiMemberLabelItemVo(); + apiMemberLabelItemVo.setName(mallMember.getName()); + apiMemberLabelItemVo.setAvatar(mallMember.getAvatar()); + apiMemberLabelItemVo.setPhone(mallMember.getPhone()); + apiMemberLabelItemVo.setScore(prizeScoreMap.get(mallMember.getId()).setScale(0,RoundingMode.DOWN)); + apiMemberLabelItemVos.add(apiMemberLabelItemVo); + } + } + + return new FebsResponse().success().data(apiMemberLabelItemVos); + } + + @Override + public FebsResponse addLabelMember(ApiMemberLabelAddDto dto) { + + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + ApiMemberLabelAddVo apiMemberLabelAddVo = new ApiMemberLabelAddVo(); + + Integer labelId = dto.getLabelId(); + String phone = dto.getPhone(); + + List<MallMember> mallMembers = this.baseMapper.selectList( + Wrappers.lambdaQuery(MallMember.class) + .eq(MallMember::getPhone, phone) + ); + if(CollUtil.isEmpty(mallMembers)){ + throw new FebsException("未查询到用户"); + } + + MallMember mallMember = mallMembers.get(0); + apiMemberLabelAddVo.setMemberId(mallMember.getId()); + apiMemberLabelAddVo.setName(mallMember.getName()); + apiMemberLabelAddVo.setPhone(mallMember.getPhone()); + + HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId); + apiMemberLabelAddVo.setLabelId(happyMemberLabel.getId()); + apiMemberLabelAddVo.setLabelName(happyMemberLabel.getName()); + + //获取会员标签 + Integer integer = happyMemberLabelRecordMapper.selectCount( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .eq(HappyMemberLabelRecord::getMemberId, mallMember.getId()) + .eq(HappyMemberLabelRecord::getLabelId, labelId) + ); + if(integer > 0){ + apiMemberLabelAddVo.setState(0); + }else{ + apiMemberLabelAddVo.setState(1); + } + return new FebsResponse().success().data(apiMemberLabelAddVo); + } + + @Override + public FebsResponse insureLabelMember(ApiMemberLabelInsureDto dto) { + + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + Long labelId = dto.getLabelId(); + Long insureMemberId = dto.getMemberId(); + + HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId); + if(ObjectUtil.isEmpty(happyMemberLabel)){ + throw new FebsException("会员标签不存在"); + } + if(happyMemberLabel.getParentId() == 0){ + throw new FebsException("会员标签不存在"); + } + + Long parentId = happyMemberLabel.getParentId(); + HappyMemberLabel happyMemberLabelParent = happyMemberLabelMapper.selectById(parentId); + if(ObjectUtil.isEmpty(happyMemberLabelParent)){ + throw new FebsException("会员标签不存在"); + } + if(happyMemberLabelParent.getCode() != 1){ + throw new FebsException("权限不足"); + } + + List<HappyMemberLabelRecord> happyMemberLabelRecordsParent = happyMemberLabelRecordMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .eq(HappyMemberLabelRecord::getMemberId, memberId) + .eq(HappyMemberLabelRecord::getLabelId, parentId) + ); + if(ObjectUtil.isEmpty(happyMemberLabelRecordsParent)){ + throw new FebsException("权限不足"); + } + + + List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList( + Wrappers.lambdaQuery(HappyMemberLabelRecord.class) + .eq(HappyMemberLabelRecord::getMemberId, insureMemberId) + .eq(HappyMemberLabelRecord::getLabelId, labelId) + ); + if(CollUtil.isEmpty(happyMemberLabelRecords)){ + HappyMemberLabelRecord happyMemberLabelRecord = new HappyMemberLabelRecord(); + happyMemberLabelRecord.setMemberId(insureMemberId); + happyMemberLabelRecord.setLabelId(labelId); + happyMemberLabelRecordMapper.insert(happyMemberLabelRecord); + } + + return new FebsResponse().success().message("操作成功"); + } + // public static void main(String[] args) { // Long userld = 16425L; // String shopAccount = "爱和美医疗"; -- Gitblit v1.9.1