|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | ScoreGoodsImagesMapper scoreGoodsImagesMapper; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | ScoreGoodsStyleMapper scoreGoodsStyleMapper; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | ScoreGoodsSearchMapper scoreGoodsSearchMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MqUtil mqUtil; | 
|---|
|  |  |  | 
|---|
|  |  |  | scoreGoodsCategory.setParentId(model.getParentId()); | 
|---|
|  |  |  | scoreGoodsCategory.setCreatedBy(model.getCreatedBy()); | 
|---|
|  |  |  | scoreGoodsCategory.setCreatedTime(model.getCreatedTime()); | 
|---|
|  |  |  | scoreGoodsCategoryMapper.insert(scoreGoodsCategory); | 
|---|
|  |  |  | scoreGoodsCategoryMapper.insertSelective(scoreGoodsCategory); | 
|---|
|  |  |  | return scoreGoodsCategory.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | 
|---|
|  |  |  | scoreGoodsSku.setGoodsId(scoreGoods.getId()); | 
|---|
|  |  |  | scoreGoodsSku.setStyleId(scoreGoodsStyle.getId()); | 
|---|
|  |  |  | scoreGoodsSku.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG)); | 
|---|
|  |  |  | scoreGoodsSkuMapper.insert(scoreGoodsSku); | 
|---|
|  |  |  | scoreGoodsSkuMapper.insertSelective(scoreGoodsSku); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //轮播图 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }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); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | dto.setId(id); | 
|---|
|  |  |  | List<XcxGoodsListVo> list = scoreGoodsMapper.selectXcxGoodsList(dto); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<String> images = scoreGoodsImagesMapper.selectScoreGoodsImagesByGoodsId(id); | 
|---|
|  |  |  | data.setImages(images); | 
|---|
|  |  |  | if (CollUtil.isNotEmpty(list)) { | 
|---|
|  |  |  | data.setQuantity(list.get(0).getQuantity()); | 
|---|
|  |  |  | data.setStock(list.get(0).getStock()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|