bug
jiangqs
2023-08-06 6ab383249b70a9646ffde1474b59dcc7d0b97df6
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -3,6 +3,8 @@
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;
@@ -16,8 +18,11 @@
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.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.MemberGiftRecord;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.stereotype.Service;
@@ -25,6 +30,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -378,7 +384,7 @@
                birthdayGift.setGiftName(dto.getGiftName());
                birthdayGift.setGiftNumber(dto.getGiftNumber());
                birthdayGift.setMoney(dto.getMoney());
                birthdayGift.setWinningProbability(dto.getWinningProbability());
                birthdayGift.setWinningProbability(new BigDecimal("100.00"));
                birthdayGiftList.add(birthdayGift);
            });
            // 批量保存生日礼物
@@ -409,6 +415,12 @@
        }
        birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus());
        this.saveOrUpdate(birthdayCard);
        List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(birthdayCard.getCardId());
        if(merBirthdayEditDto.getCardStatus()==1){
            if(birthdayGiftList==null||birthdayGiftList.isEmpty()){
                throw new ServiceException(AppErrorConstant.BIRTHDAYCARD_NO_GIFT);
            }
        }
    }
    /**
@@ -445,8 +457,8 @@
                                break;
                            case 4:
                                // 礼物类型为4,即礼品
                                appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName());
                                appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber());
                                appBirthdayGiftVo.setGiftName(memberGiftRecord.getGiftName());
                                appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getGiftNumber());
                                break;
                            default:
                                break;
@@ -490,7 +502,7 @@
        if (plBirthdayCard != null && plBirthdayCard.getCardStatus()==1) {
            // 获取生日卡对应的生日礼物列表
            List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(plBirthdayCard.getCardId());
            if(!birthdayGiftList.isEmpty()){
            if(birthdayGiftList!=null&&!birthdayGiftList.isEmpty()){
                // 遍历生日礼物列表
                for (BirthdayGift birthdayGift : birthdayGiftList) {
                    winningProbability = birthdayGift.getWinningProbability();
@@ -519,6 +531,9 @@
                                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,即商品
@@ -527,16 +542,22 @@
                                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.getCouponName());
                                appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber());
                                appBirthdayGiftVo.setGiftName(birthdayGift.getGiftName());
                                appBirthdayGiftVo.setGiftNumber(birthdayGift.getGiftNumber());
                                memberGiftRecord.setGiftName(birthdayGift.getGiftName());
                                memberGiftRecord.setGiftNumber(birthdayGift.getGiftNumber());
                                break;
                            default:
                                break;
@@ -590,6 +611,9 @@
                                    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,即商品
@@ -598,16 +622,22 @@
                                    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.getCouponName());
                                    appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber());
                                    appBirthdayGiftVo.setGiftName(birthdayGift.getGiftName());
                                    appBirthdayGiftVo.setGiftNumber(birthdayGift.getGiftNumber());
                                    memberGiftRecord.setGiftName(birthdayGift.getGiftName());
                                    memberGiftRecord.setGiftNumber(birthdayGift.getGiftNumber());
                                    break;
                                default:
                                    break;
@@ -637,10 +667,62 @@
    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){
                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){
        // 获取平台生日卡信息
        Boolean platformBirthdayCardOpen = true;
        BirthdayCard plBirthdayCard = birthdayCardMapper.getMerShopBirthdayCard(0L);
        if (plBirthdayCard == null || plBirthdayCard.getCardStatus()!=1) {
            platformBirthdayCardOpen = false;
        }else{
            if(plBirthdayCard.getAreaFlag()==2&&!StringUtils.checkString(plBirthdayCard.getApplicableShop(),shopId.toString())){
                platformBirthdayCardOpen = false;
            }
        }
        BirthdayCard shopBirthdayCard = birthdayCardMapper.getMerShopBirthdayCard(shopId);
        // 如果生日卡存在
        Boolean shopBirthdayCardOpen  = true;
        if (shopBirthdayCard == null || shopBirthdayCard.getCardStatus()!=1) {
            shopBirthdayCardOpen = false;
        }
        Integer marketingStatus = remoteShopService.getShopMarketingStatus(shopId).getData();
        if(marketingStatus<=1){
            shopBirthdayCardOpen = false;
        }
        if(!platformBirthdayCardOpen||!shopBirthdayCardOpen){
            return 1;
        }else{
            return 0;
        }
    }
}