|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String refererIds(String parentId) { | 
|---|
|  |  |  | boolean flag = false; | 
|---|
|  |  |  | if (StrUtil.isBlank(parentId)) { | 
|---|