From 40d0d99fb89665e6e7702ea62e45fabe2d01e51a Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 29 五月 2021 14:29:52 +0800
Subject: [PATCH] Merge branch 'master' of ssh://193.112.35.168:29418/tejia

---
 service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java |  144 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 128 insertions(+), 16 deletions(-)

diff --git a/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java b/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
index eadc290..713b42f 100644
--- a/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
+++ b/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -1,18 +1,19 @@
 package com.ks.vip.service.remote;
 
 
+import com.ks.vip.exception.VipCenterException;
 import com.ks.vip.mapper.VipCenterMapper;
+import com.ks.vip.mapper.VipCenterRecordMapper;
 import com.ks.vip.mapper.VipComboMapper;
-import com.ks.vip.pojo.DO.VipCenter;
-import com.ks.vip.pojo.DO.VipCenterRecord;
-import com.ks.vip.pojo.DO.VipCombo;
+import com.ks.vip.pojo.DO.*;
+import com.ks.vip.pojo.Enums.VIPEnum;
 import com.ks.vip.query.VipCenterQuery;
 import com.ks.vip.query.VipComboQuery;
-import com.ks.vip.service.VipCenterRecordService;
-import com.ks.vip.service.VipCenterService;
-import com.ks.vip.service.VipComboService;
+import com.ks.vip.service.*;
 import org.apache.dubbo.config.annotation.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.StringUtil;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -27,15 +28,23 @@
     @Resource
     private VipCenterRecordService vipCenterRecordService;
 
+    @Resource
+    private VipGradeService vipGradeService;
+
+    @Resource
+    private VipGradePotenceService vipGradePotenceService;
+
+    @Resource
+    private VipCenterRecordMapper vipCenterRecordMapper;
 
 
     @Override
-    public void insertSelective(VipCenter t){
+    public void insertSelective(VipCenter t) {
         vipCenterMapper.insertSelective(t);
     }
 
     @Override
-    public void updateByPrimaryKeySelective(VipCenter t){
+    public void updateByPrimaryKeySelective(VipCenter t) {
         vipCenterMapper.updateByPrimaryKeySelective(t);
     }
 
@@ -71,18 +80,20 @@
     }
 
     @Override
-    public void saveVipCenter(String uid, Long gradeId, Integer validDays, Long orderId) {
+    @Transactional(rollbackFor = Exception.class)
+    public void saveVipCenter(String uid, Long gradeId, Integer validHours, Long orderId) {
         VipCenterRecord record = new VipCenterRecord();
 
         VipCenter vipCenter = vipCenterMapper.selectForUpdate(uid);
-        if (vipCenter == null)  {
+        if (vipCenter == null) {
+            vipCenter=new VipCenter();
             Date startTime = new Date();
-            Date endTime = DateUtil.plusDayDate(validDays, startTime);
+            Date endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours);
 
             vipCenter.setUid(uid);
             vipCenter.setGradeId(gradeId);
             vipCenter.setStartTime(startTime);
-            vipCenter.setEndTime(DateUtil.plusDayDate(validDays, new Date()));
+            vipCenter.setEndTime(endTime);
             vipCenter.setCreateTime(new Date());
             vipCenterMapper.insertSelective(vipCenter);
 
@@ -96,10 +107,12 @@
             long nowTime = java.lang.System.currentTimeMillis();
             if (gradeId.longValue() == oldGradeId.longValue() && vipCenter.getEndTime().getTime() > nowTime) {
                 // 涓婃浼氬憳杩樻湭宸茬粨鏉�
-                endTime = DateUtil.plusDayDate(validDays, vipCenter.getEndTime());
+                record.setStartTime(endTime);
+                endTime = new Date(vipCenter.getEndTime().getTime() + 1000 * 60 * 60L * validHours);
             } else {
                 startTime = new Date();
-                endTime = DateUtil.plusDayDate(validDays, startTime);
+                record.setStartTime(startTime);
+                endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours);
             }
             vipCenter.setStartTime(startTime);
             vipCenter.setEndTime(endTime);
@@ -107,7 +120,6 @@
             vipCenter.setUpdateTime(new Date());
             vipCenterMapper.updateByPrimaryKeySelective(vipCenter);
 
-            record.setStartTime(new Date());
             record.setEndTime(endTime);
         }
 
@@ -115,6 +127,106 @@
         record.setUid(uid);
         record.setGradeId(gradeId);
         record.setCreateTime(new Date());
+        record.setState(1);
         vipCenterRecordService.insertSelective(record);
     }
-}
+
+
+    @Override
+    public VipGradePotence getVipPotence(String uid) {
+        VipGradePotence potence = null;
+        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
+        if (vipCenter != null && vipCenter.getGradeId() != null) {
+            long nowTime = java.lang.System.currentTimeMillis();
+            if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) {
+                potence = vipGradePotenceService.getPotenceByGradeId(vipCenter.getGradeId());
+            }
+        }
+        if (potence == null) {
+            potence = vipGradePotenceService.getDefaultGradePotence();
+        }
+        return potence;
+    }
+
+
+    @Override
+    public VipGrade getVipGrade(String uid) {
+        VipGrade vipGrade = null;
+        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
+        if (vipCenter != null && vipCenter.getGradeId() != null) {
+            long nowTime = java.lang.System.currentTimeMillis();
+            if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) {
+                vipGrade = vipGradeService.selectByPrimaryKey(vipCenter.getGradeId());
+            }
+        }
+        if (vipGrade == null) {
+            vipGradeService.getDefaultGrade();
+        }
+        return vipGrade;
+    }
+
+    @Override
+    public VIPEnum getVIPEnumByUid(String uid) {
+        VipGrade vipGrade = getVipGrade(uid);
+        if (vipGrade != null) {
+            return vipGrade.getIdentity();
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public VIPEnum getVIPEnumByUid(String uid, Date date) {
+        VipCenterRecordMapper.DaoQuery daoQuery = new VipCenterRecordMapper.DaoQuery();
+        daoQuery.uid = uid;
+        daoQuery.date = date;
+        daoQuery.start = 0;
+        daoQuery.count = 1;
+        List<VipCenterRecord> list = vipCenterRecordMapper.list(daoQuery);
+        if (list == null || list.size() == 0) {
+            return vipGradeService.getDefaultGrade().getIdentity();
+        }
+        return vipGradeService.selectByPrimaryKey(list.get(0).getGradeId()).getIdentity();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void  saveManageWeb(VipCenter t) throws VipCenterException {
+        if (t== null || StringUtil.isNullOrEmpty(t.getUid())) {
+            throw new VipCenterException(1, "鐢ㄦ埛ID涓嶅瓨鍦�");
+        }
+
+        if (t.getGradeId() == null) {
+            throw new VipCenterException(1, "璇烽�夋嫨鐢ㄦ埛绛夌骇");
+        }
+
+        if (t.getStartTime() == null) {
+            throw new VipCenterException(1, "璇烽�夋嫨寮�濮嬫椂闂�");
+        }
+
+        if (t.getEndTime() == null) {
+            throw new VipCenterException(1, "璇烽�夋嫨缁撴潫鏃堕棿");
+        }
+
+        VipCenter vipCenter = vipCenterMapper.selectForUpdate(t.getUid());
+        if (vipCenter == null) {
+            t.setCreateTime(new Date());
+            vipCenterMapper.insertSelective(t);
+        } else {
+            t.setUpdateTime(new Date());
+            vipCenterMapper.updateByPrimaryKeySelective(t);
+        }
+
+        // 淇濆瓨璁板綍
+        VipCenterRecord record = new VipCenterRecord();
+        record.setStartTime(t.getStartTime());
+        record.setEndTime(t.getEndTime());
+        record.setUid(t.getUid());
+        record.setGradeId(t.getGradeId());
+        record.setCreateTime(new Date());
+        vipCenterRecordService.insertSelective(record);
+    }
+
+
+
+}
\ No newline at end of file

--
Gitblit v1.8.0