From eb7f3343af839a7c71f16e8ada2b25d5e2201c08 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 19 四月 2021 19:27:52 +0800
Subject: [PATCH] bug修复

---
 src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java
index 189f166..6c4a0db 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java
@@ -302,7 +302,7 @@
             try {
                 goldCornManager.drawbackGoldCorn(record);
             } catch (Exception e) {
-                throw new GoldCornException(1, "褰辫璞嗛��娆炬垚鍔�");
+                throw new GoldCornException(1, "褰辫璞嗛��娆惧け璐�");
             }
         }
 
@@ -310,8 +310,20 @@
         record.setState(OrderRecord.STATE_CANCEL);
         record.setUpdateTime(new Date());
         record.setRemarks(reason);
-        vipOrderRecordDao.update(record);
+        session.update(record);
         orderLogger.info("鍙栨秷璁㈠崟鎴愬姛锛歩d-{}", id);
+    }
+
+    @Override
+    public List<OrderRecord> getCanCancelOrderList(int page, int pageSize) {
+
+        OrderRecordDao.DaoQuery daoQuery = new OrderRecordDao.DaoQuery();
+        daoQuery.state = OrderRecord.STATE_NOT_PAY;
+        //30鍒嗛挓鏈敮浠樺彇娑堣鍗�
+        daoQuery.maxCreateTime = new Date(System.currentTimeMillis() - 1000 * 60 * 30);
+        daoQuery.minCreateTime = new Date(daoQuery.maxCreateTime.getTime() - 1000 * 60 * 60L * 24);
+
+        return vipOrderRecordDao.list(daoQuery);
     }
 
 
@@ -323,6 +335,7 @@
             return record;
 
         switch (record.getPayWay()) {
+            case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN:
             case OrderRecord.PAY_WAY_ALIPAY: {
                 //鏀粯瀹�
                 AlipayTradeQueryResponse res = null;
@@ -342,6 +355,7 @@
             }
 
             break;
+            case OrderRecord.PAY_WAY_WX_GOLDCORN:
             case OrderRecord.PAY_WAY_WX: {
                 //寰俊
                 try {
@@ -406,16 +420,18 @@
             UserVIPInfo vip = new UserVIPInfo();
             vip.setUid(uid);
             vip.setCreateTime(new Date());
-            vip.setExpireDate(getExpireTime(payTime, null, type));
+
+            Date[] expireDate = getExpireTime(payTime, null, type);
+            vip.setExpireDate(expireDate[1]);
             session.save(vip);
-            return new Date[]{payTime, vip.getExpireDate()};
+            return expireDate;
         } else {
             //淇敼
             UserVIPInfo vipInfo = (UserVIPInfo) list.get(0);
-            Date expireDate = getExpireTime(payTime, vipInfo.getExpireDate(), type);
-            session.createQuery("update UserVIPInfo i set i.expireDate=? ,i.updateTime=? where i.uid=?").setParameter(0, expireDate).setParameter(1, new Date()).setParameter(2, uid).executeUpdate();
+            Date[] expireDate = getExpireTime(payTime, vipInfo.getExpireDate(), type);
+            session.createQuery("update UserVIPInfo i set i.expireDate=? ,i.updateTime=? where i.uid=?").setParameter(0, expireDate[1]).setParameter(1, new Date()).setParameter(2, uid).executeUpdate();
 
-            return new Date[]{vipInfo.getExpireDate() == null ? new Date() : vipInfo.getExpireDate(), expireDate};
+            return expireDate;
         }
     }
 
@@ -427,13 +443,18 @@
      * @param type
      * @return
      */
-    private Date getExpireTime(Date payTime, Date expireTime, VIPPriceType type) {
+    private Date[] getExpireTime(Date payTime, Date expireTime, VIPPriceType type) {
         Calendar calendar = Calendar.getInstance();
         if (expireTime != null) {
-            calendar.setTimeInMillis(expireTime.getTime());
+            //涔嬪墠缁湡鏃堕棿鏄惁澶т簬浠樻鏃堕棿
+            if (payTime.getTime() < expireTime.getTime())
+                calendar.setTimeInMillis(expireTime.getTime());
+            else
+                calendar.setTimeInMillis(payTime.getTime());
         } else {
             calendar.setTimeInMillis(payTime.getTime());
         }
+        long startTime = calendar.getTimeInMillis();
         if (type == VIPPriceType.day) {
             calendar.add(Calendar.DAY_OF_WEEK, 1);
         } else if (type == VIPPriceType.week) {
@@ -447,7 +468,7 @@
         } else if (type == VIPPriceType.year) {
             calendar.add(Calendar.YEAR, 1);
         }
-        return new Date(calendar.getTimeInMillis());
+        return new Date[]{new Date(startTime), new Date(calendar.getTimeInMillis())};
     }
 
 

--
Gitblit v1.8.0