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