|  |  |  | 
|---|
|  |  |  | 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.MemberWithdrawalDto; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.service.IXcxPayService; | 
|---|
|  |  |  | import cn.hutool.core.collection.CollUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.StrUtil; | 
|---|
|  |  |  | 
|---|
|  |  |  | private final MallShopApplyMapper mallShopApplyMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final IMallMoneyFlowService mallMoneyFlowService; | 
|---|
|  |  |  | private final MallTeamLeaderMapper mallTeamLeaderMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallAgentRecordMapper mallAgentRecordMapper; | 
|---|
|  |  |  | private final MallSalesmanMapper mallSalesmanMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { | 
|---|
|  |  |  | Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallMembers.getRecords())){ | 
|---|
|  |  |  | for(MallMember mallMemberTeam : mallMembers.getRecords()){ | 
|---|
|  |  |  | Long salesmansId = mallMemberTeam.getSalesmansId(); | 
|---|
|  |  |  | MallSalesman mallSalesman = mallSalesmanMapper.selectById(salesmansId); | 
|---|
|  |  |  | if(ObjectUtil.isNotEmpty(mallSalesman)){ | 
|---|
|  |  |  | StringBuffer salesmanName = new StringBuffer(); | 
|---|
|  |  |  | salesmanName.append(mallSalesman.getName()); | 
|---|
|  |  |  | if(2 == mallSalesman.getState()){ | 
|---|
|  |  |  | salesmanName.append("(禁用)"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMemberTeam.setSalesmansName(salesmanName.toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return mallMembers; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return adminMoneyChargeListVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final IXcxPayService iXcxPayService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse chargeAgree(Long id) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if(1 != mallMemberWithdraw.getStatus()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("当前状态不是提现中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMemberWithdraw.setStatus(2); | 
|---|
|  |  |  | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); | 
|---|
|  |  |  | objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); | 
|---|
|  |  |  | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper); | 
|---|
|  |  |  | Long memberId = mallMemberWithdraw.getMemberId(); | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(memberId); | 
|---|
|  |  |  | MemberWithdrawalDto memberWithdrawalDto = new MemberWithdrawalDto(); | 
|---|
|  |  |  | memberWithdrawalDto.setDesc("余额提现"); | 
|---|
|  |  |  | memberWithdrawalDto.setOpenid(mallMember.getOpenId()); | 
|---|
|  |  |  | memberWithdrawalDto.setTotalFee(mallMemberWithdraw.getAmount()); | 
|---|
|  |  |  | memberWithdrawalDto.setOutTradeNo(mallMoneyFlow.getOrderNo()); | 
|---|
|  |  |  | Boolean aBoolean = iXcxPayService.memberWithdrawal(memberWithdrawalDto); | 
|---|
|  |  |  | if(!aBoolean){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("微信提现失败,请查看微信商户状态"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMemberWithdraw.setStatus(2); | 
|---|
|  |  |  | mallMemberWithdrawMapper.updateById(mallMemberWithdraw); | 
|---|
|  |  |  | mallMoneyFlow.setStatus(2); | 
|---|
|  |  |  | mallMoneyFlowMapper.updateById(mallMoneyFlow); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (isReduce) { | 
|---|
|  |  |  | iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType); | 
|---|
|  |  |  | int i = iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (i == 2) { | 
|---|
|  |  |  | throw new FebsException("剩余数量不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) { | 
|---|
|  |  |  | Page<MallAgentRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<MallAgentRecord> mallAgentRecords = mallAgentRecordMapper.selectMallAgentRecordListInPage(page, mallAgentRecord); | 
|---|
|  |  |  | return mallAgentRecords; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse agreeAgentApply(Long id) { | 
|---|
|  |  |  | MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallAgentRecord)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("申请记录不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallAgentRecord.setState(MallAgentRecord.APPLY_AGREE); | 
|---|
|  |  |  | mallAgentRecordMapper.updateById(mallAgentRecord); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新用户表中的LEVEL | 
|---|
|  |  |  | MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId()); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); | 
|---|
|  |  |  | this.baseMapper.updateById(mallMember); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse disagreeAgentApply(Long id) { | 
|---|
|  |  |  | MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallAgentRecord)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("申请记录不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallAgentRecord.setState(MallAgentRecord.APPLY_DISAGREE); | 
|---|
|  |  |  | mallAgentRecordMapper.updateById(mallAgentRecord); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallSalesman> getMallSalesmanListInPage(MallSalesman mallSalesman, QueryRequest request) { | 
|---|
|  |  |  | Page<MallSalesman> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | return mallSalesmanMapper.selectMallSalesmanListInPage(page, mallSalesman); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse addSalesman(MallSalesman mallSalesman) { | 
|---|
|  |  |  | mallSalesmanMapper.insert(mallSalesman); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse salesmanDel(Long id) { | 
|---|
|  |  |  | MallSalesman mallSalesman = mallSalesmanMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallSalesman)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("推销员不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallSalesman.setState(2); | 
|---|
|  |  |  | mallSalesmanMapper.updateById(mallSalesman); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse salesmanUpdate(MallSalesman mallSalesman) { | 
|---|
|  |  |  | MallSalesman mallSalesmanNow = mallSalesmanMapper.selectById(mallSalesman.getId()); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallSalesmanNow)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("推销员不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallSalesmanMapper.updateById(mallSalesman); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse salesmanUse(Long id) { | 
|---|
|  |  |  | MallSalesman mallSalesman = mallSalesmanMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallSalesman)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("推销员不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallSalesman.setState(1); | 
|---|
|  |  |  | mallSalesmanMapper.updateById(mallSalesman); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AdminMallSalesmansTreeVo> getSalesmansTree() { | 
|---|
|  |  |  | List<AdminMallSalesmansTreeVo> adminMallSalesmansTreeVos = mallSalesmanMapper.selectTreeByState(1); | 
|---|
|  |  |  | return adminMallSalesmansTreeVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse memberUpdateSalesman(MallMember mallmember) { | 
|---|
|  |  |  | MallMember mallMemberNow = mallMemberMapper.selectById(mallmember.getId()); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMemberNow)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMemberNow.setSalesmansId(mallmember.getSalesmansId()); | 
|---|
|  |  |  | mallMemberMapper.updateById(mallMemberNow); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminMallAddressInfoVo> getAddressAmountList(MallAddressInfo mallAddressInfo, QueryRequest request) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Page<AdminMallAddressInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<AdminMallAddressInfoVo> adminMallAddressInfoVoIPage = mallSalesmanMapper.selectAddressAmountListInPage(page, mallAddressInfo); | 
|---|
|  |  |  | List<AdminMallAddressInfoVo> records = adminMallAddressInfoVoIPage.getRecords(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(records)){ | 
|---|
|  |  |  | for(AdminMallAddressInfoVo adminMallAddressInfoVo : records){ | 
|---|
|  |  |  | String province = adminMallAddressInfoVo.getProvince(); | 
|---|
|  |  |  | String city = adminMallAddressInfoVo.getCity(); | 
|---|
|  |  |  | BigDecimal sumAmount = mallSalesmanMapper.selectSumOrderAmountByProvinceAndCity(province,city); | 
|---|
|  |  |  | adminMallAddressInfoVo.setAmount(sumAmount); | 
|---|
|  |  |  | Integer orderCnt = mallSalesmanMapper.selectSumOrderCntByProvinceAndCity(province,city); | 
|---|
|  |  |  | adminMallAddressInfoVo.setOrderCnt(orderCnt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminMallAddressInfoVoIPage; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AdminMallAddressInfoVo> getAddressTree() { | 
|---|
|  |  |  | return mallSalesmanMapper.selectProvince(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminSalesmanAchieveVo> getSalesmanAchieveList(MallSalesman mallSalesman, QueryRequest request) { | 
|---|
|  |  |  | Page<AdminSalesmanAchieveVo> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<AdminSalesmanAchieveVo> adminSalesmanAchieveVoIPage = mallSalesmanMapper.selectSalesmanAchieveListInPage(page, mallSalesman); | 
|---|
|  |  |  | List<AdminSalesmanAchieveVo> records = adminSalesmanAchieveVoIPage.getRecords(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(records)){ | 
|---|
|  |  |  | for(AdminSalesmanAchieveVo adminSalesmanAchieveVo : records){ | 
|---|
|  |  |  | Long salesmanId = adminSalesmanAchieveVo.getSalesmanId(); | 
|---|
|  |  |  | List<AdminMemberOrderVo> adminMemberOrderVos = mallSalesmanMapper.selectAdminMemberOrderVoBySalesmanId(salesmanId); | 
|---|
|  |  |  | adminSalesmanAchieveVo.setOrderCnt(adminMemberOrderVos.size()); | 
|---|
|  |  |  | adminSalesmanAchieveVo.setAdminMemberOrderVos(adminMemberOrderVos); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminSalesmanAchieveVoIPage; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AdminSalesmanAchieveVo> getSalesmanAchieveTree() { | 
|---|
|  |  |  | return mallSalesmanMapper.selectSalesmanAchieveProvince(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String refererIds(String parentId) { | 
|---|
|  |  |  | boolean flag = false; | 
|---|
|  |  |  | if (StrUtil.isBlank(parentId)) { | 
|---|