src/main/java/com/xcong/excoin/modules/coin/controller/CoinController.java
@@ -5,18 +5,22 @@ import javax.annotation.Resource; import javax.validation.Valid; import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeVo; 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 io.swagger.annotations.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.coin.parameter.dto.TransferOfBalanceDto; import com.xcong.excoin.modules.coin.parameter.dto.TransferOfBalanceFromAgentDto; import com.xcong.excoin.modules.coin.service.CoinService; import io.swagger.annotations.Api; @@ -61,6 +65,7 @@ * @return */ @ApiOperation(value="获取我的合约账户信息", notes="获取我的合约账户信息") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberWalletContractInfoVo.class)}) @GetMapping(value="/getWalletContractById") public Result getWalletContractById() { return coinService.getWalletContractById(); @@ -90,7 +95,8 @@ * 查询代理账户里面的资产余额 * @return */ @ApiOperation(value="查询代理账户里面的可用资产余额", notes="查询代理账户里面的可用资产余额") @ApiOperation(value="查询代理账户信息", notes="查询代理账户信息") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberWalletAgentInfoVo.class)}) @GetMapping(value="/findWalletAgentBySymbol") public Result findWalletAgentBySymbol() { return coinService.findWalletAgentBySymbol(); @@ -101,6 +107,7 @@ * @return */ @ApiOperation(value="获取币币资产交易记录", notes="获取币币资产交易记录") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberAccountMoneyChangeVo.class)}) @GetMapping(value="/getWalletCoinRecords") public Result getWalletCoinRecords() { return coinService.getWalletCoinRecords(); @@ -111,9 +118,10 @@ * @return */ @ApiOperation(value="获取合约资产交易记录", notes="获取合约资产交易记录") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberAccountMoneyChangeVo.class)}) @GetMapping(value="/getWalletContractRecords") public Result getWalletContractRecords(@ApiParam(name="symbol",value="币种",required=true)String symbol) { return coinService.getWalletContractRecords(symbol); public Result getWalletContractRecords() { return coinService.getWalletContractRecords(); } /** @@ -121,6 +129,7 @@ * @return */ @ApiOperation(value="获取代理资产交易记录", notes="获取代理资产交易记录") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberAccountMoneyChangeVo.class)}) @GetMapping(value="/getWalletAgentRecords") public Result getWalletAgentRecords() { return coinService.getWalletAgentRecords(); @@ -154,11 +163,11 @@ * 代理账户划转到USDT账户 * @return */ @ApiOperation(value="代理账户划转到合约或币币USDT账户()", notes="代理账户划转到合约或币币USDT账户") @ApiOperation(value="代理账户划转到合约或币币USDT账户", notes="代理账户划转到合约或币币USDT账户") @PostMapping(value="/agentTransferToWalletCoin") public Result agentTransferToWalletCoin(@RequestBody @Valid TransferOfBalanceDto transferOfBalanceDto) { BigDecimal balance = transferOfBalanceDto.getBalance(); Integer transfertype = transferOfBalanceDto.getTransfertype(); public Result agentTransferToWalletCoin(@RequestBody @Valid TransferOfBalanceFromAgentDto transferOfBalanceFromAgentDto) { BigDecimal balance = transferOfBalanceFromAgentDto.getBalance(); Integer transfertype = transferOfBalanceFromAgentDto.getTransfertype(); return coinService.agentTransferToWalletCoin(balance,transfertype); } src/main/java/com/xcong/excoin/modules/coin/parameter/dto/TransferOfBalanceDto.java
@@ -20,7 +20,4 @@ @ApiModelProperty(value = "币种", example = "USDT") private String symbol; @NotNull(message = "账户类型不能为空") @ApiModelProperty(value = "账户类型", example = "1") private Integer transfertype; } src/main/java/com/xcong/excoin/modules/coin/parameter/dto/TransferOfBalanceFromAgentDto.java
New file @@ -0,0 +1,26 @@ package com.xcong.excoin.modules.coin.parameter.dto; import java.math.BigDecimal; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "资金划转参数接收类", description = "资金划转参数接收类") public class TransferOfBalanceFromAgentDto { @NotNull(message = "划转金额不能为空") @ApiModelProperty(value = "划转金额", example = "100") private BigDecimal balance; @NotNull(message = "币种不能为空") @ApiModelProperty(value = "币种", example = "USDT") private String symbol; @NotNull(message = "账户类型不能为空") @ApiModelProperty(value = "转账类型1:转币币,2:转合约", example = "1") private Integer transfertype; } src/main/java/com/xcong/excoin/modules/coin/parameter/vo/MemberAccountMoneyChangeInfoVo.java
New file @@ -0,0 +1,39 @@ package com.xcong.excoin.modules.coin.parameter.vo; import java.math.BigDecimal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "资产交易记录详情信息返回", description = "资产交易记录详情信息返回") public class MemberAccountMoneyChangeInfoVo { /** * 币种 */ @ApiModelProperty(value = "币种") private String symbol; /** * 金额 */ @ApiModelProperty(value = "金额") private BigDecimal amount; /** * 记录内容 */ @ApiModelProperty(value = "记录内容") private String content; /** * 类型【1:币币资产2:合约资产3:代理资产】 */ @ApiModelProperty(value = "类型【1:币币资产2:合约资产3:代理资产】") private int type; /** * 状态【0:待审核 1:成功2:失败】 */ @ApiModelProperty(value = "状态【0:待审核 1:成功2:失败】") private int status; } src/main/java/com/xcong/excoin/modules/coin/parameter/vo/MemberAccountMoneyChangeVo.java
New file @@ -0,0 +1,17 @@ package com.xcong.excoin.modules.coin.parameter.vo; import java.math.BigDecimal; import java.util.List; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "资产交易记录信息返回", description = "资产交易记录信息返回") public class MemberAccountMoneyChangeVo { @ApiModelProperty(value = "资产交易记录详情信息") private List<MemberAccountMoneyChangeInfoVo> memberAccountMoneyChangeInfoVo; } src/main/java/com/xcong/excoin/modules/coin/parameter/vo/MemberWalletAgentInfoVo.java
New file @@ -0,0 +1,25 @@ package com.xcong.excoin.modules.coin.parameter.vo; import java.math.BigDecimal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "代理账户信息返回", description = "代理账户信息返回") public class MemberWalletAgentInfoVo { /** * 总金额 */ @ApiModelProperty(value = "总金额") private BigDecimal totalBalance; /** * 总人民币金额 */ @ApiModelProperty(value = "总人民币金额") private BigDecimal totalRMBBalance; } src/main/java/com/xcong/excoin/modules/coin/parameter/vo/MemberWalletCoinVo.java
@@ -5,10 +5,12 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author xy */ @Data @ApiModel(value = "币币账户信息返回", description = "币币账户信息返回") public class MemberWalletCoinVo { @@ -22,24 +24,5 @@ @ApiModelProperty(value = "币种详情") private List<MemberWalletCoinInfoVo> memberWalletCoinInfoVo; public BigDecimal getTotalUsdt() { return totalUsdt; } public void setTotalUsdt(BigDecimal totalUsdt) { this.totalUsdt = totalUsdt; } public BigDecimal getTotalCny() { return totalCny; } public void setTotalCny(BigDecimal totalCny) { this.totalCny = totalCny; } public List<MemberWalletCoinInfoVo> getMemberWalletCoinInfoVo() { return memberWalletCoinInfoVo; } public void setMemberWalletCoinInfoVo(List<MemberWalletCoinInfoVo> memberWalletCoinInfoVo) { this.memberWalletCoinInfoVo = memberWalletCoinInfoVo; } } src/main/java/com/xcong/excoin/modules/coin/parameter/vo/MemberWalletContractInfoVo.java
New file @@ -0,0 +1,43 @@ package com.xcong.excoin.modules.coin.parameter.vo; import java.math.BigDecimal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "合约账户信息返回", description = "合约账户信息返回") public class MemberWalletContractInfoVo { /** * 用户Id */ @ApiModelProperty(value = "用户Id") private Long memberId; /** * 可用余额 */ @ApiModelProperty(value = "可用余额") private BigDecimal availableBalance; /** * 总金额 */ @ApiModelProperty(value = "总金额") private BigDecimal totalBalance; /** * 总人民币金额 */ @ApiModelProperty(value = "总人民币金额") private BigDecimal totalRMBBalance; /** * 冻结金额 */ @ApiModelProperty(value = "冻结金额") private BigDecimal frozenBalance; } src/main/java/com/xcong/excoin/modules/coin/service/CoinService.java
@@ -22,7 +22,7 @@ public Result getWalletCoinRecords(); public Result getWalletContractRecords(String symbol); public Result getWalletContractRecords(); public Result getWalletAgentRecords(); src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -2,9 +2,7 @@ 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 org.springframework.stereotype.Service; @@ -18,8 +16,11 @@ import com.xcong.excoin.modules.coin.dao.platform.CnyUsdtExchangeDao; import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; 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.MemberWalletAgentDao; import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; @@ -185,9 +186,6 @@ BigDecimal profitAndLoss = new BigDecimal("50.000"); //获取总付款 BigDecimal totalPayment = new BigDecimal("50.000"); walletContract.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN)); BigDecimal lastTotalBalance = new BigDecimal("0"); BigDecimal totalBalance = walletContract.getTotalBalance(); lastTotalBalance = totalBalance.add(profitAndLoss); @@ -195,14 +193,13 @@ lastTotalBalance = new BigDecimal("0"); } walletContract.setAvailableBalance(walletContract.getAvailableBalance()); walletContract.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); MemberWalletContractInfoVo memberWalletContractInfoVo = new MemberWalletContractInfoVo(); memberWalletContractInfoVo.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setAvailableBalance(walletContract.getAvailableBalance()); memberWalletContractInfoVo.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletContractInfoVo.setTotalRMBBalance(lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); Map<String,Object> map = new HashMap<String, Object>(); map.put(MemberWalletCoinEnum.WALLETCOINUSDT.getValue(), lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); map.put(MemberWalletCoinEnum.WALLETCONTRACT.getValue(), walletContract); map.put(MemberWalletCoinEnum.WALLETCOINCNY.getValue(), lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(map); return Result.ok(memberWalletContractInfoVo); } @Override @@ -331,8 +328,8 @@ Long memberId = LoginUserUtils.getAppLoginUser().getId(); String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); return Result.ok(walletContract); BigDecimal availableBalance = walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN); return Result.ok(availableBalance); } @Override @@ -342,26 +339,50 @@ MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol); BigDecimal availableBalance = walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN); walletCoin.setAvailableBalance(availableBalance); return Result.ok(walletCoin); return Result.ok(availableBalance); } @Override public Result getWalletCoinRecords() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); List<MemberAccountMoneyChange> coinRecordList = memberAccountMoneyChangeDao.selectWalletCoinRecordsByMemIdTypeSymbol(memberId); return Result.ok(coinRecordList); ArrayList<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>(); if(ObjectUtil.isNotNull(coinRecordList)) { for(MemberAccountMoneyChange memberAccountMoneyChange : coinRecordList) { MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo(); memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount()); memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent()); memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus()); memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol()); memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType()); arrayList.add(memberAccountMoneyChangeInfoVo); } } return Result.ok(arrayList); } @Override public Result getWalletContractRecords(String symbol) { public Result getWalletContractRecords() { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); String symbol = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); List<MemberAccountMoneyChange> contractRecordList = memberAccountMoneyChangeDao.selectWalletContractRecordsByMemIdTypeSymbol(symbol,memberId); return Result.ok(contractRecordList); ArrayList<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>(); if(ObjectUtil.isNotNull(contractRecordList)) { for(MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) { MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo(); memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount()); memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent()); memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus()); memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol()); memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType()); arrayList.add(memberAccountMoneyChangeInfoVo); } } return Result.ok(arrayList); } @Override @@ -371,7 +392,20 @@ List<MemberAccountMoneyChange> contractRecordList = memberAccountMoneyChangeDao.selectWalletAgentRecordByMemIdTypeSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue(),memberId); return Result.ok(contractRecordList); ArrayList<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>(); if(ObjectUtil.isNotNull(contractRecordList)) { for(MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) { MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo(); memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount()); memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent()); memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus()); memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol()); memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType()); arrayList.add(memberAccountMoneyChangeInfoVo); } } return Result.ok(arrayList); } @Override @@ -472,15 +506,12 @@ CnyUsdtExchange cnyUsdtExchange =cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); BigDecimal multiply = availableBalance.multiply(cnyUsdt); walletAgent.setAvailableBalance(availableBalance); Map<String,Object> map = new HashMap<String, Object>(); map.put(MemberWalletCoinEnum.WALLETCOINUSDT.getValue(), availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); map.put(MemberWalletCoinEnum.WALLETAGENT.getValue(), walletAgent); map.put(MemberWalletCoinEnum.WALLETCOINCNY.getValue(), multiply.setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(map); MemberWalletAgentInfoVo memberWalletAgentInfoVo = new MemberWalletAgentInfoVo(); memberWalletAgentInfoVo.setTotalBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletAgentInfoVo.setTotalRMBBalance(multiply.setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(memberWalletAgentInfoVo); } }