|
|
@@ -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) {
|