From ac0bc5b39477de418b3c43eb40928310effa6114 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 22 Dec 2021 14:14:47 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video

---
 src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 108 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..d254365 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,32 @@
 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.AppVersion;
 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.AppVersionMapper;
 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.service.IApiVideoMemberService;
 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 javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -27,6 +37,8 @@
 public class AdminVideoMemberServiceImpl extends ServiceImpl<VideoMemberMapper, VideoMemberEntity> implements IAdminVideoMemberService {
 
     private final VideoVipInfoMapper videoVipInfoMapper;
+    private final AppVersionMapper appVersionMapper;
+    private final IApiVideoMemberService apiVideoMemberService;
 
     @Override
     public IPage<VideoMemberEntity> getVideoMembers(VideoMemberEntity videoMember, QueryRequest request) {
@@ -36,6 +48,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public FebsResponse resetPwd(Long id) {
         VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
         if (videoMemberEntity == null) {
@@ -49,6 +62,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public FebsResponse closeAccount(Long id) {
         VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
         if(ObjectUtil.isEmpty(videoMemberEntity)) {
@@ -60,6 +74,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public FebsResponse openAccount(Long id) {
         VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
         if(ObjectUtil.isEmpty(videoMemberEntity)) {
@@ -74,9 +89,100 @@
     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);
+
+        VideoVipInfoEntity videoVipInfoEntities = videoVipInfoMapper.selectVideoVipInfoByMemberIdAndState(adminSetVipDto.getId(),1);
+        if(ObjectUtil.isNotEmpty(videoVipInfoEntities)){
+            return new FebsResponse().fail().message("用户的会员还未失效");
+        }
+
+        apiVideoMemberService.extendVipTime(adminSetVipDto.getVipType(), videoMemberEntity.getId());
+
+        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);
+        VideoVipInfoEntity videoVipInfoEntities = videoVipInfoMapper.selectVideoVipInfoByMemberIdAndState(videoMemberEntity.getId(),1);
+        if(ObjectUtil.isNotEmpty(videoVipInfoEntities)){
+                videoVipInfoMapper.deleteById(videoVipInfoEntities.getId());
+        }
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public IPage<AppVersion> getAppVersionList(AppVersion appVersion, QueryRequest request) {
+        Page<AppVersion> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AppVersion> appVersions = this.baseMapper.getAppVersionListInPage(page, appVersion);
+        return appVersions;
+    }
+
+    @Override
+    public FebsResponse delCategary(Long id) {
+        AppVersion appVersion = appVersionMapper.selectById(id);
+        if(ObjectUtil.isEmpty(appVersion)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+        }
+        appVersionMapper.deleteById(id);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse addAppVersion(AppVersion appVersion) {
+        appVersion.setCreatetime(new Date());
+        appVersionMapper.insert(appVersion);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse updateAppVersion(AppVersion appVersion) {
+        AppVersion appVersionBefore = appVersionMapper.selectById(appVersion.getId());
+        if(ObjectUtil.isEmpty(appVersionBefore)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+        }
+        appVersion.setCreatetime(new Date());
+        appVersionMapper.updateById(appVersion);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public AppVersion getAppVersionInfoById(long id) {
+        return appVersionMapper.selectById(id);
+    }
+
 
 }

--
Gitblit v1.9.1