xiaoyong931011
2021-07-21 6fb14aa3c9ea91de6cbc6665c07d8cfed796c0f0
gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
@@ -1,10 +1,13 @@
package com.xzx.gc.shop.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
@@ -41,6 +44,8 @@
    ScoreGoodsImagesMapper scoreGoodsImagesMapper;
    @Resource
    ScoreGoodsStyleMapper scoreGoodsStyleMapper;
    @Resource
    ScoreGoodsSearchMapper scoreGoodsSearchMapper;
    @Autowired
    private MqUtil mqUtil;
@@ -68,7 +73,7 @@
        scoreGoodsCategory.setParentId(model.getParentId());
        scoreGoodsCategory.setCreatedBy(model.getCreatedBy());
        scoreGoodsCategory.setCreatedTime(model.getCreatedTime());
        scoreGoodsCategoryMapper.insert(scoreGoodsCategory);
        scoreGoodsCategoryMapper.insertSelective(scoreGoodsCategory);
        return scoreGoodsCategory.getId();
    }
@@ -101,6 +106,13 @@
        PageHelper.startPage(model.getPage(), model.getLimit());
        List<QueryGoodsListVo> maps = scoreGoodsMapper.queryGoodsList(name,delFlag);
        if(CollUtil.isNotEmpty(maps)){
            for(QueryGoodsListVo queryGoodsListVo : maps){
                long id = queryGoodsListVo.getId();
                Integer stock = scoreGoodsSkuMapper.selectScoreGoodsSkuMapperByGoodId(id);
                queryGoodsListVo.setStock(stock);
            }
        }
        PageInfo pageInfo = new PageInfo(maps);
        int count = Convert.toInt(pageInfo.getTotal());
        Map<String, Object> map = new HashMap<>();
@@ -116,15 +128,15 @@
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        ScoreGoods scoreGoods = objectMapper.convertValue(model, ScoreGoods.class);
        scoreGoods.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
        scoreGoodsMapper.insert(scoreGoods);
        scoreGoodsMapper.insertSelective(scoreGoods);
        //样式信息
        List<ScoreGoodsStyleDto> scoreGoodsStyleDtos = model.getScoreGoodsStyleDtos();
        List<ScoreGoodsStyleDto> scoreGoodsStyleDtos = model.getScoreGoodsStyles();
        if(CollUtil.isNotEmpty(scoreGoodsStyleDtos)){
            for(ScoreGoodsStyleDto scoreGoodsStyleDto : scoreGoodsStyleDtos){
                ScoreGoodsStyle scoreGoodsStyle = objectMapper.convertValue(scoreGoodsStyleDto, ScoreGoodsStyle.class);
                scoreGoodsStyle.setGoodsId(scoreGoods.getId());
                scoreGoodsStyle.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
                scoreGoodsStyleMapper.insert(scoreGoodsStyle);
                scoreGoodsStyleMapper.insertSelective(scoreGoodsStyle);
                //规格信息
                List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkus();
                if(CollUtil.isNotEmpty(scoreGoodsSkuDtos)){
@@ -133,7 +145,7 @@
                        scoreGoodsSku.setGoodsId(scoreGoods.getId());
                        scoreGoodsSku.setStyleId(scoreGoodsStyle.getId());
                        scoreGoodsSku.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
                        scoreGoodsSkuMapper.insert(scoreGoodsSku);
                        scoreGoodsSkuMapper.insertSelective(scoreGoodsSku);
                    }
                }
            }
@@ -184,6 +196,7 @@
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            viewGoodsVo = objectMapper.convertValue(scoreGoods, ViewGoodsVo.class);
//            viewGoodsVo.setCreateTime(scoreGoods.getCreatedTime().toString());
            //轮播图
            List<String> goodsImages = scoreGoodsImagesMapper.selectScoreGoodsImagesByGoodsId(id);
            viewGoodsVo.setGoodsImages(goodsImages);
@@ -208,7 +221,9 @@
    public void updateGoods(UpdateGoodsDto model) {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        ScoreGoods scoreGoods = objectMapper.convertValue(model, ScoreGoods.class);
//        ScoreGoods scoreGoods = objectMapper.convertValue(model, ScoreGoods.class);
        ScoreGoods scoreGoods = BeanUtil.copyProperties(model, ScoreGoods.class);
        log.info("抢购时间:{}, {}", scoreGoods.getQgStartTime(), scoreGoods.getQgEndTime());
        scoreGoodsMapper.updateByPrimaryKey(scoreGoods);
        //轮播图
@@ -223,24 +238,36 @@
                scoreGoodsImages.setImageUrl(goodImage);
                scoreGoodsImages.setGoodsId(scoreGoods.getId());
                scoreGoodsImages.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG));
                scoreGoodsImagesMapper.insert(scoreGoodsImages);
                scoreGoodsImagesMapper.insertSelective(scoreGoodsImages);
            }
        }
        List<ScoreGoodsStyleDto> scoreGoodsStyleDtos = model.getScoreGoodsStyles();
        if(CollUtil.isNotEmpty(scoreGoodsStyleDtos)){
            Example exampleStyle = new Example(ScoreGoodsStyle.class);
            Example.Criteria criteriaStyle = exampleStyle.createCriteria();
            criteriaStyle.andEqualTo("goodsId",scoreGoods.getId());
            scoreGoodsStyleMapper.deleteByExample(exampleImages);
            Example exampleSku = new Example(ScoreGoodsSku.class);
            Example.Criteria criteriaSku = exampleSku.createCriteria();
            criteriaSku.andEqualTo("goodsId",scoreGoods.getId());
            scoreGoodsSkuMapper.deleteByExample(exampleImages);
            for(ScoreGoodsStyleDto scoreGoodsStyleDto : scoreGoodsStyleDtos){
                ScoreGoodsStyle scoreGoodsStyle = new ScoreGoodsStyle();
                scoreGoodsStyle.setId(scoreGoodsStyleDto.getId());
                scoreGoodsStyle.setName(scoreGoodsStyleDto.getName());
                scoreGoodsStyle.setGoodsId(scoreGoods.getId());
                scoreGoodsStyleMapper.updateByPrimaryKeySelective(scoreGoodsStyle);
                scoreGoodsStyleMapper.insertSelective(scoreGoodsStyle);
                //规格
                List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkus();
                if(CollUtil.isNotEmpty(scoreGoodsSkuDtos)){
                    for(ScoreGoodsSkuDto scoreGoodsSkuDto : scoreGoodsSkuDtos){
                        ScoreGoodsSku scoreGoodsSku = objectMapper.convertValue(scoreGoodsSkuDto, ScoreGoodsSku.class);
                        scoreGoodsSkuMapper.updateByPrimaryKey(scoreGoodsSku);
                        scoreGoodsSku.setGoodsId(scoreGoods.getId());
                        scoreGoodsSku.setStyleId(scoreGoodsStyle.getId());
                        scoreGoodsSkuMapper.insertSelective(scoreGoodsSku);
                    }
                }
            }
@@ -271,6 +298,8 @@
        }else{
            ScoreGoods scoreGoods = new ScoreGoods();
            scoreGoods.setIsQg(ScoreGoods.ISQG_NO);
            scoreGoods.setQgEndTime(null);
            scoreGoods.setQgStartTime(null);
            Example exampleGoods = new Example(ScoreGoods.class);
            Example.Criteria criteriaGoods = exampleGoods.createCriteria();
            criteriaGoods.andEqualTo("id",id);
@@ -296,7 +325,20 @@
        PageHelper.startPage(xcxGoodsListDto.getPageNo(), xcxGoodsListDto.getPageSize());
        List<XcxGoodsListVo> data = scoreGoodsMapper.selectXcxGoodsList(xcxGoodsListDto);
        if(StrUtil.isNotEmpty(xcxGoodsListDto.getName())){
            Example exampleSearch = new Example(ScoreGoodsSearch.class);
            Example.Criteria criteriaSearch = exampleSearch.createCriteria();
            criteriaSearch.andEqualTo("contents",xcxGoodsListDto.getName());
            criteriaSearch.andEqualTo("userId",xcxGoodsListDto.getUserId());
            List<ScoreGoodsSearch> scoreGoodsSearches = scoreGoodsSearchMapper.selectByExample(exampleSearch);
            if(CollUtil.isEmpty(scoreGoodsSearches)){
                ScoreGoodsSearch scoreGoodsSearch = new ScoreGoodsSearch();
                scoreGoodsSearch.setUserId(xcxGoodsListDto.getUserId());
                scoreGoodsSearch.setContents(xcxGoodsListDto.getName());
                scoreGoodsSearch.setCreatedTime(new Date());
                scoreGoodsSearchMapper.insert(scoreGoodsSearch);
            }
        }
        return new PageInfo<>(data);
    }
@@ -314,9 +356,33 @@
        }
        if (ScoreGoods.ISQG_YES.equals(data.getIsQg())) {
            Long remain = DateUtil.between(new Date(), data.getQgEndTime(), DateUnit.SECOND, false);
            data.setRemainTime(remain);
            if (new Date().before(data.getQgStartTime())) {
                data.setIsStartQg(2);
            } else {
                data.setIsStartQg(1);
                Long remain = DateUtil.between(new Date(), data.getQgEndTime(), DateUnit.SECOND, false);
                data.setRemainTime(remain);
            }
        }
        return data;
    }
    public List<GoodsSearchVo> goodsSearch(GoodsSearchDto goodsSearchDto) {
        return scoreGoodsSearchMapper.goodsSearch(goodsSearchDto);
    }
    public void delGoodsSearch(Long id, String userId) {
        Example exampleSearch = new Example(ScoreGoodsSearch.class);
        Example.Criteria criteriaSearch = exampleSearch.createCriteria();
        criteriaSearch.andEqualTo("id",id);
        criteriaSearch.andEqualTo("userId",userId);
        scoreGoodsSearchMapper.deleteByExample(exampleSearch);
    }
    public void delAllSearch(String userId) {
        Example exampleSearch = new Example(ScoreGoodsSearch.class);
        Example.Criteria criteriaSearch = exampleSearch.createCriteria();
        criteriaSearch.andEqualTo("userId",userId);
        scoreGoodsSearchMapper.deleteByExample(exampleSearch);
    }
}