From a9fbfbd5dbabcad09cd06e4b07cda8c5a01183ff Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 09 Apr 2021 18:44:53 +0800 Subject: [PATCH] Merge branch 'activity' of http://120.27.238.55:7000/r/exchange into activity --- src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 300 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 269 insertions(+), 31 deletions(-) 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 ba1e6af..a02656c 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 @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.contants.AppContants; @@ -13,22 +14,20 @@ import com.xcong.excoin.common.response.Result; import com.xcong.excoin.common.system.dto.RegisterDto; import com.xcong.excoin.common.system.service.CommonService; +import com.xcong.excoin.modules.activity.dao.ActivityMainDao; +import com.xcong.excoin.modules.activity.dao.ActivityMemberDetailDao; +import com.xcong.excoin.modules.activity.dao.ActivityReceiveRecordDao; +import com.xcong.excoin.modules.activity.dao.ActivitySubDao; +import com.xcong.excoin.modules.activity.entity.ActivityMain; +import com.xcong.excoin.modules.activity.entity.ActivityMemberDetail; +import com.xcong.excoin.modules.activity.entity.ActivityReceiveRecord; +import com.xcong.excoin.modules.activity.entity.ActivitySub; import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; +import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; import com.xcong.excoin.modules.member.dao.*; import com.xcong.excoin.modules.member.entity.*; -import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberAuthenticationDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberBindEmailDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberBindPhoneDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberDelCoinAddressDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberDelPaymethodDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberForgetPwdDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberPaymethodDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberSubmitCoinApplyDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberUpdatePwdDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradePwdDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradersPwdTimeDto; +import com.xcong.excoin.modules.member.parameter.dto.*; import com.xcong.excoin.modules.member.parameter.vo.*; import com.xcong.excoin.modules.member.service.MemberService; import com.xcong.excoin.modules.platform.dao.PlatformFeeSettingDao; @@ -41,12 +40,14 @@ import com.xcong.excoin.utils.ThreadPoolUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.Put; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -97,6 +98,9 @@ @Resource MemberCoinAddressDao memberCoinAddressDao; + + @Resource + MemberCoinAddressInDao memberCoinAddressInDao; @Resource private CommonService commonservice; @@ -106,6 +110,18 @@ @Resource AppVersionDao appVersionDao; + + @Resource + ActivityMainDao activityMainDao; + @Resource + ActivityMemberDetailDao activityMemberDetailDao; + @Resource + ActivityReceiveRecordDao activityReceiveRecordDao; + @Resource + ActivitySubDao activitySubDao; + + @Resource + private MemberSettingDao memberSettingDao; @Resource private MemberWalletContractSimulateDao memberWalletContractSimulateDao; @@ -154,10 +170,15 @@ member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT); member.setIsForce(1); member.setIsProfit(0); - member.setSpread(BigDecimal.ONE); - member.setClosingSpread(BigDecimal.ONE); - member.setForceParam(BigDecimal.valueOf(0.0015)); + member.setContractPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ALL); memberDao.insert(member); + + MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); + memberSettingEntity.setSpread(BigDecimal.ONE); + memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5)); + memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0055)); + memberSettingEntity.setMemberId(member.getId()); + memberSettingDao.insert(memberSettingEntity); String inviteId = ShareCodeUtil.toSerialCode(member.getId()); member.setInviteId(inviteId); @@ -179,6 +200,15 @@ member.setRefererIds(ids); memberDao.updateById(member); + MemberWalletContractSimulateEntity walletContractSimulate = new MemberWalletContractSimulateEntity(); + walletContractSimulate.setMemberId(member.getId()); + walletContractSimulate.setAvailableBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); + walletContractSimulate.setTotalBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); + walletContractSimulate.setFrozenBalance(AppContants.INIT_MONEY); + walletContractSimulate.setBorrowedFund(AppContants.INIT_MONEY); + walletContractSimulate.setWalletCode(CoinTypeEnum.USDT.name()); + memberWalletContractSimulateDao.insert(walletContractSimulate); + //初始化合约钱包 MemberWalletContractEntity walletContract = new MemberWalletContractEntity(); walletContract.setMemberId(member.getId()); @@ -189,18 +219,8 @@ walletContract.setWalletCode(CoinTypeEnum.USDT.name()); memberWalletContractDao.insert(walletContract); - MemberWalletContractSimulateEntity walletContractSimulate = new MemberWalletContractSimulateEntity(); - walletContractSimulate.setMemberId(member.getId()); - walletContractSimulate.setAvailableBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); - walletContractSimulate.setTotalBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); - walletContractSimulate.setFrozenBalance(AppContants.INIT_MONEY); - walletContractSimulate.setBorrowedFund(AppContants.INIT_MONEY); - walletContractSimulate.setWalletCode(CoinTypeEnum.USDT.name()); - memberWalletContractSimulateDao.insert(walletContractSimulate); - - - // 初始化币币钱包 for (CoinTypeEnum coinTypeEnum : CoinTypeEnum.values()) { + // 初始化币币钱包 MemberWalletCoinEntity walletCoin = new MemberWalletCoinEntity(); walletCoin.setWalletCode(coinTypeEnum.name()); walletCoin.setMemberId(member.getId()); @@ -223,6 +243,42 @@ levelRate.setMemberId(member.getId()); levelRate.setSymbol(symbolEnum.getValue()); memberLevelRateDao.insert(levelRate); + } + /** + * 初始化活动信息 + */ + //获取开始中的活动 + ActivityMain activityMain = activityMainDao.selectById(1); + if(ObjectUtil.isNotEmpty(activityMain)) { + if(ActivityMain.STATE_START == activityMain.getState()) { + //新增【活动记录表】信息 + ActivityReceiveRecord activityReceiveRecord = new ActivityReceiveRecord(); + activityReceiveRecord.setMemberId(member.getId()); + activityReceiveRecord.setMainId(activityMain.getId()); + activityReceiveRecord.setReceiveCoinAmount(BigDecimal.ZERO); + activityReceiveRecord.setReceiveState(ActivityReceiveRecord.RECEIVESTATE_TWO); + Date startTime = new Date(); + Date date = new Date(startTime.getTime() + ActivityReceiveRecord.DAYS*24*60*60*1000); + activityReceiveRecord.setInvalidTime(date); + Map<String, Object> activitySubMap = new HashMap<>(); + activitySubMap.put("main_id", activityMain.getId()); + List<ActivitySub> activitySubs = activitySubDao.selectByMap(activitySubMap ); + if(CollUtil.isNotEmpty(activitySubs)) { + for(ActivitySub ActivitySub : activitySubs) { + Long subId = ActivitySub.getId(); + activityReceiveRecord.setSubId(subId); + activityReceiveRecordDao.insert(activityReceiveRecord); + } + } + //新增【活动个人详情表】信息 + ActivityMemberDetail activityMemberDetail = new ActivityMemberDetail(); + activityMemberDetail.setMainId(activityMain.getId()); + activityMemberDetail.setBurstUsdt(BigDecimal.ZERO); + activityMemberDetail.setReceivedUsdt(BigDecimal.ZERO); + activityMemberDetail.setSurplusUsdt(activityMain.getAmount()); + activityMemberDetail.setMemberId(member.getId()); + activityMemberDetailDao.insert(activityMemberDetail); + } } return Result.ok(MessageSourceUtils.getString("home_service_0009")); @@ -678,10 +734,10 @@ Long memberId = LoginUserUtils.getAppLoginUser().getId(); String address = memberAddCoinAddressDto.getAddress(); String isBiyict = memberAddCoinAddressDto.getIsBiyict(); - Long symbolscoinId = memberAddCoinAddressDto.getSymbolscoinId(); + String symbol = memberAddCoinAddressDto.getSymbol(); String remark = memberAddCoinAddressDto.getRemark(); - - PlatformSymbolsCoinEntity platformSymbolsCoinEntity = platformSymbolsCoinDao.selectById(symbolscoinId); + PlatformSymbolsCoinEntity platformSymbolsCoinEntity = platformSymbolsCoinDao.selectOneBySymbol(symbol); + Long symbolscoinId = platformSymbolsCoinEntity.getId(); MemberCoinAddressEntity memberCoinAddressEntity = new MemberCoinAddressEntity(); memberCoinAddressEntity.setAddress(address); @@ -791,6 +847,9 @@ memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_NO); } + Integer fingerprintState = member.getFingerprintState(); + memberPersonCenterInfoVo.setFingerprintState(fingerprintState); + return Result.ok(memberPersonCenterInfoVo); } @@ -813,7 +872,7 @@ } @Override - public Result memberAvivableCoinInfo(String symbol) { + public Result memberAvivableCoinInfo(String symbol,String lable) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol); @@ -824,7 +883,7 @@ List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>(); - List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol); + List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol,lable); if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) { return Result.fail(MessageSourceUtils.getString("member_service_0087")); } @@ -897,6 +956,7 @@ memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount()); memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyDto.getSymbol()); memberCoinWithdrawEntity.setMemberId(memberId); + memberCoinWithdrawEntity.setLabel(memberSubmitCoinApplyDto.getLable()); memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING); Map<String, Object> columnMap = new HashMap<>(); @@ -956,12 +1016,21 @@ @Override public Result getAppVersionInfo() { +// MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + Map<String, Object> columnMap = new HashMap<>(); List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); List<Object> arrayList = new ArrayList<>(); if (CollUtil.isNotEmpty(selectByMap)) { for (AppVersionEntity appVersionEntity : selectByMap) { AppVersionVo appVersionVo = new AppVersionVo(); +// if ("37059551".equals(memberEntity.getInviteId())) { +// appVersionVo.setAddress("www.baidu.com"); +// appVersionVo.setType(appVersionEntity.getType()); +// appVersionVo.setVersion(appVersionEntity.getVersion()); +// } else { +// +// } appVersionVo.setAddress(appVersionEntity.getAddress()); appVersionVo.setType(appVersionEntity.getType()); appVersionVo.setVersion(appVersionEntity.getVersion()); @@ -987,6 +1056,175 @@ } return Result.ok(arrayList); } + + @Override + 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); + 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 memberAddCoinAddressIn(@Valid 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 + public Result memberDelCoinAddressIn(@Valid 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"); + } + + @Override + 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 + public Result memberFingerprintState(@Valid MemberFingerprintStateDto memberFingerprintStateDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + + String password = SecureUtil.md5(memberFingerprintStateDto.getPassword()); + MemberEntity member = memberDao.selectById(memberId); + + if(password.equals(member.getPassword())){ + Integer fingerprintState = memberFingerprintStateDto.getFingerprintState(); + MemberEntity memberEntity = memberDao.selectById(memberId); + memberEntity.setFingerprintState(fingerprintState); + memberDao.updateById(memberEntity); + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + }else{ + return Result.fail(MessageSourceUtils.getString("home_service_0005")); + } + } + + @Override + @Transactional + public Result memberMessageReminder() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberMessageReminderVo memberMessageReminderVo = new MemberMessageReminderVo(); + MemberSettingEntity selectById = memberSettingDao.selectMemberSettingByMemberId(memberId); + if(ObjectUtil.isNotEmpty(selectById)) { + memberMessageReminderVo.setMessageReminder(selectById.getMessageReminder()); + } + return Result.ok(memberMessageReminderVo); + } + + } -- Gitblit v1.9.1