From c5d38d650d2ac4101b1293a4f17346e7d5420076 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期五, 04 七月 2025 20:39:58 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java | 744 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 705 insertions(+), 39 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 2639dcd..652d5ec 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 @@ -1,23 +1,40 @@ package com.ruoyi.member.service.impl.birthday; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +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.MgtBirthdayGetVo; -import com.ruoyi.member.domain.vo.MgtBirthdayGiftVo; +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.member.service.member.MemberService; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; +import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; +import com.ruoyi.system.api.domain.poji.member.BirthdayCard; +import com.ruoyi.system.api.domain.poji.member.Member; +import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord; +import com.ruoyi.system.api.domain.poji.shop.Shop; +import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; +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.math.BigDecimal; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * <p> @@ -30,9 +47,22 @@ @Service public class BirthdayCardServiceImpl extends ServiceImpl<BirthdayCardMapper, BirthdayCard> implements BirthdayCardService { + @Resource + private BirthdayCardMapper birthdayCardMapper; @Resource private BirthdayGiftService birthdayGiftService; + + @Resource + private RemoteShopService remoteShopService; + + @Resource + private MemberGiftRecordService memberGiftRecordService; + + @Resource + private MemberService memberService; + + /** * @description 平台编辑生日卡 @@ -43,57 +73,87 @@ */ @Override public void editMgtBirthdayCard(MgtBirthdayEditDto mgtBirthdayEditDto){ - if(mgtBirthdayEditDto.getCardId()!=null){ - BirthdayCard birthdayCardOld = this.getById(mgtBirthdayEditDto.getCardId()); + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + // 添加查询条件:删除标志为0 + queryWrapper.eq(BirthdayCard::getDelFlag,0); + // 如果店铺ID不为空,则添加查询条件:店铺ID + if(mgtBirthdayEditDto.getShopId()!=null){ + queryWrapper.eq(BirthdayCard::getShopId,mgtBirthdayEditDto.getShopId()); + }else{ + // 否则,添加查询条件:店铺ID为0 + queryWrapper.eq(BirthdayCard::getShopId,0); + } + // 获取查询结果 + BirthdayCard birthdayCardOld = this.getOne(queryWrapper,false); + // 如果查询结果不为空,则进行更新为历史记录 + if (birthdayCardOld!=null) { + // 设置删除标志为1 birthdayCardOld.setDelFlag(1); + // 保存或更新数据 this.saveOrUpdate(birthdayCardOld); + // 删除旧的生日卡的礼物 birthdayGiftService.deleteByCardId(birthdayCardOld.getCardId()); } + // 创建新的生日卡 BirthdayCard birthdayCard = new BirthdayCard(); birthdayCard.setDelFlag(0); - birthdayCard.setShopId(0L); + if(mgtBirthdayEditDto.getShopId()!=null){ + birthdayCard.setShopId(mgtBirthdayEditDto.getShopId()); + }else{ + birthdayCard.setShopId(0L); + } birthdayCard.setCardStatus(mgtBirthdayEditDto.getCardStatus()); + // 根据卡状态设置开启或关闭时间 if(mgtBirthdayEditDto.getCardStatus()==1){ birthdayCard.setOpenTime(new Date()); }else{ birthdayCard.setCloseTime(new Date()); } + // 设置创建时间 birthdayCard.setCreateTime(new Date()); - birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag()); - if(mgtBirthdayEditDto.getAreaFlag()==2){ - birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea()); - }else{ - birthdayCard.setDesignatedArea(null); + // 如果店铺ID为空,则进行相关设置 + if(mgtBirthdayEditDto.getShopId()==null){ + birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag()); + if(mgtBirthdayEditDto.getAreaFlag()!=null&&mgtBirthdayEditDto.getAreaFlag()==2){ + birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea()); + }else{ + birthdayCard.setDesignatedArea(null); + } + birthdayCard.setShopFlag(mgtBirthdayEditDto.getShopFlag()); + if(mgtBirthdayEditDto.getShopFlag()!=null&&mgtBirthdayEditDto.getShopFlag()==2){ + birthdayCard.setApplicableShop(mgtBirthdayEditDto.getApplicableShop()); + }else{ + birthdayCard.setApplicableShop(null); + } } - birthdayCard.setShopFlag(mgtBirthdayEditDto.getShopFlag()); - if(mgtBirthdayEditDto.getShopFlag()==2){ - birthdayCard.setApplicableShop(mgtBirthdayEditDto.getApplicableShop()); - }else{ - birthdayCard.setApplicableShop(null); - } + // 设置创建用户ID birthdayCard.setCreateUserId(mgtBirthdayEditDto.getUserId()); + // 保存或更新数据 this.saveOrUpdate(birthdayCard); + // 获取生日礼物列表 List<MgtBirthdayGiftDto> mgtBirthdayGiftDtoList = mgtBirthdayEditDto.getMgtBirthdayGiftDtoList(); List<BirthdayGift> birthdayGiftList = new ArrayList<>(); - if(!mgtBirthdayGiftDtoList.isEmpty()){ - mgtBirthdayGiftDtoList.forEach( dto->{ - BirthdayGift birthdayGift = new BirthdayGift(); - birthdayGift.setDelFlag(0); - birthdayGift.setCardId(birthdayCard.getCardId()); - birthdayGift.setGiftType(dto.getGiftType()); - birthdayGift.setCouponId(dto.getCouponId()); - birthdayGift.setCouponName(dto.getCouponName()); - birthdayGift.setCouponNumber(dto.getCouponNumber()); - birthdayGift.setGoodsId(dto.getGoodsId()); - birthdayGift.setGoodsName(dto.getGoodsName()); - birthdayGift.setGoodsNumber(dto.getGoodsNumber()); - birthdayGift.setGiftName(dto.getGiftName()); - birthdayGift.setGiftNumber(dto.getGiftNumber()); - birthdayGift.setMoney(dto.getMoney()); - birthdayGift.setWinningProbability(dto.getWinningProbability()); - birthdayGiftList.add(birthdayGift); - } - ); + // 如果生日礼物列表不为空,则进行相关设置 + if(mgtBirthdayGiftDtoList!=null&&!mgtBirthdayGiftDtoList.isEmpty()) { + mgtBirthdayGiftDtoList.forEach(dto -> { + BirthdayGift birthdayGift = new BirthdayGift(); + birthdayGift.setDelFlag(0); + birthdayGift.setCardId(birthdayCard.getCardId()); + birthdayGift.setGiftType(dto.getGiftType()); + birthdayGift.setCouponId(dto.getCouponId()); + birthdayGift.setCouponName(dto.getCouponName()); + birthdayGift.setCouponNumber(dto.getCouponNumber()); + birthdayGift.setGoodsId(dto.getGoodsId()); + birthdayGift.setGoodsName(dto.getGoodsName()); + birthdayGift.setGoodsNumber(dto.getGoodsNumber()); + birthdayGift.setGiftName(dto.getGiftName()); + birthdayGift.setGiftNumber(dto.getGiftNumber()); + birthdayGift.setMoney(dto.getMoney()); + birthdayGift.setWinningProbability(dto.getWinningProbability()); + birthdayGiftList.add(birthdayGift); + }); + // 批量保存生日礼物 birthdayGiftService.saveBatch(birthdayGiftList); } } @@ -112,6 +172,8 @@ queryWrapper.eq(BirthdayCard::getDelFlag,0); if(mgtBirthdayGetDto.getShopId()!=null&&mgtBirthdayGetDto.getShopId()>0){ queryWrapper.eq(BirthdayCard::getShopId,mgtBirthdayGetDto.getShopId()); + }else{ + queryWrapper.eq(BirthdayCard::getShopId,0); } BirthdayCard birthdayCard = this.getOne(queryWrapper,false); if(birthdayCard!=null){ @@ -126,4 +188,608 @@ } return mgtBirthdayGetVo; } + + /** + * @description 获取平台生日卡 + * @author jqs + * @date 2023/7/1 15:25 + * @param + * @return MerBirthdayGetVo + */ + @Override + public MerBirthdayGetVo getMerPlatformBirthdayCard(Long shopId){ + MerBirthdayGetVo birthdayGetVo = new MerBirthdayGetVo(); + // 获取平台生日卡信息 + BirthdayCard birthdayCard = birthdayCardMapper.getPlatformBirthdayCard(shopId); + Shop shop = remoteShopService.getShop(shopId).getData(); + if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){ + birthdayCard = null; + } + // 如果生日卡存在 + if (birthdayCard != null) { + String giftDesc = ""; + StringJoiner giftSj = new StringJoiner(","); + // 获取生日卡对应的生日礼物列表 + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(birthdayCard.getCardId()); + // 如果生日礼物列表不为空 + if (!birthdayGiftList.isEmpty()) { + String giftStr; + // 遍历生日礼物列表 + for (BirthdayGift birthdayGift : birthdayGiftList) { + switch (birthdayGift.getGiftType()) { + case 1: + // 礼物类型为1,即优惠券 + giftStr = birthdayGift.getCouponName() + "*" + birthdayGift.getCouponNumber(); + giftSj.add(giftStr); + break; + case 2: + // 礼物类型为2,即商品 + giftStr = birthdayGift.getGoodsName() + "*" + birthdayGift.getGoodsNumber(); + giftSj.add(giftStr); + break; + case 3: + // 礼物类型为3,即现金 + giftStr = "¥" + birthdayGift.getMoney() + "现金"; + giftSj.add(giftStr); + break; + case 4: + // 礼物类型为4,即礼品 + giftStr = birthdayGift.getGiftName() + "*" + birthdayGift.getGiftNumber(); + giftSj.add(giftStr); + break; + default: + break; + } + } + // 将礼物描述设置到生日获取VO对象中 + giftDesc = giftSj.toString(); + birthdayGetVo.setGiftDesc(giftDesc); + } + birthdayGetVo.setCardStatus(birthdayCard.getCardStatus()); + }else{ + birthdayGetVo.setCardStatus(2); + } + return birthdayGetVo; + } + + + /** + * @description 获取商户生日卡 + * @author jqs + * @date 2023/7/1 15:25 + * @param + * @return MerBirthdayGetVo + */ + @Override + public MerBirthdayGetVo getMerShopBirthdayCard(Long shopId){ + MerBirthdayGetVo birthdayGetVo = new MerBirthdayGetVo(); + // 获取平台生日卡信息 + BirthdayCard birthdayCard = birthdayCardMapper.getMerShopBirthdayCard(shopId); + // 如果生日卡存在 + if (birthdayCard != null) { + String giftDesc = ""; + StringJoiner giftSj = new StringJoiner(","); + // 获取生日卡对应的生日礼物列表 + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(birthdayCard.getCardId()); + // 如果生日礼物列表不为空 + if (!birthdayGiftList.isEmpty()) { + String giftStr; + // 遍历生日礼物列表 + for (BirthdayGift birthdayGift : birthdayGiftList) { + switch (birthdayGift.getGiftType()) { + case 1: + // 礼物类型为1,即优惠券 + giftStr = birthdayGift.getCouponName() + "*" + birthdayGift.getCouponNumber(); + giftSj.add(giftStr); + break; + case 2: + // 礼物类型为2,即商品 + giftStr = birthdayGift.getGoodsName() + "*" + birthdayGift.getGoodsNumber(); + giftSj.add(giftStr); + break; + case 3: + // 礼物类型为3,即现金 + giftStr = "¥" + birthdayGift.getMoney() + "现金"; + giftSj.add(giftStr); + break; + case 4: + // 礼物类型为4,即礼品 + giftStr = birthdayGift.getGiftName() + "*" + birthdayGift.getGiftNumber(); + giftSj.add(giftStr); + break; + default: + break; + } + } + // 将礼物描述设置到生日获取VO对象中 + giftDesc = giftSj.toString(); + birthdayGetVo.setGiftDesc(giftDesc); + } + birthdayGetVo.setCardStatus(birthdayCard.getCardStatus()); + }else{ + birthdayGetVo.setCardStatus(2); + } + return birthdayGetVo; + } + + /** + * @description 获取商户生日卡详情 + * @author jqs + * @date 2023/7/3 10:58 + * @param shopId + * @return MerBirthdayGetVo + */ + @Override + public MerBirthdayEditInfoVo getMerShopBCEditInfo(Long shopId){ + MerBirthdayEditInfoVo merBirthdayEditInfoVo = new MerBirthdayEditInfoVo(); + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,shopId); + BirthdayCard birthdayCard = this.getOne(queryWrapper,false); + if(birthdayCard!=null){ + merBirthdayEditInfoVo.setCardId(birthdayCard.getCardId()); + merBirthdayEditInfoVo.setCardStatus(birthdayCard.getCardStatus()); + List<MgtBirthdayGiftVo> mgtBirthdayGiftVoList = birthdayGiftService.listGiftVoByCardId(birthdayCard.getCardId()); + merBirthdayEditInfoVo.setMgtBirthdayGiftVoList(mgtBirthdayGiftVoList); + } + return merBirthdayEditInfoVo; + } + + /** + * @description 商户编辑生日卡 + * @author jqs + * @date 2023/7/3 14:15 + * @param merBirthdayEditDto + * @return void + */ + @Override + public void editMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto){ + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,merBirthdayEditDto.getShopId()); + // 获取查询结果 + BirthdayCard birthdayCardOld = this.getOne(queryWrapper,false); + // 如果查询结果不为空,则进行更新操作 + if (birthdayCardOld!=null) { + // 设置删除标志为1 + birthdayCardOld.setDelFlag(1); + // 保存或更新数据 + this.saveOrUpdate(birthdayCardOld); + // 删除旧的生日卡的礼物 + birthdayGiftService.deleteByCardId(birthdayCardOld.getCardId()); + } + // 创建新的生日卡 + BirthdayCard birthdayCard = new BirthdayCard(); + birthdayCard.setDelFlag(0); + birthdayCard.setShopId(merBirthdayEditDto.getShopId()); + birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus()); + // 根据卡状态设置开启或关闭时间 + if(merBirthdayEditDto.getCardStatus()==1){ + birthdayCard.setOpenTime(new Date()); + }else{ + birthdayCard.setCloseTime(new Date()); + } + // 设置创建时间 + birthdayCard.setCreateTime(new Date()); + // 设置创建用户ID + birthdayCard.setCreateUserId(merBirthdayEditDto.getUserId()); + // 保存或更新数据 + this.saveOrUpdate(birthdayCard); + // 获取生日礼物列表 + List<MgtBirthdayGiftDto> mgtBirthdayGiftDtoList = merBirthdayEditDto.getMgtBirthdayGiftDtoList(); + List<BirthdayGift> birthdayGiftList = new ArrayList<>(); + // 如果生日礼物列表不为空,则进行相关设置 + if(!mgtBirthdayGiftDtoList.isEmpty()) { + mgtBirthdayGiftDtoList.forEach(dto -> { + BirthdayGift birthdayGift = new BirthdayGift(); + birthdayGift.setDelFlag(0); + birthdayGift.setCardId(birthdayCard.getCardId()); + birthdayGift.setGiftType(dto.getGiftType()); + birthdayGift.setCouponId(dto.getCouponId()); + birthdayGift.setCouponName(dto.getCouponName()); + birthdayGift.setCouponNumber(dto.getCouponNumber()); + birthdayGift.setGoodsId(dto.getGoodsId()); + birthdayGift.setGoodsName(dto.getGoodsName()); + birthdayGift.setGoodsNumber(dto.getGoodsNumber()); + birthdayGift.setGiftName(dto.getGiftName()); + birthdayGift.setGiftNumber(dto.getGiftNumber()); + birthdayGift.setMoney(dto.getMoney()); + birthdayGift.setWinningProbability(new BigDecimal("100.00")); + birthdayGiftList.add(birthdayGift); + }); + // 批量保存生日礼物 + birthdayGiftService.saveBatch(birthdayGiftList); + } + } + + /** + * @description 开关生日卡成功 + * @author jqs + * @date 2023/7/3 14:27 + * @param merBirthdayEditDto + * @return void + */ + @Override + public void toggleMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto){ + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,merBirthdayEditDto.getShopId()); + // 获取查询结果 + BirthdayCard birthdayCard = this.getOne(queryWrapper,false); + if(birthdayCard==null){ + birthdayCard = new BirthdayCard(); + birthdayCard.setDelFlag(0); + birthdayCard.setCreateTime(new Date()); + birthdayCard.setCreateUserId(merBirthdayEditDto.getUserId()); + } + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(birthdayCard.getCardId()); + if(merBirthdayEditDto.getCardStatus()==1){ + if(birthdayGiftList==null||birthdayGiftList.isEmpty()){ + throw new ServiceException(AppErrorConstant.BIRTHDAYCARD_NO_GIFT); + } + } + 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.getGiftName()); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getGiftNumber()); + 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()); + Member member = memberService.getByUserId(userId); + // 获取平台生日卡信息 + BirthdayCard plBirthdayCard = this.getBirthdayCard(); + //绑定的时候需要判断范围 + if(member.getBindingFlag()==1){ + //判断指定区域全部店铺 + if(plBirthdayCard.getShopFlag()==1&&plBirthdayCard.getAreaFlag()==2){ + Shop shop = remoteShopService.getShop(member.getRelationShopId()).getData(); + if(!StringUtils.checkString(plBirthdayCard.getDesignatedArea(),shop.getShopCityCode())){ + plBirthdayCard = null; + } + } + //判断指定店铺 + if(plBirthdayCard.getShopFlag()==2&&!StringUtils.checkString(plBirthdayCard.getApplicableShop(),shopId.toString())){ + plBirthdayCard = null; + } + } + // 如果生日卡存在 + if (plBirthdayCard != null && plBirthdayCard.getCardStatus()==1) { + // 获取生日卡对应的生日礼物列表 + List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(plBirthdayCard.getCardId()); + if(birthdayGiftList!=null&&!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.setPrizeFrom(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); + memberGiftRecord.setCouponId(birthdayGift.getCouponId()); + memberGiftRecord.setCouponName(birthdayGift.getCouponName()); + memberGiftRecord.setCouponNumber(birthdayGift.getCouponNumber()); + break; + case 2: + // 礼物类型为2,即商品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); + birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); + sendCouponList.add(birthdayGiftSendDto); + memberGiftRecord.setGoodsId(birthdayGift.getGoodsId()); + memberGiftRecord.setGoodsName(birthdayGift.getGoodsName()); + memberGiftRecord.setGoodsNumber(birthdayGift.getGoodsNumber()); + break; + case 3: + // 礼物类型为3,即现金 + appBirthdayGiftVo.setGiftName("现金"); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); + memberGiftRecord.setMoney(birthdayGift.getMoney()); + break; + case 4: + // 礼物类型为4,即礼品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGiftName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGiftNumber()); + memberGiftRecord.setGiftName(birthdayGift.getGiftName()); + memberGiftRecord.setGiftNumber(birthdayGift.getGiftNumber()); + break; + default: + break; + } + birthdayGiftVoList.add(appBirthdayGiftVo); + memberGiftRecordList.add(memberGiftRecord); + } + } + } + } + //获取商户营销开关状态 + if(member.getBindingFlag()==1){ + 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.setPrizeFrom(1); + 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); + memberGiftRecord.setCouponId(birthdayGift.getCouponId()); + memberGiftRecord.setCouponName(birthdayGift.getCouponName()); + memberGiftRecord.setCouponNumber(birthdayGift.getCouponNumber()); + break; + case 2: + // 礼物类型为2,即商品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); + birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); + birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); + sendCouponList.add(birthdayGiftSendDto); + memberGiftRecord.setGoodsId(birthdayGift.getGoodsId()); + memberGiftRecord.setGoodsName(birthdayGift.getGoodsName()); + memberGiftRecord.setGoodsNumber(birthdayGift.getGoodsNumber()); + break; + case 3: + // 礼物类型为3,即现金 + appBirthdayGiftVo.setGiftName("现金"); + appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); + memberGiftRecord.setMoney(birthdayGift.getMoney()); + break; + case 4: + // 礼物类型为4,即礼品 + appBirthdayGiftVo.setGiftName(birthdayGift.getGiftName()); + appBirthdayGiftVo.setGiftNumber(birthdayGift.getGiftNumber()); + memberGiftRecord.setGiftName(birthdayGift.getGiftName()); + memberGiftRecord.setGiftNumber(birthdayGift.getGiftNumber()); + break; + default: + break; + } + birthdayGiftVoList.add(appBirthdayGiftVo); + memberGiftRecordList.add(memberGiftRecord); + } + } + } + } + } + } + //保存用户礼物记录 + memberGiftRecordService.saveBatch(memberGiftRecordList); + appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList); + return appBirthdayCardVo; + } + + /** + * @param page + * @param userId + * @return List<AppMemberPrizePageVo> + * @description + * @author jqs + * @date 2023/7/11 18:02 + */ + @Override + public List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, Long userId) { + List<AppMemberPrizePageVo> memberPrizePageVoList = birthdayCardMapper.pageAppMemberPrize(page, userId); + if (memberPrizePageVoList != null && !memberPrizePageVoList.isEmpty()) { + HashSet<Long> shopIdSet = new HashSet<>(); + for (AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList) { + Integer giftType = appMemberPrizePageVo.getGiftType(); + String prizeFrom = appMemberPrizePageVo.getPrizeFrom(); + if ("抽奖".equals(prizeFrom) && (null != giftType && (giftType == 2 || giftType == 4))) { + appMemberPrizePageVo.setVerifyCode("3-" + appMemberPrizePageVo.getPrizeId()); + } + if (appMemberPrizePageVo.getShopId() != null) { + shopIdSet.add(appMemberPrizePageVo.getShopId()); + } + } + String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(shopJoinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + for (AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList) { + if (appMemberPrizePageVo.getShopId() != null) { + appMemberPrizePageVo.setVerifyShopName(shopMap.get(appMemberPrizePageVo.getShopId()).getShopName()); + } + } + } + return memberPrizePageVoList; + } + + + /** + * @description 判断生日卡开启状态 + * @author jqs + * @date 2023/8/1 15:43 + * @param + * @return void + */ + @Override + public Integer checkBirthdayCard(Long shopId,Integer bindingFlag){ + // 获取平台生日卡信息 + Boolean platformBirthdayCardOpen = true; + BirthdayCard plBirthdayCard = birthdayCardMapper.getMerShopBirthdayCard(0L); + if (plBirthdayCard == null || plBirthdayCard.getCardStatus()!=1) { + platformBirthdayCardOpen = false; + }else{ + //绑死店铺判断区域和店铺 + if(bindingFlag==1){ + //判断指定区域全部店铺 + if(plBirthdayCard.getShopFlag()==1&&plBirthdayCard.getAreaFlag()==2){ + Shop shop = remoteShopService.getShop(shopId).getData(); + if(!StringUtils.checkString(plBirthdayCard.getDesignatedArea(),shop.getShopCityCode())){ + platformBirthdayCardOpen = false; + } + } + //判断指定店铺 + if(plBirthdayCard.getShopFlag()==2&&!StringUtils.checkString(plBirthdayCard.getApplicableShop(),shopId.toString())){ + platformBirthdayCardOpen = false; + } + } + } + //判断店铺生日卡 + BirthdayCard shopBirthdayCard = birthdayCardMapper.getMerShopBirthdayCard(shopId); + // 如果生日卡存在 + Boolean shopBirthdayCardOpen = true; + if(bindingFlag==1){ + if (shopBirthdayCard == null || shopBirthdayCard.getCardStatus()!=1) { + shopBirthdayCardOpen = false; + } + Integer marketingStatus = remoteShopService.getShopMarketingStatus(shopId).getData(); + if(marketingStatus<=1){ + shopBirthdayCardOpen = false; + } + }else{ + shopBirthdayCardOpen = false; + } + if(platformBirthdayCardOpen||shopBirthdayCardOpen){ + return 1; + }else{ + return 0; + } + } + + /** + * @description 获取平台生日卡 + * @author jqs + * @date 2023/8/9 19:35 + * @param + * @return BirthdayCard + */ + @Override + public BirthdayCard getBirthdayCard(){ + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,0L); + queryWrapper.eq(BirthdayCard::getCardStatus,1); + BirthdayCard shopBirthdayCard = this.getOne(queryWrapper,false); + return shopBirthdayCard; + } } -- Gitblit v1.7.1