Helius
2022-03-09 38179780b2f728abe6dd0e5aaa284c6ee6aa8380
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -5,6 +5,8 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.LoginUserUtils;
import com.xcong.excoin.common.contants.AppContants;
@@ -14,23 +16,19 @@
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.dao.ZhiYaDao;
import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
import com.xcong.excoin.modules.coin.entity.ZhiYaTeam;
import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaInfoVo;
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.member.vo.DefaultWayVo;
import com.xcong.excoin.modules.platform.dao.PlatformFeeSettingDao;
import com.xcong.excoin.modules.platform.dao.PlatformSymbolsCoinDao;
import com.xcong.excoin.modules.platform.entity.PlatformFeeSettingEntity;
@@ -45,6 +43,7 @@
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.web3j.abi.datatypes.Int;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -67,6 +66,9 @@
    private MemberDao memberDao;
    @Resource
    private ZhiYaRecordDao zhiYaRecordDao;
    @Resource
    private MemberWalletAgentDao memberWalletAgentDao;
    @Resource
@@ -77,6 +79,9 @@
    @Resource
    private MemberWalletCoinDao memberWalletCoinDao;
    @Resource
    private ZhiYaDao zhiYaDao;
    @Resource
    private MemberLevelRateDao memberLevelRateDao;
@@ -218,6 +223,14 @@
            walletCoin.setBorrowedFund(AppContants.INIT_MONEY);
            memberWalletCoinDao.insert(walletCoin);
        }
        //初始化质押
        ZhiYaEntity zhiYaEntity = new ZhiYaEntity();
        zhiYaEntity.setMemberId(member.getId());
        zhiYaEntity.setAvailableBalance(AppContants.INIT_MONEY);
        zhiYaEntity.setFrozenBalance(AppContants.INIT_MONEY);
        zhiYaEntity.setTotalBalance(AppContants.INIT_MONEY);
        zhiYaDao.insert(zhiYaEntity);
        // 初始化代理佣金钱包
        MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity();
@@ -586,6 +599,29 @@
        MemberPaymethodDetailListVo memberPaymethodDetailListVo = new MemberPaymethodDetailListVo();
        memberPaymethodDetailListVo.setMemberPaymethodDetailVo(arrayList);
        return Result.ok(memberPaymethodDetailListVo);
    }
    @Override
    public Result setDefaultPaymethod(Long id) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        MemberPaymentMethodEntity defualtMethod = this.memberPaymentMethodDao.selectDefualtMethod(member.getId(), null, "1");
        if (defualtMethod != null) {
            if (id.equals(defualtMethod.getId())) {
                return Result.fail("不能关闭默认收款方式");
            }
        }
        MemberPaymentMethodEntity paymentMethodEntity = new MemberPaymentMethodEntity();
        paymentMethodEntity.setId(id);
        paymentMethodEntity.setIsDefualt("1");
        this.memberPaymentMethodDao.updateById(paymentMethodEntity);
        if (defualtMethod != null) {
            defualtMethod.setIsDefualt("2");
            this.memberPaymentMethodDao.updateById(defualtMethod);
        }
        return Result.ok("操作成功");
    }
    @Override
@@ -1020,6 +1056,82 @@
        }
        return Result.ok(arrayList);
    }
    @Override
    public Result memberTeam(MemberTeamRecordsPageDto memberTeamRecordsPageDto) {
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        MemberEntity member = memberDao.selectById(memberId);
        MemberTeamVo memberTeamVo = memberDao.selectAllTeamByInviteIdInPage(memberId,member.getInviteId());
        List<TeamVo> teamVos = new ArrayList<>();
        //直属会员
        List<MemberEntity> memberZhiShu = memberDao.selectMemberInfoByRefererId(member.getInviteId());
        if(ObjectUtil.isEmpty(memberTeamVo)){
            MemberTeamVo memberTeamVoNull = new MemberTeamVo();
            Integer teamCnt = memberDao.selectMemberCountByInvitedId(member.getInviteId());
            memberTeamVoNull.setTeamCnt(teamCnt);
            memberTeamVoNull.setZhiyaCnt(BigDecimal.ZERO);
            memberTeamVoNull.setRewardCnt(BigDecimal.ZERO);
            //直属会员
            if(CollUtil.isNotEmpty(memberZhiShu)){
                for(MemberEntity zhishu : memberZhiShu){
                    TeamVo teamVo = new TeamVo();
                    String phone = zhishu.getPhone();
                    if(StrUtil.isNotEmpty(phone)){
                        String result = phone.substring(phone.length()-4,phone.length());
                        teamVo.setAccount(result);
                    }
                    int memberCnt = memberDao.selectMemberCountByInvitedId(zhishu.getInviteId());
                    teamVo.setTeamCnt(memberCnt);
                    teamVo.setZhiyaCnt(BigDecimal.ZERO);
                    teamVo.setRewardCnt(BigDecimal.ZERO);
                    teamVos.add(teamVo);
                }
                memberTeamVoNull.setTeamVo(teamVos);
            }
            return Result.ok(memberTeamVoNull);
        }
        if(CollUtil.isNotEmpty(memberZhiShu)){
            for(MemberEntity zhishu : memberZhiShu){
                Long zhiShuMemberId = zhishu.getId();
                ZhiYaTeam zhiYaTeam = memberDao.selectZhiYaTeamRecordByMemberId(zhiShuMemberId);
                TeamVo teamVo = new TeamVo();
                String phone = zhishu.getPhone();
                if(StrUtil.isNotEmpty(phone)){
                    String result = phone.substring(phone.length()-4,phone.length());
                    teamVo.setAccount(result);
                }
                int memberCnt = memberDao.selectMemberCountByInvitedId(zhishu.getInviteId());
                teamVo.setTeamCnt(memberCnt);
                Long aLong = zhiYaRecordDao.selectSumZhiyaCntByMemberIdAndOrderStatus(zhiShuMemberId, 1);
                Long rLong = zhiYaRecordDao.selectSumRewardCntByMemberId(zhiShuMemberId);
                teamVo.setZhiyaCnt(new BigDecimal(aLong));
                teamVo.setRewardCnt(new BigDecimal(rLong));
                if(ObjectUtil.isNotEmpty(zhiYaTeam)){
                    teamVo.setZhiyaCnt((zhiYaTeam.getZhiyaCnt() == null ? BigDecimal.ZERO : zhiYaTeam.getZhiyaCnt()).add(new BigDecimal(aLong)));
                    teamVo.setRewardCnt(zhiYaTeam.getRewardCnt() == null ?BigDecimal.ZERO : zhiYaTeam.getRewardCnt().add(new BigDecimal(rLong)));
                }
                teamVos.add(teamVo);
            }
            memberTeamVo.setTeamVo(teamVos);
        }
        return Result.ok(memberTeamVo);
    }
    @Override
    public Result findDefaultWay() {
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        DefaultWayVo defaultWayVo = new DefaultWayVo();
        MemberPaymentMethodEntity defualtMethod = this.memberPaymentMethodDao.selectDefualtMethod(memberId, null, "1");
        if(ObjectUtil.isNotEmpty(defualtMethod)){
            String paymentType = defualtMethod.getPaymentType();
            defaultWayVo.setPaymentType(paymentType);
        }
        return Result.ok(defaultWayVo);
    }
}