| | |
| | | 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.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | private final IMallMoneyFlowService mallMoneyFlowService; |
| | | private final UnipayService unipayService; |
| | | private final MallMemberBankMapper mallMemberBankMapper; |
| | | private final MallScoreRecordMapper mallScoreRecordMapper; |
| | | private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper; |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | |
| | | if (type == 1) { |
| | | mallMember.setDirector(value); |
| | | } else if (type == 2){ |
| | | /** |
| | | * 线下服务商设置 |
| | | * 团队下没有线下服务商,才能成为线下服务商 |
| | | */ |
| | | // List<MallMember> mallMembers = mallMemberMapper.selectAllChildAgentListByInviteIdAndStoreMaster(mallMember.getInviteId(), 1); |
| | | // if(CollUtil.isNotEmpty(mallMembers)){ |
| | | // List<String> phoneList = mallMembers.stream().map(MallMember::getPhone).collect(Collectors.toList()); |
| | | // throw new FebsException("团队存在线下服务中心,账号为【"+phoneList.toString()+"】"); |
| | | // } |
| | | mallMember.setStoreMaster(value); |
| | | }else if (type == 3){ |
| | | mallMember.setCreater(value); |
| | | } else if (type == 4){ |
| | | mallMember.setPartner(value); |
| | | } else { |
| | | throw new FebsException("参数错误"); |
| | | } |
| | |
| | | } |
| | | |
| | | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); |
| | | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); |
| | | // 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("提现失败,请稍后查看错误信息一览"); |
| | | // 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); |
| | | } |
| | | |
| | | return new FebsResponse().success(); |
| | |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | |
| | | //用户佣金增加对应的余额 |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"commission"); |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); |
| | | if(AppContants.MEMBER_WITHDRAW_VOUCHER.equals(mallMemberWithdraw.getRemark())){ |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmountFee(),mallMemberWithdraw.getMemberId(),"voucher_cnt"); |
| | | } |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | |
| | | |
| | | // 重置交易密码 |
| | | if (type == 1) { |
| | | String payPwd = SecureUtil.md5("654321"); |
| | | String payPwd = SecureUtil.md5("123456"); |
| | | member.setTradePassword(payPwd); |
| | | // 重置登录密码 |
| | | } else { |
| | |
| | | if(ObjectUtil.isNotEmpty(mallMemberBank)){ |
| | | adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo()); |
| | | adminMallMemberPaymentVo.setBankName(mallMemberBank.getName()); |
| | | adminMallMemberPaymentVo.setDigitalNo(mallMemberBank.getDigitalNo()); |
| | | adminMallMemberPaymentVo.setBank(mallMemberBank.getBankName()); |
| | | } |
| | | return adminMallMemberPaymentVo; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateVoucher(MallSystemPayDto mallSystemPayDto) { |
| | | Long memberId = mallSystemPayDto.getId(); |
| | | MallMember mallMember = mallMemberMapper.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | |
| | | BigDecimal addBalance = mallSystemPayDto.getAddBalance(); |
| | | if(addBalance.compareTo(BigDecimal.ZERO) <= 0){ |
| | | return new FebsResponse().fail().message("请输入正确的数量"); |
| | | } |
| | | |
| | | DataDictionaryCustom totalCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | GreenScoreEnum.TOTAL_CNT.getType(), |
| | | GreenScoreEnum.TOTAL_CNT.getCode() |
| | | ); |
| | | |
| | | BigDecimal totalCnt = new BigDecimal(totalCntDic.getValue()); |
| | | //凭证占总数的10% |
| | | BigDecimal roleCnt = totalCnt.multiply(new BigDecimal(0.1)); |
| | | //获取已卖出的凭证数量 |
| | | BigDecimal roleCntSale = mallScoreRecordMapper.selectSumScoreCnt().setScale(2,BigDecimal.ROUND_DOWN); |
| | | roleCntSale = roleCntSale.add(addBalance); |
| | | |
| | | if(roleCnt.compareTo(roleCntSale) < 0){ |
| | | return new FebsResponse().fail().message("已拨付:"+roleCntSale); |
| | | } |
| | | /** |
| | | * 增加一条会员购买记录 |
| | | * mall_score_record |
| | | */ |
| | | MallScoreRecord mallScoreRecord = new MallScoreRecord(); |
| | | mallScoreRecord.setMemberId(memberId); |
| | | mallScoreRecord.setScoreNo(MallUtils.getOrderNum("MSR")); |
| | | mallScoreRecord.setScoreCnt(addBalance); |
| | | mallScoreRecord.setSurplusCnt(addBalance); |
| | | mallScoreRecordMapper.insert(mallScoreRecord); |
| | | /** |
| | | * 减少剩余绿色凭证数量 |
| | | */ |
| | | DataDictionaryCustom surplusCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | GreenScoreEnum.SURPLUS_CNT.getType(), |
| | | GreenScoreEnum.SURPLUS_CNT.getCode() |
| | | ); |
| | | BigDecimal surplusCnt = new BigDecimal(surplusCntDic.getValue()); |
| | | surplusCnt = surplusCnt.subtract(addBalance); |
| | | surplusCntDic.setValue(surplusCnt.toString()); |
| | | dataDictionaryCustomMapper.updateById(surplusCntDic); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallScoreRecord> gerRoleReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) { |
| | | Page<MallScoreRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MallScoreRecord> mallScoreRecordIPage = mallScoreRecordMapper.gerRoleReleaseListInPage(page, roleReleaseDto); |
| | | return mallScoreRecordIPage; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallMoneyFlow> roleReleaseChild(QueryRequest request, MallScoreRecord mallScoreRecord) { |
| | | Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | MallScoreRecord mallScore = mallScoreRecordMapper.selectById(mallScoreRecord.getId()); |
| | | IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreRecordMapper.gerRoleReleaseChildInPage(page, mallScore); |
| | | return mallMoneyFlowIPage; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallScoreAchieveRelease> gerAchieveReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) { |
| | | Page<MallScoreAchieveRelease> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MallScoreAchieveRelease> MallScoreAchieveReleases = mallScoreAchieveReleaseMapper.gerAchieveReleaseListInPage(page, roleReleaseDto); |
| | | return MallScoreAchieveReleases; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallMoneyFlow> achieveReleaseChild(QueryRequest request, MallScoreAchieveRelease mallScoreAchieveRelease) { |
| | | Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | MallScoreAchieveRelease mallScoreAchieve = mallScoreAchieveReleaseMapper.selectById(mallScoreAchieveRelease.getId()); |
| | | IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreAchieveReleaseMapper.gerAchieveReleaseChildInPage(page, mallScoreAchieve); |
| | | return mallMoneyFlowIPage; |
| | | } |
| | | |
| | | private String refererIds(String parentId) { |
| | | boolean flag = false; |
| | | if (StrUtil.isBlank(parentId)) { |