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 | 142 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 124 insertions(+), 18 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 e22c559..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,41 @@ 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.RedisUtils; -import cc.mrbird.febs.common.utils.ShareCodeUtil; -import cc.mrbird.febs.video.dto.LoginDto; -import cc.mrbird.febs.video.dto.RegisterDto; +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; +import cc.mrbird.febs.video.entity.DataDictionaryCustom; import cc.mrbird.febs.video.entity.VideoMemberEntity; -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; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @Slf4j @@ -32,6 +45,10 @@ public class ApiVideoMemberServiceImpl extends ServiceImpl<VideoMemberMapper, VideoMemberEntity> implements IApiVideoMemberService { 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) { @@ -39,28 +56,24 @@ if (videoMember != null) { throw new FebsException("该账号已被占用"); } - videoMember = new VideoMemberEntity(); - videoMember.setPassword(SecureUtil.md5(registerDto.getPassword())); - - // 判断账号类型 - if (AppContants.ACCOUNT_TYPE_MOBILE.equals(registerDto.getType())) { - videoMember.setPhone(registerDto.getAccount()); - } else { - videoMember.setEmail(registerDto.getAccount()); + 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()); videoMember.setAccountStatus(VideoMemberEntity.ACCOUNT_STATUS_ENABLE); videoMember.setAccountType(VideoMemberEntity.ACCOUNT_TYPE_NORMAL); videoMember.setIsVip(VideoMemberEntity.ISVIP_STATUS_NO); - this.baseMapper.insert(videoMember); String inviteId = ShareCodeUtil.toSerialCode(videoMember.getId()); videoMember.setInviteId(inviteId); - //推荐人和推荐人链 boolean flag = false; String parentId = videoMember.getRefererId(); @@ -123,10 +136,103 @@ return new FebsResponse().success().data(authInfo); } + @Override + public FebsResponse logout() { + Long id = LoginUserUtil.getLoginUser().getId(); + redisUtils.del(AppContants.APP_LOGIN_PREFIX + id); + return new FebsResponse().success().message("退出登录"); + } + + @Override + public FebsResponse findMemberInfo() { + 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); + } + + @Override + public FebsResponse myCollection(ApiMyVideoCollectionDto apiMyVideoCollectionDto) { + IPage<ApiMyVideoCollectionVo> page = new Page<>(apiMyVideoCollectionDto.getPageNum(), apiMyVideoCollectionDto.getPageSize()); + Long id = LoginUserUtil.getLoginUser().getId(); + apiMyVideoCollectionDto.setMemberId(id); + IPage<ApiMyVideoCollectionVo> pages = videoCollectionMapper.selectApiVideoCollectionInPage(page, apiMyVideoCollectionDto); + return new FebsResponse().success().data(pages); + } + + @Override + public FebsResponse myHistory(ApiMyVideoHistoryDto apiMyVideoHistoryDto) { + IPage<ApiMyVideoHistoryVo> page = new Page<>(apiMyVideoHistoryDto.getPageNum(), apiMyVideoHistoryDto.getPageSize()); + Long id = LoginUserUtil.getLoginUser().getId(); + apiMyVideoHistoryDto.setMemberId(id); + IPage<ApiMyVideoHistoryVo> pages = videoCollectionMapper.selectApiMyVideoHistoryInPage(page, apiMyVideoHistoryDto); + return new FebsResponse().success().data(pages); + } + + @Override + public FebsResponse vipCostInfo() { + List<ApiVipCostVo> dataDictionaryCustoms = dataDictionaryCustomMapper.selectApiVipCostByType("VIP_COST"); + 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