Browse Source

运营活动修改

liweifan 3 năm trước cách đây
mục cha
commit
bff2b6930e
15 tập tin đã thay đổi với 311 bổ sung63 xóa
  1. 1 0
      audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java
  2. 34 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java
  3. 5 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/HardLevelEnum.java
  4. 35 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/RegistrationMethodEnum.java
  5. 3 21
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  6. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java
  7. 0 14
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanEvaluationSearch.java
  8. 63 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanSearch.java
  9. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PianoRoomChangeRecordSearch.java
  10. 31 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java
  11. 5 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanEvaluation.java
  12. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  13. 56 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  14. 27 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ActivityPlanVo.java
  15. 24 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml

+ 1 - 0
audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

@@ -15,6 +15,7 @@ import java.util.stream.Collectors;
 
 
 import javax.sound.sampled.AudioFormat;
 import javax.sound.sampled.AudioFormat;
 
 
+import com.yonge.cooleshow.common.enums.HardLevelEnum;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 

+ 34 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 活动类型 EVALUATION 评测活动
+ *
+ * @Author: liweifan
+ * @Data: 2022/4/7 15:48
+ */
+public enum ActivityTypeEnum implements BaseEnum<String, ActivityTypeEnum> {
+
+    EVALUATION("评测活动")
+    ;
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    ActivityTypeEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 5 - 1
audio-analysis/src/main/java/com/yonge/netty/dto/HardLevelEnum.java → cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/HardLevelEnum.java

@@ -1,5 +1,6 @@
-package com.yonge.netty.dto;
+package com.yonge.cooleshow.common.enums;
 
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 
 public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
 public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
@@ -23,6 +24,8 @@ public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
 	 * 完成度范围, 未演奏的范围
 	 * 完成度范围, 未演奏的范围
 	 */
 	 */
 	PERFORMER("大师级", 3, 3, 5, 10, 13, 15, 95, 10);
 	PERFORMER("大师级", 3, 3, 5, 10, 13, 15, 95, 10);
+	@EnumValue
+	private String code;
 
 
 	private String msg;
 	private String msg;
 
 
@@ -58,6 +61,7 @@ public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
 	HardLevelEnum(String msg, int amplitudeThreshold, int frequencyThreshold, int tempoEffectiveRangeOf1, int tempoEffectiveRangeOf2,
 	HardLevelEnum(String msg, int amplitudeThreshold, int frequencyThreshold, int tempoEffectiveRangeOf1, int tempoEffectiveRangeOf2,
 			int tempoEffectiveRangeOf4, int tempoEffectiveRangeOf8, int integrityRange,
 			int tempoEffectiveRangeOf4, int tempoEffectiveRangeOf8, int integrityRange,
 			int notPlayRange) {
 			int notPlayRange) {
+		this.code = this.name();
 		this.msg = msg;
 		this.msg = msg;
 		this.amplitudeThreshold = amplitudeThreshold;
 		this.amplitudeThreshold = amplitudeThreshold;
 		this.frequencyThreshold = frequencyThreshold;
 		this.frequencyThreshold = frequencyThreshold;

+ 35 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/RegistrationMethodEnum.java

@@ -0,0 +1,35 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 报名方式 FREE 免费 CHARGE 收费
+ *
+ * @Author: liweifan
+ * @Data: 2022/4/7 15:48
+ */
+public enum RegistrationMethodEnum implements BaseEnum<String, RegistrationMethodEnum> {
+
+    FREE("免费"),
+    CHARGE("收费")
+    ;
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    RegistrationMethodEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 3 - 21
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 package com.yonge.cooleshow.admin.controller;
 
 
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -50,7 +51,7 @@ public class ActivityPlanController extends BaseController {
 	 */
 	 */
 	@PostMapping("/save")
 	@PostMapping("/save")
 	@ApiOperation(value = "新增", notes = "传入activityPlan")
 	@ApiOperation(value = "新增", notes = "传入activityPlan")
-	public HttpResponseResult save(@Valid @RequestBody ActivityPlan activityPlan) {
+	public HttpResponseResult save(@Valid @RequestBody ActivityPlanDto activityPlan) {
     	return status(activityPlanService.save(activityPlan));
     	return status(activityPlanService.save(activityPlan));
 	}
 	}
     
     
@@ -62,25 +63,6 @@ public class ActivityPlanController extends BaseController {
 	public HttpResponseResult update(@Valid @RequestBody ActivityPlan activityPlan) {
 	public HttpResponseResult update(@Valid @RequestBody ActivityPlan activityPlan) {
         return status(activityPlanService.updateById(activityPlan));
         return status(activityPlanService.updateById(activityPlan));
 	}
 	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入activityPlan")
-	public HttpResponseResult submit(@Valid @RequestBody ActivityPlan activityPlan) {
-        return status(activityPlanService.saveOrUpdate(activityPlan));
-    }
 
 
- 	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperation(value = "删除", notes = "传入ids")
-	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
-			return failed("参数不能为空");
-		}
-		return status(activityPlanService.removeByIds(StringUtil.toLongList(ids)));
-	}
+
 }
 }

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java

@@ -1,7 +1,11 @@
 package com.yonge.cooleshow.biz.dal.dto;
 package com.yonge.cooleshow.biz.dal.dto;
 
 
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
 
 
 /**
 /**
  * @Author: liweifan
  * @Author: liweifan
@@ -10,4 +14,16 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "ActivityPlanDto对象", description = "活动计划表数据传输对象")
 @ApiModel(value = "ActivityPlanDto对象", description = "活动计划表数据传输对象")
 public class ActivityPlanDto extends ActivityPlan{
 public class ActivityPlanDto extends ActivityPlan{
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "活动计划-评测活动拓展")
+	private ActivityPlanEvaluation planEvaluation;
+
+
+	public ActivityPlanEvaluation getPlanEvaluation() {
+		return planEvaluation;
+	}
+
+	public void setPlanEvaluation(ActivityPlanEvaluation planEvaluation) {
+		this.planEvaluation = planEvaluation;
+	}
 }
 }

+ 0 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanEvaluationSearch.java

@@ -1,14 +0,0 @@
-package com.yonge.cooleshow.biz.dal.dto.search;
-
-import com.yonge.toolset.base.page.QueryInfo;
-import io.swagger.annotations.ApiModel;
-
-/**
- * @Author: liweifan
- * @Data: 2022-08-04 10:19:49
- */
-@ApiModel(value = "ActivityPlanEvaluationSearch对象", description = "活动计划表查询对象")
-public class ActivityPlanEvaluationSearch extends QueryInfo{
-	private static final long serialVersionUID = 1L;
-
-}

+ 63 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanSearch.java

@@ -1,7 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 
 
 /**
 /**
  * @Author: liweifan
  * @Author: liweifan
@@ -10,5 +16,62 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "ActivityPlanSearch对象", description = "活动计划表查询对象")
 @ApiModel(value = "ActivityPlanSearch对象", description = "活动计划表查询对象")
 public class ActivityPlanSearch extends QueryInfo{
 public class ActivityPlanSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
+	@ApiModelProperty("活动名称 ")
+	private String activityName;
+	@ApiModelProperty("创建状态 0 正式 1 草稿 ")
+	private Integer draftFlag;
+	@ApiModelProperty("活动状态 0 停用 1 启用 ")
+	private Integer activityState;
+	@ApiModelProperty(value = "交易开始时间")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private LocalDateTime startTime;
+	@ApiModelProperty(value = "交易结束时间")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private LocalDateTime endTime;
+
+	public String getActivityName() {
+		return activityName;
+	}
+
+	public void setActivityName(String activityName) {
+		this.activityName = activityName;
+	}
+
+	public Integer getDraftFlag() {
+		return draftFlag;
+	}
+
+	public void setDraftFlag(Integer draftFlag) {
+		this.draftFlag = draftFlag;
+	}
+
+	public Integer getActivityState() {
+		return activityState;
+	}
+
+	public void setActivityState(Integer activityState) {
+		this.activityState = activityState;
+	}
+
+	public LocalDateTime getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(LocalDateTime startTime) {
+		if(null != startTime){
+			this.startTime = LocalDateTime.of(startTime.toLocalDate(), LocalTime.MIN);
+		}
+	}
+
+	public LocalDateTime getEndTime() {
+		return endTime;
+	}
 
 
+	public void setEndTime(LocalDateTime endTime) {
+		if(null != endTime){
+			this.endTime = LocalDateTime.of(endTime.toLocalDate(), LocalTime.MAX);
+		}
+	}
 }
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PianoRoomChangeRecordSearch.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.page.QueryInfo;
@@ -8,7 +7,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
 
-import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.LocalTime;
 
 
@@ -68,7 +66,9 @@ public class PianoRoomChangeRecordSearch extends QueryInfo{
 	}
 	}
 
 
 	public void setStartTime(LocalDateTime startTime) {
 	public void setStartTime(LocalDateTime startTime) {
-		this.startTime = startTime;
+		if(null != startTime){
+			this.startTime = LocalDateTime.of(startTime.toLocalDate(), LocalTime.MIN);
+		}
 	}
 	}
 
 
 	public LocalDateTime getEndTime() {
 	public LocalDateTime getEndTime() {

+ 31 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
+import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -11,6 +13,10 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 
 
 /**
 /**
@@ -23,17 +29,21 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("主键 ")
     @ApiModelProperty("主键 ")
     @TableId(value = "id_", type = IdType.AUTO)
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     private Long id;
-    @ApiModelProperty("活动类型 EVALUATION 评测活动 ")
+    @ApiModelProperty(value = "活动类型 EVALUATION 评测活动 ",required = true)
 	@TableField(value = "activity_type_")
 	@TableField(value = "activity_type_")
-    private String activityType;
+    @NotNull(message = "活动类型不能为空")
+    private ActivityTypeEnum activityType;
     @ApiModelProperty("活动名称 ")
     @ApiModelProperty("活动名称 ")
 	@TableField(value = "activity_name_")
 	@TableField(value = "activity_name_")
+    @NotBlank(message = "活动名称不能为空")
     private String activityName;
     private String activityName;
     @ApiModelProperty("活动描述 ")
     @ApiModelProperty("活动描述 ")
 	@TableField(value = "describe_")
 	@TableField(value = "describe_")
+    @NotBlank(message = "活动描述不能为空")
     private String describe;
     private String describe;
     @ApiModelProperty("规则描述 ")
     @ApiModelProperty("规则描述 ")
 	@TableField(value = "rule_describe_")
 	@TableField(value = "rule_describe_")
+    @NotBlank(message = "活动规则不能为空")
     private String ruleDescribe;
     private String ruleDescribe;
     @ApiModelProperty("主题图片 ")
     @ApiModelProperty("主题图片 ")
 	@TableField(value = "subject_url_")
 	@TableField(value = "subject_url_")
@@ -41,19 +51,25 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("平铺背景 ")
     @ApiModelProperty("平铺背景 ")
 	@TableField(value = "background_url_")
 	@TableField(value = "background_url_")
     private String backgroundUrl;
     private String backgroundUrl;
+    @ApiModelProperty("活动链接 ")
+    @TableField(value = "activity_url_")
+    private String activityUrl;
     @ApiModelProperty("活动时间-开始 ")
     @ApiModelProperty("活动时间-开始 ")
 	@TableField(value = "activity_start_")
 	@TableField(value = "activity_start_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @NotNull(message = "活动开始时间不能为空")
     private Date activityStart;
     private Date activityStart;
     @ApiModelProperty("活动时间-结束 ")
     @ApiModelProperty("活动时间-结束 ")
 	@TableField(value = "activity_end_")
 	@TableField(value = "activity_end_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @NotNull(message = "活动结束时间不能为空")
     private Date activityEnd;
     private Date activityEnd;
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
 	@TableField(value = "registration_method_")
 	@TableField(value = "registration_method_")
-    private String registrationMethod;
+    @NotBlank(message = "报名缴费方式不能为空")
+    private RegistrationMethodEnum registrationMethod;
     @ApiModelProperty("报名价格 ")
     @ApiModelProperty("报名价格 ")
 	@TableField(value = "registration_price_")
 	@TableField(value = "registration_price_")
     private BigDecimal registrationPrice;
     private BigDecimal registrationPrice;
@@ -88,11 +104,11 @@ public class ActivityPlan implements Serializable {
         this.id = id;
         this.id = id;
     }
     }
     
     
-	public String getActivityType() {
+	public ActivityTypeEnum getActivityType() {
         return activityType;
         return activityType;
     }
     }
 
 
-    public void setActivityType(String activityType) {
+    public void setActivityType(ActivityTypeEnum activityType) {
         this.activityType = activityType;
         this.activityType = activityType;
     }
     }
     
     
@@ -152,11 +168,11 @@ public class ActivityPlan implements Serializable {
         this.activityEnd = activityEnd;
         this.activityEnd = activityEnd;
     }
     }
     
     
-	public String getRegistrationMethod() {
+	public RegistrationMethodEnum getRegistrationMethod() {
         return registrationMethod;
         return registrationMethod;
     }
     }
 
 
-    public void setRegistrationMethod(String registrationMethod) {
+    public void setRegistrationMethod(RegistrationMethodEnum registrationMethod) {
         this.registrationMethod = registrationMethod;
         this.registrationMethod = registrationMethod;
     }
     }
     
     
@@ -215,5 +231,12 @@ public class ActivityPlan implements Serializable {
     public void setUpdateBy(Long updateBy) {
     public void setUpdateBy(Long updateBy) {
         this.updateBy = updateBy;
         this.updateBy = updateBy;
     }
     }
-    
+
+    public String getActivityUrl() {
+        return activityUrl;
+    }
+
+    public void setActivityUrl(String activityUrl) {
+        this.activityUrl = activityUrl;
+    }
 }
 }

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanEvaluation.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.common.enums.HardLevelEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -20,11 +21,11 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ActivityPlanEvaluation implements Serializable {
 public class ActivityPlanEvaluation implements Serializable {
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
     @ApiModelProperty("主键(活动id) ")
     @ApiModelProperty("主键(活动id) ")
-    @TableId(value = "id_", type = IdType.AUTO)
+    @TableId(value = "id_")
     private Long id;
     private Long id;
     @ApiModelProperty("评测难度 BEGINNER 入门级 ADVANCED 进阶级 PERFORMER 大师级 ")
     @ApiModelProperty("评测难度 BEGINNER 入门级 ADVANCED 进阶级 PERFORMER 大师级 ")
 	@TableField(value = "evaluation_difficulty_")
 	@TableField(value = "evaluation_difficulty_")
-    private String evaluationDifficulty;
+    private HardLevelEnum evaluationDifficulty;
     @ApiModelProperty("创建时间 ")
     @ApiModelProperty("创建时间 ")
 	@TableField(value = "create_time_")
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -50,11 +51,11 @@ public class ActivityPlanEvaluation implements Serializable {
         this.id = id;
         this.id = id;
     }
     }
     
     
-	public String getEvaluationDifficulty() {
+	public HardLevelEnum getEvaluationDifficulty() {
         return evaluationDifficulty;
         return evaluationDifficulty;
     }
     }
 
 
-    public void setEvaluationDifficulty(String evaluationDifficulty) {
+    public void setEvaluationDifficulty(HardLevelEnum evaluationDifficulty) {
         this.evaluationDifficulty = evaluationDifficulty;
         this.evaluationDifficulty = evaluationDifficulty;
     }
     }
     
     

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
@@ -20,6 +21,13 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
      */
      */
 	ActivityPlanVo detail(Long id);
 	ActivityPlanVo detail(Long id);
 
 
+	/**
+	 * 新增活动
+	 * @param activityPlan
+	 * @return
+	 */
+	Boolean save(ActivityPlanDto activityPlan);
+
     /**
     /**
      * 分页查询
      * 分页查询
      * @author liweifan
      * @author liweifan

+ 56 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java

@@ -2,6 +2,14 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanEvaluationVo;
+import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
+import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
+import com.yonge.toolset.base.exception.BizException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -11,19 +19,62 @@ import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanDao;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanDao;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 
 
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.math.BigDecimal;
+
 
 
 @Service
 @Service
 public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, ActivityPlan> implements ActivityPlanService {
 public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, ActivityPlan> implements ActivityPlanService {
     private final static Logger log = LoggerFactory.getLogger(ActivityPlanServiceImpl.class);
     private final static Logger log = LoggerFactory.getLogger(ActivityPlanServiceImpl.class);
+    @Resource
+    private ActivityPlanEvaluationDao activityPlanEvaluationDao;
 
 
-	@Override
+    @Override
     public ActivityPlanVo detail(Long id) {
     public ActivityPlanVo detail(Long id) {
-        return baseMapper.detail(id);
+        ActivityPlanVo detail = baseMapper.detail(id);
+        if (null != detail) {
+            if (ActivityTypeEnum.EVALUATION.equals(detail.getActivityType())) {
+                detail.setPlanEvaluation(activityPlanEvaluationDao.selectById(detail.getId()));
+            }
+        }
+        return detail;
+    }
+
+    @Override
+    public Boolean save(ActivityPlanDto activityPlan) {
+        //验证参数
+        if (validParam(activityPlan)) {
+            return false;
+        }
+        activityPlan.setDraftFlag(1);
+        save(activityPlan);
+        ActivityPlanEvaluation planEvaluation = activityPlan.getPlanEvaluation();
+        planEvaluation.setId(activityPlan.getId());
+        activityPlanEvaluationDao.insert(planEvaluation);
+        return true;
     }
     }
-    
+
+    private Boolean validParam(ActivityPlanDto activityPlan) {
+        if (null == activityPlan) {
+            return false;
+        }
+        if (RegistrationMethodEnum.CHARGE.equals(activityPlan.getRegistrationMethod())
+                &&(null == activityPlan.getRegistrationPrice() || BigDecimal.ZERO.compareTo(activityPlan.getRegistrationPrice()) > 0)
+        ) {
+            throw new BizException("活动收费时,报名金额不能为空");
+        }
+
+        if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())
+                && (null == activityPlan.getPlanEvaluation() || null == activityPlan.getPlanEvaluation().getEvaluationDifficulty())) {
+            throw new BizException("活动类型为评测活动时,评测难度不能为空");
+        }
+        return true;
+    }
+
     @Override
     @Override
-    public IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query){
+    public IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
         return page.setRecords(baseMapper.selectPage(page, query));
     }
     }
-	
+
 }
 }

+ 27 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ActivityPlanVo.java

@@ -14,13 +14,35 @@ public class ActivityPlanVo extends ActivityPlan{
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
 
 
 	@ApiModelProperty(value = "活动计划-评测活动拓展")
 	@ApiModelProperty(value = "活动计划-评测活动拓展")
-	private ActivityPlanEvaluationVo planEvaluationVo;
+	private ActivityPlanEvaluation planEvaluation;
 
 
-	public ActivityPlanEvaluationVo getPlanEvaluationVo() {
-		return planEvaluationVo;
+	@ApiModelProperty("参与人数")
+	private Integer registrationNum;
+
+	@ApiModelProperty("最后操作人")
+	private String updateByName;
+
+	public ActivityPlanEvaluation getPlanEvaluation() {
+		return planEvaluation;
+	}
+
+	public void setPlanEvaluation(ActivityPlanEvaluation planEvaluation) {
+		this.planEvaluation = planEvaluation;
+	}
+
+	public Integer getRegistrationNum() {
+		return registrationNum;
+	}
+
+	public void setRegistrationNum(Integer registrationNum) {
+		this.registrationNum = registrationNum;
+	}
+
+	public String getUpdateByName() {
+		return updateByName;
 	}
 	}
 
 
-	public void setPlanEvaluationVo(ActivityPlanEvaluationVo planEvaluationVo) {
-		this.planEvaluationVo = planEvaluationVo;
+	public void setUpdateByName(String updateByName) {
+		this.updateByName = updateByName;
 	}
 	}
 }
 }

+ 24 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml

@@ -9,7 +9,8 @@
 	        <result column="rule_describe_" property="ruleDescribe" />
 	        <result column="rule_describe_" property="ruleDescribe" />
 	        <result column="subject_url_" property="subjectUrl" />
 	        <result column="subject_url_" property="subjectUrl" />
 	        <result column="background_url_" property="backgroundUrl" />
 	        <result column="background_url_" property="backgroundUrl" />
-	        <result column="activity_start_" property="activityStart" />
+            <result column="activity_url_" property="activityUrl" />
+            <result column="activity_start_" property="activityStart" />
 	        <result column="activity_end_" property="activityEnd" />
 	        <result column="activity_end_" property="activityEnd" />
 	        <result column="registration_method_" property="registrationMethod" />
 	        <result column="registration_method_" property="registrationMethod" />
 	        <result column="registration_price_" property="registrationPrice" />
 	        <result column="registration_price_" property="registrationPrice" />
@@ -30,6 +31,7 @@
         , t.rule_describe_ as ruleDescribe
         , t.rule_describe_ as ruleDescribe
         , t.subject_url_ as subjectUrl
         , t.subject_url_ as subjectUrl
         , t.background_url_ as backgroundUrl
         , t.background_url_ as backgroundUrl
+        , t.activity_url_ as activityUrl
         , t.activity_start_ as activityStart
         , t.activity_start_ as activityStart
         , t.activity_end_ as activityEnd
         , t.activity_end_ as activityEnd
         , t.registration_method_ as registrationMethod
         , t.registration_method_ as registrationMethod
@@ -51,7 +53,27 @@
     
     
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo">
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo">
 		SELECT         
 		SELECT         
-        	<include refid="baseColumns" />
+        	<include refid="baseColumns" />,
+		       u.username_ as updateByName,
+		       (select count(1) from activity_registration r where t.id_ = r.activity_id_) as registrationNum
 		FROM activity_plan t
 		FROM activity_plan t
+        LEFT JOIN  sys_user u on t.update_by_ = u.id_
+        <where>
+            <if test="param.activityName != null and param.activityName != ''">
+                and t.activity_name_ like concat('%',#{param.activityName},'%')
+            </if>
+            <if test="param.draftFlag != null">
+                and t.draft_flag_ = #{param.draftFlag}
+            </if>
+            <if test="param.activityState != null">
+                and t.activity_state_ = #{param.activityState}
+            </if>
+            <if test="param.startTime !=null">
+                <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
+            </if>
+            <if test="param.endTime !=null">
+                <![CDATA[AND t.create_time_ <= #{param.endTime} ]]>
+            </if>
+        </where>
 	</select>
 	</select>
 </mapper>
 </mapper>