From f609ca35ee2946acd0ff04b7ac1aa61f75a2e4a1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 09 十二月 2021 16:09:54 +0800
Subject: [PATCH] 自动化代码中的service优化

---
 src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java b/src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java
index 9004d65..639d847 100644
--- a/src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java
+++ b/src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java
@@ -6,6 +6,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
@@ -42,6 +43,37 @@
         }
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addExpireTime(Long uid, long time) {
+        UserVIPInfo userVIPInfo = userVIPInfoDao.selectByPrimaryKeyForUpdate(uid);
+        if (userVIPInfo == null) {
+            //鏂板
+            UserVIPInfo vip = new UserVIPInfo();
+            vip.setUid(uid);
+            vip.setCreateTime(new Date());
+            vip.setExpireDate(new Date(System.currentTimeMillis() + time));
+            userVIPInfoDao.insertSelective(vip);
+        } else {
+            //淇敼
+            UserVIPInfo update = new UserVIPInfo();
+            update.setUid(uid);
+            if (userVIPInfo.getExpireDate() != null) {
+
+                //棰勮鍒版湡鏃堕棿姣旂幇鍦ㄧ殑鏃堕棿澶�
+                if (userVIPInfo.getExpireDate().getTime() > System.currentTimeMillis()) {
+                    update.setExpireDate(new Date(userVIPInfo.getExpireDate().getTime() + time));
+                } else {
+                    update.setExpireDate(new Date(System.currentTimeMillis() + time));
+                }
+            } else {
+                update.setExpireDate(new Date(System.currentTimeMillis() + time));
+            }
+            update.setUpdateTime(new Date());
+            userVIPInfoDao.updateByPrimaryKeySelective(update);
+        }
+    }
+
     @Override
     public List<UserVIPInfo> listVIPUser(Date minVIPExpireDate, Date maxVIPExpireDate, int page, int pageSize) {
         UserVIPInfoDao.DaoQuery daoQuery = new UserVIPInfoDao.DaoQuery();

--
Gitblit v1.8.0