From 0561b12e8c5570a0f7e812543cc3460f80fee416 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 11 Nov 2021 10:29:28 +0800
Subject: [PATCH] 20211108

---
 gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java |   90 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 insertions(+), 5 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 1942e9b..741452c 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,10 +1,13 @@
 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;
@@ -41,6 +44,10 @@
     ScoreGoodsImagesMapper scoreGoodsImagesMapper;
     @Resource
     ScoreGoodsStyleMapper scoreGoodsStyleMapper;
+    @Resource
+    ScoreGoodsSearchMapper scoreGoodsSearchMapper;
+    @Resource
+    ScoreOrderMapper scoreOrderMapper;
 
     @Autowired
     private MqUtil mqUtil;
@@ -98,9 +105,18 @@
     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<>();
@@ -209,7 +225,9 @@
     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);
 
         //轮播图
@@ -251,6 +269,8 @@
                 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);
                     }
                 }
@@ -282,6 +302,8 @@
         }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);
@@ -307,16 +329,55 @@
 
         PageHelper.startPage(xcxGoodsListDto.getPageNo(), xcxGoodsListDto.getPageSize());
         List<XcxGoodsListVo> data = scoreGoodsMapper.selectXcxGoodsList(xcxGoodsListDto);
-
+        if(StrUtil.isNotEmpty(xcxGoodsListDto.getUserId())){
+            if(CollUtil.isNotEmpty(data)){
+                for(XcxGoodsListVo xcxGoodsListVo : data){
+                    if(ScoreGoods.ISQG_YES == xcxGoodsListVo.getIsQg()){
+                        //抢购时间内,用户购买该商品的数量
+                        Integer sumCnt = scoreOrderMapper.selectGoodsQuotaTime(xcxGoodsListDto.getUserId(),xcxGoodsListVo.getId(),xcxGoodsListVo.getQgStartTime(),xcxGoodsListVo.getQgEndTime());
+                        xcxGoodsListVo.setAvaQuotaTime(
+                                ((xcxGoodsListVo.getQuotaTime() == null?0:xcxGoodsListVo.getQuotaTime()) - sumCnt) > 0?((xcxGoodsListVo.getQuotaTime() == null?0:xcxGoodsListVo.getQuotaTime()) - sumCnt):0
+                                );
+                    }
+                }
+            }
+        }
+        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) {
+    public XcxGoodsDetailVo findGoodsDetails(Long id, String userId) {
         XcxGoodsDetailVo data = scoreGoodsMapper.selectGoodsDetailsById(id);
+        data.setQuotaTime(data.getQuotaTime() == null ? 0:data.getQuotaTime());
         XcxGoodsListDto dto = new XcxGoodsListDto();
         dto.setId(id);
         List<XcxGoodsListVo> list = scoreGoodsMapper.selectXcxGoodsList(dto);
-
+        if(StrUtil.isNotEmpty(userId)){
+            if(CollUtil.isNotEmpty(list)){
+                for(XcxGoodsListVo xcxGoodsListVo : list){
+                    if(ScoreGoods.ISQG_YES == xcxGoodsListVo.getIsQg()){
+                        //抢购时间内,用户购买该商品的数量
+                        Integer sumCnt = scoreOrderMapper.selectGoodsQuotaTime(userId,xcxGoodsListVo.getId(),xcxGoodsListVo.getQgStartTime(),xcxGoodsListVo.getQgEndTime());
+                        data.setAvaQuotaTime(
+                                ((xcxGoodsListVo.getQuotaTime() == null?0:xcxGoodsListVo.getQuotaTime()) - sumCnt) > 0?((xcxGoodsListVo.getQuotaTime() == null?0:xcxGoodsListVo.getQuotaTime()) - sumCnt):0
+                        );
+                    }
+                }
+            }
+        }
         List<String> images = scoreGoodsImagesMapper.selectScoreGoodsImagesByGoodsId(id);
         data.setImages(images);
         if (CollUtil.isNotEmpty(list)) {
@@ -335,4 +396,23 @@
         }
         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