From 04bba509b1b557f0981ff525c35c628a23397bae Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Wed, 21 Jun 2023 15:35:07 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 255 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 232 insertions(+), 23 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 4ddc727..73f91e2 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -4,8 +4,10 @@
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.*;
@@ -34,8 +36,8 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* @author wzy
@@ -68,6 +70,8 @@
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) {
@@ -110,7 +114,20 @@
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("参数错误");
}
@@ -158,24 +175,36 @@
}
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();
@@ -201,9 +230,11 @@
MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
mallMoneyFlow.setStatus(3);
mallMoneyFlowMapper.updateById(mallMoneyFlow);
-
- //用户佣金增加对应的余额
- iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"commission");
+ if(AppContants.MEMBER_WITHDRAW_NORMAL.equals(mallMemberWithdraw.getRemark())){
+ //用户佣金增加对应的余额
+ iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount().add(mallMemberWithdraw.getAmountFee()),mallMemberWithdraw.getMemberId(),"balance");
+// mallMoneyFlowService.addMoneyFlow(mallMemberWithdraw.getMemberId(), mallMemberWithdraw.getAmount().add(mallMemberWithdraw.getAmountFee()), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), mallMemberWithdraw.getWithdrawNo(), FlowTypeEnum.BALANCE.getValue());
+ }
return new FebsResponse().success();
}
@@ -359,7 +390,7 @@
if(StrUtil.isEmpty(level) || !AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){
return new FebsResponse().fail().message("该用户无法激活");
}
- mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
+ mallMember.setLevel(AgentLevelEnum.SECOND_LEVEL.name());
mallMemberMapper.updateById(mallMember);
return new FebsResponse().success();
}
@@ -450,7 +481,7 @@
// 重置交易密码
if (type == 1) {
- String payPwd = SecureUtil.md5("654321");
+ String payPwd = SecureUtil.md5("123456");
member.setTradePassword(payPwd);
// 重置登录密码
} else {
@@ -582,7 +613,7 @@
member.setReferrerIds(refererIds);
this.baseMapper.updateById(member);
- List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId());
+ List<MallMember> childs = this.baseMapper.selectAllChildAgentListByInviteId(member.getInviteId());
if (CollUtil.isEmpty(childs)) {
return;
}
@@ -603,6 +634,116 @@
mallShopApply.setSaleArea(apply.getSaleArea());
mallShopApply.setShopName(apply.getShopName());
mallShopApplyMapper.updateById(mallShopApply);
+ }
+
+ @Override
+ public AdminMallMemberPaymentVo getMallBankInfoById(long id) {
+
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
+ MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
+ AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
+ if(ObjectUtil.isNotEmpty(mallMemberBank)){
+ adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo());
+ adminMallMemberPaymentVo.setBankName(mallMemberBank.getName());
+ adminMallMemberPaymentVo.setDigitalNo(mallMemberBank.getDigitalNo());
+ adminMallMemberPaymentVo.setSubbranchName(mallMemberBank.getSubbranchName());
+ 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;
+ }
+
+ @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();
}
private String refererIds(String parentId) {
@@ -629,4 +770,72 @@
return ids;
}
+
+ @Override
+ public List<MallMember> findParentMemberList(List<String> inviteIds, Integer level, boolean containsParent) {
+ List<MallMember> mallMembers = this.baseMapper.selectByInviteIds(inviteIds);
+ if(CollUtil.isEmpty(mallMembers)) {
+ return mallMembers;
+ }
+
+
+ List<MallMember> result = new ArrayList<>();
+ int index = containsParent ? 0 : 1;
+ int count = 0;
+ while(true) {
+ if (level != null && count == level) {
+ break;
+ }
+
+ if (index >= mallMembers.size()) {
+ break;
+ }
+
+ String inviteId = inviteIds.get(index);
+ List<MallMember> collect = mallMembers.stream().filter(item -> item.getInviteId().equals(inviteId)).collect(Collectors.toList());
+ result.add(collect.get(0));
+
+ index++;
+ count++;
+ }
+ return result;
+ }
+
+ @Override
+ public TreeItemVo findMatrixTree() {
+ return null;
+ }
+
+ @Override
+ public List<ChargeListExportVo> findChargeListForExcel(MoneyChargeListDto moneyChargeListDto) {
+ return this.mallMoneyFlowMapper.selectChargeListForExcel(moneyChargeListDto);
+ }
+
+ @Override
+ public IPage<AdminTeamListVo> findTeamList(MallMember mallMember, QueryRequest request) {
+ Page<AdminTeamListVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminTeamListVo> teamListInPage = this.mallMemberMapper.selectTeamListInPage(mallMember, page);
+ if (CollUtil.isEmpty(teamListInPage.getRecords())) {
+ return teamListInPage;
+ }
+
+ List<Long> memberIds = teamListInPage.getRecords().stream().map(AdminTeamListVo::getId).collect(Collectors.toList());
+ List<MallMoneyFlow> mallMoneyFlows = this.mallMoneyFlowMapper.selectMemberProfitByMemberIds(memberIds);
+ if (CollUtil.isNotEmpty(mallMoneyFlows)) {
+ Map<Long, MallMoneyFlow> map = new HashMap<>();
+ mallMoneyFlows.forEach(item -> {
+ map.put(item.getMemberId(), item);
+ });
+
+ teamListInPage.getRecords().forEach(item -> {
+ MallMoneyFlow mallMoneyFlow = map.get(item.getId());
+ if (mallMoneyFlow != null) {
+ item.setTeamProfitAmount(mallMoneyFlow.getAmount());
+ }
+ });
+ }
+
+
+ return teamListInPage;
+ }
}
--
Gitblit v1.9.1