From 646a35bd8782f434a4c9f06c312afc8473286ba7 Mon Sep 17 00:00:00 2001
From: zhengyunfei <zhengyunfei@jianghuxx,com>
Date: Thu, 6 Jul 2023 09:09:37 +0800
Subject: [PATCH] 失效团购不能再次购买

---
 src/main/java/com/yunniu/farming/result/GlobalExceptionHandler.java               | 14 ++++++++++++++
 src/main/java/com/yunniu/farming/util/FileUtil.java                               |  4 ++--
 src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java | 17 +++++++++++------
 src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java         | 21 +++++++++++++++------
 src/main/resources/application.properties                                         | 12 ++++++------
 5 files changed, 48 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/yunniu/farming/result/GlobalExceptionHandler.java b/src/main/java/com/yunniu/farming/result/GlobalExceptionHandler.java
index 870310b..b35823c 100644
--- a/src/main/java/com/yunniu/farming/result/GlobalExceptionHandler.java
+++ b/src/main/java/com/yunniu/farming/result/GlobalExceptionHandler.java
@@ -83,6 +83,20 @@ public class GlobalExceptionHandler {
      * @param e
      * @return
      */
+    @ExceptionHandler(value = RuntimeException.class)
+    @ResponseBody
+    public ResultBody exceptionHandler(HttpServletRequest req, RuntimeException e) {
+        logger.error("未知异常!原因是:", e);
+        return ResultBody.error("103", e.getMessage());
+    }
+
+    /**
+     * 处理其他异常
+     *
+     * @param req
+     * @param e
+     * @return
+     */
     @ExceptionHandler(value = Exception.class)
     @ResponseBody
     public ResultBody exceptionHandler(HttpServletRequest req, Exception e) {
diff --git a/src/main/java/com/yunniu/farming/util/FileUtil.java b/src/main/java/com/yunniu/farming/util/FileUtil.java
index 23eab7a..cf0f70d 100644
--- a/src/main/java/com/yunniu/farming/util/FileUtil.java
+++ b/src/main/java/com/yunniu/farming/util/FileUtil.java
@@ -10,9 +10,9 @@ public class FileUtil {
 
     public static final String Base = "D:/service";
 
-    public static final String BasePath = "C://data//upload";
+//    public static final String BasePath = "C://data//upload";
 
-//    public static final String BasePath = "/usr/upload";
+    public static final String BasePath = "/usr/upload";
     //public static final String BasePath = "/upload";
 
     public static final String Path = "/upload";
diff --git a/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java b/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java
index ee69d65..419a0f5 100644
--- a/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java
+++ b/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java
@@ -1,11 +1,13 @@
 package com.yunniu.farming.webadmin.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yunniu.farming.util.StringHelper;
-import com.yunniu.farming.webadmin.dao.*;
+import com.yunniu.farming.webadmin.dao.GroupBuyDao;
+import com.yunniu.farming.webadmin.dao.GroupOrderDao;
+import com.yunniu.farming.webadmin.dao.OrderMainDao;
+import com.yunniu.farming.webadmin.dao.OrderSubDao;
 import com.yunniu.farming.webadmin.model.GroupBuy;
 import com.yunniu.farming.webadmin.model.GroupOrder;
 import com.yunniu.farming.webadmin.model.OrderMain;
@@ -46,10 +48,10 @@ public class GroupOrderServiceImpl implements GroupOrderService {
     @Override
     public GroupOrder addGroupOrder(OrderMain item) {
         if (item.getAreaId() == null){
-            throw new ServiceException("缺少小区id参数");
+            throw new RuntimeException("缺少小区id参数");
         }
         if (item.getGroupBuyId() == null) {
-            throw new ServiceException("缺少团购id参数");
+            throw new RuntimeException("缺少团购id参数");
         }
         // 查询此团购活动在此小区是否有待成团的订单
         GroupOrder groupOrder = orderDao.selectOne(Wrappers.<GroupOrder>lambdaQuery()
@@ -60,12 +62,15 @@ public class GroupOrderServiceImpl implements GroupOrderService {
         // 查询团购活动是否存在
         GroupBuy groupBuy = groupBuyDao.selectById(item.getGroupBuyId());
         if (ObjectUtils.isEmpty(groupBuy)) {
-            throw new ServiceException("团购活动不存在");
+            throw new RuntimeException("团购活动不存在");
+        }
+        if (groupBuy.getEndTime().before(new Date())) {
+            throw new RuntimeException("该团购已失效");
         }
         if (ObjectUtils.isEmpty(groupOrder)) {
             List<Long> list = JSON.parseArray(groupBuy.getAreaIds(), Long.class);
             if (!list.contains(item.getAreaId())) {
-                throw new ServiceException("小区不存在");
+                throw new RuntimeException("小区不存在");
             }
             GroupOrder order = new GroupOrder();
             order.setOrderCode(StringHelper.getOrderno());
diff --git a/src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java b/src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java
index 18c78ad..a09a04c 100644
--- a/src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java
+++ b/src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java
@@ -4,12 +4,10 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.yunniu.farming.util.*;
 import com.yunniu.farming.webadmin.dao.CustomerDao;
+import com.yunniu.farming.webadmin.dao.GroupBuyDao;
 import com.yunniu.farming.webadmin.dao.IntegralrecDao;
 import com.yunniu.farming.webadmin.dao.OrderMainDao;
-import com.yunniu.farming.webadmin.model.Customer;
-import com.yunniu.farming.webadmin.model.Integralrec;
-import com.yunniu.farming.webadmin.model.OrderMain;
-import com.yunniu.farming.webadmin.model.Result;
+import com.yunniu.farming.webadmin.model.*;
 import com.yunniu.farming.webadmin.service.WxService;
 import com.yunniu.farming.wx.WxConfigUtil;
 import com.yunniu.farming.wx.WxUtil;
@@ -48,6 +46,9 @@ public class WxServiceImpl implements WxService {
     @Autowired
     private GroupOrderServiceImpl groupOrderService;
 
+    @Autowired
+    private GroupBuyDao groupBuyDao;
+
     private String[] imageUrl = {"https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/41e98a7cc2834450b41927219197d713.jpeg"
             , "https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/65daa7ab2a9c46c99a580874c73465e3.jpeg"
             , "https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/056bb47d0b274ab7b430ddd522b18ee3.jpeg"
@@ -466,15 +467,23 @@ public class WxServiceImpl implements WxService {
             return new Result(102);
         }
 
+        if (order.getGroupOrderId() != null) {
+            GroupOrder groupOrder = groupOrderService.findById(order.getGroupOrderId());
+            GroupBuy groupBuy = groupBuyDao.selectById(groupOrder.getGroupBuyId());
+            if (groupBuy.getEndTime().before(new Date())) {
+                throw new RuntimeException("该团购已失效");
+            }
+        }
+
         //判断用户积分是否足够
-        if(order.getDactscore() != null){
+        if (order.getDactscore() != null) {
 
             // 查询该用户的积分
             Integralrec integralrec = new Integralrec();
             integralrec.setCustomerid(order.getCustomerid());
             Double inte = this.integralrecDao.sumIntegral(integralrec);
 
-            if(inte == null || inte < 0) return Result.error("积分不足");
+            if (inte == null || inte < 0) return Result.error("积分不足");
 
             // 用户收入积分减去支付积分要大于订单积分价格
             // 用户余额要大于支付额
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5b6fa30..4f4cb55 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,12 +1,12 @@
 #spring.datasource.url=jdbc:mysql://152.136.113.101:3306/farming?autoReconnect=true&useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
 #spring.datasource.username=root
 #spring.datasource.password=Root_123456
-#spring.datasource.url=jdbc:mysql://localhost:3306/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
-#spring.datasource.username=farming
-#spring.datasource.password=PKWB6psxa7FBApZB
-spring.datasource.url=jdbc:mysql://db1.prd.jianghuxx.com:3317/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
-spring.datasource.username=root
-spring.datasource.password=4f9fa23639242790
+spring.datasource.url=jdbc:mysql://localhost:3306/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+spring.datasource.username=farming
+spring.datasource.password=PKWB6psxa7FBApZB
+#spring.datasource.url=jdbc:mysql://db1.prd.jianghuxx.com:3317/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+#spring.datasource.username=root
+#spring.datasource.password=4f9fa23639242790
 #7LwimZ27FqEnzIPg
 ##47.101.199.10
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
--
libgit2 0.26.0