Browse Source

首页统计修改

anderx 1 year ago
parent
commit
588b66a6fd

+ 27 - 0
src/main/java/com/goafanti/admin/bo/AdminStatisticsBo.java

@@ -23,6 +23,33 @@ public class AdminStatisticsBo {
     private Integer projectCheckSum;
     private Integer callSum;
     private BigDecimal callDurationSum;
+    private Integer teamPeopleSum;
+    private Integer teamCallSum;
+    private BigDecimal teamCallDurationSum;
+
+    public Integer getTeamPeopleSum() {
+        return teamPeopleSum;
+    }
+
+    public void setTeamPeopleSum(Integer teamPeopleSum) {
+        this.teamPeopleSum = teamPeopleSum;
+    }
+
+    public Integer getTeamCallSum() {
+        return teamCallSum;
+    }
+
+    public void setTeamCallSum(Integer teamCallSum) {
+        this.teamCallSum = teamCallSum;
+    }
+
+    public BigDecimal getTeamCallDurationSum() {
+        return teamCallDurationSum;
+    }
+
+    public void setTeamCallDurationSum(BigDecimal teamCallDurationSum) {
+        this.teamCallDurationSum = teamCallDurationSum;
+    }
 
     public Integer getCallSum() {
         return callSum;

+ 56 - 8
src/main/java/com/goafanti/admin/service/impl/AdminStatisticsServiceImpl.java

@@ -6,14 +6,12 @@ import com.goafanti.admin.bo.ConsultantUserCount;
 import com.goafanti.admin.bo.OutFinanceCount;
 import com.goafanti.admin.service.AdminStatisticsService;
 import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.dao.AdminMapper;
-import com.goafanti.common.dao.CallLogMapper;
-import com.goafanti.common.dao.FinanceCountMapper;
-import com.goafanti.common.dao.PublicReleaseMapper;
+import com.goafanti.common.dao.*;
+import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.AdminUserCount;
+import com.goafanti.common.model.SalesTeam;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.core.shiro.token.TokenManager;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -25,14 +23,16 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
 
 
 
-    @Autowired
+    @Resource
     private AdminMapper adminMapper;
-    @Autowired
+    @Resource
     private PublicReleaseMapper publicReleaseMapper;
-    @Autowired
+    @Resource
     private FinanceCountMapper financeCountMapper;
     @Resource
     private CallLogMapper callLogMapper;
+    @Resource
+    private SalesTeamMapper salesTeamMapper;
 
 
     @Override
@@ -70,9 +70,57 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
             adminStatisticsBo.setCallSum(0);
             adminStatisticsBo.setCallDurationSum(BigDecimal.ZERO);
         }
+        //添加销售团队数据
+        statisticsSalesTeam(adminStatisticsBo,aid,startTime,endTime);
+
         return adminStatisticsBo;
     }
 
+    private void statisticsSalesTeam(AdminStatisticsBo res,String aid ,String startTime,String endTime) {
+        List<String> list =new ArrayList<>();
+        List<SalesTeam> salesTeams = salesTeamMapper.queryByAid(aid);
+        //先获取顶层再迭代获取每一层
+        for (SalesTeam e : salesTeams) {
+            List<Admin> admins = adminMapper.queryByTeamId(e.getId());
+            admins.stream().forEach(e1 -> {
+                list.add(e1.getId());
+            });
+            addSonSalesTeam(list,e);
+        }
+        Set<String> set = new HashSet<>(list);
+        int teamCallSum=0;
+        BigDecimal teamCallDurationSum=BigDecimal.ZERO;
+        for (String s : set) {
+            AdminStatisticsBo as=callLogMapper.selectAdminCallSum(aid,startTime,endTime);
+            if (as != null) {
+                if (as.getCallSum()!= null) teamCallSum = teamCallSum + as.getCallSum();
+                if (as.getCallDurationSum()!= null) teamCallDurationSum = teamCallDurationSum.add(as.getCallDurationSum());
+            }
+        }
+        res.setTeamPeopleSum(set.size());
+        res.setTeamCallSum(teamCallSum);
+        res.setTeamCallDurationSum(teamCallDurationSum);
+
+    }
+
+    /**
+     *
+     * @param list
+     * @param res
+     */
+    private void addSonSalesTeam(List<String> list, SalesTeam res) {
+        List<SalesTeam> salesTeams = salesTeamMapper.queryBySuperId(res.getId());
+        if (!salesTeams.isEmpty()){
+            for (SalesTeam e : salesTeams) {
+                List<Admin> admins = adminMapper.queryByTeamId(e.getId());
+                admins.stream().forEach(e1 -> {
+                    list.add(e1.getId());
+                });
+                addSonSalesTeam(list,e);
+            }
+        }
+    }
+
     @Override
 //    @Cacheable(value = "adminStatisticeLists#300", key = "'key:'+#aid")
     public Object lists(String aid) {

+ 2 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -278,6 +278,8 @@ public interface AdminMapper {
     List<Admin> agentList();
 
     Admin selectByCallStaffNo(String staffNo);
+
+    List<Admin> queryByTeamId(Integer id);
 }
 
 

+ 4 - 0
src/main/java/com/goafanti/common/dao/SalesTeamMapper.java

@@ -85,5 +85,9 @@ public interface SalesTeamMapper {
     SalesTeamBo queryDetailsById(Integer id);
 
     List<SalesTeamBo> findSalesTeamLvlList(SalesTeam in);
+
+    List<SalesTeam> queryByAid(String aid);
+
+    List<SalesTeam> queryBySuperId(Integer id);
 }
 

+ 6 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -1320,5 +1320,11 @@
         from admin
         where  call_no = #{callStaffNo}
     </select>
+    <select id="queryByTeamId" resultMap="AdminMap">
+        select
+        <include refid="AdminAllSql"/>
+        from admin
+        where team_id = #{teamId}
+    </select>
 </mapper>
 

+ 12 - 0
src/main/java/com/goafanti/common/mapper/SalesTeamMapper.xml

@@ -165,5 +165,17 @@
         </where>
 
     </select>
+    <select id="queryByAid" resultMap="SalesTeamMap">
+        select
+            <include refid="SalesTeamAllSql"/>
+        from sales_team
+        where aid = #{aid}
+    </select>
+    <select id="queryBySuperId"  resultMap="SalesTeamMap">
+        select
+        <include refid="SalesTeamAllSql"/>
+        from sales_team
+        where super_id = #{superId}
+    </select>
 </mapper>