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 | 63 +++++++++++++++++++++++++------ 1 files changed, 51 insertions(+), 12 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 51b6be0..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,18 +123,31 @@ @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("权益不存在"); } - MallVipBenefits vipBenefits = this.baseMapper.selectById(benefits.getId()); + if (benefits.getIsClick() == 2) { + throw new FebsException("请联系客服,检查权益设置"); + } + + MallVipBenefits vipBenefits = this.baseMapper.selectById(benefits.getBenefitsId()); if (vipBenefits == null) { 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) { @@ -187,9 +209,11 @@ orderInfo.setOrderNo(orderNo); orderInfo.setOrderTime(new Date()); orderInfo.setMemberId(member.getId()); + orderInfo.setPayTime(new Date()); 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()); @@ -199,6 +223,7 @@ orderInfo.setAddress(address.getProvince()+address.getCity()+address.getArea() + address.getAddress()); orderInfo.setLatitude(address.getLatitude()); orderInfo.setLongitude(address.getLongitude()); + mallOrderInfoMapper.insert(orderInfo); MallOrderItem orderItem = new MallOrderItem(); if (goods.getGoodsType() == 2) { @@ -220,10 +245,10 @@ orderItem.setOrderId(orderInfo.getId()); orderItem.setPrice(sku.getPresentPrice()); orderItem.setGoodsId(sku.getGoodsId()); - orderItem.setGoodsName(sku.getGoodsName()); + orderItem.setGoodsName(goods.getGoodsName()); orderItem.setSkuId(sku.getId()); orderItem.setState(1); - orderItem.setStyleName(sku.getStyleName()); + orderItem.setStyleName(goods.getStyles().get(0).getName()); orderItem.setSkuName(sku.getSkuName()); orderItem.setSkuImage(sku.getSkuImage()); orderItem.setIsNormal(goods.getIsNormal()); @@ -231,7 +256,6 @@ } record.setReceiveName(goods.getGoodsName()); - mallOrderInfoMapper.insert(orderInfo); mallOrderItemMapper.insert(orderItem); } @@ -247,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); @@ -257,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