gao
2020-06-05 01aa2cc5c8fafd89ff763bfb0016c4983ff79648
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -13,6 +13,8 @@
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.coin.dao.MemberAccountMoneyChangeDao;
import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
import com.xcong.excoin.modules.member.dao.*;
import com.xcong.excoin.modules.member.entity.*;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
@@ -23,8 +25,11 @@
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.vo.*;
import com.xcong.excoin.modules.member.parameter.vo.MemberAuthenticationInfoVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberAvivableCoinInfoVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressCountListVo;
@@ -73,6 +78,9 @@
    @Resource
    private MemberWalletAgentDao memberWalletAgentDao;
    @Resource
    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
    @Resource
    private MemberWalletContractDao memberWalletContractDao;
@@ -97,7 +105,7 @@
    
    @Resource
    PlatformFeeSettingDao platformFeeSettingDao;
    @Resource
    MemberCoinAddressDao memberCoinAddressDao;
    
@@ -105,8 +113,11 @@
    private CommonService commonservice;
    
    @Resource
    MemberCoinWithdrawDao memberCoinWithdrawDao;
    @Resource
    private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
    @Transactional()
    @Override
    public Result register(RegisterDto registerDto) {
@@ -150,7 +161,7 @@
        String ids = "";
        while (!flag) {
            ids += ("," + parentId);
            MemberEntity parentMember = memberDao.selectMemberInfoByRefererId(parentId);
            MemberEntity parentMember = memberDao.selectMemberInfoByInviteId(parentId);
            if (parentMember == null) {
                break;
            }
@@ -669,11 +680,11 @@
      //获取用户ID
      Long memberId = LoginUserUtils.getAppLoginUser().getId();
      MemberEntity member = memberDao.selectById(memberId);
      Map<String, Object> columnMap = new HashMap<>();
      columnMap.put("member_id", memberId);
      List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap);
      MemberAuthenticationInfoVo memberAuthnticationInfoVo = new MemberAuthenticationInfoVo();
      memberAuthnticationInfoVo.setCertifyStatus(member.getCertifyStatus());
      if(CollUtil.isNotEmpty(selectByMap)) {
@@ -692,28 +703,33 @@
      //获取用户ID
      Long memberId = LoginUserUtils.getAppLoginUser().getId();
      MemberEntity member = memberDao.selectById(memberId);
      MemberPersonCenterInfoVo memberPersonCenterInfoVo = new MemberPersonCenterInfoVo();
      if(StrUtil.isNotEmpty(member.getPhone())) {
         memberPersonCenterInfoVo.setPhone(1);
      }else {
         memberPersonCenterInfoVo.setPhone(0);
      }
      memberPersonCenterInfoVo.setPhone(0);
      if(StrUtil.isNotEmpty(member.getEmail())) {
         memberPersonCenterInfoVo.setEmail(1);
      }else {
         memberPersonCenterInfoVo.setEmail(0);
      }
      memberPersonCenterInfoVo.setEmail(0);
      if(StrUtil.isNotEmpty(member.getTradePassword())) {
         memberPersonCenterInfoVo.setTradePassword(1);
      }else {
         memberPersonCenterInfoVo.setTradePassword(0);
      }
      memberPersonCenterInfoVo.setTradePassword(0);
      
      if(StrUtil.isNotEmpty(member.getTradeAgingSetting().toString())) {
      Integer tradeAgingSetting = member.getTradeAgingSetting();
      if(tradeAgingSetting != null && tradeAgingSetting == MemberPersonCenterInfoVo.PWD_NEED_FORVER) {
         memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_FORVER);
      }else {
         memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_NO);
      }
      memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_FORVER);
      return Result.ok(memberPersonCenterInfoVo);
   }
@@ -721,7 +737,7 @@
   public Result memberCoinInfoList() {
      //获取用户ID
      Long memberId = LoginUserUtils.getAppLoginUser().getId();
      MemberCoinInfoListVo memberCoinInfoListVo = new MemberCoinInfoListVo();
      List<PlatformSymbolsCoinEntity> selectByMap = platformSymbolsCoinDao.selectByMap(new HashMap<>());
      List<MemberCoinInfoVo> arrayList = new ArrayList<>();
@@ -733,7 +749,7 @@
         }
      }
      memberCoinInfoListVo.setMemberCoinInfoVo(arrayList);
      return Result.ok(memberCoinInfoListVo);
   }
@@ -745,10 +761,10 @@
        if (ObjectUtil.isEmpty(walletCoin)) {
             return Result.fail(MessageSourceUtils.getString("member_service_0087"));
        }
        MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo();
        memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance());
        PlatformFeeSettingEntity feeSetting = platformFeeSettingDao.getFeeSettingByTypeAndSymbol(2,symbol);
        if(ObjectUtil.isEmpty(feeSetting)) {
           return Result.fail(MessageSourceUtils.getString("member_service_0087"));
@@ -757,4 +773,109 @@
        return Result.ok(memberAvivableCoinInfoVo);
    }
   @Override
   public NeedMoneyMemberVo selectFriendRelationUserByMemberId(Long memberId){
      return memberDao.selectFriendRelationUserByMemberId(memberId);
   }
   @Override
   public List<NeedMoneyMemberVo> selectAllNeedMoneyMember(List<String> list) {
      return memberDao.selectAllNeedMoneyMember(list);
   }
   @Override
   public MemberEntity selectMemberInfoByInviteId(String inviteId) {
      return memberDao.selectMemberInfoByInviteId(inviteId);
   }
   @Override
   @Transactional
   public Result memberUpdateTradersPwdTime(MemberUpdateTradersPwdTimeDto memberUpdateTradersPwdTimeDto) {
      //获取用户ID
      Long memberId = LoginUserUtils.getAppLoginUser().getId();
      MemberEntity member = memberDao.selectById(memberId);
      member.setTradeAgingSetting(memberUpdateTradersPwdTimeDto.getTradeAgingSetting());
      memberDao.updateById(member);
      return Result.ok("success");
   }
   @Override
   public Result memberSubmitCoinApply(@Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) {
      //获取用户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(memberSubmitCoinApplyDto.getTradePassword()))) {
                        return Result.fail(MessageSourceUtils.getString("member_service_0082"));
                    }
                  boolean flag = commonservice.verifyCode(memberSubmitCoinApplyDto.getAccount(), memberSubmitCoinApplyDto.getCode());
                    if (flag) {
                       MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyDto.getSymbol());
                       BigDecimal availableBalance = walletCoin.getAvailableBalance();
                       BigDecimal coinNumber = memberSubmitCoinApplyDto.getCoinNumber().add(memberSubmitCoinApplyDto.getFeeAmount());
                       if(availableBalance.compareTo(BigDecimal.ZERO) > 0
                             && availableBalance.compareTo(coinNumber) > 0) {
                          //新增提币记录
                          MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
                          memberCoinWithdrawEntity.setAddress(memberSubmitCoinApplyDto.getAddress());
                          memberCoinWithdrawEntity.setAmount(coinNumber);
                          memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount());
                          memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyDto.getSymbol());
                          memberCoinWithdrawEntity.setMemberId(memberId);
                          memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
                          Map<String,Object> columnMap = new HashMap<>();
                          columnMap.put("symbol", memberSubmitCoinApplyDto.getSymbol());
                          columnMap.put("address", memberSubmitCoinApplyDto.getAddress());
                          List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap);
                          if(CollUtil.isEmpty(selectByMap)) {
                             memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
                          }else {
                             memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_YES);
                          }
                          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(memberSubmitCoinApplyDto.getCoinNumber());
                            accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
                            accountRecord.setSymbol(memberSubmitCoinApplyDto.getSymbol());
                            accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
                            memberAccountMoneyChangeDao.insert(accountRecord);
                         /**
                          *  TODO dingtalk
                      Constant.excutor.execute(new Runnable() {
                         @Override
                         public void run() {
                            DingTalkUtils.sendActionCard(3);
                         }
                      });
                      */
                            return Result.ok(MessageSourceUtils.getString("member_service_0086"));
                       }else {
                          return Result.fail(MessageSourceUtils.getString("order_service_0040"));
                       }
                    }else {
                       return Result.fail(MessageSourceUtils.getString("member_service_0039"));
                    }
        }
}