Browse Source

add:添加平台端作业搜索条件

liujunchi 2 years ago
parent
commit
6e3bf8e5d9

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseHomeworkController.java

@@ -34,7 +34,7 @@ public class CourseHomeworkController extends BaseController {
 		query.setDecorate(YesOrNoEnum.YES);
 		query.setCourseStatus(CourseScheduleEnum.COMPLETE);
 		query.setCourseType(CourseScheduleEnum.PRACTICE);
-		return succeed(PageUtil.pageInfo(courseHomeworkService.selectPage(PageUtil.getPage(query),query)));
+		return succeed(PageUtil.pageInfo(courseHomeworkService.selectAdminPage(PageUtil.getPage(query),query)));
 	}
 
 

+ 18 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java

@@ -36,7 +36,7 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param courseId 课程id
 	 * @return 课后作业信息
 	 */
-    CourseHomeworkDetailVo selectCourseHomeworkDetailByCourseId(@Param("courseId") Long courseId);
+	CourseHomeworkDetailVo selectCourseHomeworkDetailByCourseId(@Param("courseId") Long courseId);
 
 	/**
 	 * 获取课程购买的用户信息
@@ -78,4 +78,21 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @return
 	 */
 	List<CourseHomeworkVo> selectTeacherInfo(@Param("records") List<CourseHomeworkVo> records);
+
+	/**
+	 * 管理平台查询
+	 *
+	 * @param page
+	 * @param query
+	 * @return
+	 */
+	List<CourseHomeworkVo> selectAdminPage(@Param("page") IPage<CourseHomeworkVo> page, @Param("param") HomeworkSearch query);
+
+	/**
+	 * 查询课程提交时间
+	 *
+	 * @param courseIdList 课程id集合
+	 * @return
+	 */
+	List<CourseHomeworkVo> selectSubmitTime(@Param("courseIdList") List<Long> courseIdList);
 }

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

@@ -1,10 +1,14 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /**
  * Description 课后作业查询条件
@@ -39,6 +43,19 @@ public class HomeworkSearch extends QueryInfo {
     @ApiModelProperty(value = "学生编号",hidden = true)
     private Long studentId;
 
+    @ApiModelProperty("布置老师、学生,名称/手机号/编号")
+    private String search;
+
+    @ApiModelProperty("布置开始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty("布置结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
     public Long getCourseScheduleId() {
         return courseScheduleId;
     }
@@ -102,4 +119,28 @@ public class HomeworkSearch extends QueryInfo {
     public void setStudentId(Long studentId) {
         this.studentId = studentId;
     }
+
+    public String getSearch() {
+        return search;
+    }
+
+    public void setSearch(String search) {
+        this.search = search;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseHomeworkService.java

@@ -60,4 +60,15 @@ public interface CourseHomeworkService extends IService<CourseHomework>  {
 	 * @return boolean
 	 */
 	boolean submitCourseHomework(CourseHomeworkSubmitDto submitDto);
+
+	/**
+	 * 分页查询
+	 *
+	 * @param page 分页信息
+	 * @param query 查询
+	 * @return
+	 */
+	IPage<CourseHomeworkVo>  selectAdminPage(IPage<CourseHomeworkVo> page, HomeworkSearch query);
+
+
 }

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

@@ -26,6 +26,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -176,6 +177,26 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
 
     }
 
+    @Override
+    public IPage<CourseHomeworkVo> selectAdminPage(IPage<CourseHomeworkVo> page, HomeworkSearch query) {
+        IPage<CourseHomeworkVo> courseHomeworkVoIPage = page.setRecords(baseMapper.selectAdminPage(page, query));
+
+        List<CourseHomeworkVo> records = courseHomeworkVoIPage.getRecords();
+        List<Long> courseIdList = records
+                                                  .stream()
+                                                  .map(CourseHomeworkVo::getCourseId)
+                                                  .collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(courseIdList)) {
+            return courseHomeworkVoIPage;
+        }
+        // 查询提交时间
+        List<CourseHomeworkVo> courseHomeworkVoList = baseMapper.selectSubmitTime(courseIdList);
+        for (int i = 0; i < records.size(); i++) {
+            records.get(i).setSubmitTime(courseHomeworkVoList.get(i).getSubmitTime());
+        }
+        return courseHomeworkVoIPage;
+    }
+
     /**
      * 检查课程能否布置作业
      *

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseHomeworkDetailVo.java

@@ -283,4 +283,12 @@ public class CourseHomeworkDetailVo {
     public void setStudentHomeworkId(Long studentHomeworkId) {
         this.studentHomeworkId = studentHomeworkId;
     }
+
+    public Date getDecorateTime() {
+        return decorateTime;
+    }
+
+    public void setDecorateTime(Date decorateTime) {
+        this.decorateTime = decorateTime;
+    }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseHomeworkVo.java

@@ -12,7 +12,7 @@ import java.util.Date;
  * @Author: liweifan
  * @Data: 2022-03-30 13:53:51
  */
-@ApiModel(value = "CourseHomeworkVo对象", description = "课程作业表查询视图对象")
+@ApiModel( description = "课程作业表查询视图对象")
 public class CourseHomeworkVo{
 	private static final long serialVersionUID = 1L;
 

+ 84 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -37,6 +37,61 @@
         where t.id_ = #{id}
     </select>
 
+    <select id="selectAdminPage" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
+        select
+        cs.id_ AS courseId,
+        cs.course_group_id_ AS courseGroupId,
+        cs.class_date_ AS classDate,
+        cs.start_time_ AS startTime,
+        cs.end_time_ AS endTime,
+        ch.create_time_ as decorateTime,
+        su2.username_ as studentName,
+        su2.avatar_ as studentAvatar,
+        su.username_ as teacherName,
+        su.avatar_ as teacherAvatar,
+        ch.create_time_ as decorateTime
+        from  course_homework ch
+        left join course_schedule cs on ch.course_schedule_id_ = cs.id_
+        left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
+        left join sys_user su on cs.teacher_id_ = su.id_
+        left join sys_user su2 on cssp.user_id_ = su2.id_
+        <where>
+            <if test="param.courseStatus != null">
+                and cs.type_ = #{param.courseType}
+            </if>
+            <if test="param.courseType != null">
+                and cs.status_ = #{param.courseStatus}
+            </if>
+            <if test="param.teacherId != null">
+                and cs.teacher_id_ = #{param.teacherId}
+            </if>
+            <if test="param.studentId != null">
+                and cssp.user_id_ = #{param.studentId}
+            </if>
+            <if test="param.courseScheduleId != null ">
+                and cs.id_ = #{param.courseScheduleId}
+            </if>
+            <if test="param.date != null and param.date != ''">
+                and date_format(cs.class_date_,'%Y-%m') = #{param.date}
+            </if>
+            <if test="param.startTime != null">
+                and #{param.startTime} &lt; ch.create_time_
+            </if>
+            <if test="param.endTime != null">
+                and #{param.endTime} &gt; ch.create_time_
+            </if>
+            <if test="param.search != null and param.search != ''">
+                and (su.id_ like concat('%',#{param.search},'%')
+                    or su.username_ like concat('%',#{param.search},'%')
+                    or su.phone_ like concat('%',#{param.search},'%')
+                    or su2.id_ like concat('%',#{param.search},'%')
+                    or su2.username_ like concat('%',#{param.search},'%')
+                    or su2.phone_ like concat('%',#{param.search},'%') )
+            </if>
+        </where>
+        order by cs.start_time_ desc
+    </select>
+
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
         select
         cs.id_ AS courseId,
@@ -85,6 +140,12 @@
             <if test="param.date != null and param.date != ''">
                 and date_format(cs.class_date_,'%Y-%m') = #{param.date}
             </if>
+            <if test="param.startTime != null">
+                and #{param.startTime} &lt; ch.create_time_
+            </if>
+            <if test="param.endTime != null">
+                and #{param.endTime} &gt; ch.create_time_
+            </if>
         </where>
         order by cs.start_time_ desc
 	</select>
@@ -96,6 +157,7 @@
         ,ch.title_ as title
         ,ch.content_ as content
         ,ch.attachments_ as attachments
+        ,ch.create_time_ as decorateTime
         ,sch.attachments_ as studentAttachments
         ,sch.teacher_replied_ as teacherReplied
         ,sch.submit_time_ as submitTime
@@ -217,4 +279,26 @@
             </foreach>
         </if>
     </select>
+
+	<select id="selectSubmitTime" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
+        select
+        cs.id_ as courseId,
+        sch.submit_time_ as submitTime
+        from course_schedule cs
+        left join  student_course_homework sch on sch.course_schedule_id_ = cs.id_
+        <where>
+            <if test="courseIdList != null and courseIdList.size() != 0">
+                and cs.id_ in
+                <foreach collection="courseIdList" separator="," close=")" open="(" item="item">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        <if test="courseIdList != null and courseIdList.size() != 0">
+            order by field(cs.id_,
+            <foreach collection="courseIdList" separator="," close=")" open="" item="item" >
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>