From 7c4afff8f6e3a011a4c24526fdd616f60cb3ef45 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 17 Nov 2021 15:03:51 +0800
Subject: [PATCH] 20211117

---
 gc-shop/src/main/java/com/xzx/gc/shop/service/JhyService.java      |    5 +-
 gc-shop/src/main/resources/sql                                     |    3 +
 gc-shop/src/main/java/com/xzx/gc/shop/job/ShopJob.java             |   25 ++++++++++++
 gc-core/src/main/java/com/xzx/gc/entity/ScoreOrder.java            |    5 ++
 gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java |    4 ++
 gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java    |   15 +++++++
 gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml        |   15 +++++++
 7 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/gc-core/src/main/java/com/xzx/gc/entity/ScoreOrder.java b/gc-core/src/main/java/com/xzx/gc/entity/ScoreOrder.java
index febd1c7..3ffbf8c 100644
--- a/gc-core/src/main/java/com/xzx/gc/entity/ScoreOrder.java
+++ b/gc-core/src/main/java/com/xzx/gc/entity/ScoreOrder.java
@@ -1,10 +1,12 @@
 package com.xzx.gc.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xzx.gc.common.entity.BaseEntity;
 import lombok.Data;
 
 import javax.persistence.Table;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * @author wzy
@@ -44,5 +46,8 @@
     public  static final Integer ISFINISH_YES = 1;
     public  static final Integer ISFINISH_NO = 2;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date isFinishTime;
+
     private String remark;
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/job/ShopJob.java b/gc-shop/src/main/java/com/xzx/gc/shop/job/ShopJob.java
new file mode 100644
index 0000000..3e47177
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/job/ShopJob.java
@@ -0,0 +1,25 @@
+package com.xzx.gc.shop.job;
+
+import com.xzx.gc.shop.service.OrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@EnableAsync
+@Slf4j
+@Component
+public class ShopJob {
+
+    @Resource
+    private OrderService orderService;
+    /**
+     时间是每1个小时变动一次
+     */
+    @Scheduled(cron = "0 0 0/1 * * ?")
+    public void changeOrderStatue() {
+        orderService.changeOrderStatue();
+    }
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
index 8de12ef..ff605af 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
@@ -37,4 +37,8 @@
                                  @Param("goodsId")Long id,
                                  @Param("qgStartTime")Date qgStartTime,
                                  @Param("qgEndTime")Date qgEndTime);
+
+    List<ScoreOrder> selectOrderByIsFinish(@Param("dateTime")Date dateTime);
+
+    void updateOrderStatusToDone(@Param("id") Long id);
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/JhyService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/JhyService.java
index 87fd537..e594674 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/JhyService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/JhyService.java
@@ -154,14 +154,15 @@
         Integer jhyUserCnt = jhyOrderMapper.selectJhyOrderCnt(userId);
 
         Integer allCnt = scoreOrderMapper.selectScoreOrderCnt(null);
+        Integer userCnt = scoreOrderMapper.selectScoreOrderCnt(userId);
         BigDecimal score = jhyOrderMapper.selectTotalScoreHasGet(userId);
 
         StatisticsVo result = new StatisticsVo();
         result.setTotalReduceCarbon(allCarbon.divide(BigDecimal.valueOf(1000), 2, BigDecimal.ROUND_DOWN));
         result.setReduceCarbon(userCarbon.setScale(2, BigDecimal.ROUND_DOWN));
 
-        result.setOrderCnt(qsUserCnt + jhyUserCnt);
-        result.setTotalOrderCnt(qsAllCnt + jhyAllCnt);
+        result.setOrderCnt(qsUserCnt + jhyUserCnt + userCnt);
+        result.setTotalOrderCnt(qsAllCnt + jhyAllCnt + allCnt);
 
         result.setTotalBuyCnt(allCnt);
         result.setScore(score);
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
index 501c1f7..0f4a660 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -198,6 +200,7 @@
         }
 //        scoreOrder.setStatus(ScoreOrder.STATUS_DONE);
         scoreOrder.setIsFinish(ScoreOrder.ISFINISH_YES);
+        scoreOrder.setIsFinishTime(new Date());
         scoreOrder.setVoucherImg(CollUtil.join(model.getVoucherImgs(),","));
         scoreOrderMapper.updateByPrimaryKeySelective(scoreOrder);
         return scoreOrder.getId();
@@ -490,4 +493,16 @@
         statisticsVo.setTotalBuyCnt(Integer.parseInt(allData.get("totalBuy").toString()));
         return statisticsVo;
     }
+
+    public void changeOrderStatue() {
+        //获取七天之前后台点击确认提货的订单
+        DateTime dateTime = DateUtil.offsetDay(new Date(), -7);
+        //
+        List<ScoreOrder> orders = scoreOrderMapper.selectOrderByIsFinish(dateTime);
+        if(CollUtil.isNotEmpty(orders)){
+            for(ScoreOrder order : orders){
+                scoreOrderMapper.updateOrderStatusToDone(order.getId());
+            }
+        }
+    }
 }
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
index 4dcd053..fb8685a 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
@@ -142,4 +142,19 @@
           and a.CREATED_TIME &gt;= #{qgStartTime}
           and a.CREATED_TIME &lt;= #{qgEndTime}
     </select>
+
+    <select id="selectOrderByIsFinish" resultType="com.xzx.gc.entity.ScoreOrder">
+        select
+        a.*
+        from xzx_score_order a
+        where a.is_finish = 1
+        and a.status = 2
+        and a.is_finish_time &lt;= #{dateTime}
+    </select>
+
+    <update id="updateOrderStatusToDone">
+        update xzx_score_order
+        set status = 4
+        where id = #{id}
+    </update>
 </mapper>
diff --git a/gc-shop/src/main/resources/sql b/gc-shop/src/main/resources/sql
index 5827971..48eefe5 100644
--- a/gc-shop/src/main/resources/sql
+++ b/gc-shop/src/main/resources/sql
@@ -104,6 +104,9 @@
 ALTER TABLE `xzx_jhy_order`
 ADD COLUMN `house_number`  varchar(32) NULL COMMENT '门牌号' AFTER `unit_name`;
 
+ALTER TABLE `xzx_score_order`
+ADD COLUMN `is_finish_time`  datetime NULL COMMENT '确认提货时间' AFTER `is_finish`;
+
 
 
 

--
Gitblit v1.9.1