浏览代码

小组课

zouxuan 7 月之前
父节点
当前提交
61d20f6ace

+ 26 - 9
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseHomeworkController.java

@@ -1,11 +1,14 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkAdminSearch;
+import com.yonge.cooleshow.biz.dal.entity.StudentCourseHomework;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
+import com.yonge.cooleshow.biz.dal.service.StudentCourseHomeworkService;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
+import com.yonge.cooleshow.biz.dal.wrapper.HomeworkWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -14,15 +17,10 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
@@ -32,12 +30,15 @@ import java.util.List;
 @Api(value = "课程作业表", tags = "课程作业表")
 public class CourseHomeworkController extends BaseController {
 
-    @Autowired
+    @Resource
     private CourseHomeworkService courseHomeworkService;
 
-	@Autowired
+	@Resource
 	private CourseScheduleService courseScheduleService;
 
+	@Resource
+	private StudentCourseHomeworkService studentCourseHomeworkService;
+
 	@ApiOperation(value = "课后作业-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
 	@PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
 	@PreAuthorize("@pcs.hasPermissions('homework/list')")
@@ -71,4 +72,20 @@ public class CourseHomeworkController extends BaseController {
 		courseScheduleService.sendTodayNotRepliedAndNotDecorateHomework();
 		return HttpResponseResult.succeed();
 	}
+
+	//课程组关联的作业列表
+	@ApiOperation(value = "课程组关联的作业列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+	@PostMapping(value = "/groupList", consumes = "application/json", produces = "application/json")
+	@PreAuthorize("@pcs.hasPermissions('homework/groupList')")
+	public HttpResponseResult<List<HomeworkWrapper.GroupHomework>> groupList(@RequestBody HomeworkWrapper.GroupHomeworkSearch query) {
+		return succeed(courseHomeworkService.groupList(query));
+	}
+
+	//根据作业编号,获取学员作业列表
+	@ApiOperation(value = "根据作业编号,获取学员作业列表")
+	@GetMapping(value = "/studentList")
+	@PreAuthorize("@pcs.hasPermissions('homework/studentList')")
+	public HttpResponseResult<List<StudentCourseHomework>> studentList(Long homeworkId) {
+		return succeed(studentCourseHomeworkService.lambdaQuery().eq(StudentCourseHomework::getId, homeworkId).list());
+	}
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleHomeworkVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentHomeworkVo;
+import com.yonge.cooleshow.biz.dal.wrapper.HomeworkWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -120,4 +121,6 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @return
 	 */
 	List<CourseHomeworkVo> selectAbsenteeism(@Param("practiceRecord") List<Long> practiceRecord, @Param("studentId") Long studentId);
+
+    List<HomeworkWrapper.GroupHomework> selectGroupHomeworkList(@Param("param") HomeworkWrapper.GroupHomeworkSearch query);
 }

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

@@ -12,6 +12,9 @@ import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleHomeworkVo;
+import com.yonge.cooleshow.biz.dal.wrapper.HomeworkWrapper;
+
+import java.util.List;
 
 /**
  * 课程作业表 服务类
@@ -82,4 +85,6 @@ public interface CourseHomeworkService extends IService<CourseHomework>  {
 	 * @return
 	 */
 	CourseScheduleHomeworkVo getCourseHomeworkDetailByCourseId(CourseScheduleHomeworkSearch query);
+
+    List<HomeworkWrapper.GroupHomework> groupList(HomeworkWrapper.GroupHomeworkSearch query);
 }

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

@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleHomeworkVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentHomeworkVo;
 import com.yonge.cooleshow.biz.dal.wordfilter.WordFilter;
+import com.yonge.cooleshow.biz.dal.wrapper.HomeworkWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
@@ -481,6 +482,11 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
 
     }
 
+    @Override
+    public List<HomeworkWrapper.GroupHomework> groupList(HomeworkWrapper.GroupHomeworkSearch query) {
+        return baseMapper.selectGroupHomeworkList(query);
+    }
+
     /**
      * 检查课程能否布置作业
      *

+ 64 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/HomeworkWrapper.java

@@ -0,0 +1,64 @@
+package com.yonge.cooleshow.biz.dal.wrapper;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.yonge.cooleshow.biz.dal.entity.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+public class HomeworkWrapper {
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("课程组作业")
+    public static class GroupHomework implements Serializable {
+        @ApiModelProperty("作业编号")
+        private Long homeworkId;
+
+        @ApiModelProperty("课程编号")
+        private Long courseId;
+
+        @ApiModelProperty("课次")
+        private Integer classNum;
+
+        @ApiModelProperty("作业内容")
+        private String content;
+
+        @ApiModelProperty("总人数")
+        private Integer studentNum;
+
+        @ApiModelProperty("提交人数")
+        private Integer completedNum;
+
+        @ApiModelProperty("点评数")
+        private Integer repliedNum;
+    }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("课程组作业")
+    public static class GroupHomeworkSearch implements Serializable {
+
+        @ApiModelProperty("作业内容/课程编号")
+        private String search;
+
+        @ApiModelProperty("课程组编号")
+        private Long courseGroupId;
+    }
+}

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

@@ -396,4 +396,19 @@
             </if>
         </where>
     </select>
+    <select id="selectGroupHomeworkList"
+            resultType="com.yonge.cooleshow.biz.dal.wrapper.HomeworkWrapper$GroupHomework">
+        select ch.id_ homeworkId,ch.course_schedule_id_ courseId,cs.class_num_ classNum,ch.content_ content,
+               ch.completed_num_ completedNum,cg.pre_student_num_ studentNum,
+               COUNT(CASE WHEN sch.id_ IS NULL OR sch.teacher_replied_ IS NULL THEN NULL ELSE 1 END) repliedNum
+        from course_homework ch
+                 left join course_schedule cs ON cs.id_ = ch.course_schedule_id_
+                 left join student_course_homework sch ON sch.course_homework_id_ = ch.id_
+                 left join course_group cg ON cg.id_ = ch.course_group_id_
+        WHERE ch.course_group_id_ = #{param.courseGroupId}
+        <if test="param.search != null and param.search != ''">
+            AND (ch.course_schedule_id_ = #{param.search} OR ch.content_ LIKE CONCAT('%',#{param.search},'%'))
+        </if>
+        GROUP BY ch.id_ ORDER BY cs.class_num_
+    </select>
 </mapper>