From 51143d89c943f7c837218e024aa6c5017913d8f8 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 04 Mar 2022 15:48:24 +0800
Subject: [PATCH] 20222223
---
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java | 41 +++++++++++++
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 91 ++++++++++++++++++++++++++++++
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 10 +++
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java | 2
4 files changed, 144 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
index f4ca621..45fa9f3 100644
--- a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
+++ b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -365,5 +365,15 @@
public Result memberAddCoinAddressIn(@RequestBody @Valid MemberAddCoinAddressInDto memberAddCoinAddressDto) {
return memberService.memberAddCoinAddressIn(memberAddCoinAddressDto);
}
+
+ /**
+ * 提币申请--内转
+ * @return
+ */
+ @ApiOperation(value="提交提币申请--内转", notes="提交提币申请--内转")
+ @PostMapping(value="/memberSubmitCoinApplyIn")
+ public Result memberSubmitCoinApplyIn(@RequestBody @Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto) {
+ return memberService.memberSubmitCoinApplyIn(memberSubmitCoinApplyInDto);
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java
new file mode 100644
index 0000000..a6a4371
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java
@@ -0,0 +1,41 @@
+package com.xcong.excoin.modules.member.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 = "MemberSubmitCoinApplyInDto", description = "参数接收类")
+public class MemberSubmitCoinApplyInDto {
+
+ @NotNull(message = "账户名")
+ @ApiModelProperty(value = "账户名", example = "asfdsdafsdafdsaf1231232sdfsa")
+ private String address;
+
+ @NotNull(message = "币数量不能为空")
+ @ApiModelProperty(value = "币数量", example = "10")
+ private BigDecimal coinNumber;
+
+ @NotNull(message = "交易密码不能为空")
+ @ApiModelProperty(value = "交易密码", example = "123456")
+ private String tradePassword;
+
+ @NotNull(message = "验证码不能为空")
+ @ApiModelProperty(value = "验证码", example = "123456")
+ private String code;
+
+ @NotNull(message = "验证方式不能为空")
+ @ApiModelProperty(value = "验证方式", example = "13412341234")
+ private String account;
+
+ @NotNull(message = "币种不能为空")
+ @ApiModelProperty(value = "币种", example = "BTC")
+ private String symbol;
+
+ @ApiModelProperty(value = "币种子类", example = "ERC20")
+ private String lable;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
index dbb892e..19ba0c7 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
@@ -84,4 +84,6 @@
Result memberCoinAddressInList();
Result memberAddCoinAddressIn(MemberAddCoinAddressInDto memberAddCoinAddressDto);
+
+ Result memberSubmitCoinApplyIn(MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto);
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 4433b3a..fac65f8 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1135,6 +1135,97 @@
memberCoinAddressInDao.insert(memberCoinAddressInEntity);
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
}
+
+ @Override
+ @Transactional
+ public Result memberSubmitCoinApplyIn(@Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto) {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ MemberEntity member = memberDao.selectById(memberId);
+ if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0077"));
+ }
+ if (StrUtil.isEmpty(member.getTradePassword())) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0081"));
+ }
+ if (member.getTradePassword() == null) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0082"));
+ }
+ if (!member.getTradePassword().equals(SecureUtil.md5(memberSubmitCoinApplyInDto.getTradePassword()))) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0082"));
+ }
+
+ boolean flag = commonservice.verifyCode(memberSubmitCoinApplyInDto.getAccount(), memberSubmitCoinApplyInDto.getCode());
+ if (flag) {
+ //获取到账地址
+ String address = memberSubmitCoinApplyInDto.getAddress();
+ //根据账号获取会员信息
+ MemberEntity selectMemberInfoByAccount = memberDao.selectMemberInfoByAccount(address);
+ if(ObjectUtil.isEmpty(selectMemberInfoByAccount)) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0087"));
+ }
+ Long memberInfoId = selectMemberInfoByAccount.getId();
+ String symbol = memberSubmitCoinApplyInDto.getSymbol();
+
+ String addressIn = "";
+ Map<String, Object> columnMapAddress = new HashMap<>();
+ columnMapAddress.put("member_id", memberInfoId);
+ columnMapAddress.put("symbol", symbol);
+ List<MemberCoinAddressEntity> selectByMap2 = memberCoinAddressDao.selectByMap(columnMapAddress);
+ if(CollUtil.isEmpty(selectByMap2)) {
+// return Result.fail(MessageSourceUtils.getString("member_service_0087"));
+ addressIn = address;
+ } else {
+ MemberCoinAddressEntity memberCoinAddressEntity = selectByMap2.get(0);
+ if(StrUtil.isEmpty(memberCoinAddressEntity.getAddress())){
+ addressIn = selectMemberInfoByAccount.getInviteId();
+ }else{
+ addressIn = memberCoinAddressEntity.getAddress();
+ }
+ }
+
+ MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyInDto.getSymbol());
+ BigDecimal availableBalance = walletCoin.getAvailableBalance();
+ BigDecimal coinNumber = memberSubmitCoinApplyInDto.getCoinNumber();
+ if (availableBalance.compareTo(BigDecimal.ZERO) > 0
+ && availableBalance.compareTo(coinNumber) >= 0) {
+ //新增提币记录
+ MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
+ memberCoinWithdrawEntity.setAddress(addressIn);
+ memberCoinWithdrawEntity.setAmount(coinNumber);
+ memberCoinWithdrawEntity.setFeeAmount(BigDecimal.ZERO);
+ memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
+ memberCoinWithdrawEntity.setMemberId(memberId);
+ memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
+ memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_YES);
+ memberCoinWithdrawEntity.setLabel(memberSubmitCoinApplyInDto.getLable());
+ memberCoinWithdrawDao.insert(memberCoinWithdrawEntity);
+ BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber);
+ walletCoin.setAvailableBalance(subtract);
+ BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber);
+ walletCoin.setFrozenBalance(add);
+ memberWalletCoinDao.updateById(walletCoin);
+
+ MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
+ accountRecord.setContent("提币");
+ accountRecord.setMemberId(memberId);
+ accountRecord.setAmount(coinNumber);
+ accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId());
+ accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
+ accountRecord.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
+ accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+ memberAccountMoneyChangeDao.insert(accountRecord);
+
+ ThreadPoolUtils.sendDingTalk(3);
+ return Result.ok(MessageSourceUtils.getString("member_service_0086"));
+ } else {
+ return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ }
+
+ } else {
+ return Result.fail(MessageSourceUtils.getString("member_service_0039"));
+ }
+ }
}
--
Gitblit v1.9.1