| | |
| | | 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 cc.mrbird.febs.mall.conversion.MallMemberBankConversion; |
| | | import cc.mrbird.febs.mall.conversion.MallMemberConversion; |
| | | import cc.mrbird.febs.mall.conversion.MallShopApplyConversion; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | private final MallShopApplyMapper mallShopApplyMapper; |
| | | private final MallRegisterAppealMapper mallRegisterAppealMapper; |
| | | private final MallMemberBankMapper mallMemberBankMapper; |
| | | |
| | | |
| | | @Value("${spring.profiles.active}") |
| | |
| | | mallMember.setName(registerDto.getName()); |
| | | mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); |
| | | mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); |
| | | mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); |
| | | mallMember.setSex("男"); |
| | | mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode()); |
| | | mallMember.setSex(registerDto.getSex()); |
| | | mallMember.setBindPhone(registerDto.getAccount()); |
| | | mallMember.setSkin("default"); |
| | | |
| | | this.baseMapper.insert(mallMember); |
| | | |
| | |
| | | |
| | | @Override |
| | | public FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto) { |
| | | MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); |
| | | MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getPhone()); |
| | | // MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); |
| | | if (mallMember == null) { |
| | | throw new FebsException("账号不存在"); |
| | | } |
| | |
| | | mallMemberVo.setBalance(wallet.getBalance()); |
| | | mallMemberVo.setScore(wallet.getScore()); |
| | | mallMemberVo.setPrizeScore(wallet.getPrizeScore()); |
| | | mallMemberVo.setTotalScore(wallet.getTotalScore()); |
| | | mallMemberVo.setStar(wallet.getStar()); |
| | | mallMemberVo.setVoucherCnt(wallet.getVoucherCnt()); |
| | | mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); |
| | | return new FebsResponse().success().data(mallMemberVo); |
| | | } |
| | |
| | | myTeamVo.setTeam(list); |
| | | myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1)); |
| | | myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2)); |
| | | myTeamVo.setMyTeamCnt(list.size()); |
| | | myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size()); |
| | | return new FebsResponse().success().data(myTeamVo); |
| | | } |
| | | |
| | |
| | | if (mallMember == null) { |
| | | throw new FebsException("用户不存在"); |
| | | } |
| | | Integer insideWith = mallMember.getInsideWith() == null ? 2 :mallMember.getInsideWith(); |
| | | if (1 != insideWith) { |
| | | throw new FebsException("功能升级中"); |
| | | } |
| | | |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | MallMember loginMember = this.baseMapper.selectById(memberId); |
| | |
| | | throw new FebsException("支付密码错误"); |
| | | } |
| | | |
| | | 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()); |
| | | DataDictionaryCustom cashOutSettingDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.CASHOUT_SETTING.getType(), |
| | | DataDictionaryEnum.CASHOUT_SETTING.getCode() |
| | | ); |
| | | CashOutSettingVo cashOutSettingVo = JSONObject.parseObject(cashOutSettingDic.getValue(), CashOutSettingVo.class); |
| | | BigDecimal insideFee = cashOutSettingVo.getInsideFee().multiply(BigDecimal.valueOf(0.01)); |
| | | //转账手续费 |
| | | BigDecimal insideFeeAmount = transferDto.getAmount().multiply(insideFee).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | walletService.addBalance(transferDto.getAmount(), mallMember.getId()); |
| | | this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); |
| | | BigDecimal avaAmount = transferDto.getAmount().subtract(insideFeeAmount).setScale(2, BigDecimal.ROUND_DOWN); |
| | | walletService.reduceBalance(avaAmount, memberId); |
| | | String orderNo = MallUtils.getOrderNum("T"); |
| | | this.addMoneyFlow( |
| | | memberId, |
| | | avaAmount.negate(), |
| | | MoneyFlowTypeEnum.TRANSFER.getValue(), |
| | | orderNo, |
| | | null, |
| | | null, |
| | | mallMember.getId(), |
| | | null, |
| | | FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | walletService.addBalance(avaAmount, mallMember.getId()); |
| | | this.addMoneyFlow( |
| | | mallMember.getId(), |
| | | avaAmount, |
| | | MoneyFlowTypeEnum.TRANSFER.getValue(), |
| | | orderNo, |
| | | null, |
| | | null, |
| | | memberId, |
| | | null, |
| | | FlowTypeEnum.BALANCE.getValue()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id); |
| | | commissionVo.setCommission(wallet.getCommission()); |
| | | commissionVo.setCommission(wallet.getBalance()); |
| | | commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id)); |
| | | commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id)); |
| | | commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id)); |
| | |
| | | if (dic != null) { |
| | | cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class); |
| | | } |
| | | DataDictionaryCustom voucherOnOffDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | GreenScoreEnum.VOUCHER_ON_OFF.getType(), GreenScoreEnum.VOUCHER_ON_OFF.getCode()); |
| | | if(ObjectUtil.isNotEmpty(voucherOnOffDic)){ |
| | | cashOutSettingVo.setVoucherOnOff(voucherOnOffDic.getValue()); |
| | | DataDictionaryCustom voucherPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | GreenScoreEnum.VOUCHER_PERCENT.getType(), GreenScoreEnum.VOUCHER_PERCENT.getCode()); |
| | | if(ObjectUtil.isNotEmpty(voucherPercentDic)){ |
| | | cashOutSettingVo.setVoucherPercent(new BigDecimal(voucherPercentDic.getValue())); |
| | | } |
| | | } |
| | | |
| | | return cashOutSettingVo; |
| | | } |
| | | |
| | |
| | | } |
| | | return MallShopApplyConversion.INSTANCE.entitiesToVOs(list); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse addMemberBank(AddMemberBankDto addMemberBankDto) { |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | MallMemberBank mallMemberBank = MallMemberBankConversion.INSTANCE.dtoToentity(addMemberBankDto); |
| | | mallMemberBank.setMemberId(member.getId()); |
| | | mallMemberBankMapper.insert(mallMemberBank); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse findMemberBankList(MemberBankListDto memberBankListDto) { |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | Page<MemberBankListVo> page = new Page<>(memberBankListDto.getPageNum(), memberBankListDto.getPageSize()); |
| | | memberBankListDto.setMemberId(member.getId()); |
| | | IPage<MemberBankListVo> pageResult = mallMemberBankMapper.findMemberBankListInPage(memberBankListDto, page); |
| | | return new FebsResponse().success().data(pageResult); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse findBankDetailsById(Long id) { |
| | | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(id); |
| | | MemberBankListVo memberBankListVo = MallMemberBankConversion.INSTANCE.entityToVo(mallMemberBank); |
| | | return new FebsResponse().success().data(memberBankListVo); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse updateMemberBank(UpdateMemberBankDto updateMemberBankDto) { |
| | | Long id = updateMemberBankDto.getId(); |
| | | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(id); |
| | | mallMemberBank.setName(updateMemberBankDto.getName()); |
| | | mallMemberBank.setIdType(updateMemberBankDto.getIdType()); |
| | | mallMemberBank.setIdCardNum(updateMemberBankDto.getIdCardNum()); |
| | | mallMemberBank.setBankNo(updateMemberBankDto.getBankNo()); |
| | | mallMemberBank.setPhone(updateMemberBankDto.getPhone()); |
| | | mallMemberBank.setDigitalNo(updateMemberBankDto.getDigitalNo()); |
| | | mallMemberBank.setBankName(updateMemberBankDto.getBankName()); |
| | | mallMemberBank.setSubbranchName(updateMemberBankDto.getSubbranchName()); |
| | | mallMemberBankMapper.updateById(mallMemberBank); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse delMemberBank(Long id) { |
| | | mallMemberBankMapper.deleteById(id); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public List<SkinTypeVo> findSkinList() { |
| | | MallMember loginUser = LoginUserUtil.getLoginUser(); |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.SKIN_TYPE_LIST, loginUser.getLevel()); |
| | | if (dic == null || StrUtil.isBlank(dic.getValue())) { |
| | | throw new FebsException("请检查皮肤配置"); |
| | | } |
| | | |
| | | List<String> skipStrList = StrUtil.split(dic.getValue(), ','); |
| | | return skipStrList.stream().map(item -> JSONObject.parseObject(item, SkinTypeVo.class)).collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Override |
| | | public void useSkin(String code) { |
| | | MallMember loginUser = LoginUserUtil.getLoginUser(); |
| | | |
| | | MallMember update = new MallMember(); |
| | | update.setId(loginUser.getId()); |
| | | update.setSkin(code); |
| | | this.baseMapper.updateById(update); |
| | | } |
| | | } |