| | |
| | | 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.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 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; |
| | |
| | | private final MemberCoinAddressMapper memberCoinAddressMapper; |
| | | |
| | | private final MemberAuthenticationMapper memberAuthenticationMapper; |
| | | |
| | | private final AgentFriendRelationMapper agentFriendRelationMapper; |
| | | |
| | | @Override |
| | | public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, |
| | | QueryRequest request) { |
| | | Page<AgentFriendRelationEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AgentFriendRelationEntity> findmemberQuickBuySaleListInPage = agentFriendRelationMapper.findAgentFriendRelationListInPage(page, agentFriendRelationEntity); |
| | | List<AgentFriendRelationEntity> records = findmemberQuickBuySaleListInPage.getRecords(); |
| | | |
| | | if(records != null && records.size() > 0) { |
| | | for(AgentFriendRelationEntity agentFriendRelation : records) { |
| | | List<String> arrayList = new ArrayList<>(); |
| | | String inviteId = agentFriendRelation.getInviteId(); |
| | | String inviteIdCZ = null; |
| | | String inviteIdTX = null; |
| | | String inviteIdSY = null; |
| | | // 当前邀请码下的所有代理MemberID |
| | | List<AgentFriendRelationEntity> lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteId); |
| | | |
| | | List<String> 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<String> memberlowLevel = memberMapper.selectMemberBylowLevelInviteId(lowLevelMemberId.getInviteId()); |
| | | arrayList.addAll(memberlowLevel); |
| | | } |
| | | Set<String> set = new HashSet<>(); |
| | | List<String> 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 |
| | |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | } |
| | | |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("提币"); |
| | | memberAccountMoneyChangeEntity.setMemberId(memberId); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | Map<String, Object> columnMaps = new HashMap<>(); |
| | | columnMaps.put("withdraw_id", selectById.getId()); |
| | | List<MemberAccountMoneyChangeEntity> selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); |
| | | |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); |
| | | 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); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount().negate()); |
| | | memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); |
| | | |
| | | selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y); |
| | | memberCoinWithdrawMapper.updateById(selectById); |
| | |
| | | memberWalletCoinMapper.updateById(walletCoin); |
| | | |
| | | // 提币退款记录 |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("提币"); |
| | | memberAccountMoneyChangeEntity.setMemberId(memberId); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | Map<String, Object> columnMaps = new HashMap<>(); |
| | | columnMaps.put("withdraw_id", selectById.getId()); |
| | | List<MemberAccountMoneyChangeEntity> selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); |
| | | |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_FAIL_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); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); |
| | | |
| | | selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_N); |
| | | memberCoinWithdrawMapper.updateById(selectById); |
| | |
| | | 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(); |
| | | } |
| | | |
| | | } |