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<VipCardMapper, VipCard> implements IVipCardService {
|
|
@Override
|
public List<VipCardVo> getVipCardList(Integer memberDiscount, Integer type) {
|
List<VipCardVo> result = new ArrayList<>();
|
List<VipCard> 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;
|
}
|
}
|