From 8c6f0393f6f12928e3f549517e2b63c1e6798df1 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 16 Dec 2021 17:35:23 +0800 Subject: [PATCH] 20211216 --- src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java | 65 +++++++++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java index 0e03c5a..4a9770e 100644 --- a/src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java @@ -3,22 +3,28 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.video.dto.AdminSetVipDto; import cc.mrbird.febs.video.entity.VideoMemberEntity; import cc.mrbird.febs.video.entity.VideoVipInfoEntity; +import cc.mrbird.febs.video.enumeration.VipTypeEnum; import cc.mrbird.febs.video.mapper.VideoMemberMapper; import cc.mrbird.febs.video.mapper.VideoVipInfoMapper; import cc.mrbird.febs.video.service.IAdminVideoMemberService; import cc.mrbird.febs.video.vo.AdminVideoMemberVo; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.kotlin.KtQueryWrapper; 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 org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; @Slf4j @@ -36,6 +42,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public FebsResponse resetPwd(Long id) { VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); if (videoMemberEntity == null) { @@ -49,6 +56,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public FebsResponse closeAccount(Long id) { VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(videoMemberEntity)) { @@ -60,6 +68,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public FebsResponse openAccount(Long id) { VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(videoMemberEntity)) { @@ -74,9 +83,61 @@ public AdminVideoMemberVo getAdminVideoMemberVoById(long id) { VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); AdminVideoMemberVo adminVideoMemberVo = new AdminVideoMemberVo(); - adminVideoMemberVo.setMemberId(videoMemberEntity.getId()); + adminVideoMemberVo.setId(videoMemberEntity.getId()); return adminVideoMemberVo; } + @Override + @Transactional(rollbackFor = Exception.class) + public FebsResponse setVip(AdminSetVipDto adminSetVipDto) { + VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(adminSetVipDto.getId()); + videoMemberEntity.setIsVip(VideoMemberEntity.ISVIP_STATUS_YES); + this.baseMapper.updateById(videoMemberEntity); + + List<VideoVipInfoEntity> videoVipInfoEntities = videoVipInfoMapper.selectVideoVipInfoByMemberIdAndState(adminSetVipDto.getId(),1); + if(CollUtil.isNotEmpty(videoVipInfoEntities)){ + return new FebsResponse().fail().message("用户的会员还未失效"); + } + + VideoVipInfoEntity videoVipInfoEntity = new VideoVipInfoEntity(); + videoVipInfoEntity.setMemberId(adminSetVipDto.getId()); + videoVipInfoEntity.setVipType(adminSetVipDto.getVipType()); + videoVipInfoEntity.setBuyTime(new Date()); + videoVipInfoEntity.setState(1); + if(VipTypeEnum.MONTH.name().equals(adminSetVipDto.getVipType())){ + videoVipInfoEntity.setExpireTime(DateUtil.offset(new Date(), DateField.MONTH,1)); + } + if(VipTypeEnum.PERIOD.name().equals(adminSetVipDto.getVipType())){ + videoVipInfoEntity.setExpireTime(DateUtil.offset(new Date(), DateField.MONTH,3)); + } + if(VipTypeEnum.YEAR.name().equals(adminSetVipDto.getVipType())){ + videoVipInfoEntity.setExpireTime(DateUtil.offset(new Date(), DateField.MONTH,12)); + } + videoVipInfoMapper.insert(videoVipInfoEntity); + return new FebsResponse().success(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public FebsResponse cancelVip(Long id) { + VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(videoMemberEntity)) { + return new FebsResponse().fail().message("用户不存在"); + } + if(VideoMemberEntity.ISVIP_STATUS_NO.equals(videoMemberEntity.getIsVip())){ + return new FebsResponse().fail().message("当前用户还不是会员,无法取消"); + } + videoMemberEntity.setIsVip(VideoMemberEntity.ISVIP_STATUS_NO); + this.baseMapper.updateById(videoMemberEntity); + List<VideoVipInfoEntity> videoVipInfoEntities = videoVipInfoMapper.selectVideoVipInfoByMemberIdAndState(videoMemberEntity.getId(),1); + if(CollUtil.isNotEmpty(videoVipInfoEntities)){ + for(VideoVipInfoEntity videoVipInfoEntity : videoVipInfoEntities){ + videoVipInfoEntity.setState(2); + videoVipInfoMapper.updateById(videoVipInfoEntity); + } + } + return new FebsResponse().success(); + } + } -- Gitblit v1.9.1