From d48b46152f08410fcb4940a29067d82435b8cbe9 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 20 Dec 2021 16:26:10 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/video/service/impl/ApiVideoMemberServiceImpl.java | 85 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 74 insertions(+), 11 deletions(-) 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 8379729..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,28 +2,27 @@ 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.ApiMyVideoCollectionDto; -import cc.mrbird.febs.video.dto.ApiMyVideoHistoryDto; -import cc.mrbird.febs.video.dto.LoginDto; -import cc.mrbird.febs.video.dto.RegisterDto; +import cc.mrbird.febs.video.dto.*; +import cc.mrbird.febs.video.entity.AppVersion; import cc.mrbird.febs.video.entity.DataDictionaryCustom; import cc.mrbird.febs.video.entity.VideoMemberEntity; -import cc.mrbird.febs.video.mapper.DataDictionaryCustomMapper; -import cc.mrbird.febs.video.mapper.VideoCollectionMapper; -import cc.mrbird.febs.video.mapper.VideoMemberMapper; +import cc.mrbird.febs.video.entity.VideoVipInfoEntity; +import cc.mrbird.febs.video.mapper.*; import cc.mrbird.febs.video.service.IApiVideoMemberService; import cc.mrbird.febs.video.vo.ApiMyVideoCollectionVo; 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; +import cn.hutool.core.collection.CollUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; @@ -35,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; @@ -47,6 +47,8 @@ private final RedisUtils redisUtils; private final VideoCollectionMapper videoCollectionMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final AppVersionMapper appVersionMapper; + private final VideoVipInfoMapper videoVipInfoMapper; @Override public FebsResponse register(RegisterDto registerDto) { @@ -55,6 +57,13 @@ throw new FebsException("该账号已被占用"); } videoMember = new VideoMemberEntity(); + if(StrUtil.isNotEmpty(registerDto.getInviteId())){ + VideoMemberEntity videoMemberEntity = this.baseMapper.selectInfoByInviteId(registerDto.getInviteId()); + if (ObjectUtil.isEmpty(videoMemberEntity)) { + throw new FebsException("邀请码不存在"); + } + videoMember.setRefererId(registerDto.getInviteId()); + } videoMember.setPassword(SecureUtil.md5(registerDto.getPassword())); videoMember.setAccount(registerDto.getAccount()); videoMember.setName(registerDto.getAccount()); @@ -139,6 +148,12 @@ Long id = LoginUserUtil.getLoginUser().getId(); VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); ApiVideoMemberVo apiVideoMemberVo = VideoMemberConversion.INSTANCE.entityToVo(videoMemberEntity); + List<VideoVipInfoEntity> videoVipInfoEntities = videoVipInfoMapper.selectVideoVipInfoByMemberIdAndState(id, 1); + if(CollUtil.isNotEmpty(videoVipInfoEntities)){ + VideoVipInfoEntity videoVipInfoEntity = videoVipInfoEntities.get(0); + apiVideoMemberVo.setExpireTime(videoVipInfoEntity.getExpireTime()); + apiVideoMemberVo.setVipType(videoVipInfoEntity.getVipType()); + } return new FebsResponse().success().data(apiVideoMemberVo); } @@ -166,10 +181,58 @@ return new FebsResponse().success().data(dataDictionaryCustoms); } + @Override + public List<AppVersion> findAppVersion() { + return appVersionMapper.selectList(null); + } + + @Override + public FebsResponse updateName(ApiUpdateNameDto apiUpdateNameDto) { + Long id = LoginUserUtil.getLoginUser().getId(); + VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); + if(StrUtil.isNotEmpty(apiUpdateNameDto.getName())){ + videoMemberEntity.setName(apiUpdateNameDto.getName()); + } + + if(StrUtil.isNotEmpty(apiUpdateNameDto.getAvatar())){ + videoMemberEntity.setAvatar(apiUpdateNameDto.getAvatar()); + } + this.baseMapper.updateById(videoMemberEntity); + return new FebsResponse().success().message("成功"); + } + public String generateAsaToken(String token) { RSA rsa = new RSA(null, AppContants.PUBLIC_KEY); 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); + } } -- Gitblit v1.9.1