|
|
@@ -1,9 +1,6 @@
|
|
|
package com.goafanti.admin.service.impl;
|
|
|
|
|
|
-import com.goafanti.admin.bo.AdminStatisticsBo;
|
|
|
-import com.goafanti.admin.bo.ConsultantStatisticsBo;
|
|
|
-import com.goafanti.admin.bo.ConsultantUserCount;
|
|
|
-import com.goafanti.admin.bo.OutFinanceCount;
|
|
|
+import com.goafanti.admin.bo.*;
|
|
|
import com.goafanti.admin.service.AdminStatisticsService;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.dao.*;
|
|
|
@@ -333,6 +330,60 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Object salesTeam(String startTime, String endTime) {
|
|
|
+ List<SalesTeamBo> resList=new ArrayList<>();
|
|
|
+ List<SalesTeam> salesTeams = salesTeamMapper.queryByAid(TokenManager.getAdminId());
|
|
|
+ //如果不是团队负责人,所有数据都为null
|
|
|
+ if (!salesTeams.isEmpty()){
|
|
|
+ //先获取顶层再迭代获取每一层
|
|
|
+ for (SalesTeam e : salesTeams) {
|
|
|
+ SalesTeamBo salesTeamBo = new SalesTeamBo(e);
|
|
|
+ int teamCallSum=0;
|
|
|
+ BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+ List<Admin> admins = adminMapper.queryByTeamId(e.getId());
|
|
|
+ for (Admin e2 : admins) {
|
|
|
+ AdminStatisticsBo as=callLogMapper.selectAdminCallSum(e2.getId(),startTime,endTime);
|
|
|
+ if (as != null) {
|
|
|
+ if (as.getCallSum()!= null) teamCallSum = teamCallSum + as.getCallSum();
|
|
|
+ if (as.getCallDurationSum()!= null) teamCallDurationSum = teamCallDurationSum.add(as.getCallDurationSum());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ salesTeamBo.setTeamCallSum(teamCallSum);
|
|
|
+ salesTeamBo.setTeamCallDurationSum(teamCallDurationSum);
|
|
|
+ salesTeamBo.setTeamPeopleSum(admins.size());
|
|
|
+ resList.add(salesTeamBo);
|
|
|
+ addSonTeam(resList,salesTeamBo,startTime,endTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addSonTeam(List<SalesTeamBo>list, SalesTeamBo salesTeamBo, String startTime, String endTime) {
|
|
|
+ List<SalesTeam> salesTeams = salesTeamMapper.queryBySuperId(salesTeamBo.getId());
|
|
|
+ int teamCallSum=0;
|
|
|
+ BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+ if (!salesTeams.isEmpty()){
|
|
|
+ //计算所有子项数据
|
|
|
+ for (SalesTeam e : salesTeams) {
|
|
|
+ SalesTeamBo salesTeamBo2 = new SalesTeamBo(e);
|
|
|
+ List<Admin> admins = adminMapper.queryByTeamId(e.getId());
|
|
|
+ for (Admin admin : admins) {
|
|
|
+ AdminStatisticsBo as=callLogMapper.selectAdminCallSum(admin.getId(),startTime,endTime);
|
|
|
+ }
|
|
|
+ salesTeamBo.setTeamCallSum(teamCallSum);
|
|
|
+ salesTeamBo.setTeamCallDurationSum(teamCallDurationSum);
|
|
|
+ salesTeamBo.setTeamPeopleSum(admins.size());
|
|
|
+ //迭代计算并赋值给上一层
|
|
|
+ addSonTeam(list,salesTeamBo2,startTime,endTime);
|
|
|
+ salesTeamBo.setTeamPeopleSum(salesTeamBo.getTeamPeopleSum()+salesTeamBo2.getTeamPeopleSum());
|
|
|
+ salesTeamBo.setTeamCallSum(salesTeamBo.getTeamCallSum()+salesTeamBo2.getTeamCallSum());
|
|
|
+ salesTeamBo.setTeamCallDurationSum(salesTeamBo.getTeamCallDurationSum().add(salesTeamBo2.getTeamCallDurationSum()));
|
|
|
+ list.add(salesTeamBo2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public List<String> getThisMonth(Days days) {
|
|
|
//获取三十天前的日期
|