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