package com.xcong.excoin.modules.coin.service.impl; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.validation.Valid; import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.enumerates.CoinTypeEnum; import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity; import com.xcong.excoin.modules.coin.mapper.MemberAccountMoneyChangeMapper; import com.xcong.excoin.modules.coin.parameter.dto.CoinInListDto; import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto; import com.xcong.excoin.modules.coin.parameter.vo.AllWalletCoinVo; import com.xcong.excoin.modules.coin.parameter.vo.CoinInListVo; import com.xcong.excoin.modules.coin.parameter.vo.ContractSymbolListVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeInfoVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinInfoVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletContractInfoVo; import com.xcong.excoin.modules.coin.service.CoinService; import com.xcong.excoin.modules.member.dao.MemberCoinChargeDao; import com.xcong.excoin.modules.member.dao.MemberCoinWithdrawDao; import com.xcong.excoin.modules.member.dao.MemberDao; import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao; import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberWalletAgentEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao; import com.xcong.excoin.utils.CoinTypeConvert; import com.xcong.excoin.utils.MessageSourceUtils; import com.xcong.excoin.utils.RedisUtils; import com.xcong.excoin.utils.ThreadPoolUtils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @Service public class CoinServiceImpl extends ServiceImpl implements CoinService { //@Resource //SymbolsService symbolsService; @Resource PlatformCnyUsdtExchangeDao cnyUsdtExchangeDao; @Resource MemberWalletCoinDao memberWalletCoinDao; @Resource MemberWalletContractDao memberWalletContractDao; @Resource MemberAccountMoneyChangeDao memberAccountMoneyChangeDao; @Resource MemberWalletAgentDao memberWalletAgentDao; @Resource MemberDao memberDao; @Resource MemberCoinChargeDao memberCoinChargeDao; @Resource MemberCoinWithdrawDao memberCoinWithdrawDao; @Resource RedisUtils redisUtils; @Override public Result getWalletCoin() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); BigDecimal totalUsdts = BigDecimal.ZERO; if (!StrUtil.isEmpty(memberId.toString())) { List memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId); List memberWalletCoinInfoVolist = new ArrayList(); if (CollUtil.isNotEmpty(memberWalletCoinlist)) { for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) { MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo(); memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId()); memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setWalletCode(memberWalletCoinEntity.getWalletCode()); memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo); } } if (CollUtil.isNotEmpty(memberWalletCoinInfoVolist)) { for (MemberWalletCoinInfoVo walletCoin : memberWalletCoinInfoVolist) { if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) { BigDecimal totalUsdt = BigDecimal.ZERO; totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); totalUsdts = totalUsdts.add(totalUsdt); BigDecimal totalCny = totalUsdt.multiply(cnyUsdt); walletCoin.setTotalBalance(totalCny); } else { BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); // 获取最新价 BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(walletCoin.getWalletCode()+"/USDT"))); BigDecimal totalUsdt = BigDecimal.ZERO; //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(walletCoin.getWalletCode()+"/USDT"); totalUsdt = totalUsdt.add(amount.multiply(closePrice)); totalUsdts = totalUsdts.add(totalUsdt); walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt)); } } } MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo(); memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinInfoVolist); return Result.ok(memberWalletCoinVo); } else { List memberWalletCoinlist = new ArrayList(); MemberWalletCoinInfoVo coin = new MemberWalletCoinInfoVo(); coin.setAvailableBalance(BigDecimal.ZERO); coin.setTotalBalance(BigDecimal.ZERO); coin.setFrozenBalance(BigDecimal.ZERO); coin.setWalletCode(CoinTypeEnum.BTC.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.ETH.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.LTC.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.BCH.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.USDT.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.EOS.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.XRP.toString()); memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.ETC.toString()); memberWalletCoinlist.add(coin); MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo(); memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinlist); return Result.ok(memberWalletCoinVo); } } @Override public Result getWalletCoinBySymbol(String symbol) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol); MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo(); memberWalletCoinInfoVo.setFrozenBalance(walletCoin.getFrozenBalance()); memberWalletCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); memberWalletCoinInfoVo.setMemberId(memberId); memberWalletCoinInfoVo.setWalletCode(symbol); if (!StrUtil.isEmpty(memberId.toString())) { PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); BigDecimal total = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) { memberWalletCoinInfoVo.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); } else { BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol+"/USDT"))); //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(wallet.getCode()+"/USDT"); memberWalletCoinInfoVo.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); } } return Result.ok(memberWalletCoinInfoVo); } @Override public Result getWalletContractById() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); Map columnMap = new HashMap(); columnMap.put("member_id", memberId); columnMap.put("wallet_code", "USDT"); List selectByMap = memberWalletContractDao.selectByMap(columnMap); MemberWalletContractInfoVo memberWalletContractInfoVo = new MemberWalletContractInfoVo(); if(CollUtil.isNotEmpty(selectByMap)) { for(MemberWalletContractEntity memberWalletContractEntity : selectByMap) { memberWalletContractInfoVo.setFrozenBalance(memberWalletContractEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setAvailableBalance(memberWalletContractEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setTotalCoin(memberWalletContractEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setAvailableCoin(memberWalletContractEntity.getTotalBalance().multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setWalletCode(memberWalletContractEntity.getWalletCode()+"/USDT"); } } return Result.ok(memberWalletContractInfoVo); } @Override @Transactional(rollbackFor = Exception.class) public Result coinWalletTransferToContract(BigDecimal balance, String symbol) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); if (!StrUtil.isEmpty(memberId.toString())) { String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal available = walletCoin.getAvailableBalance(); // 扣币 BigDecimal total = available.subtract(balance); if (total.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0005")); } BigDecimal subtract = walletCoin.getTotalBalance().subtract(balance); walletCoin.setAvailableBalance(total); walletCoin.setTotalBalance(subtract); int updateWalletCoinById = memberWalletCoinDao.updateById(walletCoin); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } // 加币 // 查询合约账户 MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); BigDecimal availableBalance = walletContract.getAvailableBalance(); BigDecimal add = availableBalance.add(balance); walletContract.setAvailableBalance(add); BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalBigDecimal = totalBalance.add(balance); walletContract.setTotalBalance(totalBigDecimal); int updateWalletContractById = memberWalletContractDao.updateById(walletContract); if (updateWalletContractById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //添加币币资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加合约资金划转历史记录 memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue()); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setAmount(balance); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); } return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override @Transactional(rollbackFor = Exception.class) public Result coinWalletTransferToContracts(BigDecimal balance, String symbol) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); if (!StrUtil.isEmpty(memberId.toString())) { //获取对应的币种 String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal available = walletCoin.getAvailableBalance(); // 扣币 BigDecimal total = available.subtract(balance); if (total.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0005")); } BigDecimal subtract = walletCoin.getTotalBalance().subtract(balance); walletCoin.setAvailableBalance(total); walletCoin.setTotalBalance(subtract); int updateWalletCoinById = memberWalletCoinDao.updateById(walletCoin); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } // 加币 // 查询合约账户 MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol); BigDecimal availableBalance = walletContract.getAvailableBalance(); BigDecimal add = availableBalance.add(balance); walletContract.setAvailableBalance(add); BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalBigDecimal = totalBalance.add(balance); walletContract.setTotalBalance(totalBigDecimal); int updateWalletContractById = memberWalletContractDao.updateById(walletContract); if (updateWalletContractById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //更新合约全仓模式下的订单权益 MemberEntity memberEntity = memberDao.selectById(memberId); String symbols = symbol+"/USDT"; ThreadPoolUtils.sendWholeForceClosingPrice(symbols, memberEntity); //添加币币资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent("转出至合约"+symbol+"账户"); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加合约资金划转历史记录 memberAccountRecord.setContent("由币币账户转入至合约"+symbol+"账户"); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setAmount(balance); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); } return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override @Transactional(rollbackFor = Exception.class) public Result contractTransferToWalletCoin(BigDecimal balance, String symbol) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); BigDecimal availableBalance = walletContract.getAvailableBalance(); // 扣币 BigDecimal availableSubtract = availableBalance.subtract(balance); if (availableSubtract.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0007")); } BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalSubtract = totalBalance.subtract(balance); walletContract.setAvailableBalance(availableSubtract); walletContract.setTotalBalance(totalSubtract); int updateWalletCoinById = memberWalletContractDao.updateById(walletContract); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } // 加币 MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); BigDecimal CoinAvailableBalance = walletCoinAvailableBalance.add(balance); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance); walletCoin.setAvailableBalance(CoinAvailableBalance); walletCoin.setTotalBalance(CoinTotalBalance); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //添加资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加资金划转历史记录 memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue()); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override @Transactional(rollbackFor = Exception.class) public Result contractTransferToWalletCoins(BigDecimal balance, String symbol) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol); BigDecimal availableBalance = walletContract.getAvailableBalance(); // 扣币 BigDecimal availableSubtract = availableBalance.subtract(balance); if (availableSubtract.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0007")); } BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalSubtract = totalBalance.subtract(balance); walletContract.setAvailableBalance(availableSubtract); walletContract.setTotalBalance(totalSubtract); int updateWalletCoinById = memberWalletContractDao.updateById(walletContract); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } // 加币 MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); BigDecimal CoinAvailableBalance = walletCoinAvailableBalance.add(balance); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance); walletCoin.setAvailableBalance(CoinAvailableBalance); walletCoin.setTotalBalance(CoinTotalBalance); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //更新合约全仓模式下的订单权益 MemberEntity memberEntity = memberDao.selectById(memberId); String symbols = symbol+"/USDT"; ThreadPoolUtils.sendWholeForceClosingPrice(symbols, memberEntity); //添加资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent("合约"+symbol+"账户转出至币币账户"); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加资金划转历史记录 memberAccountRecord.setContent("由合约"+symbol+"账户转入"); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override public Result findWalletContractBySymbol(String symbol) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol); BigDecimal availableBalance = walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN); return Result.ok(availableBalance); } @Override public Result findWalletCoinBySymbol(String symbol) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol); BigDecimal availableBalance = walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN); return Result.ok(availableBalance); } @Override public Result getWalletCoinRecords(RecordsPageDto recordsPageDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); Page page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.selectWalletCoinRecordsInPage(page, memberAccountMoneyChange); Page pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list); return Result.ok(pageEntityToPageVo); } @Override public Result getWalletContractRecords(RecordsPageDto recordsPageDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); Page page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.selectWalletContractRecordsInPage(page, memberAccountMoneyChange); Page pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list); return Result.ok(pageEntityToPageVo); } @Override public Result getWalletAgentRecords(RecordsPageDto recordsPageDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); Page page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.selectWalletAgentRecordsInPage(page, memberAccountMoneyChange); Page pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list); return Result.ok(pageEntityToPageVo); } @Override @Transactional(rollbackFor = Exception.class) public Result agentTransferToWalletCoin(BigDecimal balance, Integer transfertype) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); // 扣币 String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode); BigDecimal availableBalance = walletAgent.getAvailableBalance(); BigDecimal totalBalance = walletAgent.getTotalBalance(); BigDecimal available = availableBalance.subtract(balance); if (available.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0008")); } BigDecimal total = totalBalance.subtract(balance); if (total.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0008")); } walletAgent.setAvailableBalance(available); walletAgent.setTotalBalance(total); int i = memberWalletAgentDao.updateById(walletAgent); if (i < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //添加资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); //代理账户转币币 if (MemberAccountMoneyChange.TYPE_WALLET_COIN.equals(transfertype)) { MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance)); walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance)); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //添加资金划转历史记录 memberAccountRecord.setMemberId(memberId); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); } else if (MemberAccountMoneyChange.TYPE_WALLET_CONTRACT.equals(transfertype)) { //代理账户转合约 MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance(); BigDecimal walletContractTotalBalance = walletContract.getTotalBalance(); walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance)); walletContract.setTotalBalance(walletContractTotalBalance.add(balance)); int updateById = memberWalletContractDao.updateById(walletContract); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //添加资金划转历史记录 memberAccountRecord.setMemberId(memberId); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); } memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override @Transactional(rollbackFor = Exception.class) public Result agentTransferToWalletCoins(BigDecimal balance, Integer transfertype, String symbol) { if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); // 扣币 String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode); BigDecimal availableBalance = walletAgent.getAvailableBalance(); BigDecimal totalBalance = walletAgent.getTotalBalance(); BigDecimal available = availableBalance.subtract(balance); if (available.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0008")); } BigDecimal total = totalBalance.subtract(balance); if (total.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0008")); } walletAgent.setAvailableBalance(available); walletAgent.setTotalBalance(total); int i = memberWalletAgentDao.updateById(walletAgent); if (i < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //添加资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); //代理账户转币币 if (MemberAccountMoneyChange.TYPE_WALLET_COIN.equals(transfertype)) { MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance)); walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance)); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //添加资金划转历史记录 memberAccountRecord.setMemberId(memberId); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); } else if (MemberAccountMoneyChange.TYPE_WALLET_CONTRACT.equals(transfertype)) { //代理账户转合约 MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol); BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance(); BigDecimal walletContractTotalBalance = walletContract.getTotalBalance(); walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance)); walletContract.setTotalBalance(walletContractTotalBalance.add(balance)); int updateById = memberWalletContractDao.updateById(walletContract); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0095")); } //更新合约全仓模式下的订单权益 MemberEntity memberEntity = memberDao.selectById(memberId); String symbols = symbol+"/USDT"; ThreadPoolUtils.sendWholeForceClosingPrice(symbols, memberEntity); //添加资金划转历史记录 memberAccountRecord.setMemberId(memberId); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent("由代理账户转入合约"+symbol+"账户"); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); } memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override public Result findWalletAgentBySymbol() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode); BigDecimal availableBalance = walletAgent.getAvailableBalance(); PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); BigDecimal multiply = availableBalance.multiply(cnyUsdt); MemberWalletAgentInfoVo memberWalletAgentInfoVo = new MemberWalletAgentInfoVo(); memberWalletAgentInfoVo.setTotalBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletAgentInfoVo.setTotalRMBBalance(multiply.setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(memberWalletAgentInfoVo); } @Override public Result getWalletAgentIntoRecords(RecordsPageDto recordsPageDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); Page page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.selectWalletAgentIntoRecordsByMemIdTypeSymbol(page, memberAccountMoneyChange); List contractRecordList = list.getRecords(); List arrayList = new ArrayList<>(); if(CollUtil.isNotEmpty(contractRecordList)) { if (ObjectUtil.isNotNull(contractRecordList)) { for (MemberAccountMoneyChange memberAccountMoneyChanges : contractRecordList) { MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo(); memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChanges.getAmount()); memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChanges.getContent()); memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChanges.getStatus()); memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChanges.getSymbol()); memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChanges.getType()); memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChanges.getUpdateTime()); arrayList.add(memberAccountMoneyChangeInfoVo); } } } Page pageEntityToPageVo = new Page<>(); pageEntityToPageVo.setRecords(arrayList); return Result.ok(pageEntityToPageVo); } @Override public Result getAllWalletCoin() { //获取【币币】 Long memberId = LoginUserUtils.getAppLoginUser().getId(); PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); AllWalletCoinVo allWalletCoinVo = new AllWalletCoinVo(); BigDecimal totalUsdts = BigDecimal.ZERO; if (!StrUtil.isEmpty(memberId.toString())) { List memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId); List memberWalletCoinInfoVolist = new ArrayList(); if (CollUtil.isNotEmpty(memberWalletCoinlist)) { for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) { MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo(); memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId()); memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinInfoVo.setWalletCode(memberWalletCoinEntity.getWalletCode()); memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo); } } if (CollUtil.isNotEmpty(memberWalletCoinInfoVolist)) { for (MemberWalletCoinInfoVo walletCoin : memberWalletCoinInfoVolist) { if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) { BigDecimal totalUsdt = BigDecimal.ZERO; totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); totalUsdts = totalUsdts.add(totalUsdt); } else { BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); // 获取最新价 BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(walletCoin.getWalletCode()+"/USDT"))); BigDecimal totalUsdt = BigDecimal.ZERO; totalUsdt = totalUsdt.add(amount.multiply(closePrice)); totalUsdts = totalUsdts.add(totalUsdt); } } } } allWalletCoinVo.setWalletUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN)); //获取【合约】 String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); if (ObjectUtil.isEmpty(walletContract)) { return Result.fail(MessageSourceUtils.getString("member_service_0001")); } allWalletCoinVo.setContractUsdt(walletContract.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN)); totalUsdts = totalUsdts.add(walletContract.getTotalBalance()); //获取【代理】 MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode); BigDecimal availableBalance = walletAgent.getAvailableBalance(); allWalletCoinVo.setAgentUsdt(availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); totalUsdts = totalUsdts.add(availableBalance); allWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN)); allWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(allWalletCoinVo); } @Override public Result getContractSymbolList() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); List list = memberWalletContractDao.findContractSymbolListBymemberId(memberId); if(CollUtil.isNotEmpty(list)) { for(ContractSymbolListVo contractSymbolListVo : list) { String walletCode = contractSymbolListVo.getWalletCode(); walletCode = walletCode+"/USDT"; contractSymbolListVo.setWalletCode(walletCode); } } return Result.ok(list); } @Override @Transactional(rollbackFor = Exception.class) public Result contractInTransfer(BigDecimal balance, String symbolIn, String symbolOut) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); //转入转出不能是同一账户 if(symbolIn.equals(symbolOut)) { return Result.fail(MessageSourceUtils.getString("member_service_0098")); } if (balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbolOut); BigDecimal availableBalance = walletContract.getAvailableBalance(); // 扣币 BigDecimal availableSubtract = availableBalance.subtract(balance); if (availableSubtract.compareTo(BigDecimal.ZERO) < 0) { return Result.fail(MessageSourceUtils.getString("member_service_0007")); } BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalSubtract = totalBalance.subtract(balance); walletContract.setAvailableBalance(availableSubtract); walletContract.setTotalBalance(totalSubtract); int updateWalletCoinById = memberWalletContractDao.updateById(walletContract); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //更新合约全仓模式下的订单权益 MemberEntity memberEntity = memberDao.selectById(memberId); String symbols = symbolOut+"/USDT"; ThreadPoolUtils.sendWholeForceClosingPrice(symbols, memberEntity); // 加币 // 查询合约账户 MemberWalletContractEntity walletContractIn = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbolIn); BigDecimal availableBalanceIn = walletContractIn.getAvailableBalance(); BigDecimal addIn = availableBalanceIn.add(balance); walletContractIn.setAvailableBalance(addIn); BigDecimal totalBalanceIn = walletContractIn.getTotalBalance(); BigDecimal totalBigDecimalIn = totalBalanceIn.add(balance); walletContractIn.setTotalBalance(totalBigDecimalIn); int updateWalletContractById = memberWalletContractDao.updateById(walletContractIn); if (updateWalletContractById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); } //更新合约全仓模式下的订单权益 String symbolIns = symbolIn+"/USDT"; ThreadPoolUtils.sendWholeForceClosingPrice(symbolIns, memberEntity); ThreadPoolUtils.sendWholePrice(memberId); //添加币币资金划转历史记录 MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent("转出至合约"+symbolIn+"账户"); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加合约资金划转历史记录 memberAccountRecord.setContent("由合约"+symbolOut+"账户转入至合约"+symbolIn+"账户"); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override public Result coinInList(@Valid CoinInListDto coinInListDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); int type = coinInListDto.getType(); //充币记录 if(type == 1) { Page page = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); MemberCoinChargeEntity memberCoinChargeEntity = new MemberCoinChargeEntity(); memberCoinChargeEntity.setMemberId(memberId); IPage memberCoinCharge = memberCoinChargeDao.findMemberCoinChargeInPage(page, memberCoinChargeEntity); List records = memberCoinCharge.getRecords(); Page responsePage = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); if(CollUtil.isNotEmpty(records)) { ArrayList arrayList = new ArrayList<>(); for(MemberCoinChargeEntity memberCoinChargeEntitys : records) { CoinInListVo coinInListVo = new CoinInListVo(); coinInListVo.setSymbol(memberCoinChargeEntitys.getSymbol()); coinInListVo.setAmount(memberCoinChargeEntitys.getAmount()); coinInListVo.setContent("充币"); coinInListVo.setStatus(memberCoinChargeEntitys.getStatus()); coinInListVo.setUpdateTime(memberCoinChargeEntitys.getUpdateTime()); arrayList.add(coinInListVo); } responsePage.setRecords(arrayList); } return Result.ok(responsePage); } //提币记录 if(type == 2) { Page page = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity(); memberCoinWithdrawEntity.setMemberId(memberId); IPage memberCoinWithdraw = memberCoinWithdrawDao.findMemberCoinWithdrawInPage(page, memberCoinWithdrawEntity); List records = memberCoinWithdraw.getRecords(); Page responsePage = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); if(CollUtil.isNotEmpty(records)) { ArrayList arrayList = new ArrayList<>(); for(MemberCoinWithdrawEntity memberCoinWithdrawEntitys : records) { CoinInListVo coinInListVo = new CoinInListVo(); coinInListVo.setSymbol(memberCoinWithdrawEntitys.getSymbol()); coinInListVo.setAmount(memberCoinWithdrawEntitys.getAmount()); coinInListVo.setContent("提币"); coinInListVo.setStatus(memberCoinWithdrawEntitys.getStatus()); coinInListVo.setUpdateTime(memberCoinWithdrawEntitys.getUpdateTime()); coinInListVo.setIsInside(memberCoinWithdrawEntitys.getIsInside()); arrayList.add(coinInListVo); } responsePage.setRecords(arrayList); } return Result.ok(responsePage); } //划转记录 if(type == 3) { Page page = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.coinInList(page, memberAccountMoneyChange); List records = list.getRecords(); Page responsePage = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); if(CollUtil.isNotEmpty(records)) { ArrayList arrayList = new ArrayList<>(); for(MemberAccountMoneyChange memberAccountMoneyChanges : records) { CoinInListVo coinInListVo = new CoinInListVo(); coinInListVo.setSymbol(memberAccountMoneyChanges.getSymbol()); coinInListVo.setAmount(memberAccountMoneyChanges.getAmount()); coinInListVo.setContent(memberAccountMoneyChanges.getContent()); coinInListVo.setStatus(memberAccountMoneyChanges.getStatus()); coinInListVo.setUpdateTime(memberAccountMoneyChanges.getUpdateTime()); arrayList.add(coinInListVo); } responsePage.setRecords(arrayList); } return Result.ok(responsePage); } //其他记录 if(type == 4) { Page page = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange(); memberAccountMoneyChange.setMemberId(memberId); IPage list = memberAccountMoneyChangeDao.selectWalletAgentIntoRecordsByMemIdTypeSymbol(page, memberAccountMoneyChange); List records = list.getRecords(); Page responsePage = new Page<>(coinInListDto.getPageNum(), coinInListDto.getPageSize()); if(CollUtil.isNotEmpty(records)) { ArrayList arrayList = new ArrayList<>(); for(MemberAccountMoneyChange memberAccountMoneyChanges : records) { CoinInListVo coinInListVo = new CoinInListVo(); coinInListVo.setSymbol(memberAccountMoneyChanges.getSymbol()); coinInListVo.setAmount(memberAccountMoneyChanges.getAmount()); coinInListVo.setContent(memberAccountMoneyChanges.getContent()); coinInListVo.setStatus(memberAccountMoneyChanges.getStatus()); coinInListVo.setUpdateTime(memberAccountMoneyChanges.getUpdateTime()); arrayList.add(coinInListVo); } responsePage.setRecords(arrayList); } return Result.ok(responsePage); } return Result.fail(MessageSourceUtils.getString("member_controller_0005")); } }