| | |
| | | package cc.mrbird.febs.mall.service.impl; |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.*; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.*; |
| | | import cc.mrbird.febs.mall.conversion.MallGoodsConversion; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.lang.reflect.Member; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | |
| | | private final MallShopApplyMapper mallShopApplyMapper; |
| | | private final MallRegisterAppealMapper mallRegisterAppealMapper; |
| | | private final MallMemberBankMapper mallMemberBankMapper; |
| | | private final MallAchieveRecordMapper mallAchieveRecordMapper; |
| | | |
| | | |
| | | @Value("${spring.profiles.active}") |
| | |
| | | if (inviteMember == null) { |
| | | throw new FebsException("邀请码不存在"); |
| | | } |
| | | /** |
| | | * 设置成粉丝,则不允许推广 |
| | | */ |
| | | if(inviteMember.getLevel().equals(MemberLevelEnum.FANS.getType())){ |
| | | throw new FebsException("邀请码不能推广"); |
| | | } |
| | | //购买套餐产生业绩,才能推广会员 |
| | | // List<MallAchieveRecord> mallAchieveRecordList = mallAchieveRecordMapper.selectByMemberId(inviteMember.getId()); |
| | | // if(CollUtil.isEmpty(mallAchieveRecordList)){ |
| | | // throw new FebsException("邀请码不能推广"); |
| | | // } |
| | | |
| | | mallMember.setReferrerId(registerDto.getInviteId()); |
| | | |
| | |
| | | mallMember.setName(registerDto.getName()); |
| | | mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); |
| | | mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); |
| | | mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); |
| | | mallMember.setLevel(MemberLevelEnum.FANS.name()); |
| | | mallMember.setSex("男"); |
| | | mallMember.setBindPhone(registerDto.getAccount()); |
| | | |
| | |
| | | MallMember mallMember = this.baseMapper.selectById(id); |
| | | |
| | | MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); |
| | | |
| | | MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); |
| | | if (referMember != null) { |
| | | mallMemberVo.setReferrerName(referMember.getName()); |
| | | // if(ObjectUtil.isNotEmpty(mallMember.getReferrerId())){ |
| | | if(StrUtil.isNotBlank(mallMember.getReferrerId())){ |
| | | MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); |
| | | if (referMember != null) { |
| | | mallMemberVo.setReferrerName(referMember.getName()); |
| | | } |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(mallMember.getTradePassword())) { |
| | |
| | | if (payment != null) { |
| | | mallMemberVo.setHasPayment(1); |
| | | } |
| | | |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel()); |
| | | if (dic != null) { |
| | | mallMemberVo.setLevelName(dic.getDescription()); |
| | | } |
| | | mallMemberVo.setLevelName(MemberLevelEnum.NORMAL.getLevelDescription(mallMember.getLevel())); |
| | | mallMemberVo.setPartner(mallMember.getPartner()); |
| | | mallMemberVo.setDirector(mallMember.getDirector()); |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); |
| | | mallMemberVo.setBalance(wallet.getBalance()); |
| | | mallMemberVo.setScore(wallet.getScore()); |
| | | mallMemberVo.setPrizeScore(wallet.getPrizeScore()); |
| | | mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); |
| | | |
| | | DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | PerkEnum.POOL_SCORE_PRICE.getType(), |
| | | PerkEnum.POOL_SCORE_PRICE.getCode() |
| | | ); |
| | | BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue()).setScale(8, BigDecimal.ROUND_DOWN); |
| | | mallMemberVo.setPoolScorePrice(poolScorePrice); |
| | | return new FebsResponse().success().data(mallMemberVo); |
| | | } |
| | | |
| | |
| | | MallMember mallMember = this.baseMapper.selectById(memberId); |
| | | |
| | | List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId()); |
| | | if(CollUtil.isNotEmpty(list)){ |
| | | for(TeamListVo teamListVo : list){ |
| | | String levelDescription = MemberLevelEnum.NORMAL.getLevelDescription(teamListVo.getLevel()); |
| | | teamListVo.setLevelName(levelDescription); |
| | | } |
| | | } |
| | | |
| | | MyTeamVo myTeamVo = new MyTeamVo(); |
| | | myTeamVo.setTeam(list); |
| | |
| | | if (!loginMember.getTradePassword().equals(SecureUtil.md5(transferDto.getTradePwd()))) { |
| | | throw new FebsException("支付密码错误"); |
| | | } |
| | | if(1 == transferDto.getType()){ |
| | | walletService.reduceBalance(transferDto.getAmount(), memberId); |
| | | String orderNo = MallUtils.getOrderNum("T"); |
| | | this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | walletService.reduceBalance(transferDto.getAmount(), memberId); |
| | | String orderNo = MallUtils.getOrderNum("T"); |
| | | this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue()); |
| | | walletService.addBalance(transferDto.getAmount(), mallMember.getId()); |
| | | this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); |
| | | } |
| | | if(2 == transferDto.getType()){ |
| | | walletService.reduce(transferDto.getAmount(), memberId, "score"); |
| | | String orderNo = MallUtils.getOrderNum("T"); |
| | | this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.SCORE.getValue()); |
| | | |
| | | walletService.addBalance(transferDto.getAmount(), mallMember.getId()); |
| | | this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); |
| | | walletService.add(transferDto.getAmount(), mallMember.getId(), "score"); |
| | | this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.SCORE.getValue()); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal canMoney() { |
| | | public BigDecimal canMoney(int type) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); |
| | | |
| | | BigDecimal canMoney = wallet.getCommission(); |
| | | if (profit != null) { |
| | | if(canMoney.compareTo(BigDecimal.ZERO) > 0) { |
| | | canMoney = canMoney.subtract(profit); |
| | | } |
| | | BigDecimal canMoney = BigDecimal.ZERO; |
| | | if(1 == type){ |
| | | canMoney = wallet.getBalance(); |
| | | } |
| | | if(2 == type){ |
| | | canMoney = wallet.getScore(); |
| | | } |
| | | return canMoney; |
| | | } |
| | |
| | | } |
| | | |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id); |
| | | commissionVo.setCommissionBalance(wallet.getBalance()); |
| | | commissionVo.setCommissionScore(wallet.getScore()); |
| | | commissionVo.setCommission(wallet.getCommission()); |
| | | commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id)); |
| | | commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id)); |
| | | commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id)); |
| | | commissionVo.setWaitCommission(BigDecimal.ZERO); |
| | | commissionVo.setTodayBalance(mallMoneyFlowMapper.selectCommissionIncome(1,1, new Date(), id)); |
| | | commissionVo.setMonthBalance(mallMoneyFlowMapper.selectCommissionIncome(1,2, new Date(), id)); |
| | | commissionVo.setTotalBalance(mallMoneyFlowMapper.selectCommissionIncome(1, null,null, id)); |
| | | commissionVo.setTodayScore(mallMoneyFlowMapper.selectCommissionIncome(2, 1,new Date(), id)); |
| | | commissionVo.setMonthScore(mallMoneyFlowMapper.selectCommissionIncome(2, 2,new Date(), id)); |
| | | commissionVo.setTotalScore(mallMoneyFlowMapper.selectCommissionIncome(2, null,null, id)); |
| | | return commissionVo; |
| | | } |
| | | |
| | |
| | | mallMemberBank.setIdCardNum(updateMemberBankDto.getIdCardNum()); |
| | | mallMemberBank.setBankNo(updateMemberBankDto.getBankNo()); |
| | | mallMemberBank.setPhone(updateMemberBankDto.getPhone()); |
| | | mallMemberBank.setBankName(updateMemberBankDto.getBankName()); |
| | | mallMemberBank.setBankNameS(updateMemberBankDto.getBankNameS()); |
| | | mallMemberBankMapper.updateById(mallMemberBank); |
| | | return new FebsResponse().success(); |
| | | } |