From 7109e2fefaa46caffcd36b44828f48e0f8a790ba Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 09:36:50 +0800
Subject: [PATCH] 管理台bug和用户端
---
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java | 251 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 241 insertions(+), 10 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..87b5845 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,31 @@
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.common.core.utils.uuid.IdUtils;
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.system.api.domain.poji.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 +44,18 @@
@Resource
private BirthdayGiftService birthdayGiftService;
+
+ @Resource
+ private RemoteShopService remoteShopService;
+
+ @Resource
+ private MemberGiftRecordService memberGiftRecordService;
+
+ @Resource
+ private RemoteCouponService remoteCouponService;
+
+ @Resource
+ private RemoteOrderService remoteOrderService;
/**
* @description 平台编辑生日卡
@@ -84,8 +101,8 @@
}
// 设置创建时间
birthdayCard.setCreateTime(new Date());
- // 如果店铺ID不为空,则进行相关设置
- if(mgtBirthdayEditDto.getShopId()!=null){
+ // 如果店铺ID为空,则进行相关设置
+ if(mgtBirthdayEditDto.getShopId()==null){
birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag());
if(mgtBirthdayEditDto.getAreaFlag()==2){
birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea());
@@ -394,4 +411,218 @@
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 prizeId;
+ 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);
+ prizeId = IdUtils.simpleUUID();
+ memberGiftRecord.setPrizeId(prizeId);
+ memberGiftRecord.setDelFlag(0);
+ memberGiftRecord.setVerifyStatus(1);
+ 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);
+ prizeId = IdUtils.simpleUUID();
+ memberGiftRecord.setPrizeId(prizeId);
+ memberGiftRecord.setDelFlag(0);
+ memberGiftRecord.setVerifyStatus(1);
+ 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);
+ }
+ }
+ }
+ }
+ }
+ //保存用户礼物记录
+ memberGiftRecordService.saveBatch(memberGiftRecordList);
+ appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList);
+ return appBirthdayCardVo;
+ }
}
--
Gitblit v1.7.1