From 5627daeb1ac1a29947e902f9a7efb6730ed98611 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 07 七月 2023 20:35:50 +0800 Subject: [PATCH] 管理台bug和用户端生日卡 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 232 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java index ef991e7..40fe121 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java @@ -2,26 +2,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.member.domain.dto.MerBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayGetDto; import com.ruoyi.member.domain.dto.MgtBirthdayGiftDto; import com.ruoyi.member.domain.pojo.birthday.BirthdayCard; import com.ruoyi.member.domain.pojo.birthday.BirthdayGift; -import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; -import com.ruoyi.member.domain.vo.MerBirthdayGetVo; -import com.ruoyi.member.domain.vo.MgtBirthdayGetVo; -import com.ruoyi.member.domain.vo.MgtBirthdayGiftVo; +import com.ruoyi.member.domain.pojo.member.MemberGiftRecord; +import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.birthday.BirthdayCardMapper; import com.ruoyi.member.service.birthday.BirthdayCardService; import com.ruoyi.member.service.birthday.BirthdayGiftService; +import com.ruoyi.member.service.member.MemberGiftRecordService; +import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; +import com.ruoyi.system.api.service.RemoteCouponService; +import com.ruoyi.system.api.service.RemoteOrderService; +import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.StringJoiner; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -39,6 +43,18 @@ @Resource private BirthdayGiftService birthdayGiftService; + + @Resource + private RemoteShopService remoteShopService; + + @Resource + private MemberGiftRecordService memberGiftRecordService; + + @Resource + private RemoteCouponService remoteCouponService; + + @Resource + private RemoteOrderService remoteOrderService; /** * @description 平台编辑生日卡 @@ -394,4 +410,212 @@ birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus()); this.saveOrUpdate(birthdayCard); } + + /** + * @description 获取用户生日礼物 + * @author jqs + * @date 2023/7/7 10:55 + * @param shopId + * @return AppBirthdayCardVo + */ + @Override + public AppBirthdayCardVo getUserBirthdayCard(Long userId,Long shopId){ + AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); + String currentYear = String.valueOf(LocalDate.now().getYear()); + List<MemberGiftRecord> memberGiftRecordList = memberGiftRecordService.listByUserIdAndYear(userId,currentYear); + if(memberGiftRecordList!=null&&!memberGiftRecordList.isEmpty()){ + List<AppBirthdayGiftVo> birthdayGiftVoList = memberGiftRecordList.stream().map( + memberGiftRecord -> { + AppBirthdayGiftVo appBirthdayGiftVo = new AppBirthdayGiftVo(); + switch (memberGiftRecord.getGiftType()) { + case 1: + // 礼物类型为1,即优惠券 + appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName()); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber()); + break; + case 2: + // 礼物类型为2,即商品 + appBirthdayGiftVo.setGiftName(memberGiftRecord.getGoodsName()); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getGoodsNumber()); + break; + case 3: + // 礼物类型为3,即现金 + appBirthdayGiftVo.setGiftName("现金"); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); + break; + case 4: + // 礼物类型为4,即礼品 + appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName()); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber()); + break; + default: + break; + } + return appBirthdayGiftVo; + } + ).collect(Collectors.toList()); + appBirthdayCardVo.setGetGiftFlag(1); + appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList); + }else{ + appBirthdayCardVo.setGetGiftFlag(0); + } + + return appBirthdayCardVo; + } + + /** + * @description 获取用户生日礼物 + * @author jqs + * @date 2023/7/7 10:55 + * @param shopId + * @return AppBirthdayCardVo + */ + @Override + public AppBirthdayCardVo getBirthdayGift(Long userId, Long shopId){ + AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); + List<AppBirthdayGiftVo> birthdayGiftVoList = new ArrayList<>(); + List<MemberGiftRecord> memberGiftRecordList = new ArrayList<>(); + List<BirthdayGiftSendDto> sendGoodsList = new ArrayList<>(); + List<BirthdayGiftSendDto> sendCouponList = new ArrayList<>(); + AppBirthdayGiftVo appBirthdayGiftVo; + MemberGiftRecord memberGiftRecord; + BigDecimal winningProbability; + BigDecimal randomProbability; + BirthdayGiftSendDto birthdayGiftSendDto; + String currentYear = String.valueOf(LocalDate.now().getYear()); + // 获取平台生日卡信息 + BirthdayCard plBirthdayCard = birthdayCardMapper.getPlatformBirthdayCard(shopId); + // 如果生日卡存在 + if (plBirthdayCard != null && plBirthdayCard.getCardStatus()==1) { + // 获取生日卡对应的生日礼物列表 + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(plBirthdayCard.getCardId()); + if(!birthdayGiftList.isEmpty()){ + // 遍历生日礼物列表 + for (BirthdayGift birthdayGift : birthdayGiftList) { + winningProbability = birthdayGift.getWinningProbability(); + randomProbability = new BigDecimal(new Random().nextInt(100)); + if(winningProbability.compareTo(randomProbability)>0){ + appBirthdayGiftVo = new AppBirthdayGiftVo(); + memberGiftRecord = new MemberGiftRecord(); + birthdayGiftSendDto = new BirthdayGiftSendDto(); + BeanUtils.copyProperties(birthdayGift, memberGiftRecord); + memberGiftRecord.setGiftFrom(1); + memberGiftRecord.setGiftYear(currentYear); + memberGiftRecord.setCreateTime(new Date()); + memberGiftRecord.setUserId(userId); + birthdayGiftSendDto.setUserId(userId); + birthdayGiftSendDto.setGiftFrom(1); + birthdayGiftSendDto.setGiftType(birthdayGift.getGiftType()); + switch (birthdayGift.getGiftType()) { + case 1: + // 礼物类型为1,即优惠券 + appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); + birthdayGiftSendDto.setCouponId(birthdayGift.getCouponId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getCouponNumber()); + sendGoodsList.add(birthdayGiftSendDto); + break; + case 2: + // 礼物类型为2,即商品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); + birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); + sendCouponList.add(birthdayGiftSendDto); + break; + case 3: + // 礼物类型为3,即现金 + appBirthdayGiftVo.setGiftName("现金"); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); + break; + case 4: + // 礼物类型为4,即礼品 + appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); + break; + default: + break; + } + birthdayGiftVoList.add(appBirthdayGiftVo); + memberGiftRecordList.add(memberGiftRecord); + } + } + } + } + //获取商户营销开关状态 + Integer marketingStatus = remoteShopService.getShopMarketingStatus(shopId).getData(); + if(marketingStatus>1){ + //获取商户生日卡 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,shopId); + BirthdayCard shopBirthdayCard = this.getOne(queryWrapper,false); + // 如果生日卡存在 + if (shopBirthdayCard != null && shopBirthdayCard.getCardStatus()==1) { + // 获取生日卡对应的生日礼物列表 + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(shopBirthdayCard.getCardId()); + if(!birthdayGiftList.isEmpty()){ + // 遍历生日礼物列表 + for (BirthdayGift birthdayGift : birthdayGiftList) { + winningProbability = birthdayGift.getWinningProbability(); + randomProbability = new BigDecimal(new Random().nextInt(100)); + if(winningProbability.compareTo(randomProbability)>0){ + appBirthdayGiftVo = new AppBirthdayGiftVo(); + memberGiftRecord = new MemberGiftRecord(); + birthdayGiftSendDto = new BirthdayGiftSendDto(); + BeanUtils.copyProperties(birthdayGift, memberGiftRecord); + memberGiftRecord.setGiftFrom(2); + memberGiftRecord.setShopId(shopId); + memberGiftRecord.setGiftYear(currentYear); + memberGiftRecord.setCreateTime(new Date()); + memberGiftRecord.setUserId(userId); + birthdayGiftSendDto.setUserId(userId); + birthdayGiftSendDto.setGiftFrom(2); + birthdayGiftSendDto.setShopId(shopId); + birthdayGiftSendDto.setGiftType(birthdayGift.getGiftType()); + switch (birthdayGift.getGiftType()) { + case 1: + // 礼物类型为1,即优惠券 + appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); + birthdayGiftSendDto.setCouponId(birthdayGift.getCouponId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getCouponNumber()); + sendGoodsList.add(birthdayGiftSendDto); + break; + case 2: + // 礼物类型为2,即商品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); + birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); + sendCouponList.add(birthdayGiftSendDto); + break; + case 3: + // 礼物类型为3,即现金 + appBirthdayGiftVo.setGiftName("现金"); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); + break; + case 4: + // 礼物类型为4,即礼品 + appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); + break; + default: + break; + } + birthdayGiftVoList.add(appBirthdayGiftVo); + memberGiftRecordList.add(memberGiftRecord); + } + } + } + } + } + //发放奖品 + remoteOrderService.sendGoodsGift(sendGoodsList); + remoteCouponService.sendCouponGift(sendCouponList); + //保存用户礼物记录 + memberGiftRecordService.saveBatch(memberGiftRecordList); + appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList); + return appBirthdayCardVo; + } } -- Gitblit v1.7.1