浏览代码

feat:教师端点名优化

Joburgess 4 年之前
父节点
当前提交
78cdb3daae

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

@@ -90,6 +90,16 @@ public class StudentAttendance {
 	@ApiModelProperty(value = "缴费状态")
 	private String paymentStatus = "PAID_COMPLETED";
 
+	private int normalRemind;
+
+	public int getNormalRemind() {
+		return normalRemind;
+	}
+
+	public void setNormalRemind(int normalRemind) {
+		this.normalRemind = normalRemind;
+	}
+
 	public String getTeacherAvatar() {
 		return teacherAvatar;
 	}

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

@@ -160,6 +160,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
             }
         }
 
+        int remindNum = studentAttendanceDao.countNormalRemindNum(courseScheduleId);
         studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
         int classTimes = courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue(), courseSchedule.getStartClassTime());
         studentAttendances.forEach(studentAttendance -> {
@@ -194,6 +195,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
                     studentAttendanceInfo.setSignInTime(courseSchedule.getStartClassTime());
                     studentAttendanceInfo.setSignOutTime(courseSchedule.getEndClassTime());
                 }
+                studentAttendanceInfo.setNormalRemind(remindNum>0?1:0);
                 studentAttendanceDao.insert(studentAttendanceInfo);
             } else {
                 studentFeeDao.updateStudentAbsenteeismTimes(studentAttendanceInfo.getUserId(),

+ 12 - 4
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -26,6 +26,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="remark_" property="remark"/>
+        <result column="normal_remind_" property="normalRemind"/>
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="current_schedule_id_" property="currentScheduleId"/>
@@ -57,15 +58,15 @@
             keyColumn="id" keyProperty="id">
         INSERT INTO student_attendance
         (group_type_,music_group_id_,class_group_id_,course_schedule_id_,user_id_,teacher_id_,status_,create_time_,
-        update_time_,remark_,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_)
+        update_time_,remark_,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_,normal_remind_)
         VALUES(#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{classGroupId},
         #{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),
-        #{remark},#{currentClassTimes},#{signInTime},#{signOutTime},#{currentScheduleId},#{visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        #{remark},#{currentClassTimes},#{signInTime},#{signOutTime},#{currentScheduleId},#{visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{normalRemind})
     </insert>
 
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
       INSERT INTO student_attendance (group_type_, music_group_id_, class_group_id_, course_schedule_id_,
-      user_id_, teacher_id_, status_, create_time_,update_time_, remark_ ,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_)
+      user_id_, teacher_id_, status_, create_time_,update_time_, remark_ ,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_,normal_remind_)
       VALUES
 	  <foreach collection="list" item="studentAttendance" separator=",">
           (#{studentAttendance.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -73,7 +74,8 @@
           #{studentAttendance.userId},#{studentAttendance.teacherId},
           #{studentAttendance.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),#{studentAttendance.updateTime},
           #{studentAttendance.remark},#{studentAttendance.currentClassTimes},
-          #{studentAttendance.signInTime},#{studentAttendance.signOutTime},#{studentAttendance.currentScheduleId},#{studentAttendance.visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+          #{studentAttendance.signInTime},#{studentAttendance.signOutTime},#{studentAttendance.currentScheduleId},#{studentAttendance.visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+          #{studentAttendance.normalRemind})
       </foreach>
     </insert>
 
@@ -120,6 +122,9 @@
             <if test="currentClassTimes != null">
                 current_class_times_ = #{currentClassTimes},
             </if>
+            <if test="normalRemind != null">
+                normal_remind_ = #{normalRemind},
+            </if>
             update_time_ = NOW()
         </set>
         WHERE id_ = #{id}
@@ -165,6 +170,9 @@
 	            <if test="item.currentClassTimes != null">
 	                current_class_times_ = #{item.currentClassTimes},
 	            </if>
+                <if test="item.normalRemind != null">
+                    normal_remind_ = #{item.normalRemind},
+                </if>
                 update_time_=NOW()
         	</set>
 	        where id_ = #{item.id}

+ 7 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherAttendanceController.java

@@ -79,11 +79,16 @@ public class TeacherAttendanceController extends BaseController {
     @ApiOperation(value = "学员到课提醒")
     @PostMapping("/studentAttendanceNormalRemind")
     public HttpResponseResult studentAttendanceNormalRemind(Long courseId){
+        int remindNum = studentAttendanceDao.countNormalRemindNum(courseId);
+        if(remindNum>0){
+            return succeed();
+        }
         //获取正常签到的学生信息
         List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseId(courseId);
         if(CollectionUtils.isEmpty(studentAttendances)){
             return succeed();
         }
+
         List<StudentAttendance> normal = studentAttendances.stream().filter(studentAttendance -> studentAttendance.getStatus() == StudentAttendanceStatusEnum.NORMAL).collect(Collectors.toList());
         if (normal != null && normal.size() > 0) {
             Map<Integer, String> receivers = new HashMap<>();
@@ -92,6 +97,8 @@ public class TeacherAttendanceController extends BaseController {
             });
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE,
                     receivers, null, 0, "2", "STUDENT", DateUtil.format(new Date(), DateUtil.DATE_FORMAT_MIN));
+        }else{
+            return failed("还未有学生到课");
         }
         studentAttendanceDao.updateNormalRemind(courseId);
         return succeed();