package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import cc.mrbird.febs.mall.YesOrNoEnum;
|
import cc.mrbird.febs.mall.dto.AdminSystemPayDto;
|
import cc.mrbird.febs.mall.entity.ChatUser;
|
import cc.mrbird.febs.mall.entity.MemberCoinWithdraw;
|
import cc.mrbird.febs.mall.mapper.ChatUserMapper;
|
import cc.mrbird.febs.mall.service.IAdminChatService;
|
import cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo;
|
import cc.mrbird.febs.mall.vo.AdminChatCahrgeVo;
|
import cc.mrbird.febs.mall.vo.AdminChatUserVo;
|
import cc.mrbird.febs.mall.vo.AdminChatWithDrawVo;
|
import cn.hutool.core.util.ObjectUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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 java.math.BigDecimal;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
@Transactional
|
public class AdminChatServiceImpl extends ServiceImpl<ChatUserMapper, ChatUser> implements IAdminChatService {
|
|
@Override
|
public IPage<AdminChatUserVo> getUserList(ChatUser chatUser, QueryRequest request) {
|
Page<AdminChatUserVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminChatUserVo> chatUserIPage = this.baseMapper.selectUserListInPage(page, chatUser);
|
return chatUserIPage;
|
}
|
|
@Override
|
public FebsResponse openAccount(String userId) {
|
ChatUser chatUser = this.baseMapper.selectByUserId(userId);
|
if(ObjectUtil.isEmpty(chatUser)) {
|
return new FebsResponse().fail().message("会员信息不存在");
|
}
|
this.baseMapper.updateStatusByUserId(userId,YesOrNoEnum.YES.getCode());
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse closeAccount(String userId) {
|
ChatUser chatUser = this.baseMapper.selectByUserId(userId);
|
if(ObjectUtil.isEmpty(chatUser)) {
|
return new FebsResponse().fail().message("会员信息不存在");
|
}
|
this.baseMapper.updateStatusByUserId(userId,YesOrNoEnum.NO.getCode());
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse updateSystemPay(AdminSystemPayDto adminSystemPayDto) {
|
|
ChatUser chatUser = this.baseMapper.selectByUserId(adminSystemPayDto.getId());
|
if(ObjectUtil.isEmpty(chatUser)) {
|
return new FebsResponse().fail().message("会员信息不存在");
|
}
|
BigDecimal addBalance = adminSystemPayDto.getAddBalance();
|
BigDecimal balance = adminSystemPayDto.getBalance();
|
if(BigDecimal.ZERO.compareTo(addBalance) > 0){
|
//减少余额,则判断增加数量的绝对值是否大于余额,避免出现负数
|
if(addBalance.negate().compareTo(balance) > 0){
|
return new FebsResponse().fail().message("余额不能为负数,请调整拨付数量");
|
}
|
}
|
//增加用户的余额
|
this.baseMapper.updateBalanceByUserId(adminSystemPayDto.getId(),addBalance);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public IPage<AdminChatAmountFlowVo> getFlowList(ChatUser chatUser, QueryRequest request) {
|
Page<AdminChatAmountFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminChatAmountFlowVo> chatUserIPage = this.baseMapper.selectAmountFlowListInPage(page, chatUser);
|
return chatUserIPage;
|
}
|
|
@Override
|
public IPage<AdminChatCahrgeVo> getChargeList(ChatUser chatUser, QueryRequest request) {
|
Page<AdminChatCahrgeVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminChatCahrgeVo> adminChatCahrgeVos = this.baseMapper.selectChargeListInPage(page, chatUser);
|
return adminChatCahrgeVos;
|
}
|
|
@Override
|
public IPage<AdminChatWithDrawVo> getWithdrawList(ChatUser chatUser, QueryRequest request) {
|
Page<AdminChatWithDrawVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminChatWithDrawVo> adminChatWithDrawVos = this.baseMapper.selectWithdrawListInPage(page, chatUser);
|
return adminChatWithDrawVos;
|
}
|
|
@Override
|
public FebsResponse agreeEvent(String id) {
|
MemberCoinWithdraw memberCoinWithdraw = this.baseMapper.selectWithdrawInfoById(id);
|
if(ObjectUtil.isEmpty(memberCoinWithdraw)) {
|
return new FebsResponse().fail().message("提现记录不存在");
|
}
|
Integer state = memberCoinWithdraw.getState();
|
if(3 != state){
|
return new FebsResponse().fail().message("提现记录不是进行中的状态");
|
}
|
|
this.baseMapper.updateWithdrawStateById(1,id);
|
|
this.baseMapper.updateAmountFlowListByWithdrawId(id,memberCoinWithdraw.getUserId(),1);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse disagreeEvent(String id) {
|
MemberCoinWithdraw memberCoinWithdraw = this.baseMapper.selectWithdrawInfoById(id);
|
if(ObjectUtil.isEmpty(memberCoinWithdraw)) {
|
return new FebsResponse().fail().message("提现记录不存在");
|
}
|
Integer state = memberCoinWithdraw.getState();
|
if(3 != state){
|
return new FebsResponse().fail().message("提现记录不是进行中的状态");
|
}
|
this.baseMapper.updateWithdrawStateById(2,id);
|
|
//增加用户的余额
|
this.baseMapper.updateBalanceByUserId(memberCoinWithdraw.getUserId(),memberCoinWithdraw.getAmount());
|
|
this.baseMapper.updateAmountFlowListByWithdrawId(id,memberCoinWithdraw.getUserId(),2);
|
return new FebsResponse().success();
|
}
|
|
}
|