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