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.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 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 implements IAdminVideoMemberService { private final VideoVipInfoMapper videoVipInfoMapper; private final AppVersionMapper appVersionMapper; private final IApiVideoMemberService apiVideoMemberService; @Override public IPage getVideoMembers(VideoMemberEntity videoMember, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage 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 getAppVersionList(AppVersion appVersion, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage 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); } }