From d5a96c3122c136d4b0c585d08e61b42e8a123743 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 03 Apr 2023 00:26:52 +0800
Subject: [PATCH] 按照商品的来设置补贴额度的系数

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 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 e97394b..99cccf7 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,6 +4,7 @@
 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.LoginUserUtil;
@@ -69,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) {
@@ -121,6 +124,10 @@
 //                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("参数错误");
         }
@@ -629,6 +636,88 @@
         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)) {

--
Gitblit v1.9.1