From 1bada3da32aa8b29509b7357e5adfe816ac17c72 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 16 Jul 2021 10:29:33 +0800
Subject: [PATCH] fix
---
gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 304 insertions(+), 15 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..69b54b3 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
@@ -1,33 +1,33 @@
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;
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.model.order.OrderInfoVo;
+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.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Service
@Transactional
@@ -36,6 +36,16 @@
@Resource
ScoreGoodsCategoryMapper scoreGoodsCategoryMapper;
+ @Resource
+ ScoreGoodsMapper scoreGoodsMapper;
+ @Resource
+ ScoreGoodsSkuMapper scoreGoodsSkuMapper;
+ @Resource
+ ScoreGoodsImagesMapper scoreGoodsImagesMapper;
+ @Resource
+ ScoreGoodsStyleMapper scoreGoodsStyleMapper;
+ @Resource
+ ScoreGoodsSearchMapper scoreGoodsSearchMapper;
@Autowired
private MqUtil mqUtil;
@@ -63,7 +73,7 @@
scoreGoodsCategory.setParentId(model.getParentId());
scoreGoodsCategory.setCreatedBy(model.getCreatedBy());
scoreGoodsCategory.setCreatedTime(model.getCreatedTime());
- scoreGoodsCategoryMapper.insert(scoreGoodsCategory);
+ scoreGoodsCategoryMapper.insertSelective(scoreGoodsCategory);
return scoreGoodsCategory.getId();
}
@@ -89,4 +99,283 @@
scoreGoodsCategory.setParentId(model.getParentId());
scoreGoodsCategoryMapper.updateByPrimaryKey(scoreGoodsCategory);
}
+
+ public Map<String, Object> queryGoodsList(QueryGoodsListDto model) {
+ String name = model.getName() == null ? "":model.getName();
+ int delFlag = model.getDelFlag() == null ? 2:model.getDelFlag();
+ PageHelper.startPage(model.getPage(), model.getLimit());
+
+ List<QueryGoodsListVo> maps = scoreGoodsMapper.queryGoodsList(name,delFlag);
+ 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.insertSelective(scoreGoods);
+ //样式信息
+ 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.insertSelective(scoreGoodsStyle);
+ //规格信息
+ List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkus();
+ 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.insertSelective(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);
+// viewGoodsVo.setCreateTime(scoreGoods.getCreatedTime().toString());
+ //轮播图
+ 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.setScoreGoodsSkus(goodsSkus);
+ scoreGoodsStyleVos.add(scoreGoodsStyleVo);
+ }
+ }
+ viewGoodsVo.setScoreGoodsStyles(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);
+ ScoreGoods scoreGoods = BeanUtil.copyProperties(model, ScoreGoods.class);
+ log.info("抢购时间:{}, {}", scoreGoods.getQgStartTime(), scoreGoods.getQgEndTime());
+ 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.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.insertSelective(scoreGoodsStyle);
+ //规格
+ List<ScoreGoodsSkuDto> scoreGoodsSkuDtos = scoreGoodsStyleDto.getScoreGoodsSkus();
+ if(CollUtil.isNotEmpty(scoreGoodsSkuDtos)){
+ for(ScoreGoodsSkuDto scoreGoodsSkuDto : scoreGoodsSkuDtos){
+ ScoreGoodsSku scoreGoodsSku = objectMapper.convertValue(scoreGoodsSkuDto, ScoreGoodsSku.class);
+ scoreGoodsSku.setGoodsId(scoreGoods.getId());
+ scoreGoodsSku.setStyleId(scoreGoodsStyle.getId());
+ scoreGoodsSkuMapper.insertSelective(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);
+ scoreGoods.setQgEndTime(null);
+ scoreGoods.setQgStartTime(null);
+ Example exampleGoods = new Example(ScoreGoods.class);
+ Example.Criteria criteriaGoods = exampleGoods.createCriteria();
+ criteriaGoods.andEqualTo("id",id);
+ scoreGoodsMapper.updateByExampleSelective(scoreGoods,exampleGoods);
+ }
+ }
+
+ public List<ViewGoodsCategoryListVo> viewGoodsCategoryList(ViewGoodsCategoryListDto viewGoodsCategoryListDto) {
+ List<ViewGoodsCategoryListVo> maps = new ArrayList<>();
+ if(viewGoodsCategoryListDto.getParentId() == 0L){
+ maps = scoreGoodsCategoryMapper.viewGoodsCategoryOneList(viewGoodsCategoryListDto.getParentId());
+ }else{
+ maps = scoreGoodsCategoryMapper.viewGoodsCategoryList();
+ }
+ return maps;
+ }
+
+ public List<GoodsCategoryVo> findCategoryWithChildren() {
+ return scoreGoodsCategoryMapper.selectCategoryWithChildren();
+ }
+
+ public PageInfo<XcxGoodsListVo> findGoodsListInPage(XcxGoodsListDto xcxGoodsListDto) {
+
+ 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);
+ }
+
+ public XcxGoodsDetailVo findGoodsDetails(Long id) {
+ XcxGoodsDetailVo data = scoreGoodsMapper.selectGoodsDetailsById(id);
+ XcxGoodsListDto dto = new XcxGoodsListDto();
+ 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())) {
+ 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);
+ }
}
--
Gitblit v1.9.1