From 7655547b449a79a9330fd03440a616b3d6ef8362 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 14 Mar 2023 14:30:10 +0800
Subject: [PATCH] 代理商补贴,线下服务中心补贴,平级奖励补贴

---
 src/main/resources/mapper/modules/MallAchieveRecordMapper.xml                  |   10 +
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java           |   46 -------
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java                 |    6 +
 src/main/java/cc/mrbird/febs/mall/mapper/MallAchieveRecordMapper.java          |   10 +
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java    |  178 +++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java                        |   28 ++++
 src/main/resources/mapper/modules/MallMemberMapper.xml                         |   20 +++
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                      |    3 
 src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java            |    6 +
 src/main/java/cc/mrbird/febs/mall/service/IAgentService.java                   |   15 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   10 +
 11 files changed, 279 insertions(+), 53 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallAchieveRecordMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallAchieveRecordMapper.java
index 314d2e1..86dd69b 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallAchieveRecordMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallAchieveRecordMapper.java
@@ -6,8 +6,16 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 public interface MallAchieveRecordMapper extends BaseMapper<MallAchieveRecord> {
-
+    /**
+     *  根据日期获取总业绩
+     * @param type D:某一天;M:某一月
+     * @param date
+     * @return
+     */
     BigDecimal selectAchieveTotal(@Param("type") String type, @Param("date") Date date);
+
+    BigDecimal selectSumAchieveByMemberIds(@Param("list")List<Long> mallMembersOffLinePerkIds, @Param("date") Date date);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
index 9230766..6e486ac 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -87,4 +87,10 @@
     List<MallMember> selectMemberWithLevel(String level);
 
     List<Long> selectMemberIdWithLevel(String levelParam);
+
+    List<MallMember> selectAllChildAgentListByInviteIdAndStoreMaster(@Param("inviteId")String inviteId,@Param("state")Integer state);
+
+    List<MallMember> selectMemberByDirector(@Param("state")Integer state);
+
+    List<MallMember> selectMemberByStoreMaster(@Param("state")Integer state);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index a34ab2a..4beac7f 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -50,12 +50,36 @@
 //        memberProfitService.storeAndDirectorProfit(null);
 //    }
 
+//    /**
+//     * 线下服务中心补贴
+//     */
+//    @Scheduled(cron = "0 0 1 * * ?")
+//    public void thankfulJob() {
+//        memberProfitService.thankfulProfit(null);
+//    }
+
+    /**
+     * 代理商补贴
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void agentPerkJob() {
+        memberProfitService.agentPerkJob(null);
+    }
+
     /**
      * 线下服务中心补贴
      */
     @Scheduled(cron = "0 0 1 * * ?")
-    public void thankfulJob() {
-        memberProfitService.thankfulProfit(null);
+    public void offLinePerkJob() {
+        memberProfitService.offLinePerkJob(null);
+    }
+
+    /**
+     * 平级奖励补贴
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void teamEqualsPerkJob() {
+        memberProfitService.teamEqualsPerkJob(null);
     }
 
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
index 8d3c118..3eee0c9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
@@ -1,5 +1,10 @@
 package cc.mrbird.febs.mall.service;
 
+import cc.mrbird.febs.mall.entity.MallMemberWallet;
+
+import java.math.BigDecimal;
+import java.util.List;
+
 public interface IAgentService {
 
     void autoUpAgentLevel(Long memberId);
@@ -9,4 +14,14 @@
     void rankReturnMoney(Long orderId);
 
     void perkMoneyConsumer(long parseLong);
+    /**
+     * 统一处理补贴,流水,余额
+     *      增加的余额是一样的
+     * @param mallMemberWallets
+     * @param amount
+     * @param flowType
+     * @param orderNo
+     * @param memberId
+     */
+    void flowTotalScoreBalance(List<MallMemberWallet> mallMemberWallets, BigDecimal amount, int flowType, String orderNo, Long memberId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
index abb14d5..0512651 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
@@ -41,4 +41,10 @@
     void storeAndDirectorProfit(Date profitDate);
 
     void scorePool();
+
+    void agentPerkJob(Date profitDate);
+
+    void offLinePerkJob(Date profitDate);
+
+    void teamEqualsPerkJob(Date profitDate);
 }
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 c6e98d3..c06f4c7 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
@@ -36,6 +36,7 @@
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -110,6 +111,15 @@
         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 {
             throw new FebsException("参数错误");
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index e253eae..9f9d2c8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -425,6 +425,7 @@
      * @param orderNo
      * @param memberId
      */
+    @Override
     public void flowTotalScoreBalance(List<MallMemberWallet> mallMemberWallets,BigDecimal amount,int flowType,String orderNo,Long memberId){
         //给当前等级的每个用户发放星级奖励
         int count = 0;
@@ -488,50 +489,5 @@
         }
     }
 
-    /**
-     * 平级奖励补贴
-     */
-    public void getPeerPerk(){
-        /**
-         * 全体用户
-         *      对象:产生了收益的用户的直属上级
-         *      条件:等级和用户等级一样
-         *      补贴:每日补贴的10%,例如用户当日的补贴总额为100,直属上级拿100*10%=10,
-         *      限制:直推收益除外。
-         */
-        //平级补贴百分比
-        DataDictionaryCustom teamEqualsPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.TEAM_EQUALS_PERK.getType(),
-                DataDictionaryEnum.TEAM_EQUALS_PERK.getCode());
-        BigDecimal teamEqualsPerkPercent = new BigDecimal(teamEqualsPerkDic.getValue()).abs().multiply(BigDecimal.valueOf(0.01));
 
-        //产生了收益的用户和直属上级
-        List<AdminTeamEqualsPerkVo> adminTeamEqualsPerkVos = mallMoneyFlowMapper.selectTeamEqualsMemberByDate(new Date());
-        if(CollUtil.isNotEmpty(adminTeamEqualsPerkVos)){
-            for(AdminTeamEqualsPerkVo adminTeamEqualsPerkVo : adminTeamEqualsPerkVos){
-                BigDecimal sumAmount = adminTeamEqualsPerkVo.getSumAmount();
-                //平级补贴
-                BigDecimal teamEqualsPerkAmount = teamEqualsPerkPercent.multiply(sumAmount).setScale(2, BigDecimal.ROUND_DOWN);
-
-                MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(adminTeamEqualsPerkVo.getRtMemberId());
-                BigDecimal totalScore = mallMemberWallet.getTotalScore();
-                if(totalScore.compareTo(teamEqualsPerkAmount) < 0){
-                    teamEqualsPerkAmount = totalScore;
-                }
-                if(BigDecimal.ZERO.compareTo(teamEqualsPerkAmount) < 0){
-                //减少补贴额度
-                mallMemberWalletMapper.reduceTotalScoreById(teamEqualsPerkAmount, mallMemberWallet.getId());
-
-                mallMemberWalletMapper.addBalanceById(teamEqualsPerkAmount, mallMemberWallet.getId());
-
-                mallMoneyFlowService.addMoneyFlow(
-                        adminTeamEqualsPerkVo.getRtMemberId(),
-                        teamEqualsPerkAmount,
-                        MoneyFlowTypeEnum.TEAM_EQUALS_PERK.getValue(),
-                        MallUtils.getOrderNum("TEP"),
-                        FlowTypeEnum.BALANCE.getValue());
-                }
-            }
-        }
-    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index b93bc9e..57f047a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -5,14 +5,13 @@
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.MallUtils;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.mall.dto.ScorePoorDto;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
-import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
-import cc.mrbird.febs.mall.service.IMallAchieveService;
-import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
-import cc.mrbird.febs.mall.service.IMemberProfitService;
+import cc.mrbird.febs.mall.service.*;
+import cc.mrbird.febs.mall.vo.AdminTeamEqualsPerkVo;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
@@ -33,6 +32,7 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -54,6 +54,8 @@
     private final MallAchieveRecordMapper mallAchieveRecordMapper;
     private final RedisUtils redisUtils;
     private final MallMemberWalletMapper mallMemberWalletMapper;
+    private final IAgentService iAgentService;
+    private final IMallMoneyFlowService mallMoneyFlowService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -574,4 +576,172 @@
                 +";人数:"+cnt);
     }
 
+    @Override
+    public void agentPerkJob(Date profitDate) {
+        /**
+         * 代理商补贴
+         *  全体代理商
+         *  前一天全部业绩的百分比用来平分
+         */
+        log.info("######==代理商补贴==start==####");
+
+        List<MallMember> mallMembersAgentPerkList = mallMemberMapper.selectMemberByDirector(1);
+        if (CollUtil.isEmpty(mallMembersAgentPerkList)) {
+            return;
+        }
+        if (profitDate == null) {
+            profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
+        }
+        //前一天的总业绩
+        BigDecimal agentPerkAmountSum = mallAchieveRecordMapper.selectAchieveTotal("D", profitDate);
+        //补贴百分比
+        DataDictionaryCustom agentPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.AGENT_PERK.getType(),
+                DataDictionaryEnum.AGENT_PERK.getCode()
+        );
+        if(ObjectUtil.isEmpty(agentPerkDic)){
+            return;
+        }
+        BigDecimal agentPerk = new BigDecimal(agentPerkDic.getValue()).multiply(new BigDecimal("0.01"));
+        agentPerkAmountSum = agentPerkAmountSum.multiply(agentPerk);
+
+        BigDecimal agentPerkAmount = agentPerkAmountSum.divide(new BigDecimal(mallMembersAgentPerkList.size()), BigDecimal.ROUND_DOWN).setScale(2, BigDecimal.ROUND_DOWN);
+        List<Long> mallMembersAgentPerkIds = mallMembersAgentPerkList.stream().map(MallMember::getId).collect(Collectors.toList());
+        List<MallMemberWallet> mallMemberWallets = mallMemberWalletMapper.selectMemberWalletsByIds(mallMembersAgentPerkIds);
+        iAgentService.flowTotalScoreBalance(
+                mallMemberWallets,
+                agentPerkAmount,
+                MoneyFlowTypeEnum.AGENT_PERK.getValue(),
+                MallUtils.getOrderNum("AP"),
+                1L
+        );
+
+        log.info("#####==代理商补贴==end==######" +
+                "今日总补贴###" + agentPerkAmountSum.setScale(2, RoundingMode.HALF_UP)
+                +"###人均###"+agentPerkAmount.setScale(2, RoundingMode.HALF_UP)
+                +"###人数###"+mallMemberWallets.size());
+
+
+    }
+
+    @Override
+    public void offLinePerkJob(Date profitDate) {
+        /**
+         * 线下服务中心补贴
+         *  全体线下服务商
+         *  前一天团队业绩的百分比用来平分
+         */
+        log.info("######==线下服务中心补贴==start==####");
+
+        List<MallMember> mallMembersOffLinePerkList = mallMemberMapper.selectMemberByStoreMaster(1);
+        if (CollUtil.isEmpty(mallMembersOffLinePerkList)) {
+            return;
+        }
+
+        //补贴百分比
+        DataDictionaryCustom offLinePerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.OFFLINE_PERK.getType(),
+                DataDictionaryEnum.OFFLINE_PERK.getCode()
+        );
+        if(ObjectUtil.isEmpty(offLinePerkDic)){
+            return;
+        }
+        BigDecimal offLinePerk = new BigDecimal(offLinePerkDic.getValue()).multiply(new BigDecimal("0.01"));
+
+        if (profitDate == null) {
+            profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
+        }
+        for(MallMember mallMembersOffLinePerk : mallMembersOffLinePerkList){
+            String inviteId = mallMembersOffLinePerk.getInviteId();
+            //获取团队下所有成员
+            List<MallMember> allMallMemberList = mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
+            //子团队中是否有线下服务商
+            List<MallMember> storeMasterMallMemberList = mallMemberMapper.selectAllChildAgentListByInviteIdAndStoreMaster(inviteId, 1);
+            if(CollUtil.isNotEmpty(storeMasterMallMemberList)){
+                //如果有,该子团队成员不算业绩
+                List<MallMember> storeMasterMallMembers = new ArrayList<>();
+                for(MallMember storeMasterMallMember : storeMasterMallMemberList){
+                    List<MallMember> storeMasterList = mallMemberMapper.selectAllChildAgentListByInviteId(storeMasterMallMember.getInviteId());
+                    storeMasterMallMembers.addAll(storeMasterList);
+                }
+                allMallMemberList.removeAll(storeMasterMallMembers);
+            }
+
+            //团队下所有人的业绩
+            List<Long> mallMembersOffLinePerkIds = allMallMemberList.stream().map(MallMember::getId).collect(Collectors.toList());
+
+            BigDecimal offLinePerkAmountSum = mallAchieveRecordMapper.selectSumAchieveByMemberIds(mallMembersOffLinePerkIds,profitDate);
+            //该团队产生的业绩金额
+            offLinePerkAmountSum = offLinePerkAmountSum.multiply(offLinePerk).setScale(2,BigDecimal.ROUND_DOWN);
+
+            //所有合伙人补贴至消费礼包的三倍额度需要复购一次。
+            MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMembersOffLinePerk.getId());
+            BigDecimal totalScore = mallMemberWallet.getTotalScore();
+            if(totalScore.compareTo(offLinePerkAmountSum) < 0){
+                offLinePerkAmountSum = totalScore;
+            }
+            if(BigDecimal.ZERO.compareTo(offLinePerkAmountSum) < 0){
+                //减少补贴额度
+                mallMemberWalletMapper.reduceTotalScoreById(offLinePerkAmountSum, mallMemberWallet.getId());
+
+                mallMemberWalletMapper.addBalanceById(offLinePerkAmountSum, mallMemberWallet.getId());
+
+                mallMoneyFlowService.addMoneyFlow(
+                        mallMembersOffLinePerk.getId(),
+                        offLinePerkAmountSum,
+                        MoneyFlowTypeEnum.OFFLINE_PERK.getValue(),
+                        MallUtils.getOrderNum("OLP"),
+                        FlowTypeEnum.BALANCE.getValue());
+            }
+        }
+    }
+
+    @Override
+    public void teamEqualsPerkJob(Date profitDate) {
+        /**
+         * 全体用户
+         *      对象:产生了收益的用户的直属上级
+         *      条件:等级和用户等级一样
+         *      补贴:每日补贴的10%,例如用户当日的补贴总额为100,直属上级拿100*10%=10,
+         *      限制:直推收益除外。
+         */
+        if (profitDate == null) {
+            profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
+        }
+        //平级补贴百分比
+        DataDictionaryCustom teamEqualsPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.TEAM_EQUALS_PERK.getType(),
+                DataDictionaryEnum.TEAM_EQUALS_PERK.getCode());
+        BigDecimal teamEqualsPerkPercent = new BigDecimal(teamEqualsPerkDic.getValue()).abs().multiply(BigDecimal.valueOf(0.01));
+
+        //产生了收益的用户和直属上级
+        List<AdminTeamEqualsPerkVo> adminTeamEqualsPerkVos = mallMoneyFlowMapper.selectTeamEqualsMemberByDate(profitDate);
+        if(CollUtil.isNotEmpty(adminTeamEqualsPerkVos)){
+            for(AdminTeamEqualsPerkVo adminTeamEqualsPerkVo : adminTeamEqualsPerkVos){
+                BigDecimal sumAmount = adminTeamEqualsPerkVo.getSumAmount();
+                //平级补贴
+                BigDecimal teamEqualsPerkAmount = teamEqualsPerkPercent.multiply(sumAmount).setScale(2, BigDecimal.ROUND_DOWN);
+
+                MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(adminTeamEqualsPerkVo.getRtMemberId());
+                BigDecimal totalScore = mallMemberWallet.getTotalScore();
+                if(totalScore.compareTo(teamEqualsPerkAmount) < 0){
+                    teamEqualsPerkAmount = totalScore;
+                }
+                if(BigDecimal.ZERO.compareTo(teamEqualsPerkAmount) < 0){
+                    //减少补贴额度
+                    mallMemberWalletMapper.reduceTotalScoreById(teamEqualsPerkAmount, mallMemberWallet.getId());
+
+                    mallMemberWalletMapper.addBalanceById(teamEqualsPerkAmount, mallMemberWallet.getId());
+
+                    mallMoneyFlowService.addMoneyFlow(
+                            adminTeamEqualsPerkVo.getRtMemberId(),
+                            teamEqualsPerkAmount,
+                            MoneyFlowTypeEnum.TEAM_EQUALS_PERK.getValue(),
+                            MallUtils.getOrderNum("TEP"),
+                            FlowTypeEnum.BALANCE.getValue());
+                }
+            }
+        }
+    }
+
 }
diff --git a/src/main/resources/mapper/modules/MallAchieveRecordMapper.xml b/src/main/resources/mapper/modules/MallAchieveRecordMapper.xml
index 53af5db..0825990 100644
--- a/src/main/resources/mapper/modules/MallAchieveRecordMapper.xml
+++ b/src/main/resources/mapper/modules/MallAchieveRecordMapper.xml
@@ -13,4 +13,14 @@
         </if>
     </select>
 
+    <select id="selectSumAchieveByMemberIds" resultType="cc.mrbird.febs.mall.entity.MallAchieveRecord">
+        select IFNULL(sum(IFNULL(amount,0)),0)
+        from mall_achieve_record
+        where  member_id IN
+        <foreach collection = "list" item = "item"  separator=","  open = "(" close = ")" >
+            #{item}
+        </foreach >
+        and date_format(achieve_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index 655f2e6..29afe0a 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -405,4 +405,24 @@
         select id from mall_member
         where level = #{level}
     </select>
+
+    <select id="selectAllChildAgentListByInviteIdAndStoreMaster" resultType="cc.mrbird.febs.mall.entity.MallMember">
+        select *
+        from mall_member
+        where
+              find_in_set(#{inviteId}, referrer_ids)
+            and store_master = #{state}
+    </select>
+
+    <select id="selectMemberByDirector" resultType="cc.mrbird.febs.mall.entity.MallMember">
+        select *
+        from mall_member
+        where director = #{state}
+    </select>
+
+    <select id="selectMemberByStoreMaster" resultType="cc.mrbird.febs.mall.entity.MallMember">
+        select *
+        from mall_member
+        where store_master = #{state}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index b40f23a..7179b65 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -172,7 +172,8 @@
         inner join mall_member b on b.id = a.member_id
         inner join mall_member c on c.invite_id = b.referrer_id and c.level = b.level
         where
-              a.type in (1, 2)
+              a.type &gt;= 19
+          and a.type &lt;= 27
           and date_format(a.created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
         group by a.member_id;
     </select>

--
Gitblit v1.9.1