ソースを参照

1、提交作业添加限制;
2、服务指标;
3、怎加课外训练待布置学员列表

Joburgess 5 年 前
コミット
f9a7a36d82

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
@@ -23,4 +24,17 @@ public interface ExtracurricularExercisesDao extends BaseDAO<Long, Extracurricul
                              @Param("studentIdList") String studentIdList,
                              @Param("content") String content);
 
+    /**
+     * @describe 获取教师在指定时间后未服务的学员
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param teacherId:
+     * @param startDate:
+     * @param search:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> findNoExercisesStudentsInThisWeekWithTeacher(@Param("teacherId") Integer teacherId,
+                                                                     @Param("startDate") String startDate,
+                                                                     @Param("search") String search);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentExtracurricularExercisesSituation.java

@@ -50,6 +50,16 @@ public class StudentExtracurricularExercisesSituation {
 
 	private Date lastSubmitTime;
 
+	private String serveType;
+
+	public String getServeType() {
+		return serveType;
+	}
+
+	public void setServeType(String serveType) {
+		this.serveType = serveType;
+	}
+
 	public Date getLastSubmitTime() {
 		return lastSubmitTime;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.common.service.BaseService;
@@ -27,4 +28,13 @@ public interface ExtracurricularExercisesService extends BaseService<Long, Extra
      */
     List<Map<String, Object>> findExtraExercilses(ExtraExercilseQueryInfo queryInfo);
 
+    /**
+     * @describe 获取待布置学员列表
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param search:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> getDontServeStudents(Integer teacherId, String search);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.Teacher;
@@ -24,6 +25,8 @@ import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.time.DayOfWeek;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -155,4 +158,11 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 		}
 		return result;
 	}
+
+	@Override
+	public List<SimpleUserDto> getDontServeStudents(Integer teacherId, String search) {
+		LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
+		LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+		return extracurricularExercisesDao.findNoExercisesStudentsInThisWeekWithTeacher(teacherId, monDayDate.toString(), search);
+	}
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -110,6 +110,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             studentExtracurricularExercisesSituation.setSunday(DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"));
 
             if(haveClassStudentIds.contains(serviceStudent.getUserId())){
+                studentExtracurricularExercisesSituation.setServeType("HOMEWORK");
                 List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(serviceStudent.getUserId());
                 if(CollectionUtils.isEmpty(studentHomeworks)){
                     studentExtracurricularExercisesSituation.setActualExercisesNum(0);
@@ -147,6 +148,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             }
 
             if(noClassStudentIds.contains(serviceStudent.getUserId())){
+                studentExtracurricularExercisesSituation.setServeType("EXERCISE");
                 List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(serviceStudent.getUserId());
                 if(CollectionUtils.isEmpty(studentExercises)){
                     studentExtracurricularExercisesSituation.setActualExercisesNum(0);

+ 25 - 0
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -160,4 +160,29 @@
 			AND content_ = #{content}
 		ORDER BY create_time_ DESC LIMIT 1
 	</select>
+    <select id="findNoExercisesStudentsInThisWeekWithTeacher"
+            resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
+		SELECT
+			su.id_ userId,
+			su.username_ userName,
+			su.avatar_ avatar,
+			GROUP_CONCAT(sub.name_) subjectNames
+		FROM
+			student_extracurricular_exercises_situation_ sees
+			LEFT JOIN extracurricular_exercises_reply eer ON sees.student_id_ = eer.user_id_
+			AND DATE_FORMAT( eer.create_time_, '%Y-%m-%d' ) &gt;= #{startDate}
+			LEFT JOIN student stu ON stu.user_id_ = sees.student_id_
+			LEFT JOIN sys_user su ON su.id_ = sees.student_id_
+			LEFT JOIN `subject` sub ON FIND_IN_SET( sub.id_, stu.subject_id_list_ )
+		WHERE
+			sees.monday_ = #{startDate}
+			AND sees.teacher_id_ = #{teacherId}
+			AND eer.id_ IS NULL
+			<if test="search!=null">
+				AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT(#{search}, '%'))
+			</if>
+		GROUP BY su.id_
+		ORDER BY
+			su.id_;
+	</select>
 </mapper>

+ 8 - 4
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -21,6 +21,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="last_submit_time_" property="lastSubmitTime"/>
+		<result column="serve_type_" property="serveType"/>
 	</resultMap>
 
 	<resultMap id="StudentExercisesSituationDto" type="com.ym.mec.biz.dal.dto.StudentExercisesSituationDto" extends="StudentExtracurricularExercisesSituation">
@@ -47,15 +48,15 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
-		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime})
+		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
+		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
+		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
 		VALUES
 		<foreach collection="situations" item="situation" separator=",">
-			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime})
+			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType})
 		</foreach>
 	</insert>
 
@@ -102,6 +103,9 @@
 			<if test="lastSubmitTime!=null">
 				last_submit_time_=#{lastSubmitTime}
 			</if>
+			<if test="serveType!=null">
+				serve_type_=#{serveType}
+			</if>
 			update_time_ = #{updateTime}
 		</set> WHERE id_ = #{id}
 	</update>

+ 10 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

@@ -66,4 +66,14 @@ public class ExtracurricularExercisesController extends BaseController {
         }
         return succeed(extracurricularExercisesReplyService.findStudentExtraExerciseDetail(studentExerciseId));
     }
+
+    @ApiOperation(value = "获取待布置学员列表")
+    @GetMapping("/getDontServeStudents")
+    public HttpResponseResult getDontServeStudents(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        return succeed(extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search));
+    }
 }