From ccb35b497df342c6de15f3a6be4c065b0ca7f1f1 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 24 Jun 2021 10:37:53 +0800 Subject: [PATCH] 20210624 商品分类 --- gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java | 215 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 203 insertions(+), 12 deletions(-) diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java index 59030c1..f6c181e 100644 --- a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java +++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java @@ -2,29 +2,26 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ObjectUtil; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; -import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.utils.MqUtil; -import com.xzx.gc.entity.CoreUser; -import com.xzx.gc.entity.ScoreGoodsCategory; -import com.xzx.gc.model.JsonResult; +import com.xzx.gc.entity.*; import com.xzx.gc.model.admin.GoodsCategoryModel; -import com.xzx.gc.shop.dto.QueryGoodsCategoryListDto; -import com.xzx.gc.shop.mapper.ScoreGoodsCategoryMapper; -import com.xzx.gc.shop.vo.QueryGoodsCategoryListVo; -import com.xzx.gc.shop.vo.ViewGoodsCategoryVo; -import com.xzx.gc.util.SessionUtil; +import com.xzx.gc.shop.dto.*; +import com.xzx.gc.shop.mapper.*; +import com.xzx.gc.shop.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,6 +33,14 @@ @Resource ScoreGoodsCategoryMapper scoreGoodsCategoryMapper; + @Resource + ScoreGoodsMapper scoreGoodsMapper; + @Resource + ScoreGoodsSkuMapper scoreGoodsSkuMapper; + @Resource + ScoreGoodsImagesMapper scoreGoodsImagesMapper; + @Resource + ScoreGoodsStyleMapper scoreGoodsStyleMapper; @Autowired private MqUtil mqUtil; @@ -89,4 +94,190 @@ scoreGoodsCategory.setParentId(model.getParentId()); scoreGoodsCategoryMapper.updateByPrimaryKey(scoreGoodsCategory); } + + public Map<String, Object> queryGoodsList(QueryGoodsListDto model) { + String name = model.getName(); + int delFlag = model.getDelFlag(); + ScoreGoods scoreGoods = new ScoreGoods(); + scoreGoods.setName(name); + scoreGoods.setDelFlag(Convert.toShort(delFlag)); + PageHelper.startPage(model.getPage(), model.getLimit()); + + List<QueryGoodsListVo> maps = scoreGoodsMapper.queryGoodsList(scoreGoods); + PageInfo pageInfo = new PageInfo(maps); + int count = Convert.toInt(pageInfo.getTotal()); + Map<String, Object> map = new HashMap<>(); + map.put("data", maps); + map.put("count", count); + map.put("code", 0); + return map; + } + + public Long addGoods(AddGoodsDto model) { + //新增商品主信息 + ObjectMapper objectMapper = new ObjectMapper(); + 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); + //样式信息 + List<ScoreGoodsStyleDto> scoreGoodsStyleDtos = model.getScoreGoodsStyleDtos(); + 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); + //规格信息 + List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkuDtos(); + if(CollUtil.isNotEmpty(scoreGoodsSkuDtos)){ + for(ScoreGoodsSkuDto scoreGoodsSkuDto : scoreGoodsSkuDtos){ + ScoreGoodsSku scoreGoodsSku = objectMapper.convertValue(scoreGoodsSkuDto, ScoreGoodsSku.class); + scoreGoodsSku.setGoodsId(scoreGoods.getId()); + scoreGoodsSku.setStyleId(scoreGoodsStyle.getId()); + scoreGoodsSku.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG)); + scoreGoodsSkuMapper.insert(scoreGoodsSku); + } + } + } + } + //轮播图信息 + List<String> goodsImages = model.getGoodsImages(); + if(CollUtil.isNotEmpty(goodsImages)){ + for(String goodImage : goodsImages){ + ScoreGoodsImages scoreGoodsImages = new ScoreGoodsImages(); + scoreGoodsImages.setImageUrl(goodImage); + scoreGoodsImages.setGoodsId(scoreGoods.getId()); + scoreGoodsImages.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG)); + scoreGoodsImagesMapper.insert(scoreGoodsImages); + } + } + return scoreGoods.getId(); + } + + public void deleteGoods(long id) { + + scoreGoodsMapper.updateDelFlagById(id,Convert.toShort(Constants.DEL_FLAG)); + + Example exampleStyle = new Example(ScoreGoodsStyle.class); + Example.Criteria criteriaStyle = exampleStyle.createCriteria(); + criteriaStyle.andEqualTo("goodsId",id); + List<ScoreGoodsStyle> goodsStyles = scoreGoodsStyleMapper.selectByExample(exampleStyle); + if(CollUtil.isNotEmpty(goodsStyles)){ + for(ScoreGoodsStyle scoreGoodsStyle : goodsStyles){ + scoreGoodsStyleMapper.updateDelFlagById(scoreGoodsStyle.getId(),Convert.toShort(Constants.DEL_FLAG)); + } + } + + Example exampleSku = new Example(ScoreGoodsStyle.class); + Example.Criteria criteriaSku = exampleSku.createCriteria(); + criteriaSku.andEqualTo("goodsId",id); + List<ScoreGoodsSku> goodsSkus = scoreGoodsSkuMapper.selectByExample(exampleSku); + if(CollUtil.isNotEmpty(goodsSkus)){ + for(ScoreGoodsSku scoreGoodsSku : goodsSkus){ + scoreGoodsSkuMapper.updateDelFlagById(scoreGoodsSku.getId(),Convert.toShort(Constants.DEL_FLAG)); + } + } + } + + public ViewGoodsVo viewGoods(long id) { + ViewGoodsVo viewGoodsVo = new ViewGoodsVo(); + ScoreGoods scoreGoods = scoreGoodsMapper.selectByPrimaryKey(id); + if(ObjectUtil.isNotEmpty(scoreGoods)){ + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + viewGoodsVo = objectMapper.convertValue(scoreGoods, ViewGoodsVo.class); + //轮播图 + List<String> goodsImages = scoreGoodsImagesMapper.selectScoreGoodsImagesByGoodsId(id); + viewGoodsVo.setGoodsImages(goodsImages); + //样式 + List<ScoreGoodsStyleVo> scoreGoodsStyleVos = new ArrayList<>(); + List<ScoreGoodsStyle> goodsStyles = scoreGoodsStyleMapper.selectScoreGoodsStyleByGoodsId(id); + if(CollUtil.isNotEmpty(goodsStyles)){ + for(ScoreGoodsStyle goodsStyle : goodsStyles){ + ScoreGoodsStyleVo scoreGoodsStyleVo = objectMapper.convertValue(goodsStyle, ScoreGoodsStyleVo.class); + //获取规格 + Long styleId = goodsStyle.getId(); + List<ScoreGoodsSkuVo> goodsSkus = scoreGoodsSkuMapper.selectScoreGoodsSkuByGoodsIdAndStyleId(id,styleId); + scoreGoodsStyleVo.setScoreGoodsSkuVos(goodsSkus); + scoreGoodsStyleVos.add(scoreGoodsStyleVo); + } + } + viewGoodsVo.setScoreGoodsStyleVos(scoreGoodsStyleVos); + } + return viewGoodsVo; + } + + public void updateGoods(UpdateGoodsDto model) { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + ScoreGoods scoreGoods = objectMapper.convertValue(model, ScoreGoods.class); + scoreGoodsMapper.updateByPrimaryKey(scoreGoods); + + //轮播图 + Example exampleImages = new Example(ScoreGoodsImages.class); + Example.Criteria criteriaImages = exampleImages.createCriteria(); + criteriaImages.andEqualTo("goodsId",scoreGoods.getId()); + scoreGoodsImagesMapper.deleteByExample(exampleImages); + List<String> goodsImages = model.getGoodsImages(); + if(CollUtil.isNotEmpty(goodsImages)){ + for(String goodImage : goodsImages){ + ScoreGoodsImages scoreGoodsImages = new ScoreGoodsImages(); + scoreGoodsImages.setImageUrl(goodImage); + scoreGoodsImages.setGoodsId(scoreGoods.getId()); + scoreGoodsImages.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG)); + scoreGoodsImagesMapper.insert(scoreGoodsImages); + } + } + + List<ScoreGoodsStyleDto> scoreGoodsStyleDtos = model.getScoreGoodsStyleDtos(); + if(CollUtil.isNotEmpty(scoreGoodsStyleDtos)){ + for(ScoreGoodsStyleDto scoreGoodsStyleDto : scoreGoodsStyleDtos){ + ScoreGoodsStyle scoreGoodsStyle = new ScoreGoodsStyle(); + scoreGoodsStyle.setId(scoreGoodsStyleDto.getId()); + scoreGoodsStyle.setName(scoreGoodsStyleDto.getName()); + scoreGoodsStyle.setGoodsId(scoreGoods.getId()); + scoreGoodsStyleMapper.updateByPrimaryKeySelective(scoreGoodsStyle); + //规格 + List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkuDtos(); + if(CollUtil.isNotEmpty(scoreGoodsSkuDtos)){ + for(ScoreGoodsSkuDto scoreGoodsSkuDto : scoreGoodsSkuDtos){ + ScoreGoodsSku scoreGoodsSku = objectMapper.convertValue(scoreGoodsSkuDto, ScoreGoodsSku.class); + scoreGoodsSkuMapper.updateByPrimaryKey(scoreGoodsSku); + } + } + } + } + } + + public void saleGoods(long id, Integer issale) { + ScoreGoods scoreGoods = new ScoreGoods(); + scoreGoods.setIsSale(issale); + Example exampleGoods = new Example(ScoreGoods.class); + Example.Criteria criteriaGoods = exampleGoods.createCriteria(); + criteriaGoods.andEqualTo("id",id); + scoreGoodsMapper.updateByExampleSelective(scoreGoods,exampleGoods); + } + + public void snapUpGoods(SnapUpGoodsDto model) { + long id = model.getId(); + Integer isQg = model.getIsQg(); + if(ScoreGoods.ISQG_YES == isQg){ + ScoreGoods scoreGoods = new ScoreGoods(); + scoreGoods.setIsQg(ScoreGoods.ISQG_YES); + scoreGoods.setQgStartTime(model.getQgStartTime()); + scoreGoods.setQgEndTime(model.getQgEndTime()); + Example exampleGoods = new Example(ScoreGoods.class); + Example.Criteria criteriaGoods = exampleGoods.createCriteria(); + criteriaGoods.andEqualTo("id",id); + scoreGoodsMapper.updateByExampleSelective(scoreGoods,exampleGoods); + }else{ + ScoreGoods scoreGoods = new ScoreGoods(); + scoreGoods.setIsQg(ScoreGoods.ISQG_NO); + Example exampleGoods = new Example(ScoreGoods.class); + Example.Criteria criteriaGoods = exampleGoods.createCriteria(); + criteriaGoods.andEqualTo("id",id); + scoreGoodsMapper.updateByExampleSelective(scoreGoods,exampleGoods); + } + } } -- Gitblit v1.9.1