Prechádzať zdrojové kódy

Merge branch 'dev_1_2_20220802' of http://git.dayaedu.com/yonge/cooleshow into dev_1_2_20220802

liujunchi 3 rokov pred
rodič
commit
f381cd3246
17 zmenil súbory, kde vykonal 251 pridanie a 110 odobranie
  1. 6 32
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityEvaluationController.java
  2. 39 24
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  3. 26 16
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationDao.java
  4. 30 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityEvaluationDto.java
  5. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanSearch.java
  6. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoLessonSearch.java
  7. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java
  8. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationService.java
  9. 9 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  10. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityEvaluationServiceImpl.java
  11. 65 16
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  12. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/WrapperUtil.java
  13. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVideoVo.java
  14. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonShelvesVo.java
  15. 12 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityEvaluationMapper.xml
  16. 4 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml
  17. 2 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

+ 6 - 32
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityEvaluationController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 package com.yonge.cooleshow.admin.controller;
 
 
+import com.yonge.cooleshow.biz.dal.dto.ActivityEvaluationDto;
 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;
@@ -25,15 +26,6 @@ public class ActivityEvaluationController extends BaseController {
 
 
     @Autowired
     @Autowired
     private ActivityEvaluationService activityEvaluationService;
     private ActivityEvaluationService activityEvaluationService;
-
-	/**
-     * 查询单条
-     */
-    @GetMapping("/detail/{id}")
-    @ApiOperation(value = "详情", notes = "传入id")
-    public HttpResponseResult<ActivityEvaluationVo> detail(@PathVariable("id") Long id) {
-    	return succeed(activityEvaluationService.detail(id));
-	}
     
     
     /**
     /**
      * 查询分页
      * 查询分页
@@ -46,31 +38,13 @@ public class ActivityEvaluationController extends BaseController {
 	}
 	}
     
     
     /**
     /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入activityEvaluation")
-	public HttpResponseResult save(@Valid @RequestBody ActivityEvaluation activityEvaluation) {
-    	return status(activityEvaluationService.save(activityEvaluation));
-	}
-    
-    /**
-	 * 修改
+	 * 批量增加曲目
 	 */
 	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入activityEvaluation")
-	public HttpResponseResult update(@Valid @RequestBody ActivityEvaluation activityEvaluation) {
-        return status(activityEvaluationService.updateById(activityEvaluation));
+	@PostMapping("/addBatch")
+	@ApiOperation(value = "批量增加曲目")
+	public HttpResponseResult addBatch(@Valid @RequestBody ActivityEvaluationDto param) {
+    	return status(activityEvaluationService.addBatch(param));
 	}
 	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入activityEvaluation")
-	public HttpResponseResult submit(@Valid @RequestBody ActivityEvaluation activityEvaluation) {
-        return status(activityEvaluationService.saveOrUpdate(activityEvaluation));
-    }
 
 
  	/**
  	/**
 	 * 删除
 	 * 删除

+ 39 - 24
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.admin.controller;
 package com.yonge.cooleshow.admin.controller;
 
 
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 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;
@@ -10,8 +12,10 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.base.util.StringUtil;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
 
 
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
@@ -27,42 +31,53 @@ public class ActivityPlanController extends BaseController {
     @Autowired
     @Autowired
     private ActivityPlanService activityPlanService;
     private ActivityPlanService activityPlanService;
 
 
-	/**
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    /**
      * 查询单条
      * 查询单条
      */
      */
     @GetMapping("/detail/{id}")
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     @ApiOperation(value = "详情", notes = "传入id")
     public HttpResponseResult<ActivityPlanVo> detail(@PathVariable("id") Long id) {
     public HttpResponseResult<ActivityPlanVo> detail(@PathVariable("id") Long id) {
-    	return succeed(activityPlanService.detail(id));
-	}
-    
+        return succeed(activityPlanService.detail(id));
+    }
+
     /**
     /**
      * 查询分页
      * 查询分页
      */
      */
     @PostMapping("/page")
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入activityPlanSearch")
     @ApiOperation(value = "查询分页", notes = "传入activityPlanSearch")
     public HttpResponseResult<PageInfo<ActivityPlanVo>> page(@RequestBody ActivityPlanSearch query) {
     public HttpResponseResult<PageInfo<ActivityPlanVo>> page(@RequestBody ActivityPlanSearch query) {
-		IPage<ActivityPlanVo> pages = activityPlanService.selectPage(PageUtil.getPage(query), query);
+        IPage<ActivityPlanVo> pages = activityPlanService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
         return succeed(PageUtil.pageInfo(pages));
-	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入activityPlan")
-	public HttpResponseResult save(@Valid @RequestBody ActivityPlanDto activityPlan) {
-    	return status(activityPlanService.save(activityPlan));
-	}
-    
-    /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入activityPlan")
-	public HttpResponseResult update(@Valid @RequestBody ActivityPlan activityPlan) {
-        return status(activityPlanService.updateById(activityPlan));
-	}
+    }
 
 
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperation(value = "新增或修改", notes = "传入activityPlan")
+    public HttpResponseResult submit(@Valid @RequestBody ActivityPlanDto activityPlan) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return status(activityPlanService.submit(activityPlan, user));
+    }
 
 
+    /**
+     * 启用/停用
+     */
+    @GetMapping("/updateActivityState")
+    @ApiOperation(value = "启用/停用")
+    public HttpResponseResult updateActivityState(
+            @ApiParam(value = "活动id", required = true) @RequestParam("activityId") Long activityId,
+            @ApiParam(value = "活动状态 0 停用 1 启用", required = true) @RequestParam("activityState") Integer activityState) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return status(activityPlanService.updateActivityState(activityId, activityState, user.getId()));
+    }
 }
 }

+ 26 - 16
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationDao.java

@@ -12,23 +12,33 @@ import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 
 
 
 
 public interface ActivityEvaluationDao extends BaseMapper<ActivityEvaluation> {
 public interface ActivityEvaluationDao extends BaseMapper<ActivityEvaluation> {
-	/**
-	 * 查询详情
-	 *
-	 * @author liweifan
-	 * @date 2022-08-04 10:19:49
-	 * @return: com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo
-	 */
-	ActivityEvaluationVo detail(@Param("id") Long id);
+    /**
+     * 查询详情
+     *
+     * @author liweifan
+     * @date 2022-08-04 10:19:49
+     * @return: com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo
+     */
+    ActivityEvaluationVo detail(@Param("id") Long id);
+    /**
+     * 分页查询
+     *
+     * @author liweifan
+     * @date 2022-08-04 10:19:49
+     * @return: com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo
+     */
+    List<ActivityEvaluationVo> selectPage(@Param("page") IPage page, @Param("param") ActivityEvaluationSearch activityEvaluation);
 
 
-	/**
-	 * 分页查询
-	 *
-	 * @author liweifan
-	 * @date 2022-08-04 10:19:49
-	 * @return: com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo
-	 */
-	List<ActivityEvaluationVo> selectPage(@Param("page") IPage page, @Param("param") ActivityEvaluationSearch activityEvaluation);
+    List<Long> selectUnjoinMusicIds(@Param("activityId") Long activityId, @Param("musicSheetIds") List<Long> musicSheetIds);
+
+    /**
+     * 批量给活动添加曲目
+     *
+     * @param activityId
+     * @param musicSheetIds
+     * @return
+     */
+    Integer addBatch(@Param("activityId") Long activityId, @Param("musicSheetIds") List<Long> musicSheetIds);
 
 
 	/**
 	/**
 	 * 获取活动曲目信息
 	 * 获取活动曲目信息

+ 30 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityEvaluationDto.java

@@ -1,13 +1,41 @@
 package com.yonge.cooleshow.biz.dal.dto;
 package com.yonge.cooleshow.biz.dal.dto;
 
 
-import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
+import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * @Author: liweifan
  * @Author: liweifan
  * @Data: 2022-08-04 10:19:49
  * @Data: 2022-08-04 10:19:49
  */
  */
 @ApiModel(value = "ActivityEvaluationDto对象", description = "评测活动表数据传输对象")
 @ApiModel(value = "ActivityEvaluationDto对象", description = "评测活动表数据传输对象")
-public class ActivityEvaluationDto extends ActivityEvaluation{
+public class ActivityEvaluationDto extends BaseEntity {
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("活动id ")
+	@NotNull(message = "活动id不能为空")
+	private Long activityId;
+	@ApiModelProperty("曲目id 多个用,分割 ")
+	@NotBlank(message = "曲子id不能为空")
+	private String musicSheetIds;
+
+	public Long getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Long activityId) {
+		this.activityId = activityId;
+	}
+
+	public String getMusicSheetIds() {
+
+		return musicSheetIds;
+	}
+
+	public void setMusicSheetIds(String musicSheetIds) {
+		this.musicSheetIds = musicSheetIds;
+	}
 }
 }

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

@@ -22,11 +22,11 @@ public class ActivityPlanSearch extends QueryInfo{
 	private Integer draftFlag;
 	private Integer draftFlag;
 	@ApiModelProperty("活动状态 0 停用 1 启用 ")
 	@ApiModelProperty("活动状态 0 停用 1 启用 ")
 	private Integer activityState;
 	private Integer activityState;
-	@ApiModelProperty(value = "交易开始时间")
+	@ApiModelProperty(value = "活动开始时间")
 	@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")
 	private LocalDateTime startTime;
 	private LocalDateTime startTime;
-	@ApiModelProperty(value = "交易结束时间")
+	@ApiModelProperty(value = "活动结束时间")
 	@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")
 	private LocalDateTime endTime;
 	private LocalDateTime endTime;

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

@@ -48,6 +48,9 @@ public class VideoLessonSearch extends QueryInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
     private Date endTime;
 
 
+    @ApiModelProperty(value = "是否上架 (0:否  1:是)")
+    private Integer shelvesFlag;
+
     public Long getVideoLessonGroupId() {
     public Long getVideoLessonGroupId() {
         return videoLessonGroupId;
         return videoLessonGroupId;
     }
     }
@@ -113,4 +116,12 @@ public class VideoLessonSearch extends QueryInfo {
     public void setEndTime(Date endTime) {
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
         this.endTime = endTime;
     }
     }
+
+    public Integer getShelvesFlag() {
+        return shelvesFlag;
+    }
+
+    public void setShelvesFlag(Integer shelvesFlag) {
+        this.shelvesFlag = shelvesFlag;
+    }
 }
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java

@@ -47,9 +47,11 @@ public class ActivityPlan implements Serializable {
     private String ruleDescribe;
     private String ruleDescribe;
     @ApiModelProperty("主题图片 ")
     @ApiModelProperty("主题图片 ")
 	@TableField(value = "subject_url_")
 	@TableField(value = "subject_url_")
+    @NotBlank(message = "主题图片不能为空")
     private String subjectUrl;
     private String subjectUrl;
     @ApiModelProperty("平铺背景 ")
     @ApiModelProperty("平铺背景 ")
 	@TableField(value = "background_url_")
 	@TableField(value = "background_url_")
+    @NotBlank(message = "平铺背景不能为空")
     private String backgroundUrl;
     private String backgroundUrl;
     @ApiModelProperty("活动链接 ")
     @ApiModelProperty("活动链接 ")
     @TableField(value = "activity_url_")
     @TableField(value = "activity_url_")
@@ -68,7 +70,7 @@ public class ActivityPlan implements Serializable {
     private Date activityEnd;
     private Date activityEnd;
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
     @ApiModelProperty("报名方式 FREE 免费 CHARGE 收费 ")
 	@TableField(value = "registration_method_")
 	@TableField(value = "registration_method_")
-    @NotBlank(message = "报名缴费方式不能为空")
+    @NotNull(message = "报名缴费方式不能为空")
     private RegistrationMethodEnum registrationMethod;
     private RegistrationMethodEnum registrationMethod;
     @ApiModelProperty("报名价格 ")
     @ApiModelProperty("报名价格 ")
 	@TableField(value = "registration_price_")
 	@TableField(value = "registration_price_")

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationService.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.ActivityEvaluationDto;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
@@ -31,6 +32,13 @@ public interface ActivityEvaluationService extends IService<ActivityEvaluation>
     IPage<ActivityEvaluationVo> selectPage(IPage<ActivityEvaluationVo> page, ActivityEvaluationSearch query);
     IPage<ActivityEvaluationVo> selectPage(IPage<ActivityEvaluationVo> page, ActivityEvaluationSearch query);
 
 
 	/**
 	/**
+	 * 为活动
+	 * @param param
+	 * @return
+	 */
+    Boolean addBatch(ActivityEvaluationDto param);
+
+	/**
 	 * 获取活动曲目细腻
 	 * 获取活动曲目细腻
 	 *
 	 *
 	 * @param activityPlanId 活动id
 	 * @param activityPlanId 活动id

+ 9 - 8
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.auth.api.entity.SysUser;
 
 
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 
 
@@ -29,21 +30,21 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
  	 * @date 2022-08-04
  	 * @date 2022-08-04
      */
      */
 	ActivityPlanVo detail(Long id);
 	ActivityPlanVo detail(Long id);
-
-	/**
-	 * 新增活动
-	 * @param activityPlan
-	 * @return
-	 */
-	Boolean save(ActivityPlanDto activityPlan);
-
     /**
     /**
      * 分页查询
      * 分页查询
      * @author liweifan
      * @author liweifan
  	 * @date 2022-08-04
  	 * @date 2022-08-04
      */
      */
     IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query);
     IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query);
+	/**
+	 * 新增活动
+	 * @param activityPlan
+	 * @param user
+	 * @return
+	 */
+	Boolean submit(ActivityPlanDto activityPlan, SysUser user);
 
 
+	Boolean updateActivityState(Long activityId, Integer activityState, Long id);
 	/**
 	/**
 	 * 活动信息
 	 * 活动信息
 	 *
 	 *

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

@@ -2,6 +2,8 @@ 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.dto.ActivityEvaluationDto;
+import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo;
 import com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -14,6 +16,8 @@ import com.yonge.cooleshow.biz.dal.dao.ActivityEvaluationDao;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
 
 
 import java.util.List;
 import java.util.List;
+
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -33,6 +37,17 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
     }
     }
 
 
     @Override
     @Override
+    public Boolean addBatch(ActivityEvaluationDto param) {
+        List<Long> musicSheetIds = WrapperUtil.toLongList(param.getMusicSheetIds());
+        //过滤出未添加的曲子
+        musicSheetIds = baseMapper.selectUnjoinMusicIds(param.getActivityId(),musicSheetIds);
+
+        Integer num = baseMapper.addBatch(param.getActivityId(),musicSheetIds);
+        return null;
+    }
+
+
+    @Override
     public List<ActivityMusicVo> getActivityMusic(Long activityPlanId, Long userId) {
     public List<ActivityMusicVo> getActivityMusic(Long activityPlanId, Long userId) {
         List<ActivityMusicVo> result = baseMapper.selectActivityMusic(activityPlanId,userId);
         List<ActivityMusicVo> result = baseMapper.selectActivityMusic(activityPlanId,userId);
         List<ActivityMusicVo> activityMusicVoList = baseMapper.selectActivityUser(activityPlanId);
         List<ActivityMusicVo> activityMusicVoList = baseMapper.selectActivityUser(activityPlanId);

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

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 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.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanDao;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanDao;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanPayDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanPayDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
@@ -22,9 +24,16 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
 import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.exception.BizException;
+import org.springframework.stereotype.Service;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
+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 org.springframework.transaction.annotation.Transactional;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -32,6 +41,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
 
 
@@ -69,16 +79,61 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     }
     }
 
 
     @Override
     @Override
-    public Boolean save(ActivityPlanDto activityPlan) {
+    public IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query) {
+        return page.setRecords(baseMapper.selectPage(page, query));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean submit(ActivityPlanDto activityPlan, SysUser user) {
         //验证参数
         //验证参数
-        if (validParam(activityPlan)) {
+        if (!validParam(activityPlan)) {
             return false;
             return false;
         }
         }
-        activityPlan.setDraftFlag(1);
-        save(activityPlan);
-        ActivityPlanEvaluation planEvaluation = activityPlan.getPlanEvaluation();
-        planEvaluation.setId(activityPlan.getId());
-        activityPlanEvaluationDao.insert(planEvaluation);
+
+        if (null == activityPlan.getId()) {
+            activityPlan.setDraftFlag(1);
+            activityPlan.setCreateBy(user.getId());
+            activityPlan.setUpdateBy(user.getId());
+            save(activityPlan);
+
+            ActivityPlanEvaluation planEvaluation = activityPlan.getPlanEvaluation();
+            planEvaluation.setId(activityPlan.getId());
+            planEvaluation.setCreateBy(user.getId());
+            planEvaluation.setUpdateBy(user.getId());
+            activityPlanEvaluationDao.insert(planEvaluation);
+            return true;
+        } else {
+            ActivityPlan old = getById(activityPlan.getId());
+            //启用状态,只能修改活动结束时间
+            if (old.getActivityState().equals(1)) {
+                if (activityPlan.getActivityEnd().after(new Date())) {
+                    old.setActivityEnd(activityPlan.getActivityEnd());
+                    old.setUpdateBy(user.getId());
+                    updateById(activityPlan);
+                    return true;
+                }
+                return false;
+            }else{
+                activityPlan.setUpdateBy(user.getId());
+                updateById(activityPlan);
+
+                ActivityPlanEvaluation planEvaluation = activityPlan.getPlanEvaluation();
+                planEvaluation.setUpdateBy(user.getId());
+                activityPlanEvaluationDao.updateById(planEvaluation);
+                return true;
+            }
+        }
+    }
+
+    @Override
+    public Boolean updateActivityState(Long activityId, Integer activityState, Long id) {
+        ActivityPlan activityPlan = new ActivityPlan();
+        activityPlan.setId(activityId);
+        activityPlan.setActivityState(activityState);
+        activityPlan.setUpdateBy(id);
+        activityPlan.setUpdateTime(new Date());
+        baseMapper.updateById(activityPlan);
         return true;
         return true;
     }
     }
 
 
@@ -86,23 +141,17 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
         if (null == activityPlan) {
         if (null == activityPlan) {
             return false;
             return false;
         }
         }
-        if (RegistrationMethodEnum.CHARGE.equals(activityPlan.getRegistrationMethod())
-                &&(null == activityPlan.getRegistrationPrice() || BigDecimal.ZERO.compareTo(activityPlan.getRegistrationPrice()) > 0)
-        ) {
+        if (RegistrationMethodEnum.CHARGE.equals(activityPlan.getRegistrationMethod()) && (null == activityPlan.getRegistrationPrice() || BigDecimal.ZERO.compareTo(activityPlan.getRegistrationPrice()) > 0)) {
             throw new BizException("活动收费时,报名金额不能为空");
             throw new BizException("活动收费时,报名金额不能为空");
         }
         }
 
 
-        if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())
-                && (null == activityPlan.getPlanEvaluation() || null == activityPlan.getPlanEvaluation().getEvaluationDifficulty())) {
+        if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType()) && (null == activityPlan.getPlanEvaluation() || null == activityPlan.getPlanEvaluation().getEvaluationDifficulty())) {
             throw new BizException("活动类型为评测活动时,评测难度不能为空");
             throw new BizException("活动类型为评测活动时,评测难度不能为空");
         }
         }
         return true;
         return true;
     }
     }
 
 
-    @Override
-    public IPage<ActivityPlanVo> selectPage(IPage<ActivityPlanVo> page, ActivityPlanSearch query) {
-        return page.setRecords(baseMapper.selectPage(page, query));
-    }
+
 
 
 
 
     @Override
     @Override

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/WrapperUtil.java

@@ -86,6 +86,10 @@ public class WrapperUtil {
         return toList(key, ",");
         return toList(key, ",");
     }
     }
 
 
+    public static List<Long> toLongList(String key) {
+        return toList(key, ",").stream().map(o -> Long.parseLong(o)).collect(Collectors.toList());
+    }
+
     public static List<String> toList(String key, String symbol) {
     public static List<String> toList(String key, String symbol) {
         return toListOptional(key, symbol)
         return toListOptional(key, symbol)
                 .orElse(null);
                 .orElse(null);

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVideoVo.java

@@ -34,6 +34,8 @@ public class CourseGroupVideoVo extends BaseEntity {
     private Date createTime;
     private Date createTime;
     @ApiModelProperty("审核通过日期")
     @ApiModelProperty("审核通过日期")
     private Date recordTime;
     private Date recordTime;
+    @ApiModelProperty(value = "是否上架 (0:否  1:是)")
+    private Integer shelvesFlag;
 
 
     public Date getRecordTime() {
     public Date getRecordTime() {
         return recordTime;
         return recordTime;
@@ -122,4 +124,12 @@ public class CourseGroupVideoVo extends BaseEntity {
     public void setCreateTime(Date createTime) {
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
         this.createTime = createTime;
     }
     }
+
+    public Integer getShelvesFlag() {
+        return shelvesFlag;
+    }
+
+    public void setShelvesFlag(Integer shelvesFlag) {
+        this.shelvesFlag = shelvesFlag;
+    }
 }
 }

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

@@ -16,22 +16,22 @@ import java.util.Date;
  */
  */
 @ApiModel(value = "VideoLessonShelvesVo")
 @ApiModel(value = "VideoLessonShelvesVo")
 public class VideoLessonShelvesVo extends BaseEntity {
 public class VideoLessonShelvesVo extends BaseEntity {
-    @ApiModelProperty(value = "主键id")
+    @ApiModelProperty(value = "主键id", required = true)
     @NotNull(message = "视频组id不能为空")
     @NotNull(message = "视频组id不能为空")
     private Long id;
     private Long id;
 
 
-    @ApiModelProperty(value = "是否上架 (0:否  1:是)")
+    @ApiModelProperty(value = "是否上架 (0:否  1:是)", required = true)
     @ListValue(vals = {0, 1}, message = "是否上架必须提交指定值")
     @ListValue(vals = {0, 1}, message = "是否上架必须提交指定值")
     private Integer shelvesFlag;
     private Integer shelvesFlag;
 
 
-    @ApiModelProperty(value = "原因")
+    @ApiModelProperty(value = "原因", required = true)
     @NotBlank(message = "原因不能为空")
     @NotBlank(message = "原因不能为空")
     private String shelvesReason;
     private String shelvesReason;
 
 
-    @ApiModelProperty(value = "上下架时间",hidden = true)
+    @ApiModelProperty(value = "上下架时间", hidden = true)
     private Date shelvesTime;
     private Date shelvesTime;
 
 
-    @ApiModelProperty(value = "上下架操作人",hidden = true)
+    @ApiModelProperty(value = "上下架操作人", hidden = true)
     private Long shelvesId;
     private Long shelvesId;
 
 
     public Long getId() {
     public Long getId() {

+ 12 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityEvaluationMapper.xml

@@ -31,6 +31,18 @@
         FROM activity_evaluation t
         FROM activity_evaluation t
     </select>
     </select>
 
 
+    <select id="selectUnjoinMusicIds" resultType="java.lang.Long">
+        select * from activity_evaluation
+    </select>
+
+    <insert id="addBatch">
+        insert into activity_evaluation (activity_id_, music_sheet_id_) values
+        <foreach collection="musicSheetIds" item="item" separator="," index="index">
+            (#{activityId,jdbcType=BIGINT},#{item,jdbcType=BIGINT})
+        </foreach>
+    </insert>
+
+
     <select id="selectActivityMusic" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo">
     <select id="selectActivityMusic" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo">
 
 
         select ms.id_ as musciSheetId
         select ms.id_ as musciSheetId

+ 4 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml

@@ -27,7 +27,7 @@
          t.id_ as id
          t.id_ as id
         , t.activity_type_ as activityType
         , t.activity_type_ as activityType
         , t.activity_name_ as activityName
         , t.activity_name_ as activityName
-        , t.describe_ as describe
+        , t.describe_ as `describe`
         , 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
@@ -69,12 +69,13 @@
                 and t.activity_state_ = #{param.activityState}
                 and t.activity_state_ = #{param.activityState}
             </if>
             </if>
             <if test="param.startTime !=null">
             <if test="param.startTime !=null">
-                <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
+                <![CDATA[AND t.activity_end_ >= #{param.startTime} ]]>
             </if>
             </if>
             <if test="param.endTime !=null">
             <if test="param.endTime !=null">
-                <![CDATA[AND t.create_time_ <= #{param.endTime} ]]>
+                <![CDATA[AND t.activity_start_ <= #{param.endTime} ]]>
             </if>
             </if>
         </where>
         </where>
+        order by t.id_ desc
 	</select>
 	</select>
 
 
 	<select id="selectActivityPlanEvaluation" resultType="java.lang.String">
 	<select id="selectActivityPlanEvaluation" resultType="java.lang.String">

+ 2 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -579,7 +579,8 @@
             u.username_ AS teacherName,
             u.username_ AS teacherName,
             u.real_name_ AS teacherRealName,
             u.real_name_ AS teacherRealName,
             g.create_time_ AS createTime,
             g.create_time_ AS createTime,
-            r.create_time_ AS recordTime
+            r.create_time_ AS recordTime,
+            g.shelves_flag_ as shelvesFlag
         FROM video_lesson_group g
         FROM video_lesson_group g
         LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
         LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
         LEFT JOIN sys_user u ON g.teacher_id_=u.id_
         LEFT JOIN sys_user u ON g.teacher_id_=u.id_