xiaoyong931011
2023-02-20 a2a4dd75b0c0e51b325c4fbe89da80dfa4a5d24f
src/test/java/cc/mrbird/febs/AgentTest.java
@@ -1,23 +1,28 @@
package cc.mrbird.febs;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
import cc.mrbird.febs.mall.dto.AddOrderItemDto;
import cc.mrbird.febs.mall.dto.AgentLevelUpdateDto;
import cc.mrbird.febs.mall.dto.ApiCreateOrderVerifyDto;
import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.quartz.ProfitJob;
import cc.mrbird.febs.mall.service.IAgentService;
import cc.mrbird.febs.mall.vo.ApiMallActWinDetailsVo;
import cc.mrbird.febs.mall.vo.ApiMallAwardDetailsVo;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.rabbit.consumer.AgentConsumer;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
@@ -30,6 +35,7 @@
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @author wzy
@@ -63,6 +69,94 @@
    private  MallMemberWalletMapper mallMemberWalletMapper;
    @Autowired
    private  MallActSetMapper mallActSetMapper;
    @Autowired
    private  MallGoodsSkuMapper mallGoodsSkuMapper;
    @Autowired
    private  MallOrderItemMapper mallOrderItemMapper;
    @Autowired
    private  MallGoodsMapper mallGoodsMapper;
    @Autowired
    private  MallGoodsImagesMapper goodsImagesMapper;
    @Test
    public void goodsDetails(){
        Long id = 68L;
        MallGoods mallGoods = mallGoodsMapper.selectGoodsDetailById(id);
        if (mallGoods == null) {
            throw new FebsException("商品不存在");
        }
        List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(mallGoods.getId());
        MallGoodsDetailsVo mallGoodsDetailsVo = MallGoodsConversion.INSTANCE.entityToDetailsVo(mallGoods);
        List<GoodsDetailsStyleVo> styles = mallGoodsDetailsVo.getStyles();
        if(ObjectUtil.isNotEmpty(styles)){
            for(GoodsDetailsStyleVo goodsDetailsStyleVo : styles){
                List<GoodsDetailsSkuVo> skus = goodsDetailsStyleVo.getSkus();
                if(CollUtil.isNotEmpty(skus) ){
                    for(GoodsDetailsSkuVo goodsDetailsSkuVo : skus){
                        if(StrUtil.isNotEmpty(goodsDetailsSkuVo.getSample())){
                            goodsDetailsSkuVo.setSampleFlag(true);
                        }else{
                            goodsDetailsSkuVo.setSampleFlag(false);
                        }
                    }
                }
            }
        }
        if (CollUtil.isNotEmpty(mallGoods.getStyles())) {
            Map<String, BigDecimal> stockAndVolume = mallGoodsMapper.selectGoodsStockAndVolume(id);
            mallGoodsDetailsVo.setStock(stockAndVolume.get("stock").intValue());
            mallGoodsDetailsVo.setVolume(stockAndVolume.get("volume").intValue());
        }
        mallGoodsDetailsVo.setImages(images);
    }
    @Test
    public void levelTest(){
        ApiCreateOrderVerifyDto apiCreateOrderVerifyDto = new ApiCreateOrderVerifyDto();
        List<AddOrderItemDto> addOrderItemDtos = new ArrayList<>();
        AddOrderItemDto addOrderItemDto = new AddOrderItemDto();
        addOrderItemDto.setCnt(1);
        addOrderItemDto.setSkuId(243L);
        addOrderItemDtos.add(addOrderItemDto);
        apiCreateOrderVerifyDto.setItems(addOrderItemDtos);
        MallMember member = mallMemberMapper.selectById(401L);
        List<AddOrderItemDto> items = apiCreateOrderVerifyDto.getItems();
        if(CollUtil.isEmpty(items)){
            System.out.println("请先挑选商品");
        }
        for (AddOrderItemDto item : apiCreateOrderVerifyDto.getItems()) {
            MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
            if (sku == null) {
                System.out.println("购买商品或sku不存在");
            }
            if("样品".equals(sku.getSample())){
                List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectItemBySkuIdUnCancel(sku.getId(), member.getId());
                if (CollUtil.isNotEmpty(mallOrderItems)) {
                    System.out.println("样品只能购买一次");
                }
                Integer cnt = item.getCnt();
                if(1 < cnt){
                    System.out.println("样品只能购买一件");
                }
            }else{
                //验证用户的等级
                if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
                    System.out.println(sku.getSkuName() + "请先申请成为代理人");
                }
            }
            if (sku.getStock() < item.getCnt()) {
                System.out.println(sku.getSkuName() + "库存不足");
            }
            MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
            if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
                System.out.println(mallGoods.getGoodsName() + "已下架");
            }
        }
    }
//    @Test
//    public void skusTest() {
//        ApiMallAwardDetailsVo apiMallAwardDetailsVo = new ApiMallAwardDetailsVo();