From 0bbcc99c76e9fc4e20e9af66776bb8eaa0ca1984 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 26 Feb 2024 10:39:22 +0800 Subject: [PATCH] Merge branch 'blnka-vip' of http://120.27.238.55:7000/r/xc-mall into blnka-vip --- src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java index dde27c1..487441b 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java @@ -13,9 +13,11 @@ import cc.mrbird.febs.vip.entity.MallVipBenefits; import cc.mrbird.febs.vip.entity.MallVipBenefitsDetails; import cc.mrbird.febs.vip.entity.MallVipBenefitsRecord; +import cc.mrbird.febs.vip.entity.MallVipConfig; import cc.mrbird.febs.vip.mapper.MallVipBenefitsDetailsMapper; import cc.mrbird.febs.vip.mapper.MallVipBenefitsMapper; import cc.mrbird.febs.vip.mapper.MallVipBenefitsRecordMapper; +import cc.mrbird.febs.vip.mapper.MallVipConfigMapper; import cc.mrbird.febs.vip.service.IMallVipBenefitsDetailsService; import cc.mrbird.febs.vip.service.IMallVipBenefitsService; import cn.hutool.core.collection.CollUtil; @@ -37,6 +39,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; +import java.util.Objects; @Slf4j @Service @@ -52,6 +55,8 @@ private final MallOrderItemMapper mallOrderItemMapper; private final MallVipBenefitsRecordMapper mallVipBenefitsRecordMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final MallMemberMapper mallMemberMapper; + private final MallVipConfigMapper mallVipConfigMapper; @Override public IPage<MallVipBenefits> vipBenefitsListInPage(QueryRequest request) { @@ -71,15 +76,17 @@ return; } - if (CollUtil.isEmpty(mallVipBenefits.getDetails())) { - throw new FebsException("权益明细不能为空"); - } +// if (CollUtil.isEmpty(mallVipBenefits.getDetails())) { +// throw new FebsException("权益明细不能为空"); +// } this.baseMapper.insert(mallVipBenefits); - mallVipBenefits.getDetails().forEach(item -> { - item.setBenefitsId(mallVipBenefits.getId()); - }); + if (CollUtil.isNotEmpty(mallVipBenefits.getDetails())) { + mallVipBenefits.getDetails().forEach(item -> { + item.setBenefitsId(mallVipBenefits.getId()); + }); + } this.mallVipBenefitsDetailsService.saveBatch(mallVipBenefits.getDetails()); } @@ -116,11 +123,16 @@ @Override public void getBenefits(Long id) { - MallMember member = LoginUserUtil.getLoginUser(); + MallMember loginUser = LoginUserUtil.getLoginUser(); + MallMember member = mallMemberMapper.selectById(loginUser.getId()); MallVipBenefitsDetails benefits = mallVipBenefitsDetailsService.getById(id); if (benefits == null) { throw new FebsException("权益不存在"); + } + + if (benefits.getIsClick() == 2) { + throw new FebsException("请联系客服,检查权益设置"); } MallVipBenefits vipBenefits = this.baseMapper.selectById(benefits.getBenefitsId()); @@ -128,6 +140,14 @@ throw new FebsException("权益不存在"); } + + MallVipConfig config = mallVipConfigMapper.selectVipConfigByCode(member.getLevel()); + boolean b = config.getBenefits().stream().anyMatch(item -> { + return Objects.equals(item.getId(), benefits.getBenefitsId()); + }); + if (!b) { + throw new FebsException("未达到等级不能领取该权益"); + } Integer linkType = benefits.getLinkType(); @@ -152,7 +172,7 @@ recordQuery.ge(MallVipBenefitsRecord::getReceiveTime, DateUtil.beginOfDay(new Date())) .le(MallVipBenefitsRecord::getReceiveTime, DateUtil.endOfDay(new Date())) .eq(MallVipBenefitsRecord::getMemberId, member.getId()) - .eq(MallVipBenefitsRecord::getBenefitsType, vipBenefits.getType()) + .eq(MallVipBenefitsRecord::getBenefitsType, vipBenefits.getGainType()) .eq(MallVipBenefitsRecord::getReceiveId, Long.parseLong(benefits.getContent())); List<MallVipBenefitsRecord> mallVipBenefitsRecords = mallVipBenefitsRecordMapper.selectList(recordQuery); if (CollUtil.isNotEmpty(mallVipBenefitsRecords)) { @@ -165,6 +185,8 @@ record.setReceiveTime(new Date()); record.setReceiveType(linkType); record.setReceiveId(Long.parseLong(benefits.getContent())); + record.setMemberId(member.getId()); + record.setReceiveCnt(1); // 商品 if (linkType == 2) { @@ -191,6 +213,7 @@ orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setOrderType(goods.getGoodsType()); orderInfo.setDeliveryType(2); + orderInfo.setIsFree(1); orderInfo.setCarriage(BigDecimal.ZERO); orderInfo.setAmount(BigDecimal.ZERO); orderInfo.setAddressId(address.getId()); @@ -248,6 +271,7 @@ memberCoupon.setInviteId(member.getInviteId()); memberCoupon.setCouponUuid(IdUtil.simpleUUID()); memberCoupon.setState(1); + memberCoupon.setFromType(2); memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), coupon.getExpireDay())); memberCoupon.setMemberId(member.getId()); mallMemberCouponMapper.insert(memberCoupon); @@ -258,4 +282,18 @@ mallVipBenefitsRecordMapper.insert(record); } + @Override + public void switchBenefitsShow(Long id) { + MallVipBenefits vipBenefits = this.baseMapper.selectById(id); + + MallVipBenefits update = new MallVipBenefits(); + if (vipBenefits.getIsShow() == 1) { + update.setIsShow(2); + } else { + update.setIsShow(1); + } + + update.setId(vipBenefits.getId()); + this.baseMapper.updateById(update); + } } -- Gitblit v1.9.1