Browse Source

调整曲目统计接口定义

Eric 2 years ago
parent
commit
8860929aa4

+ 7 - 7
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/music/MusicCompareRecordStatController.java

@@ -45,19 +45,19 @@ public class MusicCompareRecordStatController extends BaseController {
      */
      */
     @ApiOperation(value = "曲目统计汇总信息", notes = "传入id")
     @ApiOperation(value = "曲目统计汇总信息", notes = "传入id")
     @PostMapping(value = "/record/stat", consumes="application/json", produces="application/json")
     @PostMapping(value = "/record/stat", consumes="application/json", produces="application/json")
-    public HttpResponseResult<MusicCompareVo.RecordStat> musicCompareRecordStatInfo(@RequestBody MusicCompareVo.StatQueryRequest info) {
+    public HttpResponseResult<MusicCompareVo.RecordStat> musicCompareRecordStatInfo(@RequestBody MusicCompareVo.StatQueryRequest request) {
 
 
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
             return failed("用户信息获取失败");
         }
         }
 
 
-        if (info.userId(sysUser.getId()).invalidParam()) {
+        if (request.userId(sysUser.getId()).invalidParam()) {
             return failed("无效的请求参数");
             return failed("无效的请求参数");
         }
         }
 
 
         MusicCompareWrapper.RecordStat records = musicCompareRecordStatService.findMusicCompareRecordStatInfo(sysUser.getId(),
         MusicCompareWrapper.RecordStat records = musicCompareRecordStatService.findMusicCompareRecordStatInfo(sysUser.getId(),
-                MusicCompareWrapper.StatQueryInfo.from(info.jsonString()));
+                MusicCompareWrapper.StatQueryInfo.from(request.jsonString()));
 
 
         return succeed(MusicCompareVo.RecordStat.from(records.jsonString()));
         return succeed(MusicCompareVo.RecordStat.from(records.jsonString()));
     }
     }
@@ -67,20 +67,20 @@ public class MusicCompareRecordStatController extends BaseController {
      */
      */
     @ApiOperation(value = "曲目统计信息查询", notes = "传入id")
     @ApiOperation(value = "曲目统计信息查询", notes = "传入id")
     @PostMapping(value = "/record/page", consumes="application/json", produces="application/json")
     @PostMapping(value = "/record/page", consumes="application/json", produces="application/json")
-    public HttpResponseResult<PageInfo<MusicCompareVo.RecordInfo>> musicCompareRecordPageInfo(@RequestBody MusicCompareVo.StatQueryRequest info) {
+    public HttpResponseResult<PageInfo<MusicCompareVo.RecordInfo>> musicCompareRecordPageInfo(@RequestBody MusicCompareVo.StatQueryRequest request) {
 
 
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
             return failed("用户信息获取失败");
         }
         }
 
 
-        if (info.userId(sysUser.getId()).invalidParam()) {
+        if (request.userId(sysUser.getId()).invalidParam()) {
             return failed("无效的请求参数");
             return failed("无效的请求参数");
         }
         }
 
 
         // 曲目统计信息
         // 曲目统计信息
-        IPage<MusicCompareWrapper.RecordInfo> wrapper = musicCompareRecordStatService.findMusicCompareRecordPage(PageUtil.getPage(info),
-                MusicCompareWrapper.StatQueryInfo.from(info.jsonString()));
+        IPage<MusicCompareWrapper.RecordInfo> wrapper = musicCompareRecordStatService.findMusicCompareRecordPage(PageUtil.getPage(request),
+                MusicCompareWrapper.StatQueryInfo.from(request.jsonString()));
 
 
         // 数据转换
         // 数据转换
         List<MusicCompareVo.RecordInfo> pageInfos = JSON.parseArray(JSON.toJSONString(wrapper.getRecords()),
         List<MusicCompareVo.RecordInfo> pageInfos = JSON.parseArray(JSON.toJSONString(wrapper.getRecords()),

+ 36 - 7
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/music/MusicCompareVo.java

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

+ 53 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/music/MusicCompareType.java

@@ -0,0 +1,53 @@
+package com.yonge.cooleshow.biz.dal.enums.music;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 曲目统计排序类型
+ *
+ * @author liujunchi
+ * @date 2022-04-28
+ */
+public enum MusicCompareType implements BaseEnum<String, MusicCompareType> {
+    TRAIN_DURATION("练习时长"),
+    TRAIN_FREQ("练习次数"),
+    EVALUATE_DURATION("评测时长"),
+    EVALUATE_FREQ("评测次数"),
+    ;
+    @EnumValue
+    private String code;
+    private String msg;
+
+    MusicCompareType(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    /**
+     * 校验类型合法性
+     * @param clientType 客户端类型
+     * @return boolean
+     */
+    public static boolean invalid(String clientType) {
+
+        MusicCompareType[] values = MusicCompareType.values();
+
+        for (MusicCompareType item : values) {
+
+            if (item.getCode().equals(clientType)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+}

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicCompareRecordStatServiceImp.java

@@ -72,6 +72,7 @@ public class MusicCompareRecordStatServiceImp extends ServiceImpl<MusicCompareRe
     @Override
     @Override
     public IPage<MusicCompareWrapper.RecordInfo> findMusicCompareRecordPage(IPage<Object> page, MusicCompareWrapper.StatQueryInfo query) {
     public IPage<MusicCompareWrapper.RecordInfo> findMusicCompareRecordPage(IPage<Object> page, MusicCompareWrapper.StatQueryInfo query) {
 
 
+        // 用户曲目统计信息
 
 
         return null;
         return null;
     }
     }

+ 11 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.wrapper.music;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 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 com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -29,10 +30,18 @@ public class MusicCompareWrapper {
         @ApiModelProperty("客户端类型 TEACHER(老师端) STUDENT(学生端)")
         @ApiModelProperty("客户端类型 TEACHER(老师端) STUDENT(学生端)")
         private ClientEnum clientType;
         private ClientEnum clientType;
 
 
+        @ApiModelProperty("用户ID ")
+        private Long userId;
 
 
-        public static StatQueryInfo from(String recv) {
+        @ApiModelProperty("排序类型 ")
+        private MusicCompareType compareType;
 
 
-            return JSON.parseObject(recv, StatQueryInfo.class);
+        @ApiModelProperty("排序方式 升序(ASC) 降序(DESC)")
+        private String sortType;
+
+        public static StatQueryInfo from(String record) {
+
+            return JSON.parseObject(record, StatQueryInfo.class);
         }
         }
 
 
     }
     }