fix
Helius
2021-12-20 865721523230a003a5aeccaf8eab031a65601932
fix
6 files modified
57 ■■■■■ changed files
src/main/java/cc/mrbird/febs/pay/model/AliPayPassbackModel.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/mapper/VideoVipInfoMapper.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/service/IApiVideoMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java 38 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/VideoVipInfoMapper.xml 3 ●●●●● patch | view | raw | blame | history
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>