Bladeren bron

Merge branch 'feature/0704-stat' into dev

yuanliang 1 jaar geleden
bovenliggende
commit
840667bcaf

+ 5 - 0
mec-application/src/main/java/com/ym/mec/web/controller/StudentCoursewarePlayRecordController.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.entity.StudentCoursewarePlayRecord;
 import com.ym.mec.biz.dal.enums.ExportEnum;
 import com.ym.mec.biz.dal.wrapper.StudentCoursewarePlayRecordWrapper;
 import com.ym.mec.biz.service.ExportService;
+import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.StudentCoursewarePlayRecordService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -46,6 +47,9 @@ public class StudentCoursewarePlayRecordController extends BaseController {
     @Autowired
     private ExportService exportService;
 
+    @Autowired
+    private OrganizationService organizationService;
+
     @ApiOperation(value = "详情", notes = "学生课件播放统计记录-根据详情ID查询单条, 传入id")
     @PreAuthorize("@pcs.hasPermissions('studentCoursewarePlayRecord/detail')")
 //    @GetMapping("/detail/{id}")
@@ -98,6 +102,7 @@ public class StudentCoursewarePlayRecordController extends BaseController {
     @PostMapping("/statList")
     @PreAuthorize("@pcs.hasPermissions('studentCoursewarePlayRecord/statList')")
     public HttpResponseResult<List<StudentCoursewarePlayRecordWrapper.StatQueryData>> statList(@RequestBody StudentCoursewarePlayRecordWrapper.StatQuery statQuery) {
+        statQuery.setOrganizationId(organizationService.getEmployeeOrgan(statQuery.getOrganizationId()));
         return succeed(studentCoursewarePlayRecordService.statList(statQuery));
     }
 

+ 2 - 2
mec-application/src/main/resources/exportColumnMapper.ini

@@ -402,10 +402,10 @@ fieldColumns = ["organName","musicGroupId","musicGroupName","studentId","student
 headColumns = ["分部","乐团编号","乐团名称","学员编号","学员名称"]
 fieldColumns = ["organName","musicGroupId","musicGroupName","studentId","studentName"]
 
-[视频观看统计]
+[云课堂统计导出]
 headColumns = ["分部名称","会员人数","无练习人数","0-10分钟","10-60分钟","60-120分钟","120-240分钟",">240分钟","平均时长"]
 fieldColumns = ["organizationName","memberNum","noPlayNum","playTimeLess10","playTimeLess60","playTimeLess120","playTimeLess240","playTimeRather240","avgPlayTime"]
 
-[视频观看详情统计]
+[云课堂统计详情导出]
 headColumns = ["声部老师","会员人数","无练习人数","0-10分钟","10-60分钟","60-120分钟","120-240分钟",">240分钟","平均时长"]
 fieldColumns = ["teacherName","memberNum","noPlayNum","playTimeLess10","playTimeLess60","playTimeLess120","playTimeLess240","playTimeRather240","avgPlayTime"]

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java

@@ -103,8 +103,8 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     EXPORT_BALANCED_RELATIONSHIP_STUDENT_INFO("EXPORT_BALANCED_RELATIONSHIP_STUDENT_INFO","平衡关系-学员情况总表"),
     EXPORT_BALANCED_RELATIONSHIP_STUDENT_NORMAL_DETAIL("EXPORT_BALANCED_RELATIONSHIP_STUDENT_NORMAL_DETAIL","平衡关系(分表)-乐团在读学员"),
     EXPORT_BALANCED_RELATIONSHIP_STUDENT_QUIT_DETAIL("EXPORT_BALANCED_RELATIONSHIP_STUDENT_QUIT_DETAIL","平衡关系(分表)-乐团退团学员"),
-    VIDEO_PLAY_STAT("VIDEO_PLAY_STAT","视频观看统计"),
-    VIDEO_PLAY_DETAIL_STAT("VIDEO_PLAY_DETAIL_STAT","视频观看详情统计"),
+    VIDEO_PLAY_STAT("VIDEO_PLAY_STAT","云课堂统计导出"),
+    VIDEO_PLAY_DETAIL_STAT("VIDEO_PLAY_DETAIL_STAT","云课堂统计详情导出"),
     ;
 
     private String code;

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportTypeEnum.java

@@ -41,8 +41,8 @@ public enum ExportTypeEnum implements BaseEnum<Integer, ExportTypeEnum> {
 	EXPORT_BALANCED_RELATIONSHIP_STUDENT_INFO(34,"平衡关系-学员情况总表"),
 	EXPORT_BALANCED_RELATIONSHIP_STUDENT_NORMAL_DETAIL(35,"平衡关系(分表)-乐团在读学员"),
 	EXPORT_BALANCED_RELATIONSHIP_STUDENT_QUIT_DETAIL(36,"平衡关系(分表)-乐团退团学员"),
-	VIDEO_PLAY_STAT(37,"视频观看统计"),
-	VIDEO_PLAY_DETAIL_STAT(38,"视频观看详情统计"),
+	VIDEO_PLAY_STAT(37,"云课堂统计导出"),
+	VIDEO_PLAY_DETAIL_STAT(38,"云课堂统计详情导出"),
 	;
 
 	private Integer code;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/StudentCoursewarePlayRecordWrapper.java

@@ -115,7 +115,7 @@ public class StudentCoursewarePlayRecordWrapper {
         private Date endTime;
 
         @ApiModelProperty("分部ID")
-        private Long organizationId;
+        private String organizationId;
 
         @ApiModelProperty("排序值,1:会员,2:无练习,3:10分钟,4:60分钟,5:120分钟,6:240分钟,7:>240分钟,8:平均时长")
         private Integer sort = 1;

+ 9 - 4
mec-biz/src/main/resources/config/mybatis/StudentCoursewarePlayRecordMapper.xml

@@ -15,7 +15,7 @@
     <select id="statList" resultType="com.ym.mec.biz.dal.wrapper.StudentCoursewarePlayRecordWrapper$StatQueryData">
         select o.id_                                                                                             as organizationId
              , o.name_                                                                                           as organizationName
-             , count(s.user_id_)                                                                                 as memberNum
+             , count(distinct s.user_id_)                                                                        as memberNum
              , (count(distinct s.user_id_) - count(distinct pr.user_id_))                                        as noPlayNum
              , count(distinct if(10 * 60 >= pr.play_time_, pr.user_id_, null))                                   as playTimeLess10
              , count(distinct if(pr.play_time_ > 10 * 60 and 60 * 60 >= pr.play_time_, pr.user_id_, null))       as playTimeLess60
@@ -31,7 +31,12 @@
                             where create_time_ > #{statQuery.startTime}
                               and #{statQuery.endTime} > create_time_
                             group by user_id_) pr on s.user_id_ = pr.user_id_
-        where s.membership_end_time_ >= now()
+        <where>
+            s.membership_end_time_ >= now()
+            <if test="statQuery.organizationId != null and statQuery.organizationId.trim() !=''">
+                and find_in_set(o.id_,statQuery.organizationId)
+            </if>
+        </where>
         group by o.id_
         order by ${statQuery.sortBy}
     </select>
@@ -39,7 +44,7 @@
         select o.id_                                                                                             as organizationId
              , o.name_                                                                                           as organizationName
              , su2.username_                                                                                     as teacherName
-             , count(s.user_id_)                                                                                 as memberNum
+             , count(distinct s.user_id_)                                                                        as memberNum
              , (count(distinct s.user_id_) - count(distinct pr.user_id_))                                        as noPlayNum
              , count(distinct if(10 * 60 >= pr.play_time_, pr.user_id_, null))                                   as playTimeLess10
              , count(distinct if(pr.play_time_ > 10 * 60 and 60 * 60 >= pr.play_time_, pr.user_id_, null))       as playTimeLess60
@@ -58,7 +63,7 @@
                               and #{statQuery.endTime} > create_time_
                             group by user_id_) pr on s.user_id_ = pr.user_id_
         where o.id_ = #{statQuery.organizationId}
-          and s.membership_end_time_ >= now()
+          and s.membership_end_time_ >= now() and stm.id_ is not null
         group by stm.teacher_id_
         order by ${statQuery.sortBy}
     </select>