Browse Source

增加超管机构统计

wangliang 1 year ago
parent
commit
303d40f711

+ 1 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

@@ -542,7 +542,7 @@ public class SysController {
     @ApiOperation(value = "数据统计接口")
     @RequestMapping(value = "/data_count", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "超管数据统计接口", response = Result.class)})
-    @RedisLimitAnnotation(key = "dataCount", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "dataCount", period = 1, count = 1)
     public Result dataCount() {
         List<Long> list = tOeExamRecordService.dataCount();
         List<OrgDataCountBean> orgDataCountBeanList = tOeExamRecordService.orgDataCount();

+ 1 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TEExamController.java

@@ -441,7 +441,7 @@ public class TEExamController {
     @ApiOperation(value = "监考端获取考试批次提醒接口")
     @RequestMapping(value = "/list/count", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "考试批次信息", response = Result.class)})
-    @RedisLimitAnnotation(key = "listCount", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "listCount", period = 1, count = 1)
     public Result listCount(@ApiParam(value = "用户id", required = false) @RequestParam(required = false) Long userId) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         return ResultUtil.ok(teExamService.examList(userId, tbUser.getOrgId()));

+ 1 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TEExamReexamController.java

@@ -297,7 +297,7 @@ public class TEExamReexamController {
     @ApiOperation(value = "重考待审提醒接口")
     @RequestMapping(value = "/list_not_done_notify", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
-    @RedisLimitAnnotation(key = "listNotDoneNotify", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "listNotDoneNotify", period = 1, count = 1)
     public Result listNotDoneNotify(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         Integer count = teExamReexamService.reexamPageNotDoneCount(examId, tbUser.getId(), tbUser.getOrgId());

+ 2 - 2
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateController.java

@@ -101,7 +101,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "实时监控台视频列表接口")
     @RequestMapping(value = "/list/video", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListVideoBean.class)})
-    @RedisLimitAnnotation(key = "listVideo", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "listVideo", period = 1, count = 1)
     public Result listVideo(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
                             @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                             @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
@@ -190,7 +190,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "实时监控台视频随机列表接口")
     @RequestMapping(value = "/list/video/random", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListVideoBean.class)})
-    @RedisLimitAnnotation(key = "listVideoRandom", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "listVideoRandom", period = 1, count = 1)
     public Result listVideoRandom(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId, @ApiParam(value = "随机数", required = true) @RequestParam Integer randomNum) {
         if (Objects.isNull(randomNum) || Objects.equals(randomNum, "")) {
             throw new BusinessException("随机数不能为空");

+ 1 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TIeInvigilateWarnInfoController.java

@@ -56,7 +56,7 @@ public class TIeInvigilateWarnInfoController {
     @ApiOperation(value = "预警提醒接口")
     @RequestMapping(value = "/notify", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"count\":1}", response = Result.class)})
-    @RedisLimitAnnotation(key = "warnNotify", period = 1, count = 1)
+//    @RedisLimitAnnotation(key = "warnNotify", period = 1, count = 1)
     public Result notify(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
                          @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                          @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode) {

+ 5 - 4
themis-business/src/main/java/com/qmth/themis/business/bean/admin/DataCountBean.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @Description: 数据统计
@@ -37,10 +38,10 @@ public class DataCountBean implements Serializable {
     }
 
     public DataCountBean(List<Long> list, List<OrgDataCountBean> orgDataCountBeanList, List<MapDataCountBean> mapDataCountBeanList) {
-        this.onlineCount = list.get(0);
-        this.examCount = list.get(1);
-        this.examRecordCount = list.get(2);
-        this.examStudentCount = list.get(3);
+        this.onlineCount = Objects.nonNull(list.get(0)) ? list.get(0) : 0L;
+        this.examCount = Objects.nonNull(list.get(1)) ? list.get(1) : 0L;
+        this.examRecordCount = Objects.nonNull(list.get(2)) ? list.get(2) : 0L;
+        this.examStudentCount = Objects.nonNull(list.get(3)) ? list.get(3) : 0L;
         this.orgDataCountBeanList = orgDataCountBeanList;
         this.mapDataCountBeanList = mapDataCountBeanList;
     }

+ 21 - 12
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -1748,10 +1748,10 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     public List<Long> dataCount() {
         TEOrgSummary teOrgSummary = themisCacheService.addOrgSummaryCache(0L);
         List<Long> list = new ArrayList<>();
-        list.add(Objects.nonNull(teOrgSummary.getOnlineCount()) ? Long.parseLong(teOrgSummary.getOnlineCount().toString()) : 0L);
-        list.add(Objects.nonNull(teOrgSummary.getExamCount()) ? Long.parseLong(teOrgSummary.getExamCount().toString()) : 0L);
-        list.add(Objects.nonNull(teOrgSummary.getFinishCount()) ? Long.parseLong(teOrgSummary.getFinishCount().toString()) : 0L);
-        list.add(Objects.nonNull(teOrgSummary.getFinishStudentCount()) ? Long.parseLong(teOrgSummary.getFinishStudentCount().toString()) : 0L);
+        list.add(Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getOnlineCount()) ? Long.parseLong(teOrgSummary.getOnlineCount().toString()) : 0L);
+        list.add(Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getExamCount()) ? Long.parseLong(teOrgSummary.getExamCount().toString()) : 0L);
+        list.add(Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getFinishCount()) ? Long.parseLong(teOrgSummary.getFinishCount().toString()) : 0L);
+        list.add(Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getFinishStudentCount()) ? Long.parseLong(teOrgSummary.getFinishStudentCount().toString()) : 0L);
         return list;
     }
 
@@ -1764,14 +1764,23 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     public List<OrgDataCountBean> orgDataCount() {
         Set<Long> examIdSet = themisCacheService.getTodayExamListCache();
         LinkedMultiValueMap<Long, Long> orgExamIdMap = tbOrgService.mergeOrgId(examIdSet);
-        List<OrgDataCountBean> orgDataCountBeanList = new ArrayList<>();
-        //统计机构信息
-        orgExamIdMap.forEach((k, v) -> {
-            TEOrgSummary teOrgSummary = themisCacheService.addOrgSummaryCache(k);
-            TBOrg tbOrg = themisCacheService.addOrgCache(k);
-            orgDataCountBeanList.add(new OrgDataCountBean(tbOrg.getCode(), tbOrg.getName(), teOrgSummary.getOnlineCount(), teOrgSummary.getExamCount()));
-        });
-        return orgDataCountBeanList;
+        if (Objects.nonNull(orgExamIdMap) && orgExamIdMap.size() > 0) {
+            List<OrgDataCountBean> orgDataCountBeanList = new ArrayList<>();
+            //统计机构信息
+            orgExamIdMap.forEach((k, v) -> {
+                TEOrgSummary teOrgSummary = themisCacheService.addOrgSummaryCache(k);
+                if (Objects.nonNull(teOrgSummary) && ((Objects.nonNull(teOrgSummary.getExamCount()) &&
+                        teOrgSummary.getExamCount().intValue() > 0)
+                        || (Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getOnlineCount()) &&
+                        teOrgSummary.getOnlineCount().intValue() > 0))) {
+                    TBOrg tbOrg = themisCacheService.addOrgCache(k);
+                    orgDataCountBeanList.add(new OrgDataCountBean(tbOrg.getCode(), tbOrg.getName(), Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getOnlineCount()) ? teOrgSummary.getOnlineCount() : 0, Objects.nonNull(teOrgSummary) && Objects.nonNull(teOrgSummary.getExamCount()) ? teOrgSummary.getExamCount() : 0));
+                }
+            });
+            return orgDataCountBeanList;
+        } else {
+            return null;
+        }
     }
 
     /**

+ 1 - 1
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -1723,7 +1723,7 @@
         from t_ip_region tir
                  join t_oe_exam_record toer on tir.exam_record_id = toer.id
         WHERE toer.client_websocket_status = 'ON_LINE'
-          and tir.country != '0' and tir.province != '0'
+          <!--and tir.country != '0' and tir.province != '0'-->
         group by
             tir.country,
             tir.province