Browse Source

后台曲目统计条件查询

Eric 2 years ago
parent
commit
5360ea1d17

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

@@ -11,6 +11,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
@@ -44,6 +45,22 @@ public class MusicCompareVo implements Serializable {
         @ApiModelProperty("排序方式 升序(ASC) 降序(DESC)")
         @ApiModelProperty("排序方式 升序(ASC) 降序(DESC)")
         private String sortType;
         private String sortType;
 
 
+        @ApiModelProperty("曲目编号/名称")
+        private String keyword;
+
+        @ApiModelProperty("开始时间")
+        @JsonFormat(pattern = MK.TIME_PATTERN, timezone = MK.TIME_ZONE)
+        private Long startTime;
+
+        @ApiModelProperty("结束时间")
+        @JsonFormat(pattern = MK.TIME_PATTERN, timezone = MK.TIME_ZONE)
+        private Long endTime;
+
+        @ApiModelProperty(value = "曲目ID", hidden = true)
+        private Long musicId;
+        @ApiModelProperty(value = "曲目名称", hidden = true)
+        private String musicName;
+
         public boolean invalidParam() {
         public boolean invalidParam() {
 
 
             return Objects.isNull(getClientType())
             return Objects.isNull(getClientType())
@@ -64,6 +81,19 @@ public class MusicCompareVo implements Serializable {
             return Optional.ofNullable(sortType).orElse("DESC");
             return Optional.ofNullable(sortType).orElse("DESC");
         }
         }
 
 
+        public void setKeyword(String keyword) {
+            if (StringUtils.isNotEmpty(keyword)) {
+
+                if (keyword.matches(MK.EXP_INT)) {
+
+                    setMusicId(Long.parseLong(keyword));
+                } else {
+                    setMusicName(keyword);
+                }
+            }
+            this.keyword = keyword;
+        }
+
         public StatQueryRequest userId(Long userId) {
         public StatQueryRequest userId(Long userId) {
             this.userId = userId;
             this.userId = userId;
             return this;
             return this;

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

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.biz.dal.wrapper.music;
 package com.yonge.cooleshow.biz.dal.wrapper.music;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.FeatureType;
 import com.yonge.cooleshow.biz.dal.enums.FeatureType;
 import com.yonge.cooleshow.biz.dal.enums.music.MusicCompareType;
 import com.yonge.cooleshow.biz.dal.enums.music.MusicCompareType;
@@ -50,6 +49,18 @@ public class MusicCompareWrapper {
         @ApiModelProperty("评测曲目")
         @ApiModelProperty("评测曲目")
         private Boolean evaluateMusic;
         private Boolean evaluateMusic;
 
 
+        @ApiModelProperty("曲目ID")
+        private Long musicId;
+
+        @ApiModelProperty("曲目名称")
+        private String musicName;
+
+        @ApiModelProperty("开始时间")
+        private Long startTime;
+
+        @ApiModelProperty("结束时间")
+        private Long endTime;
+
         public static StatQueryInfo from(String record) {
         public static StatQueryInfo from(String record) {
 
 
             return JSON.parseObject(record, StatQueryInfo.class);
             return JSON.parseObject(record, StatQueryInfo.class);

+ 9 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicCompareRecordStatMapper.xml

@@ -43,6 +43,15 @@
             <if test="record.userId != null">
             <if test="record.userId != null">
                 AND t1.user_id_ = #{record.userId}
                 AND t1.user_id_ = #{record.userId}
             </if>
             </if>
+            <if test="record.startTime != null and record.endTime != null">
+                AND (t1.recent_time_ >= #{record.startTime} AND  t1.recent_time_ &lt;= #{record.endTime})
+            </if>
+            <if test="record.musicId != null">
+                AND t2.id_ = #{record.musicId}
+            </if>
+            <if test="record.musicName != null">
+                AND t2.music_sheet_name_ LIKE '%${record.musicName}%'
+            </if>
         </where>
         </where>
         ORDER BY t1.${record.compareField} ${record.sortType}
         ORDER BY t1.${record.compareField} ${record.sortType}
     </select>
     </select>