From 865721523230a003a5aeccaf8eab031a65601932 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 20 Dec 2021 11:40:38 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java                |    3 +++
 src/main/resources/mapper/modules/VideoVipInfoMapper.xml                       |    3 +++
 src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java              |   10 +++++++++-
 src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java         |    2 ++
 src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java              |    1 +
 src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++----
 6 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java b/src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java
index b15ef73..22749a2 100644
--- a/src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java
+++ b/src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java
@@ -12,4 +12,7 @@
     private Long orderId;
 
     private Long memberId;
+
+    private String type;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
index 59094dd..d80fe80 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
@@ -16,10 +16,14 @@
 import cc.mrbird.febs.video.dto.VipBuyDto;
 import cc.mrbird.febs.video.entity.DataDictionaryCustom;
 import cc.mrbird.febs.video.entity.VideoMemberEntity;
+import cc.mrbird.febs.video.entity.VideoVipInfoEntity;
 import cc.mrbird.febs.video.entity.VideoVipOrderInfoEntity;
 import cc.mrbird.febs.video.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.video.mapper.VideoMemberMapper;
+import cc.mrbird.febs.video.mapper.VideoVipInfoMapper;
 import cc.mrbird.febs.video.mapper.VideoVipOrderInfoMapper;
+import cc.mrbird.febs.video.service.IApiVideoMemberService;
+import cc.mrbird.febs.video.service.impl.ApiVideoMemberServiceImpl;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.domain.AlipayTradeAppPayModel;
@@ -56,6 +60,8 @@
     private MemberCoinAddressDao memberCoinAddressDao;
     @Resource
     private UsdtUpdateProducer usdtUpdateProducer;
+    @Resource
+    private IApiVideoMemberService apiVideoMemberService;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -94,6 +100,7 @@
         AliPayPassbackModel passbackModel = new AliPayPassbackModel();
         passbackModel.setOrderId(vipOrderInfo.getId());
         passbackModel.setMemberId(vipOrderInfo.getMemberId());
+        passbackModel.setType(vipBuyDto.getType());
         model.setPassbackParams(JSONObject.toJSONString(passbackModel));
 
         model.setProductCode("QUICK_MSECURITY_PAY");
@@ -119,7 +126,8 @@
             return;
         }
 
-        VideoMemberEntity member = videoMemberMapper.selectById(orderInfo.getMemberId());
+        // 延长会员时间
+        apiVideoMemberService.extendVipTime(passback.getType(), passback.getMemberId());
 
         orderInfo.setStatus(VideoVipOrderInfoEntity.PAY_STATUS_PAY);
         orderInfo.setPayTime(new Date());
diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java
index d092d2c..c7fbc5b 100644
--- a/src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java
@@ -10,4 +10,5 @@
 
     List<VideoVipInfoEntity> selectVideoVipInfoByMemberIdAndState(@Param("memberId") long memberId, @Param("state")Integer state);
 
+    VideoVipInfoEntity selectByMemberId(@Param("memberId") Long memberId);
 }
diff --git a/src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java b/src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java
index f3813ed..d2f73ea 100644
--- a/src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java
+++ b/src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java
@@ -27,4 +27,6 @@
     List<AppVersion> findAppVersion();
 
     FebsResponse updateName(ApiUpdateNameDto apiUpdateNameDto);
+
+    void extendVipTime(String type, Long memberId);
 }
diff --git a/src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java
index 27420d7..0568d27 100644
--- a/src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java
@@ -2,10 +2,7 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.exception.FebsException;
-import cc.mrbird.febs.common.utils.AppContants;
-import cc.mrbird.febs.common.utils.LoginUserUtil;
-import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.common.utils.ShareCodeUtil;
+import cc.mrbird.febs.common.utils.*;
 import cc.mrbird.febs.video.conversion.VideoMemberConversion;
 import cc.mrbird.febs.video.dto.*;
 import cc.mrbird.febs.video.entity.AppVersion;
@@ -18,6 +15,10 @@
 import cc.mrbird.febs.video.vo.ApiMyVideoHistoryVo;
 import cc.mrbird.febs.video.vo.ApiVideoMemberVo;
 import cc.mrbird.febs.video.vo.ApiVipCostVo;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.unit.DataUnit;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -33,6 +34,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -205,4 +207,32 @@
         return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
     }
 
+    @Override
+    public void extendVipTime(String type, Long memberId) {
+        int extendTime = 0;
+        switch (type) {
+            case "MONTH":
+                extendTime = 1;
+                break;
+            case "PERIOD":
+                extendTime = 3;
+                break;
+            case "YEAR":
+                extendTime = 12;
+                break;
+        }
+
+        VideoVipInfoEntity vipInfo = videoVipInfoMapper.selectByMemberId(memberId);
+        if (vipInfo == null) {
+            vipInfo = new VideoVipInfoEntity();
+            vipInfo.setBuyTime(new Date());
+            vipInfo.setState(1);
+            vipInfo.setMemberId(memberId);
+            videoVipInfoMapper.insert(vipInfo);
+        }
+
+        DateTime offset = DateUtil.offset(vipInfo.getBuyTime(), DateField.MONTH, extendTime);
+        vipInfo.setExpireTime(offset);
+        videoVipInfoMapper.updateById(vipInfo);
+    }
 }
diff --git a/src/main/resources/mapper/modules/VideoVipInfoMapper.xml b/src/main/resources/mapper/modules/VideoVipInfoMapper.xml
index d5ea4eb..f34b8a0 100644
--- a/src/main/resources/mapper/modules/VideoVipInfoMapper.xml
+++ b/src/main/resources/mapper/modules/VideoVipInfoMapper.xml
@@ -9,4 +9,7 @@
     </select>
 
 
+    <select id="selectByMemberId" resultType="cc.mrbird.febs.video.entity.VideoVipInfoEntity">
+        select * from video_vip_info where member_id=#{memberId}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1