package com.xcong.excoin.modules.member.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity; import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper; import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper; import com.xcong.excoin.modules.member.mapper.MemberCoinChargeMapper; import com.xcong.excoin.modules.member.mapper.MemberCoinWithdrawMapper; import com.xcong.excoin.modules.member.mapper.MemberMapper; import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper; import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; import com.xcong.excoin.modules.member.service.IMemberService; import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; import com.xcong.excoin.modules.member.vo.MemberDataInfoVo; import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo; import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo; import lombok.RequiredArgsConstructor; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.validation.Valid; import javax.validation.constraints.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * @author wzy * @date 2020-06-10 **/ @Service @RequiredArgsConstructor public class MemberServiceImpl extends ServiceImpl implements IMemberService { private final MemberMapper memberMapper; private final MemberQuickBuySaleMapper memberQuickBuySaleMapper; private final MemberWalletCoinMapper memberWalletCoinMapper; private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper; private final MemberCoinChargeMapper memberCoinChargeMapper; private final MemberCoinWithdrawMapper memberCoinWithdrawMapper; private final MemberCoinAddressMapper memberCoinAddressMapper; private final MemberAuthenticationMapper memberAuthenticationMapper; private final AgentFriendRelationMapper agentFriendRelationMapper; @Override public IPage findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findmemberQuickBuySaleListInPage = agentFriendRelationMapper.findAgentFriendRelationListInPage(page, agentFriendRelationEntity); List records = findmemberQuickBuySaleListInPage.getRecords(); List arraylist = new ArrayList<>(); if(records != null && records.size() > 0) { for(AgentFriendRelationEntity agentFriendRelation : records) { String inviteId = agentFriendRelation.getInviteId(); if("90457646".equals(inviteId)) { //该邀请码下的所有代理 Map columnMap = new HashMap<>(); columnMap.put("referer_id", "90457646"); List selectByMap = agentFriendRelationMapper.selectByMap(columnMap); if(selectByMap != null && selectByMap.size() > 0) { int i = 1; for(AgentFriendRelationEntity agentFriendRelationEntityTeam : selectByMap){ agentFriendRelationEntityTeam.setTeam(i+""); arraylist.add(agentFriendRelationEntityTeam); String inviteIdTeam = agentFriendRelationEntityTeam.getInviteId(); // 当前邀请码下的所有代理MemberID List lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteIdTeam); if(lowLevelList != null && lowLevelList.size() > 0) { for(AgentFriendRelationEntity lowLevelAgentFriendRelationEntity: lowLevelList) { lowLevelAgentFriendRelationEntity.setTeam(i+""); arraylist.add(lowLevelAgentFriendRelationEntity); } } i++; } } } if(arraylist != null && arraylist.size() > 0) { for(AgentFriendRelationEntity teamagentFriendRelationEntity : arraylist) { if(inviteId.equals(teamagentFriendRelationEntity.getInviteId())) { String team = teamagentFriendRelationEntity.getTeam(); agentFriendRelation.setTeam(team); } } } } } if(records != null && records.size() > 0) { for(AgentFriendRelationEntity agentFriendRelation : records) { List arrayList = new ArrayList<>(); String inviteId = agentFriendRelation.getInviteId(); String inviteIdCZ = null; String inviteIdTX = null; String inviteIdSY = null; // 当前邀请码下的所有代理MemberID List lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteId); List memberLevel = memberMapper.selectMemberBylowLevelInviteId(inviteId); arrayList.addAll(memberLevel); if(lowLevelList != null && lowLevelList.size() > 0) { for(AgentFriendRelationEntity lowLevelMemberId : lowLevelList) { Long memberId = lowLevelMemberId.getMemberId(); arrayList.add(memberId.toString()); List memberlowLevel = memberMapper.selectMemberBylowLevelInviteId(lowLevelMemberId.getInviteId()); arrayList.addAll(memberlowLevel); } Set set = new HashSet<>(); List newList = new ArrayList<>(); set.addAll(arrayList); newList.addAll(set); //获取对应的充值提现 double czNumber = 0; double txNumber = 0; if(newList != null && newList.size() > 0) { agentFriendRelation.setPromotionNumber(newList.size()); for(String memberId : newList) { //充币 String selectCBByMemberId = memberCoinChargeMapper.selectCBByMemberId(memberId); //充值 String selectCZByMemberI = memberQuickBuySaleMapper.selectCZByMemberId(memberId); //提币 String selectTBByMemberId = memberCoinWithdrawMapper.selectTBByMemberId(memberId); //提现 String selectTXByMemberId = memberQuickBuySaleMapper.selectTXByMemberId(memberId); czNumber = czNumber + (selectCBByMemberId == null ? 0 : Double.parseDouble(selectCBByMemberId)); czNumber = czNumber + (selectCZByMemberI == null ? 0 : Double.parseDouble(selectCZByMemberI)); txNumber = txNumber + (selectTBByMemberId == null ? 0 : Double.parseDouble(selectTBByMemberId)); txNumber = txNumber + (selectTXByMemberId == null ? 0 : Double.parseDouble(selectTXByMemberId)); } } inviteIdCZ = czNumber+""; inviteIdTX = txNumber+""; inviteIdSY = (czNumber-txNumber)+""; } agentFriendRelation.setTotalRecharge(inviteIdCZ == null ? "0.0" : inviteIdCZ); agentFriendRelation.setTotalWithdrawal(inviteIdTX == null ? "0.0" : inviteIdTX); agentFriendRelation.setTotalPerformance(inviteIdSY == null ? "0.0" : inviteIdSY); } } return findmemberQuickBuySaleListInPage; } @Override public IPage findMemberListInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); return this.baseMapper.selectMemberListInPage(page, memberEntity); } @Override public IPage findmemberQuickBuySaleListInPage( MemberQuickBuySaleEntity memberQuickBuySaleEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findmemberQuickBuySaleListInPage = memberQuickBuySaleMapper.findmemberQuickBuySaleListInPage(page, memberQuickBuySaleEntity); return findmemberQuickBuySaleListInPage; } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberChargeUsdtConfirm(Long id) { MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); if(!MemberQuickBuySaleEntity.CHARGE_STATUS_PAID.equals(memberQuickBuySaleEntity.getOrderStatus())) { return new FebsResponse().message("只允许已付款状态操作"); } Long memberId = memberQuickBuySaleEntity.getMemberId(); BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt(); String walletCode = "USDT"; MemberEntity selectById = this.baseMapper.selectById(memberId); if(ObjectUtils.isEmpty(selectById)) { return new FebsResponse().message("用户已不存在"); } //获取币币钱包 MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance(); BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance(); memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt)); memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt)); // 更新 memberWalletCoinMapper.updateById(memberWalletCoinEntity); // 更新状态 memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CHECKED); memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); //添加币币资金划转历史记录 MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); memberAccountMoneyChangeEntity.setContent("OTC转入"); memberAccountMoneyChangeEntity.setMemberId(memberId); memberAccountMoneyChangeEntity.setAmount(amountUsdt); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); memberAccountMoneyChangeEntity.setSymbol("USDT"); memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setCreateTime(new Date()); memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setUpdateTime(new Date()); memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); /** * todo SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式 String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT"; //发送短信提醒 String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。"; SmsUtils.hxSmsSend(member.getPhone(), smsContent); */ return new FebsResponse().success(); } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberChargeUsdtCancel(@NotNull(message = "{required}") Long id) { MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); if(MemberQuickBuySaleEntity.CHARGE_STATUS_CHECKED.equals(memberQuickBuySaleEntity.getOrderStatus()) || MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER.equals(memberQuickBuySaleEntity.getOrderStatus()) || MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM.equals(memberQuickBuySaleEntity.getOrderStatus())) { return new FebsResponse().message("不允许系统撤单操作"); } memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM); memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); return new FebsResponse().success(); } @Override public IPage findmemberQuickSaleListInPage(MemberQuickBuySaleEntity memberQuickBuySaleEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findmemberQuickBuySaleListInPage = memberQuickBuySaleMapper.findmemberQuickSaleListInPage(page, memberQuickBuySaleEntity); return findmemberQuickBuySaleListInPage; } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberExtractUsdtCancel(@NotNull(message = "{required}") Long id) { MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); if(!MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE.equals(memberQuickBuySaleEntity.getOrderStatus())) { return new FebsResponse().message("只允许待付款状态操作"); } Long memberId = memberQuickBuySaleEntity.getMemberId(); BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt(); String walletCode = "USDT"; MemberEntity selectById = this.baseMapper.selectById(memberId); if(ObjectUtils.isEmpty(selectById)) { return new FebsResponse().message("用户已不存在"); } //获取币币钱包 MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); BigDecimal frozenBalance = memberWalletCoinEntity.getFrozenBalance(); BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance(); BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance(); memberWalletCoinEntity.setFrozenBalance(frozenBalance.subtract(amountUsdt)); memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt)); memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt)); // 更新 memberWalletCoinMapper.updateById(memberWalletCoinEntity); // 更新状态 memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM); memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); /** * todo SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式 String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT"; //发送短信提醒 String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。"; SmsUtils.hxSmsSend(member.getPhone(), smsContent); */ return new FebsResponse().success(); } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberExtractUsdtConfirm(@NotNull(message = "{required}") Long id) { MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); if(!MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE.equals(memberQuickBuySaleEntity.getOrderStatus())) { return new FebsResponse().message("只允许待付款状态操作"); } Long memberId = memberQuickBuySaleEntity.getMemberId(); BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt(); String walletCode = "USDT"; MemberEntity selectById = this.baseMapper.selectById(memberId); if(ObjectUtils.isEmpty(selectById)) { return new FebsResponse().message("用户已不存在"); } //获取币币钱包 MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); BigDecimal frozenBalance = memberWalletCoinEntity.getFrozenBalance(); memberWalletCoinEntity.setFrozenBalance(frozenBalance.subtract(amountUsdt)); memberWalletCoinMapper.updateById(memberWalletCoinEntity); memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_PAID); memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); //添加币币资金划转历史记录 MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); memberAccountMoneyChangeEntity.setContent("提现"); memberAccountMoneyChangeEntity.setMemberId(memberId); memberAccountMoneyChangeEntity.setAmount(amountUsdt); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); memberAccountMoneyChangeEntity.setSymbol(walletCode); memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setCreateTime(new Date()); memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setUpdateTime(new Date()); memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); /** SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String chargeTime = format.format(memberQuickBuySaleEntity.getUpdateTime()); // 将当前时间袼式化为指定的格式 String usdt = amountUsdt+"USDT"; //发送短信提醒 String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"提现"+usdt+"已成功到账,请您及时查收!订单号为:"+memberQuickBuySaleEntity.getOrderCode()+"。"; SmsUtils.hxSmsSend(selectById.getPhone(), smsContent); * */ return new FebsResponse().success(); } @Override public IPage findMemberApplyCoinListInPage(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findmemberQuickBuySaleListInPage = memberCoinChargeMapper.findMemberApplyCoinListInPage(page, memberCoinChargeEntity); return findmemberQuickBuySaleListInPage; } @Override public IPage findmemberWithdrawCoinListInPage( MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findmemberQuickBuySaleListInPage = memberCoinWithdrawMapper.findmemberWithdrawCoinListInPage(page, memberCoinWithdrawEntity); List records = findmemberQuickBuySaleListInPage.getRecords(); if(records != null && records.size() > 0) { for(MemberCoinWithdrawVo memberCoinWithdrawVo : records) { BigDecimal amount = memberCoinWithdrawVo.getAmount(); BigDecimal feeAmount = memberCoinWithdrawVo.getFeeAmount(); BigDecimal subtract = amount.subtract(feeAmount); memberCoinWithdrawVo.setRealAmount(subtract); } } return findmemberQuickBuySaleListInPage; } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) { MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id); Long memberId = selectById.getMemberId(); String symbol = selectById.getSymbol(); String address = selectById.getAddress(); int status = selectById.getStatus(); if(status != 1) { return new FebsResponse().fail().message("只有等待审核的状态才能确认!"); } // 查询币币钱包 MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol); BigDecimal total = walletCoin.getTotalBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); walletCoin.setTotalBalance(total); BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()); walletCoin.setFrozenBalance(frozen); memberWalletCoinMapper.updateById(walletCoin); if ("Y".equals(selectById.getIsInside())) { Map columnMap = new HashMap<>(); columnMap.put("symbol", symbol); columnMap.put("address", address); // 如果是内部转账 则需要将币加到内部地址 List selectByMap = memberCoinAddressMapper.selectByMap(columnMap); if(selectByMap == null || selectByMap.isEmpty()) { return new FebsResponse().fail().message("地址有误,请拒绝!"); } Long aimMemberId = selectByMap.get(0).getMemberId(); MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol); BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(selectById.getAmount()); BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(selectById.getAmount()); aimWalletCoin.setTotalBalance(addTotal); aimWalletCoin.setAvailableBalance(addAvailable); memberWalletCoinMapper.updateById(aimWalletCoin); MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); memberAccountMoneyChangeEntity.setContent("收款"); memberAccountMoneyChangeEntity.setMemberId(aimMemberId); memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setCreateTime(new Date()); memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setUpdateTime(new Date()); memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); } Map columnMaps = new HashMap<>(); columnMaps.put("withdraw_id", selectById.getId()); List selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); memberAccountMoneyChangeEntity.setAmount(selectById.getAmount().negate()); memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y); memberCoinWithdrawMapper.updateById(selectById); /** //短信提醒 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String chargeTime = format.format(new Date()); // 将当前时间袼式化为指定的格式 String usdt = selectById.getAmount()+"USDT"; * 发送短信提醒 todo String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"提现"+usdt+"已成功到账,请您及时查收!"; SmsUtils.hxSmsSend(member.getPhone(), smsContent); */ return new FebsResponse().success(); } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberWithdrawCoinCancel(@NotNull(message = "{required}") Long id) { MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id); Long memberId = selectById.getMemberId(); String symbol = selectById.getSymbol(); int status = selectById.getStatus(); if(status != 1) { return new FebsResponse().fail().message("只有等待审核的状态才能拒绝!"); } // 查询币币钱包 MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol); BigDecimal available = walletCoin.getAvailableBalance().add(selectById.getAmount()); walletCoin.setAvailableBalance(available); BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()); walletCoin.setFrozenBalance(frozen); memberWalletCoinMapper.updateById(walletCoin); // 提币退款记录 Map columnMaps = new HashMap<>(); columnMaps.put("withdraw_id", selectById.getId()); List selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_FAIL_INTEGER); memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_N); memberCoinWithdrawMapper.updateById(selectById); return new FebsResponse().success(); } @Override public MemberAuthenticationVo selectMemberAuthenticationById(long id) { MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id); String firstName = memberAuthenticationEntity.getFirstName(); String secondName = memberAuthenticationEntity.getSecondName(); memberAuthenticationEntity.setRealName(firstName+"-"+secondName); return memberAuthenticationEntity; } @Override @Transactional(rollbackFor = Exception.class) public FebsResponse memberDetailConfirm(@Valid MemberDetailConfirmDto memberDetailConfirmDto) { Long id = memberDetailConfirmDto.getId(); MemberEntity selectById = memberMapper.selectById(id); Integer certifyStatus = selectById.getCertifyStatus(); if(!MemberEntity.CERTIFY_STATUS_ING.equals(certifyStatus)) { return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); } MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id); if(memberDetailConfirmDto.getIsok() == 1) { selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y); }else { selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_N); } selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo()); memberMapper.updateById(selectById); return new FebsResponse().success(); } @Override public List selectMemberDataInfoById(long id) { Map columnMap = new HashMap<>(); columnMap.put("member_id", id); List selectByMap = memberCoinChargeMapper.selectByMap(columnMap); return selectByMap; } @Override public IPage findMemberDataInfoDtoListInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.selectMemberDataInfoDtoListInPage(page, memberEntity); //USDT充币总额+USDT提币总额 String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealData(); String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealData(); //USDT充值总额+USDT提现总额 String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealData(); String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealData(); //佣金 String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealData(); //开仓手续费总额 String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealData(); //平仓总手续费 String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealData(); //总盈亏 String rewardratioByMid = memberMapper.selectRewardratioForBasicRealData(); //持仓人数 String notNullNumber = memberMapper.selectSFCCForBasicRealData(); //币币账户不为空的人数 String walletNumber = memberMapper.selectBBZHForBasicRealData(); //合约账户不为空的人数 String walletCoinNumber = memberMapper.selectHYZHForBasicRealData(); //持仓手续费 String doingPrice = memberMapper.selectprepriceForBasicRealData(); //账户金额 String walletNum = memberMapper.selectBBZCForBasicRealData(); String walletCoinNum = memberMapper.selectHYZCForBasicRealData(); String agentNum = memberMapper.selectDLZCForBasicRealData(); double platformProfitAndLoss = 0 ; platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB)); platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ)); platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS)); platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX)); List records = selectMemberListInPage.getRecords(); for(MemberDataInfoVo memberDataInfoVo : records) { memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ)); memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX)); memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB)); memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS)); memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid); memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid); memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid); memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid); memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber); memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber); memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber); memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+""); memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice); memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum); memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum); memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum); } selectMemberListInPage.setTotal(1); return selectMemberListInPage; } @Override public MemberEntity selectMemberByid(long id) { MemberEntity selectById = memberMapper.selectById(id); return selectById; } @Override public FebsResponse memberDataInfoList(@NotNull(message = "{required}") long id) { Map columnMap = new HashMap<>(); columnMap.put("member_id", id); columnMap.put("STATUS", 2); List selectByMap = memberCoinWithdrawMapper.selectByMap(columnMap); return new FebsResponse().data(selectByMap); } @Override public FebsResponse addCoinConfirm(@Valid MemberEntity memberEntity) { Long memberId = memberEntity.getId(); String walletCode = "USDT"; BigDecimal amountUsdt = memberEntity.getCoinNumber(); MemberEntity selectById = this.baseMapper.selectById(memberId); if(ObjectUtils.isEmpty(selectById)) { return new FebsResponse().message("用户已不存在"); } //获取币币钱包 MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance(); BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance(); memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt)); memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt)); // 更新 memberWalletCoinMapper.updateById(memberWalletCoinEntity); //添加币币资金划转历史记录 MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); memberAccountMoneyChangeEntity.setContent("充值"); memberAccountMoneyChangeEntity.setMemberId(memberId); memberAccountMoneyChangeEntity.setAmount(amountUsdt); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); memberAccountMoneyChangeEntity.setSymbol("USDT"); memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setCreateTime(new Date()); memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); memberAccountMoneyChangeEntity.setUpdateTime(new Date()); memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); /** * todo SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式 String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT"; //发送短信提醒 String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。"; SmsUtils.hxSmsSend(member.getPhone(), smsContent); */ return new FebsResponse().success(); } }