| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.GreenScoreEnum; |
| | | 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.AppContants; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; |
| | | import cc.mrbird.febs.mall.service.IMallMoneyFlowService; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import cc.mrbird.febs.pay.model.NBYHResponse; |
| | | import cc.mrbird.febs.pay.model.SinglePayDto; |
| | | import cc.mrbird.febs.pay.service.NBYHService; |
| | | import cc.mrbird.febs.pay.service.UnipayService; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.xmlbeans.impl.store.Query; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | private final MallMemberWalletMapper mallMemberWalletMapper; |
| | | |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | private final IMallMoneyFlowService mallMemberService; |
| | | |
| | | private final MallMemberPaymentMapper mallMemberPaymentMapper; |
| | | |
| | |
| | | private final MallMemberBankMapper mallMemberBankMapper; |
| | | private final MallScoreRecordMapper mallScoreRecordMapper; |
| | | private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper; |
| | | private final NBYHService nbyhService; |
| | | private final MallMemberAmountMapper mallMemberAmountMapper; |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | |
| | | } |
| | | |
| | | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); |
| | | // MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); |
| | | /** |
| | | * 调用汇聚代付 |
| | | */ |
| | | // SinglePayDto singlePayDto = new SinglePayDto(); |
| | | // singlePayDto.setMerchantOrderNo(mallMemberWithdraw.getWithdrawNo()); |
| | | // singlePayDto.setReceiverAccountNoEncBankNo(mallMemberBank.getBankNo()); |
| | | // singlePayDto.setReceiverAccountNoEncName(mallMemberBank.getName()); |
| | | // singlePayDto.setReceiverAccountType("201"); |
| | | // BigDecimal paidAmount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN); |
| | | // singlePayDto.setPaidAmount(paidAmount); |
| | | // singlePayDto.setCurrency("201"); |
| | | // singlePayDto.setIsChecked("202"); |
| | | // singlePayDto.setPaidDesc("用户提现"); |
| | | // singlePayDto.setPaidUse("202"); |
| | | // String singlePayRep = unipayService.singlePay(singlePayDto); |
| | | // if(!mallMemberWithdraw.getWithdrawNo().equals(singlePayRep)){ |
| | | // return new FebsResponse().fail().message("提现失败,请稍后查看错误信息一览"); |
| | | // } |
| | | |
| | | mallMemberWithdraw.setStatus(2); |
| | | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); |
| | | |
| | | QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); |
| | | flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); |
| | | flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); |
| | | String bankName = mallMemberBank.getBankName(); |
| | | NBYHResponse nbyhResponse = new NBYHResponse(); |
| | | if("宁波银行".equals(bankName)){ |
| | | nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId()); |
| | | }else{ |
| | | nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId()); |
| | | } |
| | | if(nbyhResponse.isFlag()){ |
| | | mallMemberWithdraw.setStatus(2); |
| | | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); |
| | | |
| | | return new FebsResponse().success(); |
| | | QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); |
| | | flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); |
| | | flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | } |
| | | return new FebsResponse().success().message(nbyhResponse.getMsg()); |
| | | }else{ |
| | | return new FebsResponse().fail().message(nbyhResponse.getMsg()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if(AppContants.MEMBER_WITHDRAW_NORMAL.equals(mallMemberWithdraw.getRemark())){ |
| | | //用户佣金增加对应的余额 |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); |
| | | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), |
| | | mallMemberWithdraw.getAmount(), |
| | | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), |
| | | mallMemberWithdraw.getWithdrawNo(), |
| | | null, |
| | | null, |
| | | mallMemberWithdraw.getMemberId(), |
| | | 2, |
| | | FlowTypeEnum.BALANCE.getValue(), |
| | | 1); |
| | | } |
| | | if(AppContants.MEMBER_WITHDRAW_VOUCHER.equals(mallMemberWithdraw.getRemark())){ |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmountFee(),mallMemberWithdraw.getMemberId(),"voucherCnt"); |
| | | |
| | | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), |
| | | mallMemberWithdraw.getAmount(), |
| | | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), |
| | | mallMemberWithdraw.getWithdrawNo(), |
| | | null, |
| | | null, |
| | | mallMemberWithdraw.getMemberId(), |
| | | 2, |
| | | FlowTypeEnum.BALANCE.getValue(), |
| | | 1); |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmountFee(),mallMemberWithdraw.getMemberId(),"voucherFireCnt"); |
| | | |
| | | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), |
| | | mallMemberWithdraw.getAmountFee(), |
| | | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), |
| | | mallMemberWithdraw.getWithdrawNo(), |
| | | null, |
| | | null, |
| | | mallMemberWithdraw.getMemberId(), |
| | | 2, |
| | | FlowTypeEnum.COMMISSION.getValue(), |
| | | 1); |
| | | } |
| | | if(AppContants.MEMBER_WITHDRAW_VOUCHER_AMOUNT.equals(mallMemberWithdraw.getRemark())){ |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"voucherAmount"); |
| | | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), |
| | | mallMemberWithdraw.getAmount(), |
| | | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), |
| | | mallMemberWithdraw.getWithdrawNo(), |
| | | null, |
| | | null, |
| | | mallMemberWithdraw.getMemberId(), |
| | | 2, |
| | | FlowTypeEnum.VOUCHER_AMOUNT.getValue(), |
| | | 1); |
| | | } |
| | | return new FebsResponse().success(); |
| | | } |
| | |
| | | adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo()); |
| | | adminMallMemberPaymentVo.setBankName(mallMemberBank.getName()); |
| | | adminMallMemberPaymentVo.setDigitalNo(mallMemberBank.getDigitalNo()); |
| | | adminMallMemberPaymentVo.setSubbranchName(mallMemberBank.getSubbranchName()); |
| | | adminMallMemberPaymentVo.setBank(mallMemberBank.getBankName()); |
| | | } |
| | | return adminMallMemberPaymentVo; |
| | |
| | | return mallMoneyFlowIPage; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse insideWithType(Long id, int i) { |
| | | MallMember mallMember = mallMemberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallMember)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | mallMember.setInsideWith(i); |
| | | mallMemberMapper.updateById(mallMember); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse searchInfo(Long id) { |
| | | NBYHResponse nbyhResponse1 = nbyhService.transferResultInfoQuery(id); |
| | | return new FebsResponse().success().message(nbyhResponse1.getMsg()); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse accountInfo(Long id) { |
| | | boolean b = nbyhService.accountInfoQuery(id); |
| | | if(!b){ |
| | | return new FebsResponse().fail().message("银行账户余额不足"); |
| | | } |
| | | return new FebsResponse().success().message("可以转账"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse outsideWithType(Long id, int i) { |
| | | MallMember mallMember = mallMemberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallMember)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | mallMember.setOutsideWith(i); |
| | | mallMemberMapper.updateById(mallMember); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse chargeAgreeWithType(MallMemberWithdraw mallMemberWithdrawInfo) { |
| | | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(mallMemberWithdrawInfo.getId()); |
| | | |
| | | if(ObjectUtil.isEmpty(mallMemberWithdraw)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); |
| | | } |
| | | if(1 != mallMemberWithdraw.getStatus()){ |
| | | return new FebsResponse().fail().message("当前状态不是提现中"); |
| | | } |
| | | |
| | | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); |
| | | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); |
| | | if(ObjectUtil.isEmpty(mallMemberBank)){ |
| | | return new FebsResponse().fail().message("提现银行卡已删除"); |
| | | } |
| | | String agreeType = mallMemberWithdrawInfo.getAgreeType(); |
| | | if("1".equals(agreeType)){ |
| | | mallMemberWithdraw.setStatus(2); |
| | | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); |
| | | |
| | | QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); |
| | | flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); |
| | | flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | } |
| | | return new FebsResponse().success(); |
| | | }else{ |
| | | String bankName = mallMemberBank.getBankName(); |
| | | NBYHResponse nbyhResponse = new NBYHResponse(); |
| | | if("宁波银行".equals(bankName)){ |
| | | nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId()); |
| | | }else{ |
| | | nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId()); |
| | | } |
| | | if(nbyhResponse.isFlag()){ |
| | | mallMemberWithdraw.setStatus(2); |
| | | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); |
| | | |
| | | QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); |
| | | flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); |
| | | flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | } |
| | | return new FebsResponse().success().message(nbyhResponse.getMsg()); |
| | | }else{ |
| | | return new FebsResponse().fail().message(nbyhResponse.getMsg()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) { |
| | | Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember); |
| | | return adminMallMemberVoIPage; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse frozenWith(Long id, int i) { |
| | | |
| | | MallMember mallMember = mallMemberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallMember)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | mallMember.setIsFrozen(i); |
| | | mallMemberMapper.updateById(mallMember); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateSystemPayInfo(MallSystemPayDto mallSystemPayDto) { |
| | | Long amountId = mallSystemPayDto.getId(); |
| | | MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectById(amountId); |
| | | MallMember mallMember = mallMemberMapper.selectById(mallMemberAmount.getMemberId()); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | throw new FebsException("会员不存在"); |
| | | } |
| | | BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); |
| | | Integer type = mallSystemPayDto.getType(); |
| | | Integer flowType = 0; |
| | | if (type == 1) { |
| | | BigDecimal add = mallMemberAmount.getTrendsNft().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setTrendsNft(add); |
| | | mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.NFT.getValue(); |
| | | } else if (type == 2) { |
| | | BigDecimal add = mallMemberAmount.getFcmCntAva().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setFcmCntAva(add); |
| | | mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.FCM_COIN.getValue(); |
| | | } else if (type == 3) { |
| | | BigDecimal add = mallMemberAmount.getTokenAva().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setTokenAva(add); |
| | | mallMemberAmountMapper.updateTokenAvaById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.TOKEN.getValue(); |
| | | } else { |
| | | throw new FebsException("参数错误"); |
| | | } |
| | | String orderNo = MallUtils.getOrderNum("BF"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | mallMemberAmount.getMemberId(), |
| | | bigDecimal, |
| | | MoneyFlowTypeNewEnum.SYSTEM_PEY.getValue(), |
| | | orderNo, |
| | | mallMemberAmount.getMemberId(), |
| | | flowType, |
| | | MoneyFlowTypeNewEnum.SYSTEM_PEY.getDescrition()); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public MallMemberVo getMallmemberAmountByMemberId(long id) { |
| | | MallMemberVo mallMemberVo = mallMemberMapper.getMallmemberAmountByMemberId(id); |
| | | return mallMemberVo; |
| | | } |
| | | |
| | | private String refererIds(String parentId) { |
| | | boolean flag = false; |
| | | if (StrUtil.isBlank(parentId)) { |