Ver código fonte

首页云教练数据-分部数据-新增目标学员人数

zouxuan 3 anos atrás
pai
commit
a13af48797

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/OrganCloudStudyStudentDataQueryInfo.java

@@ -9,6 +9,9 @@ public class OrganCloudStudyStudentDataQueryInfo extends QueryInfo {
 
     private String organIds;
 
+    @ApiModelProperty("目标学员总数")
+    private String targetNum;
+
     @ApiModelProperty("学员总数")
     private String totalStudentNum;
 
@@ -45,6 +48,14 @@ public class OrganCloudStudyStudentDataQueryInfo extends QueryInfo {
     @ApiModelProperty("新用户人数占比")
     private String newStudentDuty;
 
+    public String getTargetNum() {
+        return targetNum;
+    }
+
+    public void setTargetNum(String targetNum) {
+        this.targetNum = targetNum;
+    }
+
     public String getNewStudentNum() {
         return newStudentNum;
     }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -695,12 +695,25 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
         Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 
+        //获取分部目标
+        String cloudTeacherActiveTarget = sysConfigDao.findConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET);
+        if(StringUtils.isEmpty(cloudTeacherActiveTarget)){
+            return null;
+        }
+        List<CloudTeacherActiveTargetDto> targetDtoList = JSONArray.parseArray(cloudTeacherActiveTarget, CloudTeacherActiveTargetDto.class);
+        Map<Integer, List<CloudTeacherActiveTargetDto>> targetMap = targetDtoList.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
+
         List<EduOrganStudentDataDto> result = new ArrayList<>();
 
         for (Organization organ : organs) {
             EduOrganStudentDataDto organStudentVipData = new EduOrganStudentDataDto();
             organStudentVipData.setOrganId(organ.getId());
             organStudentVipData.setOrganName(organ.getName());
+            List<CloudTeacherActiveTargetDto> targetDtos = targetMap.get(organ.getId());
+            if(targetDtos != null && targetDtos.size() > 0){
+                CloudTeacherActiveTargetDto target = targetDtos.get(0);
+                organStudentVipData.setTargetNum(target.getTargetNum());
+            }
             if(organsStudentNumMap.containsKey(organ.getId().toString())){
                 organStudentVipData.setTotalStudentNum(organsStudentNumMap.get(organ.getId().toString()).intValue());
             }
@@ -833,6 +846,13 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             result.add(organStudentVipData);
         }
         Comparator<EduOrganStudentDataDto> comparing = null;
+        if(StringUtils.isNotBlank(queryInfo.getTargetNum())){
+            if(Objects.isNull(comparing)){
+                comparing = Comparator.comparing(EduOrganStudentDataDto::getTargetNum, "ASC".equals(queryInfo.getTargetNum())?Comparator.naturalOrder():Comparator.reverseOrder());
+            }else{
+                comparing.thenComparing(EduOrganStudentDataDto::getTargetNum, "ASC".equals(queryInfo.getTargetNum())?Comparator.naturalOrder():Comparator.reverseOrder());
+            }
+        }
         if(StringUtils.isNotBlank(queryInfo.getTotalStudentNum())){
             if(Objects.isNull(comparing)){
                 comparing = Comparator.comparing(EduOrganStudentDataDto::getTotalStudentNum, "ASC".equals(queryInfo.getTotalStudentNum())?Comparator.naturalOrder():Comparator.reverseOrder());

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -3199,8 +3199,8 @@ public class ExportController extends BaseController {
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            String[] header = {"排名", "分部", "学员总数", "活跃人数", "使用人数", "新增使用人数", "使用比例", "付费会员数", "付费会员占比"};
-            String[] body = {"index","organName", "totalStudentNum", "cloudStudyLivelyStudentNum", "cloudStudyUseStudentNum", "newCloudStudyStudentNum",
+            String[] header = {"排名", "分部", "学员总数", "目标人数", "活跃人数", "使用人数", "新增使用人数", "使用比例", "付费会员数", "付费会员占比"};
+            String[] body = {"index","organName", "totalStudentNum", "targetNum", "cloudStudyLivelyStudentNum", "cloudStudyUseStudentNum", "newCloudStudyStudentNum",
                     "cloudStudyUseStudentDuty+\"%\"", "vipStudentNum", "vipStudentDuty+\"%\""};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, rows);
             response.setContentType("application/octet-stream");