Helius
2021-04-13 f83e2bbe8b26572b2ceec4f55d2e575e98233c43
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,25 +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.MemberAddCoinAddressInDto;
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.MemberSubmitCoinApplyInDto;
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;
@@ -44,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;
@@ -112,6 +110,16 @@
    @Resource
    AppVersionDao appVersionDao;
    @Resource
    ActivityMainDao activityMainDao;
    @Resource
    ActivityMemberDetailDao activityMemberDetailDao;
    @Resource
    ActivityReceiveRecordDao activityReceiveRecordDao;
    @Resource
    ActivitySubDao activitySubDao;
    @Resource
    private MemberSettingDao memberSettingDao;
@@ -166,9 +174,9 @@
        memberDao.insert(member);
        MemberSettingEntity memberSettingEntity = new MemberSettingEntity();
        memberSettingEntity.setSpread(BigDecimal.ONE);
        memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5));
        memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0055));
        memberSettingEntity.setSpread(BigDecimal.valueOf(0.5));
        memberSettingEntity.setClosingSpread(BigDecimal.valueOf(2));
        memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0085));
        memberSettingEntity.setMemberId(member.getId());
        memberSettingDao.insert(memberSettingEntity);
@@ -235,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"));
@@ -690,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);
@@ -803,6 +847,9 @@
            memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_NO);
        }
        Integer fingerprintState = member.getFingerprintState();
        memberPersonCenterInfoVo.setFingerprintState(fingerprintState);
        return Result.ok(memberPersonCenterInfoVo);
    }
@@ -825,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);
@@ -836,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"));
        }
@@ -909,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<>();
@@ -968,7 +1016,7 @@
    @Override
    public Result getAppVersionInfo() {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
//        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        Map<String, Object> columnMap = new HashMap<>();
        List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap);
@@ -976,15 +1024,16 @@
        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());
                }
//                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());
                arrayList.add(appVersionVo);
            }
        }
@@ -1037,16 +1086,19 @@
           }
           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 );
         List<MemberCoinAddressEntity> selectByMap2 = memberCoinAddressDao.selectByMap(columnMapAddress);
         if(CollUtil.isEmpty(selectByMap2)) {
            return Result.fail(MessageSourceUtils.getString("member_service_0087"));
         }
         MemberCoinAddressEntity memberCoinAddressEntity = selectByMap2.get(0);
         String addressIn = memberCoinAddressEntity.getAddress();
//            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();
@@ -1062,6 +1114,7 @@
                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);
@@ -1139,6 +1192,39 @@
        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);
    }
}