package cc.mrbird.febs.dapp.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.dapp.entity.DappAccountMoneyChangeEntity;
|
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
|
import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
|
import cc.mrbird.febs.dapp.entity.MemberCoinWithdrawEntity;
|
import cc.mrbird.febs.dapp.mapper.DappAccountMoneyChangeDao;
|
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
|
import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao;
|
import cc.mrbird.febs.dapp.mapper.MemberCoinWithdrawDao;
|
import cc.mrbird.febs.dapp.service.AdminOperationService;
|
import cc.mrbird.febs.dapp.vo.AdminMemberCoinWithdrawVo;
|
import cn.hutool.core.util.ObjectUtil;
|
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 org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
|
@Service
|
@RequiredArgsConstructor
|
public class AdminOperationServiceImpl extends ServiceImpl<DappMemberDao, DappMemberEntity> implements AdminOperationService {
|
|
private final MemberCoinWithdrawDao memberCoinWithdrawDao;
|
private final DappWalletCoinDao dappWalletCoinDao;
|
private final DappMemberDao dappMemberDao;
|
private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
|
|
@Override
|
public IPage<AdminMemberCoinWithdrawVo> findMemberWithdrawCoinAllOneInPage(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) {
|
Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMemberCoinWithdrawVo> adminMemberCoinWithdrawVoIPage = memberCoinWithdrawDao.findMemberWithdrawCoinInPage(page, memberCoinWithdrawEntity);
|
return adminMemberCoinWithdrawVoIPage;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public FebsResponse agreeWithdraw(Long id) {
|
MemberCoinWithdrawEntity memberCoinWithdrawEntity = memberCoinWithdrawDao.selectById(id);
|
if(ObjectUtil.isEmpty(memberCoinWithdrawEntity)){
|
throw new FebsException("刷新页面重试");
|
}
|
memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_YES);
|
memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity);
|
//转出账户,总额减少,冻结减少
|
BigDecimal amount = memberCoinWithdrawEntity.getAmount().setScale(4,BigDecimal.ROUND_DOWN);
|
Long memberIdOut = memberCoinWithdrawEntity.getMemberId();
|
DappWalletCoinEntity dappWalletCoinEntityOut = dappWalletCoinDao.selectByMemberId(memberIdOut);
|
dappWalletCoinDao.delTotalAndDelFrozenById(dappWalletCoinEntityOut.getId(),amount);
|
|
String isInside = memberCoinWithdrawEntity.getIsInside();
|
String content = "";
|
Integer type = 0;
|
if(MemberCoinWithdrawEntity.ISINSIDE_NO.equals(isInside)){
|
content = "提现";
|
type = 2;
|
}else{
|
content = "转账";
|
type = 4;
|
}
|
//转出账户生成一条账户资金变化记录
|
DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityOut = new DappAccountMoneyChangeEntity(memberIdOut,
|
dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN),
|
amount.negate(),
|
dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).subtract(amount),
|
content,
|
type);
|
dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityOut);
|
|
//转入账户,总额增加,余额增加
|
//转账
|
// if(MemberCoinWithdrawEntity.ISINSIDE_YES.equals(isInside)){
|
// String addressIn = memberCoinWithdrawEntity.getAddress();
|
// DappMemberEntity dappMemberEntityIn = dappMemberDao.selectMemberInfoByInviteId(addressIn);
|
// if(ObjectUtil.isEmpty(dappMemberEntityIn)){
|
// throw new FebsException("系统异常,联系开发人员");
|
// }
|
// DappWalletCoinEntity dappWalletCoinEntityIn = dappWalletCoinDao.selectByMemberId(dappMemberEntityIn.getId());
|
// Integer countIn = dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntityIn.getId(), memberCoinWithdrawEntity.getAmount());
|
// if(1 != countIn){
|
// throw new FebsException("系统异常,联系开发人员");
|
// }
|
// //生成流水记录
|
// DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(dappMemberEntityIn.getId(),
|
// dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN),
|
// amount,
|
// dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).add(amount),
|
// "转账",
|
// 4);
|
// dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityIn);
|
// }
|
return new FebsResponse().success();
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public FebsResponse disagreeWithdraw(Long id) {
|
MemberCoinWithdrawEntity memberCoinWithdrawEntity = memberCoinWithdrawDao.selectById(id);
|
if(ObjectUtil.isEmpty(memberCoinWithdrawEntity)){
|
throw new FebsException("刷新页面重试");
|
}
|
memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_NO);
|
memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity);
|
|
DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberCoinWithdrawEntity.getMemberId());
|
Integer count = dappWalletCoinDao.addFrozenAndDelAvailableById(dappWalletCoinEntity.getId(),memberCoinWithdrawEntity.getAmount());
|
if(1 != count){
|
throw new FebsException("系统异常,联系开发人员");
|
}
|
return new FebsResponse().success();
|
}
|
}
|