|
@@ -2,15 +2,18 @@ package com.yonge.cooleshow.admin.io.request.music;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.music.MusicCompareType;
|
|
|
import com.yonge.toolset.base.page.QueryInfo;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
|
+import lombok.EqualsAndHashCode;
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/**
|
|
|
* Created by Eric.Shang on 2022/10/17.
|
|
@@ -23,15 +26,25 @@ public class MusicCompareVo implements Serializable {
|
|
|
@Data
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
+ @EqualsAndHashCode(callSuper = false)
|
|
|
public static class StatQueryRequest extends QueryInfo {
|
|
|
|
|
|
@ApiModelProperty("客户端类型 TEACHER(老师端) STUDENT(学生端)")
|
|
|
private ClientEnum clientType;
|
|
|
|
|
|
+ @ApiModelProperty("用户ID ")
|
|
|
+ private Long userId;
|
|
|
+
|
|
|
+ @ApiModelProperty("排序类型 TRAIN_DURATION(练习时长) TRAIN_FREQ(练习次数) EVALUATE_DURATION(评测时长) EVALUATE_FREQ(评测次数)")
|
|
|
+ private MusicCompareType compareType;
|
|
|
+
|
|
|
+ @ApiModelProperty("排序方式 升序(ASC) 降序(DESC)")
|
|
|
+ private String sortType;
|
|
|
|
|
|
public boolean invalidParam() {
|
|
|
|
|
|
return Objects.isNull(getClientType())
|
|
|
+ || Objects.isNull(getUserId())
|
|
|
|| ClientEnum.invalid(getClientType().getCode());
|
|
|
}
|
|
|
|
|
@@ -39,6 +52,30 @@ public class MusicCompareVo implements Serializable {
|
|
|
|
|
|
return JSON.toJSONString(this);
|
|
|
}
|
|
|
+
|
|
|
+ public MusicCompareType getCompareType() {
|
|
|
+ return Optional.ofNullable(compareType).orElse(MusicCompareType.EVALUATE_DURATION);
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getSortType() {
|
|
|
+ return Optional.ofNullable(sortType).orElse("DESC");
|
|
|
+ }
|
|
|
+
|
|
|
+ public StatQueryRequest userId(Long userId) {
|
|
|
+ this.userId = userId;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public StatQueryRequest compareType(MusicCompareType compareType) {
|
|
|
+ this.compareType = compareType;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public StatQueryRequest sortType(String sortType) {
|
|
|
+ this.sortType = sortType;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -49,8 +86,8 @@ public class MusicCompareVo implements Serializable {
|
|
|
@AllArgsConstructor
|
|
|
public static class RecordStat implements Serializable {
|
|
|
|
|
|
- @ApiModelProperty("曲目总数")
|
|
|
- private Long musicNums;
|
|
|
+ @ApiModelProperty("练习曲目总数")
|
|
|
+ private Long trainMusicNums;
|
|
|
|
|
|
@ApiModelProperty("使用时长")
|
|
|
private Long trainDuration;
|
|
@@ -58,20 +95,20 @@ public class MusicCompareVo implements Serializable {
|
|
|
@ApiModelProperty("使用次数")
|
|
|
private Long trainFrequency;
|
|
|
|
|
|
+ @ApiModelProperty("评测曲目总数")
|
|
|
+ private Long evaluateMusicNums;
|
|
|
+
|
|
|
@ApiModelProperty("评测时长")
|
|
|
private Long evaluateDuration;
|
|
|
|
|
|
@ApiModelProperty("评测次数")
|
|
|
private Long evaluateFrequency;
|
|
|
|
|
|
- @ApiModelProperty("最近使用时间")
|
|
|
- private Long recentTime;
|
|
|
-
|
|
|
private List<RecordInfo> recordInfos;
|
|
|
|
|
|
- public static RecordStat from(String recv) {
|
|
|
+ public static RecordStat from(String record) {
|
|
|
|
|
|
- return JSON.parseObject(recv, RecordStat.class);
|
|
|
+ return JSON.parseObject(record, RecordStat.class);
|
|
|
}
|
|
|
}
|
|
|
|