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