Browse Source

后端评测活动支持排名方式

Eric 2 years ago
parent
commit
b2d3ec28dc

+ 25 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingMethodEnum;
 import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingRuleEnum;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
@@ -118,6 +119,14 @@ public class ActivityPlan implements Serializable {
     @TableField(value = "ranking_rule_")
     private ActivityRankingRuleEnum rankingRule;
 
+    @ApiModelProperty("活动形式: MUSIC_RANKING(单曲排名) TOTAL_SCORE(总分排名) ")
+    @TableField(value = "ranking_method_")
+    private ActivityRankingMethodEnum rankingMethod;
+
+    @ApiModelProperty("获奖分数 ")
+    @TableField(value = "ranking_score_")
+    private Double rankingScore;
+
     public Long getId() {
         return id;
     }
@@ -317,4 +326,20 @@ public class ActivityPlan implements Serializable {
     public void setRankingRule(ActivityRankingRuleEnum rankingRule) {
         this.rankingRule = rankingRule;
     }
+
+    public ActivityRankingMethodEnum getRankingMethod() {
+        return rankingMethod;
+    }
+
+    public void setRankingMethod(ActivityRankingMethodEnum rankingMethod) {
+        this.rankingMethod = rankingMethod;
+    }
+
+    public Double getRankingScore() {
+        return rankingScore;
+    }
+
+    public void setRankingScore(Double rankingScore) {
+        this.rankingScore = rankingScore;
+    }
 }

+ 34 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/activity/ActivityRankingMethodEnum.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.biz.dal.enums.activity;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 活动获奖排名方式
+ *
+ * @Author: Eric
+ * @Data: 2022/3/16 10:19
+ */
+public enum ActivityRankingMethodEnum implements BaseEnum<String, ActivityRankingMethodEnum> {
+
+    MUSIC_RANKING("单曲排名"),
+    TOTAL_SCORE("总分排名"),
+    ;
+    @EnumValue
+    private String code;
+    private String name;
+
+    ActivityRankingMethodEnum(String name) {
+        this.code = this.name();
+        this.name = name;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/activity/ActivityRankingRuleEnum.java

@@ -13,6 +13,7 @@ public enum ActivityRankingRuleEnum implements BaseEnum<String, ActivityRankingR
 
     EVALUATIONS_NUMBER("评测次数"),
     EVALUATIONS_TIME("评测时间"),
+    TOTAL_SCORE("评测总分"),
     ;
     @EnumValue
     private String code;

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ActivityEvaluationVo.java

@@ -26,6 +26,9 @@ public class ActivityEvaluationVo extends ActivityEvaluation{
 	@ApiModelProperty(value = "销售价格")
 	private BigDecimal musicPrice;
 
+	@ApiModelProperty(value = "曲目声部ID")
+	private String subjectId;
+
 	public String getMusicSheetName() {
 		return musicSheetName;
 	}
@@ -65,4 +68,12 @@ public class ActivityEvaluationVo extends ActivityEvaluation{
 	public void setMusicPrice(BigDecimal musicPrice) {
 		this.musicPrice = musicPrice;
 	}
+
+	public String getSubjectId() {
+		return subjectId;
+	}
+
+	public void setSubjectId(String subjectId) {
+		this.subjectId = subjectId;
+	}
 }

+ 7 - 8
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityEvaluationMapper.xml

@@ -30,14 +30,13 @@
 
     <sql id="selectSql">
         SELECT
-            <include refid="baseColumns" />,
-            ms.music_sheet_name_ as musicSheetName,
-            (select group_concat(mt.name_) from music_tag mt
-                where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames,
-            (select group_concat(s.name_) from subject s
-                where find_in_set(s.id_,ms.music_subject_) and s.del_flag_ = 0 ) as subjectNames,
-            ms.source_type_ as sourceType,
-            ms.music_price_ as musicPrice
+            <include refid="baseColumns" />
+            , ms.music_sheet_name_ as musicSheetName
+            , ms.music_subject_ AS subjectId
+            , (select group_concat(mt.name_) from music_tag mt where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
+            , (select group_concat(s.name_) from subject s where find_in_set(s.id_,ms.music_subject_) and s.del_flag_ = 0 ) as subjectNames
+            , ms.source_type_ as sourceType
+            , ms.music_price_ as musicPrice
         FROM activity_evaluation t
         left join music_sheet ms on t.music_sheet_id_ = ms.id_
         <where>

+ 7 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml

@@ -17,6 +17,11 @@
 	        <result column="registration_method_" property="registrationMethod" />
 	        <result column="registration_price_" property="registrationPrice" />
             <result column="share_rate_" property="shareRate" />
+            <result column="share_type_" property="shareType" />
+            <result column="ranking_" property="ranking" />
+            <result column="ranking_rule_" property="rankingRule" />
+            <result column="ranking_method_" property="rankingMethod" />
+            <result column="ranking_score_" property="rankingScore" />
 	        <result column="draft_flag_" property="draftFlag" />
 	        <result column="activity_state_" property="activityState" />
 	        <result column="create_time_" property="createTime" />
@@ -45,6 +50,8 @@
         , t.share_type_ as shareType
         , t.ranking_ as ranking
         , t.ranking_rule_ as rankingRule
+        , t.ranking_method_ as rankingMethod
+        , t.ranking_score_ as rankingScore
         , t.draft_flag_ as draftFlag
         , if(t.activity_state_ = 1, 1, 0) as activityState
         , t.create_time_ as createTime