src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -87,7 +87,7 @@ totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); totalUsdts = totalUsdts.add(totalUsdt); BigDecimal totalCny = totalUsdt.multiply(cnyUsdt); walletCoin.setTotalBalance(totalCny.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setTotalBalance(totalCny); } else { BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); // 获取最新价 @@ -96,7 +96,7 @@ //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(walletCoin.getWalletCode()+"/USDT"); totalUsdt = totalUsdt.add(amount.multiply(closePrice)); totalUsdts = totalUsdts.add(totalUsdt); walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt)); } } } @@ -235,10 +235,10 @@ MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); BigDecimal availableBalance = walletContract.getAvailableBalance(); BigDecimal add = availableBalance.add(balance); walletContract.setAvailableBalance(add.setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setAvailableBalance(add); BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalBigDecimal = totalBalance.add(balance); walletContract.setTotalBalance(totalBigDecimal.setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setTotalBalance(totalBigDecimal); int updateWalletContractById = memberWalletContractDao.updateById(walletContract); if (updateWalletContractById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); @@ -247,7 +247,7 @@ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); @@ -256,7 +256,7 @@ //添加合约资金划转历史记录 memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue()); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); } @@ -283,8 +283,8 @@ BigDecimal totalBalance = walletContract.getTotalBalance(); BigDecimal totalSubtract = totalBalance.subtract(balance); walletContract.setAvailableBalance(availableSubtract.setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setTotalBalance(totalSubtract.setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setAvailableBalance(availableSubtract); walletContract.setTotalBalance(totalSubtract); int updateWalletCoinById = memberWalletContractDao.updateById(walletContract); if (updateWalletCoinById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); @@ -296,8 +296,8 @@ BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance); walletCoin.setAvailableBalance(CoinAvailableBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setTotalBalance(CoinTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(CoinAvailableBalance); walletCoin.setTotalBalance(CoinTotalBalance); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); @@ -307,7 +307,7 @@ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); memberAccountRecord.setMemberId(memberId); memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); @@ -317,7 +317,7 @@ memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue()); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @@ -435,8 +435,8 @@ return Result.fail(MessageSourceUtils.getString("member_service_0008")); } walletAgent.setAvailableBalance(available.setScale(4, BigDecimal.ROUND_DOWN)); walletAgent.setTotalBalance(total.setScale(4, BigDecimal.ROUND_DOWN)); walletAgent.setAvailableBalance(available); walletAgent.setTotalBalance(total); int i = memberWalletAgentDao.updateById(walletAgent); if (i < 1) { @@ -450,8 +450,8 @@ BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance)); walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance)); int updateById = memberWalletCoinDao.updateById(walletCoin); if (updateById < 1) { @@ -463,7 +463,7 @@ memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); @@ -473,8 +473,8 @@ BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance(); BigDecimal walletContractTotalBalance = walletContract.getTotalBalance(); walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setTotalBalance(walletContractTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN)); walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance)); walletContract.setTotalBalance(walletContractTotalBalance.add(balance)); int updateById = memberWalletContractDao.updateById(walletContract); if (updateById < 1) { @@ -487,11 +487,11 @@ memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); } memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setAmount(balance.negate()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT); memberAccountMoneyChangeDao.insert(memberAccountRecord); src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
@@ -203,15 +203,15 @@ order.setOrderNo(generateSimpleSerialno(memberId.toString())); order.setOrderType(type); order.setSymbol(symbol); order.setMarkPrice(nowPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setEntrustCnt(amount.setScale(4, BigDecimal.ROUND_DOWN)); order.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealCnt(amount.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setMarkPrice(nowPrice); order.setEntrustCnt(amount); order.setEntrustPrice(price); order.setDealCnt(amount); order.setDealPrice(price); order.setDealAmount(totalPayPrice); order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DODING); order.setTradeType(tradeType); order.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setFeeAmount(closingPrice); orderCoinsDao.insert(order); //更新用户钱包信息 @@ -220,15 +220,15 @@ //如果是买入,所对应的币种增加,USDT账户减少金额 BigDecimal availableBalance = walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice); BigDecimal frozenBalance = walletCoinUsdt.getFrozenBalance().add(totalPayPrice); walletCoinUsdt.setAvailableBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoinUsdt.setFrozenBalance(frozenBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoinUsdt.setAvailableBalance(availableBalance); walletCoinUsdt.setFrozenBalance(frozenBalance); memberWalletCoinDao.updateById(walletCoinUsdt); }else { //如果是卖出,币种减少,USDT增加 BigDecimal availableBalance = walletCoin.getAvailableBalance().subtract(amount); BigDecimal frozenBalance = walletCoin.getFrozenBalance().add(amount); walletCoin.setAvailableBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setFrozenBalance(frozenBalance.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(availableBalance); walletCoin.setFrozenBalance(frozenBalance); memberWalletCoinDao.updateById(walletCoin); } } else { @@ -237,15 +237,15 @@ order.setOrderNo(generateSimpleSerialno(memberId.toString())); order.setOrderType(type); order.setSymbol(symbol); order.setMarkPrice(nowPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setEntrustCnt(amount.setScale(4, BigDecimal.ROUND_DOWN)); order.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealCnt(amount.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); order.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setMarkPrice(nowPrice); order.setEntrustCnt(amount); order.setEntrustPrice(price); order.setDealCnt(amount); order.setDealPrice(price); order.setDealAmount(totalPayPrice); order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE); order.setTradeType(tradeType); order.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN)); order.setFeeAmount(closingPrice); orderCoinsDao.insert(order); OrderCoinsDealEntity detail = new OrderCoinsDealEntity(); @@ -255,29 +255,29 @@ detail.setOrderType(type); detail.setTradeType(tradeType); detail.setSymbol(symbol); detail.setSymbolCnt(amount.setScale(4, BigDecimal.ROUND_DOWN)); detail.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); detail.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN)); detail.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN)); detail.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN)); detail.setSymbolCnt(amount); detail.setEntrustPrice(price); detail.setDealPrice(price); detail.setDealAmount(totalPayPrice); detail.setFeeAmount(closingPrice); detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_DONE); orderCoinDealDao.insert(detail); if(OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) { //如果是买入,所对应的币种增加,USDT账户减少金额 // 更新用户的可用金额 walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(amount).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(amount)); memberWalletCoinDao.updateById(walletCoin); walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice).setScale(4, BigDecimal.ROUND_DOWN)); walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice)); memberWalletCoinDao.updateById(walletCoinUsdt); }else { //如果是卖出,币种减少,USDT增加 walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().subtract(amount).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().subtract(amount)); memberWalletCoinDao.updateById(walletCoin); BigDecimal subtract = totalPayPrice.subtract(closingPrice).subtract(closingPrice); walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().add(subtract).setScale(4, BigDecimal.ROUND_DOWN)); walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().add(subtract)); memberWalletCoinDao.updateById(walletCoinUsdt); } } @@ -287,14 +287,14 @@ if (OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) { record.setPrice(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN)); record.setSource(MemberAccountFlowEntity.SOURCE_BUY+symbol); record.setRemark(MemberAccountFlowEntity.REMARK_BUY+symbol+":"+amount.setScale(4, BigDecimal.ROUND_DOWN)); record.setRemark(MemberAccountFlowEntity.REMARK_BUY+symbol+":"+amount); } else { record.setPrice(totalPayPrice.negate().setScale(4, BigDecimal.ROUND_DOWN)); record.setSource(MemberAccountFlowEntity.SOURCE_SALE+symbol); record.setRemark(MemberAccountFlowEntity.REMARK_SALE+symbol+":"+amount.setScale(4, BigDecimal.ROUND_DOWN)); record.setRemark(MemberAccountFlowEntity.REMARK_SALE+symbol+":"+amount); } record.setSymbol(symbol); record.setBalance(walletCoinUsdt.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); record.setBalance(walletCoinUsdt.getAvailableBalance()); memberAccountFlowEntityDao.insert(record); @@ -343,10 +343,10 @@ detail.setSymbol(symbol); detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_CANCEL); detail.setSymbolCnt(orderCoinsEntity.getEntrustCnt()); detail.setEntrustPrice(orderCoinsEntity.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN)); detail.setDealPrice(orderCoinsEntity.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN)); detail.setDealAmount(orderCoinsEntity.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN)); detail.setFeeAmount(orderCoinsEntity.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN)); detail.setEntrustPrice(orderCoinsEntity.getEntrustPrice()); detail.setDealPrice(orderCoinsEntity.getDealPrice()); detail.setDealAmount(orderCoinsEntity.getDealAmount()); detail.setFeeAmount(orderCoinsEntity.getFeeAmount()); orderCoinDealDao.insert(detail); if(OrderCoinsEntity.ORDERTYPE_BUY.equals(orderCoinsEntity.getOrderType())) { @@ -359,14 +359,14 @@ //返还金额=开仓价*未成交数量+手续费 BigDecimal returnBalance = orderCoinsEntity.getDealAmount(); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance)); walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance)); memberWalletCoinDao.updateById(walletCoin); // 流水记录 MemberAccountFlowEntity record = new MemberAccountFlowEntity(); record.setSource(MemberAccountFlowEntity.SOURCE_CANCEL); record.setRemark(MemberAccountFlowEntity.REMARK_CANCEL+symbol+MemberAccountFlowEntity.REMARK_RETURNBALANCE+returnBalance); record.setBalance(walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); record.setBalance(walletCoin.getAvailableBalance()); record.setMemberId(memberId); record.setSymbol(symbol); record.setPrice(returnBalance); @@ -379,17 +379,17 @@ if (ObjectUtil.isNotEmpty(walletCoin)) { BigDecimal returnBalance = orderCoinsEntity.getEntrustCnt(); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance).setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance)); walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance)); memberWalletCoinDao.updateById(walletCoin); // 流水记录 MemberAccountFlowEntity record = new MemberAccountFlowEntity(); record.setSource(MemberAccountFlowEntity.SOURCE_CANCEL); record.setRemark(MemberAccountFlowEntity.REMARK_CANCEL+symbol+MemberAccountFlowEntity.REMARK_RETURNBALANCE+returnBalance); record.setBalance(walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN)); record.setBalance(walletCoin.getAvailableBalance()); record.setMemberId(memberId); record.setSymbol(symbol); record.setPrice(walletCoin.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN)); record.setPrice(walletCoin.getFrozenBalance()); memberAccountFlowEntityDao.insert(record); return Result.ok(MessageSourceUtils.getString("order_service_0013")); } src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -827,8 +827,8 @@ //新增提币记录 MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity(); memberCoinWithdrawEntity.setAddress(memberSubmitCoinApplyDto.getAddress()); memberCoinWithdrawEntity.setAmount(coinNumber.setScale(4, BigDecimal.ROUND_DOWN)); memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN)); memberCoinWithdrawEntity.setAmount(coinNumber); memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount()); memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyDto.getSymbol()); memberCoinWithdrawEntity.setMemberId(memberId); memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING); @@ -844,9 +844,9 @@ } memberCoinWithdrawDao.insert(memberCoinWithdrawEntity); BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber); walletCoin.setAvailableBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setAvailableBalance(subtract); BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber); walletCoin.setFrozenBalance(add.setScale(4, BigDecimal.ROUND_DOWN)); walletCoin.setFrozenBalance(add); memberWalletCoinDao.updateById(walletCoin); MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();