src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java
@@ -12,4 +12,7 @@ private Long orderId; private Long memberId; private String type; } 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()); 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); } 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); } 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); } } 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>