|
@@ -0,0 +1,170 @@
|
|
|
+package com.ym.mec.biz.dal.wrapper;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
|
|
|
+import io.swagger.annotations.ApiModel;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Builder;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+
|
|
|
+import javax.validation.constraints.NotNull;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 学生课件播放统计记录
|
|
|
+ * 2024-07-04 14:48:14
|
|
|
+ */
|
|
|
+@ApiModel(value = "StudentCoursewarePlayRecordWrapper对象", description = "学生课件播放统计记录查询对象")
|
|
|
+public class StudentCoursewarePlayRecordWrapper {
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @Builder
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ @ApiModel(" StudentCoursewarePlayRecordQuery-学生课件播放统计记录")
|
|
|
+ public static class StudentCoursewarePlayRecordQuery implements QueryInfo {
|
|
|
+
|
|
|
+ @ApiModelProperty("当前页")
|
|
|
+ private Integer page;
|
|
|
+
|
|
|
+ @ApiModelProperty("分页行数")
|
|
|
+ private Integer rows;
|
|
|
+
|
|
|
+ @ApiModelProperty("关键字匹配")
|
|
|
+ private String keyword;
|
|
|
+
|
|
|
+ public String getKeyword() {
|
|
|
+ return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ public String jsonString() {
|
|
|
+ return JSON.toJSONString(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static StudentCoursewarePlayRecordQuery from(String json) {
|
|
|
+ return JSON.parseObject(json, StudentCoursewarePlayRecordQuery.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @ApiModel(" StudentCoursewarePlayRecord-学生课件播放统计记录")
|
|
|
+ public static class StudentCoursewarePlayRecord {
|
|
|
+
|
|
|
+ @ApiModelProperty("乐团ID")
|
|
|
+ private String musicGroupId;
|
|
|
+
|
|
|
+ @ApiModelProperty("用户编号")
|
|
|
+ private Long userId;
|
|
|
+
|
|
|
+ @ApiModelProperty("在读状态")
|
|
|
+ private Boolean readingStatus;
|
|
|
+
|
|
|
+ @ApiModelProperty("播放时长,单位为秒")
|
|
|
+ private Float playTime;
|
|
|
+
|
|
|
+ public String jsonString() {
|
|
|
+ return JSON.toJSONString(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static StudentCoursewarePlayRecord from(String json) {
|
|
|
+ return JSON.parseObject(json, StudentCoursewarePlayRecord.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @ApiModel(" StudentCoursewarePlayRecord-学生课件播放统计记录")
|
|
|
+ public static class StudentCoursewarePlayRecordSave {
|
|
|
+
|
|
|
+ @ApiModelProperty(value = "用户编号",hidden = true)
|
|
|
+ private Integer userId;
|
|
|
+
|
|
|
+ @ApiModelProperty(hidden = true)
|
|
|
+ private Integer organizationId;
|
|
|
+
|
|
|
+ @ApiModelProperty("播放时长,单位为秒")
|
|
|
+ @NotNull
|
|
|
+ private Float playTime;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @ApiModel("云课堂观看统计查询")
|
|
|
+ public static class StatQuery implements QueryInfo {
|
|
|
+
|
|
|
+ @ApiModelProperty("开始时间")
|
|
|
+ private Date startTime;
|
|
|
+
|
|
|
+ @ApiModelProperty("结束时间")
|
|
|
+ private Date endTime;
|
|
|
+
|
|
|
+ @ApiModelProperty("分部ID")
|
|
|
+ private Long organizationId;
|
|
|
+
|
|
|
+ @ApiModelProperty("排序值,1:在读,2:无练习,3:10分钟,4:60分钟,5:120分钟,6:240分钟,7:>240分钟,8:平均时长")
|
|
|
+ private Integer sort = 1;
|
|
|
+
|
|
|
+ @ApiModelProperty("声降序,true:升序,false:降序")
|
|
|
+ private Boolean asc = false;
|
|
|
+
|
|
|
+ @ApiModelProperty(hidden = true)
|
|
|
+ private String sortBy;
|
|
|
+
|
|
|
+ @ApiModelProperty(hidden = true)
|
|
|
+ private static List<String> sortKeys = Arrays.asList("readingNum", "noPlayNum", "playTimeLess10", "playTimeLess60", "playTimeLess120", "playTimeLess240", "playTimeRather240", "avgPlayTime");
|
|
|
+
|
|
|
+ public String getSortBy() {
|
|
|
+ String key = sortKeys.get(getSort() > sortKeys.size() ? 0 : getSort() - 1);
|
|
|
+ return key + (asc ? " asc" : " desc");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @ApiModel("云课堂观看统计查询结果")
|
|
|
+ public static class StatQueryData {
|
|
|
+
|
|
|
+ @ApiModelProperty("分部ID")
|
|
|
+ private Long organizationId;
|
|
|
+
|
|
|
+ @ApiModelProperty("分部名称")
|
|
|
+ private String organizationName;
|
|
|
+
|
|
|
+ @ApiModelProperty("声部老师")
|
|
|
+ private String teacherName;
|
|
|
+
|
|
|
+ @ApiModelProperty("会员数量")
|
|
|
+ private Integer memberNum;
|
|
|
+
|
|
|
+ @ApiModelProperty("无练习人数")
|
|
|
+ private Integer noPlayNum;
|
|
|
+
|
|
|
+ @ApiModelProperty("练习时长少于等于10分钟")
|
|
|
+ private Integer playTimeLess10;
|
|
|
+
|
|
|
+ @ApiModelProperty("练习时长少于等于60分钟")
|
|
|
+ private Integer playTimeLess60;
|
|
|
+
|
|
|
+ @ApiModelProperty("练习时长少于等于120分钟")
|
|
|
+ private Integer playTimeLess120;
|
|
|
+
|
|
|
+ @ApiModelProperty("练习时长少于等于240")
|
|
|
+ private Integer playTimeLess240;
|
|
|
+
|
|
|
+ @ApiModelProperty("练习时长大于240")
|
|
|
+ private Integer playTimeRather240;
|
|
|
+
|
|
|
+ @ApiModelProperty("平均练习时长")
|
|
|
+ private Float avgPlayTime;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|