|
@@ -0,0 +1,107 @@
|
|
|
+package com.yonge.cooleshow.admin.io.request.music;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.toolset.base.page.QueryInfo;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
+
|
|
|
+import java.io.Serializable;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by Eric.Shang on 2022/10/17.
|
|
|
+ */
|
|
|
+public class MusicCompareVo implements Serializable {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 统计汇总查询条件
|
|
|
+ */
|
|
|
+ @Data
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ public static class StatQueryRequest extends QueryInfo {
|
|
|
+
|
|
|
+ @ApiModelProperty("客户端类型 TEACHER(老师端) STUDENT(学生端)")
|
|
|
+ private ClientEnum clientType;
|
|
|
+
|
|
|
+
|
|
|
+ public boolean invalidParam() {
|
|
|
+
|
|
|
+ return Objects.isNull(getClientType())
|
|
|
+ || ClientEnum.invalid(getClientType().getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ public String jsonString() {
|
|
|
+
|
|
|
+ return JSON.toJSONString(this);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 曲目统计汇总信息
|
|
|
+ */
|
|
|
+ @Data
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ public static class RecordStat implements Serializable {
|
|
|
+
|
|
|
+ @ApiModelProperty("曲目总数")
|
|
|
+ private Long musicNums;
|
|
|
+
|
|
|
+ @ApiModelProperty("使用时长")
|
|
|
+ private Long trainDuration;
|
|
|
+
|
|
|
+ @ApiModelProperty("使用次数")
|
|
|
+ private Long trainFrequency;
|
|
|
+
|
|
|
+ @ApiModelProperty("评测时长")
|
|
|
+ private Long evaluateDuration;
|
|
|
+
|
|
|
+ @ApiModelProperty("评测次数")
|
|
|
+ private Long evaluateFrequency;
|
|
|
+
|
|
|
+ @ApiModelProperty("最近使用时间")
|
|
|
+ private Long recentTime;
|
|
|
+
|
|
|
+ private List<RecordInfo> recordInfos;
|
|
|
+
|
|
|
+ public static RecordStat from(String recv) {
|
|
|
+
|
|
|
+ return JSON.parseObject(recv, RecordStat.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 曲目统计信息
|
|
|
+ */
|
|
|
+ @Data
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ public static class RecordInfo implements Serializable {
|
|
|
+
|
|
|
+ @ApiModelProperty("曲目ID")
|
|
|
+ private Long musicSheetId;
|
|
|
+
|
|
|
+ @ApiModelProperty("曲目名称")
|
|
|
+ private String musicName;
|
|
|
+
|
|
|
+ @ApiModelProperty("使用时长")
|
|
|
+ private Long trainDuration;
|
|
|
+
|
|
|
+ @ApiModelProperty("使用次数")
|
|
|
+ private Long trainFrequency;
|
|
|
+
|
|
|
+ @ApiModelProperty("评测时长")
|
|
|
+ private Long evaluateDuration;
|
|
|
+
|
|
|
+ @ApiModelProperty("评测次数")
|
|
|
+ private Long evaluateFrequency;
|
|
|
+
|
|
|
+ @ApiModelProperty("最近使用时间")
|
|
|
+ private Long recentTime;
|
|
|
+ }
|
|
|
+}
|