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