Browse Source

运营活动修改

liweifan 3 years ago
parent
commit
bff2b6930e
15 changed files with 311 additions and 63 deletions
  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 com.yonge.cooleshow.common.enums.HardLevelEnum;
 import org.slf4j.Logger;
 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;
 
 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);
+	@EnumValue
+	private String code;
 
 	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,
 			int tempoEffectiveRangeOf4, int tempoEffectiveRangeOf8, int integrityRange,
 			int notPlayRange) {
+		this.code = this.name();
 		this.msg = msg;
 		this.amplitudeThreshold = amplitudeThreshold;
 		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;
 
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -50,7 +51,7 @@ public class ActivityPlanController extends BaseController {
 	 */
 	@PostMapping("/save")
 	@ApiOperation(value = "新增", notes = "传入activityPlan")
-	public HttpResponseResult save(@Valid @RequestBody ActivityPlan activityPlan) {
+	public HttpResponseResult save(@Valid @RequestBody ActivityPlanDto activityPlan) {
     	return status(activityPlanService.save(activityPlan));
 	}
     
@@ -62,25 +63,6 @@ public class ActivityPlanController extends BaseController {
 	public HttpResponseResult update(@Valid @RequestBody ActivityPlan 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;
 
 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.ApiModelProperty;
+
+import javax.validation.Valid;
 
 /**
  * @Author: liweifan
@@ -10,4 +14,16 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "ActivityPlanDto对象", description = "活动计划表数据传输对象")
 public class ActivityPlanDto extends ActivityPlan{
 	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;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.toolset.base.page.QueryInfo;
 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
@@ -10,5 +16,62 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "ActivityPlanSearch对象", description = "活动计划表查询对象")
 public class ActivityPlanSearch extends QueryInfo{
 	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;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.toolset.base.page.QueryInfo;
@@ -8,7 +7,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 
@@ -68,7 +66,9 @@ public class PianoRoomChangeRecordSearch extends QueryInfo{
 	}
 
 	public void setStartTime(LocalDateTime startTime) {
-		this.startTime = startTime;
+		if(null != startTime){
+			this.startTime = LocalDateTime.of(startTime.toLocalDate(), LocalTime.MIN);
+		}
 	}
 
 	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.TableId;
 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.ApiModelProperty;
 
@@ -11,6 +13,10 @@ import java.io.Serializable;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 
 /**
@@ -23,17 +29,21 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("主键 ")
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
-    @ApiModelProperty("活动类型 EVALUATION 评测活动 ")
+    @ApiModelProperty(value = "活动类型 EVALUATION 评测活动 ",required = true)
 	@TableField(value = "activity_type_")
-    private String activityType;
+    @NotNull(message = "活动类型不能为空")
+    private ActivityTypeEnum activityType;
     @ApiModelProperty("活动名称 ")
 	@TableField(value = "activity_name_")
+    @NotBlank(message = "活动名称不能为空")
     private String activityName;
     @ApiModelProperty("活动描述 ")
 	@TableField(value = "describe_")
+    @NotBlank(message = "活动描述不能为空")
     private String describe;
     @ApiModelProperty("规则描述 ")
 	@TableField(value = "rule_describe_")
+    @NotBlank(message = "活动规则不能为空")
     private String ruleDescribe;
     @ApiModelProperty("主题图片 ")
 	@TableField(value = "subject_url_")
@@ -41,19 +51,25 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("平铺背景 ")
 	@TableField(value = "background_url_")
     private String backgroundUrl;
+    @ApiModelProperty("活动链接 ")
+    @TableField(value = "activity_url_")
+    private String activityUrl;
     @ApiModelProperty("活动时间-开始 ")
 	@TableField(value = "activity_start_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @NotNull(message = "活动开始时间不能为空")
     private Date activityStart;
     @ApiModelProperty("活动时间-结束 ")
 	@TableField(value = "activity_end_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @NotNull(message = "活动结束时间不能为空")
     private Date activityEnd;
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
 	@TableField(value = "registration_method_")
-    private String registrationMethod;
+    @NotBlank(message = "报名缴费方式不能为空")
+    private RegistrationMethodEnum registrationMethod;
     @ApiModelProperty("报名价格 ")
 	@TableField(value = "registration_price_")
     private BigDecimal registrationPrice;
@@ -88,11 +104,11 @@ public class ActivityPlan implements Serializable {
         this.id = id;
     }
     
-	public String getActivityType() {
+	public ActivityTypeEnum getActivityType() {
         return activityType;
     }
 
-    public void setActivityType(String activityType) {
+    public void setActivityType(ActivityTypeEnum activityType) {
         this.activityType = activityType;
     }
     
@@ -152,11 +168,11 @@ public class ActivityPlan implements Serializable {
         this.activityEnd = activityEnd;
     }
     
-	public String getRegistrationMethod() {
+	public RegistrationMethodEnum getRegistrationMethod() {
         return registrationMethod;
     }
 
-    public void setRegistrationMethod(String registrationMethod) {
+    public void setRegistrationMethod(RegistrationMethodEnum registrationMethod) {
         this.registrationMethod = registrationMethod;
     }
     
@@ -215,5 +231,12 @@ public class ActivityPlan implements Serializable {
     public void setUpdateBy(Long 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.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.common.enums.HardLevelEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -20,11 +21,11 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ActivityPlanEvaluation implements Serializable {
 	private static final long serialVersionUID = 1L;
     @ApiModelProperty("主键(活动id) ")
-    @TableId(value = "id_", type = IdType.AUTO)
+    @TableId(value = "id_")
     private Long id;
     @ApiModelProperty("评测难度 BEGINNER 入门级 ADVANCED 进阶级 PERFORMER 大师级 ")
 	@TableField(value = "evaluation_difficulty_")
-    private String evaluationDifficulty;
+    private HardLevelEnum evaluationDifficulty;
     @ApiModelProperty("创建时间 ")
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -50,11 +51,11 @@ public class ActivityPlanEvaluation implements Serializable {
         this.id = id;
     }
     
-	public String getEvaluationDifficulty() {
+	public HardLevelEnum getEvaluationDifficulty() {
         return evaluationDifficulty;
     }
 
-    public void setEvaluationDifficulty(String evaluationDifficulty) {
+    public void setEvaluationDifficulty(HardLevelEnum 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.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.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
@@ -20,6 +21,13 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
      */
 	ActivityPlanVo detail(Long id);
 
+	/**
+	 * 新增活动
+	 * @param activityPlan
+	 * @return
+	 */
+	Boolean save(ActivityPlanDto activityPlan);
+
     /**
      * 分页查询
      * @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.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.slf4j.Logger;
 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.service.ActivityPlanService;
 
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.math.BigDecimal;
+
 
 @Service
 public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, ActivityPlan> implements ActivityPlanService {
     private final static Logger log = LoggerFactory.getLogger(ActivityPlanServiceImpl.class);
+    @Resource
+    private ActivityPlanEvaluationDao activityPlanEvaluationDao;
 
-	@Override
+    @Override
     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
-    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));
     }
-	
+
 }

+ 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;
 
 	@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="subject_url_" property="subjectUrl" />
 	        <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="registration_method_" property="registrationMethod" />
 	        <result column="registration_price_" property="registrationPrice" />
@@ -30,6 +31,7 @@
         , t.rule_describe_ as ruleDescribe
         , t.subject_url_ as subjectUrl
         , t.background_url_ as backgroundUrl
+        , t.activity_url_ as activityUrl
         , t.activity_start_ as activityStart
         , t.activity_end_ as activityEnd
         , t.registration_method_ as registrationMethod
@@ -51,7 +53,27 @@
     
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo">
 		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
+        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>
 </mapper>