| | |
| | | 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.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.*; |
| | |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | private final IApiMallMemberWalletService walletService; |
| | | private final MallMemberPaymentMapper mallMemberPaymentMapper; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | |
| | | public FebsResponse register(RegisterDto registerDto) { |
| | | MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount()); |
| | | if (mallMember != null) { |
| | | throw new FebsException("该手机号/邮箱已被占用"); |
| | | throw new FebsException("该账号已被占用"); |
| | | } |
| | | |
| | | String account = registerDto.getAccount(); |
| | |
| | | mallMember.setName(registerDto.getAccount()); |
| | | mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); |
| | | mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); |
| | | mallMember.setLevel("1"); |
| | | mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); |
| | | mallMember.setSex("男"); |
| | | |
| | | this.baseMapper.insert(mallMember); |
| | |
| | | //推荐人和推荐人链 |
| | | boolean flag = false; |
| | | String parentId = mallMember.getReferrerId(); |
| | | if (StrUtil.isBlank(parentId)) { |
| | | flag = true; |
| | | } |
| | | String ids = ""; |
| | | while (!flag) { |
| | | if (StrUtil.isBlank(ids)) { |
| | |
| | | redisUtils.set(redisKey, token, 360000); |
| | | Map<String, Object> authInfo = new HashMap<>(); |
| | | authInfo.put("token", token); |
| | | if ("dev".equals(active)) { |
| | | authInfo.put("rasToken", generateAsaToken(token)); |
| | | } |
| | | authInfo.put("rasToken", generateAsaToken(token)); |
| | | return new FebsResponse().success().data(authInfo); |
| | | } |
| | | |
| | |
| | | mallMemberVo.setHasPayment(1); |
| | | } |
| | | |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel()); |
| | | if (dic != null) { |
| | | mallMemberVo.setLevelName(dic.getDescription()); |
| | | } |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); |
| | | mallMemberVo.setBalance(wallet.getBalance()); |
| | | return new FebsResponse().success().data(mallMemberVo); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto) { |
| | | MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); |
| | | MallMember memberId = LoginUserUtil.getLoginUser(); |
| | | MallMember mallMember = this.baseMapper.selectById(memberId); |
| | | if (mallMember == null) { |
| | | throw new FebsException("账号不存在"); |
| | | } |
| | |
| | | |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | MallMember loginMember = this.baseMapper.selectById(memberId); |
| | | |
| | | if (loginMember.getPhone().equals(transferDto.getAccount()) || loginMember.getInviteId().equals(transferDto.getAccount())) { |
| | | throw new FebsException("不能给自己转账"); |
| | | } |
| | | |
| | | if (StrUtil.isBlank(loginMember.getTradePassword())) { |
| | | throw new FebsException("未设置支付密码"); |
| | | } |
| | |
| | | throw new FebsException("未设置收款方式"); |
| | | } |
| | | |
| | | BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | if (profit != null) { |
| | | // 可提现 |
| | | BigDecimal canMoney = wallet.getBalance().subtract(profit); |
| | | |
| | | if(withdrawalDto.getAmount().compareTo(canMoney) > 0) { |
| | | throw new FebsException("提现金额不足"); |
| | | } |
| | | } |
| | | |
| | | walletService.reduceBalance(withdrawalDto.getAmount(), memberId); |
| | | String orderNo = MallUtils.getOrderNum("W"); |
| | | this.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1); |
| | |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | return mallMemberPaymentMapper.selectByMemberId(member.getId()); |
| | | } |
| | | |
| | | @Override |
| | | public void bindPhone(AccountAndCodeDto accountAndCodeDto) { |
| | | boolean b = commonService.verifyCode(accountAndCodeDto.getAccount(), accountAndCodeDto.getCode()); |
| | | if (!b) { |
| | | throw new FebsException("验证码错误"); |
| | | } |
| | | |
| | | Long id = LoginUserUtil.getLoginUser().getId(); |
| | | MallMember member = this.baseMapper.selectById(id); |
| | | |
| | | member.setBindPhone(accountAndCodeDto.getAccount()); |
| | | this.baseMapper.updateById(member); |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal canMoney() { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); |
| | | |
| | | BigDecimal canMoney = wallet.getBalance(); |
| | | if (profit != null) { |
| | | if(canMoney.compareTo(BigDecimal.ZERO) > 0) { |
| | | canMoney = canMoney.subtract(profit); |
| | | } |
| | | } |
| | | return canMoney; |
| | | } |
| | | } |