|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public Map<String, Object> queryGoodsList(QueryGoodsListDto model) { | 
|---|
|  |  |  | String name = model.getName() == null ? "":model.getName(); | 
|---|
|  |  |  | int delFlag = model.getDelFlag() == null ? 2:model.getDelFlag(); | 
|---|
|  |  |  | int namePx = model.getNamePx() == null ? 7:model.getNamePx(); | 
|---|
|  |  |  | int typePx = model.getTypePx() == null ? 2:model.getTypePx(); | 
|---|
|  |  |  | PageHelper.startPage(model.getPage(), model.getLimit()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<QueryGoodsListVo> maps = scoreGoodsMapper.queryGoodsList(name,delFlag); | 
|---|
|  |  |  | List<QueryGoodsListVo> maps = scoreGoodsMapper.queryGoodsList(name,delFlag,model.getIsQg(),model.getIsSale(),namePx,typePx); | 
|---|
|  |  |  | //        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<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|