From 6c2e9ba62c418185361179e7014862c481f34e17 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 09 Mar 2022 14:22:09 +0800
Subject: [PATCH] conflect merge
---
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java | 26 ++++
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java | 41 ++++++
src/main/java/com/xcong/excoin/modules/member/dao/MemberCoinAddressInDao.java | 8 +
src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java | 29 ++++
src/main/java/com/xcong/excoin/modules/member/parameter/vo/MemberCoinAddressInListVo.java | 25 ++++
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 145 ++++++++++++++++++++++++
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 48 +++++++
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java | 8 +
8 files changed, 326 insertions(+), 4 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 47d17e7..3affd5a 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
@@ -346,8 +346,8 @@
@ApiOperation(value="提交提币申请", notes="提交提币申请")
@PostMapping(value="/memberSubmitCoinApply")
public Result memberSubmitCoinApply(@RequestBody @Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) {
- return Result.fail("暂未开放提币");
-// return memberService.memberSubmitCoinApply(memberSubmitCoinApplyDto);
+// return Result.fail("暂未开放提币");
+ return memberService.memberSubmitCoinApply(memberSubmitCoinApplyDto);
}
/**
@@ -360,5 +360,47 @@
public Result memberTeam(@RequestBody @Valid MemberTeamRecordsPageDto memberTeamRecordsPageDto) {
return memberService.memberTeam(memberTeamRecordsPageDto);
}
-
+
+ /**
+ * 获取内转提币地址
+ * @return
+ */
+ @ApiOperation(value = "获取内转提币地址列表", notes = "获取内转提币地址列表")
+ @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberCoinAddressInListVo.class)})
+ @GetMapping(value = "/memberCoinAddressInList")
+ public Result memberCoinAddressInList() {
+ return memberService.memberCoinAddressInList();
+ }
+
+ /**
+ * 添加内转提币地址
+ * @return
+ */
+ @ApiOperation(value = "添加内转提币地址", notes = "添加内转提币地址")
+ @PostMapping(value = "/memberAddCoinAddressIn")
+ 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);
+ }
+
+ /**
+ * 删除内转提币地址
+ * @return
+ */
+ @ApiOperation(value="删除内转提币地址", notes="删除内转提币地址")
+ @PostMapping(value="/memberDelCoinAddressIn")
+ public Result memberDelCoinAddressIn(@RequestBody @Valid MemberDelCoinAddressDto memberDelCoinAddressDto) {
+ return memberService.memberDelCoinAddressIn(memberDelCoinAddressDto);
+ }
+
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberCoinAddressInDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberCoinAddressInDao.java
new file mode 100644
index 0000000..280d046
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberCoinAddressInDao.java
@@ -0,0 +1,8 @@
+package com.xcong.excoin.modules.member.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.MemberCoinAddressInEntity;
+
+public interface MemberCoinAddressInDao extends BaseMapper<MemberCoinAddressInEntity> {
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java
new file mode 100644
index 0000000..1f2bc65
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java
@@ -0,0 +1,29 @@
+package com.xcong.excoin.modules.member.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.system.base.BaseEntity;
+
+import lombok.Data;
+
+@Data
+@TableName("member_coin_address_in")
+public class MemberCoinAddressInEntity extends BaseEntity {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ /**
+ * 会员ID
+ */
+ private Long memberId;
+ /**
+ * 备注
+ */
+ private String content;
+ /**
+ * 账号
+ */
+ private String account;
+
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java
new file mode 100644
index 0000000..3127197
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java
@@ -0,0 +1,26 @@
+package com.xcong.excoin.modules.member.parameter.dto;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+@ApiModel(value = "MemberAddCoinAddressInDto", description = "参数接收类")
+public class MemberAddCoinAddressInDto {
+
+ /**
+ * 地址
+ */
+ @NotNull(message = "账号不能为空")
+ @ApiModelProperty(value = "账号")
+ private String address;
+ /**
+ * 备注
+ */
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+}
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/parameter/vo/MemberCoinAddressInListVo.java b/src/main/java/com/xcong/excoin/modules/member/parameter/vo/MemberCoinAddressInListVo.java
new file mode 100644
index 0000000..591c4fc
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/parameter/vo/MemberCoinAddressInListVo.java
@@ -0,0 +1,25 @@
+package com.xcong.excoin.modules.member.parameter.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "MemberCoinAddressInListVo", description = "返回")
+public class MemberCoinAddressInListVo {
+
+ @ApiModelProperty(value = "ID")
+ private Long id;
+ /**
+ * 备注
+ */
+ @ApiModelProperty(value = "备注")
+ private String content;
+ /**
+ * 账号
+ */
+ @ApiModelProperty(value = "账号")
+ private String account;
+
+
+}
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 9224431..2e18469 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,12 @@
Result memberTeam(MemberTeamRecordsPageDto memberTeamRecordsPageDto);
Result findDefaultWay();
+
+ Result memberCoinAddressInList();
+
+ Result memberAddCoinAddressIn(MemberAddCoinAddressInDto memberAddCoinAddressDto);
+
+ Result memberSubmitCoinApplyIn(MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto);
+
+ Result memberDelCoinAddressIn(MemberDelCoinAddressDto memberDelCoinAddressDto);
}
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 bdb2171..ed98add 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
@@ -81,6 +81,9 @@
private MemberWalletCoinDao memberWalletCoinDao;
@Resource
+ private MemberCoinAddressInDao memberCoinAddressInDao;
+
+ @Resource
private ZhiYaDao zhiYaDao;
@Resource
@@ -1126,12 +1129,152 @@
DefaultWayVo defaultWayVo = new DefaultWayVo();
MemberPaymentMethodEntity defualtMethod = this.memberPaymentMethodDao.selectDefualtMethod(memberId, null, "1");
- if(ObjectUtil.isNotEmpty(defualtMethod)){
+ if (ObjectUtil.isNotEmpty(defualtMethod)) {
String paymentType = defualtMethod.getPaymentType();
defaultWayVo.setPaymentType(paymentType);
}
return Result.ok(defaultWayVo);
}
+
+ public Result memberCoinAddressInList() {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberCoinAddressInEntity> selectByMap = memberCoinAddressInDao.selectByMap(columnMap );
+ List<MemberCoinAddressInListVo> arrayList = new ArrayList<>();
+ if (CollUtil.isNotEmpty(selectByMap)) {
+ for (MemberCoinAddressInEntity memberCoinAddressInEntity : selectByMap) {
+ MemberCoinAddressInListVo memberCoinAddressInListVo = new MemberCoinAddressInListVo();
+ memberCoinAddressInListVo.setId(memberCoinAddressInEntity.getId());
+ memberCoinAddressInListVo.setAccount(memberCoinAddressInEntity.getAccount());
+ memberCoinAddressInListVo.setContent(memberCoinAddressInEntity.getContent());
+ arrayList.add(memberCoinAddressInListVo);
+ }
+ }
+ return Result.ok(arrayList);
+ }
+
+ @Override
+ @Transactional
+ public Result memberAddCoinAddressIn(MemberAddCoinAddressInDto memberAddCoinAddressDto) {
+
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ String address = memberAddCoinAddressDto.getAddress();
+ String remark = memberAddCoinAddressDto.getRemark();
+
+ MemberCoinAddressInEntity memberCoinAddressInEntity = new MemberCoinAddressInEntity();
+ memberCoinAddressInEntity.setAccount(address);
+ memberCoinAddressInEntity.setMemberId(memberId);
+ memberCoinAddressInEntity.setContent(remark);
+ 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"));
+ }
+ }
+
+ @Override
+ public Result memberDelCoinAddressIn(MemberDelCoinAddressDto memberDelCoinAddressDto) {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ MemberEntity member = memberDao.selectById(memberId);
+ if (ObjectUtil.isNotEmpty(member)) {
+ Long id = memberDelCoinAddressDto.getId();
+ memberCoinAddressInDao.deleteById(id);
+ }
+ return Result.ok("success");
+ }
}
--
Gitblit v1.9.1