From 6c920885a9bc407f2f05e204ae9769631c4c80e7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 22 Dec 2021 15:02:56 +0800
Subject: [PATCH] 20211216

---
 src/main/java/cc/mrbird/febs/video/service/impl/AdminVideoMemberServiceImpl.java |  181 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 179 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 837f833..895d83d 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
@@ -1,21 +1,198 @@
 package cc.mrbird.febs.video.service.impl;
 
+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.entity.VideoVipOrderInfoEntity;
+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.AdminVideoMemberEntityVo;
+import cc.mrbird.febs.video.vo.AdminVideoMemberVo;
+import cc.mrbird.febs.video.vo.AdminVideoVipOrderInfoVo;
+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.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
 @Service
 @RequiredArgsConstructor
 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) {
-        return null;
+    public IPage<AdminVideoMemberEntityVo> getVideoMembers(VideoMemberEntity videoMember, QueryRequest request) {
+        Page<VideoMemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AdminVideoMemberEntityVo> videoMembers = this.baseMapper.selectVideoMemberListInPage(page, videoMember);
+        return videoMembers;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public FebsResponse resetPwd(Long id) {
+        VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
+        if (videoMemberEntity == null) {
+            throw new FebsException("用户不存在");
+        }
+
+        String pwd = SecureUtil.md5("a123456");
+        videoMemberEntity.setPassword(pwd);
+        this.baseMapper.updateById(videoMemberEntity);
+        return new FebsResponse().success().message("重置成功,重置后的密码为:a123456");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public FebsResponse closeAccount(Long id) {
+        VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
+        if(ObjectUtil.isEmpty(videoMemberEntity)) {
+            return new FebsResponse().fail().message("用户不存在");
+        }
+        videoMemberEntity.setAccountStatus(VideoMemberEntity.ACCOUNT_STATUS_DISABLED);
+        this.baseMapper.updateById(videoMemberEntity);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public FebsResponse openAccount(Long id) {
+        VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
+        if(ObjectUtil.isEmpty(videoMemberEntity)) {
+            return new FebsResponse().fail().message("用户不存在");
+        }
+        videoMemberEntity.setAccountStatus(VideoMemberEntity.ACCOUNT_STATUS_ENABLE);
+        this.baseMapper.updateById(videoMemberEntity);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public AdminVideoMemberVo getAdminVideoMemberVoById(long id) {
+        VideoMemberEntity videoMemberEntity = this.baseMapper.selectById(id);
+        AdminVideoMemberVo adminVideoMemberVo = new AdminVideoMemberVo();
+        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);
+    }
+
+    @Override
+    public IPage<AdminVideoVipOrderInfoVo> getOrders(VideoVipOrderInfoEntity videoVipOrderInfoEntity, QueryRequest request) {
+        Page<VideoMemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AdminVideoVipOrderInfoVo> adminVideoVipOrderInfoVos = this.baseMapper.selectAdminVideoVipOrderInfoVoInPage(page, videoVipOrderInfoEntity);
+        return adminVideoVipOrderInfoVos;
+    }
+
+
 }

--
Gitblit v1.9.1