package com.nova.sankuai.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nova.sankuai.domain.entity.VipCard; import com.nova.sankuai.domain.enums.vipservice.QueueVipTypeEnum; import com.nova.sankuai.domain.enums.vipservice.VipCardTypeEnum; import com.nova.sankuai.domain.vo.vipcard.VipCardVo; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.mapper.VipCardMapper; import com.nova.sankuai.service.IVipCardService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @author weikangdi * @create 2022/3/3 */ @Service @AllArgsConstructor @Slf4j public class IVipCardServiceImpl extends ServiceImpl implements IVipCardService { @Override public List getVipCardList(Integer memberDiscount, Integer type) { List result = new ArrayList<>(); List vipCardList; if (VipCardTypeEnum.MEMBER_SERVICE.getCode().equals(type)) { vipCardList = lambdaQuery().eq(VipCard::getVipType, type).list(); } else if (VipCardTypeEnum.AUDIT_QUEUE.getCode().equals(type)) { vipCardList = lambdaQuery().eq(VipCard::getVipType, type) .ne(VipCard::getQueueVipCode, QueueVipTypeEnum.VIP3.getCode()) .eq(VipCard::getDefaultFlag, 0).list(); } else if (VipCardTypeEnum.LOAN_MARKET_VIP.getCode().equals(type)) { vipCardList = lambdaQuery().eq(VipCard::getVipType, type).list(); } else { throw new CommonException("无效的会员卡类型"); } for (VipCard vipCard : vipCardList) { VipCardVo vipCardVo = new VipCardVo(); vipCardVo.setCardId(vipCard.getCardId()); vipCardVo.setName(vipCard.getCardName()); vipCardVo.setSellingPrice(vipCard.getPrice()); vipCardVo.setMemberDiscount(memberDiscount); vipCardVo.setMarkedPrice(memberDiscount + vipCard.getPrice()); result.add(vipCardVo); } return result; } }