瀏覽代碼

课程详情签到

chengpeng 5 年之前
父節點
當前提交
222a20829c

+ 30 - 1
mec-education/src/main/java/com/ym/mec/education/controller/AttendClassController.java

@@ -3,6 +3,7 @@ package com.ym.mec.education.controller;
 import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.req.AttendClassReq;
+import com.ym.mec.education.req.HomeWorkReq;
 import com.ym.mec.education.service.IStudentAttendanceService;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
@@ -40,7 +41,7 @@ public class AttendClassController {
 
 
     /**
-     *
+     * 上课记录
      * @param req
      * @return
      */
@@ -49,4 +50,32 @@ public class AttendClassController {
 
         return  studentAttendanceService.attendRecordList(req);
     }
+
+
+    /**
+     * 点名记录
+     * @param req
+     * @return
+     */
+    @PostMapping(value = "/callStudent")
+    public PageResponse callStudent(@RequestBody HomeWorkReq req) {
+
+        return  studentAttendanceService.callStudent(req);
+    }
+
+
+    /**
+     * 签到
+     * @param req
+     * @return
+     */
+    @PostMapping(value = "/signInfo")
+    public BaseResponse signInfo(@RequestBody HomeWorkReq req) {
+
+
+        return studentAttendanceService.signInfo(req);
+    }
+
+
+
 }

+ 17 - 8
mec-education/src/main/java/com/ym/mec/education/entity/TeacherAttendance.java

@@ -37,11 +37,13 @@ public class TeacherAttendance extends Model<TeacherAttendance> {
      */
     @TableField("sign_in_time_")
     private Date signInTime;
+    @TableField("sign_out_time_")
+    private Date signOutTime;
     /**
      * 状态(正常签到,异常签到)
      */
-    @TableField("status_")
-    private Integer status;
+    @TableField("sign_in_status_" )
+    private Integer signInStatus;
     /**
      * 备注
      */
@@ -69,6 +71,14 @@ public class TeacherAttendance extends Model<TeacherAttendance> {
         return this;
     }
 
+    public Date getSignOutTime() {
+        return signOutTime;
+    }
+
+    public void setSignOutTime(Date signOutTime) {
+        this.signOutTime = signOutTime;
+    }
+
     public Integer getMusicGroupId() {
         return musicGroupId;
     }
@@ -105,13 +115,13 @@ public class TeacherAttendance extends Model<TeacherAttendance> {
         return this;
     }
 
-    public Integer getStatus() {
-        return status;
+
+    public Integer getSignInStatus() {
+        return signInStatus;
     }
 
-    public TeacherAttendance setStatus(Integer status) {
-        this.status = status;
-        return this;
+    public void setSignInStatus(Integer signInStatus) {
+        this.signInStatus = signInStatus;
     }
 
     public String getRemark() {
@@ -146,7 +156,6 @@ public class TeacherAttendance extends Model<TeacherAttendance> {
         ", classGroupId=" + classGroupId +
         ", courseScheduleId=" + courseScheduleId +
         ", signInTime=" + signInTime +
-        ", status=" + status +
         ", remark=" + remark +
         ", createTime=" + createTime +
         "}";

+ 24 - 0
mec-education/src/main/java/com/ym/mec/education/resp/CallStudentResp.java

@@ -0,0 +1,24 @@
+package com.ym.mec.education.resp;
+
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月29日 13:45
+ */
+@Data
+@ToString
+public class CallStudentResp implements Serializable {
+
+    private Integer userId;
+
+    private String name;
+
+    private String avatar;
+
+    private String status;
+}

+ 6 - 0
mec-education/src/main/java/com/ym/mec/education/resp/CourseInfoResp.java

@@ -42,4 +42,10 @@ public class CourseInfoResp implements Serializable {
     private String week;
 
     private String schoolName;
+
+    private Integer totalNum;
+
+    private Integer actualNum;
+
+    private Integer leaveNum;
 }

+ 25 - 0
mec-education/src/main/java/com/ym/mec/education/resp/SignInfoResp.java

@@ -0,0 +1,25 @@
+package com.ym.mec.education.resp;
+
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月29日 13:45
+ */
+@Data
+@ToString
+public class SignInfoResp implements Serializable {
+
+    private String signInTime;
+
+    private String signOutTime;
+
+    private List<String> attachments;
+
+    private String content;
+}

+ 16 - 0
mec-education/src/main/java/com/ym/mec/education/service/IStudentAttendanceService.java

@@ -1,11 +1,13 @@
 package com.ym.mec.education.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.StudentAttendance;
 import com.ym.mec.education.req.AttendClassReq;
 import com.ym.mec.education.req.ClassGroupReq;
 import com.ym.mec.education.req.CourseScheduleReq;
+import com.ym.mec.education.req.HomeWorkReq;
 
 /**
  * <p>
@@ -40,4 +42,18 @@ public interface IStudentAttendanceService extends IService<StudentAttendance> {
      * @return
      */
     PageResponse attendRecordList(AttendClassReq req);
+
+    /**
+     * 点名记录
+     * @param req
+     * @return
+     */
+    PageResponse callStudent(HomeWorkReq req);
+
+    /**
+     * 签退签到
+     * @param req
+     * @return
+     */
+    BaseResponse signInfo(HomeWorkReq req);
 }

+ 11 - 0
mec-education/src/main/java/com/ym/mec/education/service/impl/CourseScheduleServiceImpl.java

@@ -211,7 +211,18 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleMapper,
                     }
                 }
             }
+            QueryWrapper<StudentAttendance> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("course_schedule_id_",courseSchedule.getId());
+            List<StudentAttendance> attendanceList =  studentAttendanceService.list(queryWrapper);
+            if(!CollectionUtils.isEmpty(attendanceList)){
+                resp.setTotalNum(attendanceList.size());
 
+               List<StudentAttendance>  leaveList = attendanceList.stream().filter(e->StudentAttendanceStatusEnum.LEAVE.getCode().equals(e.getStatus())).collect(Collectors.toList());
+               if(!CollectionUtils.isEmpty(leaveList)){
+                   resp.setLeaveNum(leaveList.size());
+                   resp.setActualNum(attendanceList.size() - leaveList.size());
+               }
+            }
 
         }
         return BaseResponse.success(resp);

+ 79 - 3
mec-education/src/main/java/com/ym/mec/education/service/impl/StudentAttendanceServiceImpl.java

@@ -5,16 +5,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
+import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.*;
+import com.ym.mec.education.enums.ReturnCodeEnum;
 import com.ym.mec.education.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.education.mapper.StudentAttendanceMapper;
 import com.ym.mec.education.req.AttendClassReq;
 import com.ym.mec.education.req.ClassGroupReq;
 import com.ym.mec.education.req.CourseScheduleReq;
-import com.ym.mec.education.resp.AttendClassResp;
-import com.ym.mec.education.resp.StudentAttendanceResp;
-import com.ym.mec.education.resp.StudentAttendanceStatisticsResp;
+import com.ym.mec.education.req.HomeWorkReq;
+import com.ym.mec.education.resp.*;
 import com.ym.mec.education.service.*;
 import com.ym.mec.education.utils.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -23,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -51,6 +54,12 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
     @Autowired
     private IMusicGroupStudentFeeService musicGroupStudentFeeService;
 
+    @Autowired
+    private ITeacherAttendanceService teacherAttendanceService;
+
+    @Autowired
+    private ICourseHomeworkService courseHomeworkService;
+
     @Override
     public PageResponse getPage(ClassGroupReq classGroupReq) {
         if (Objects.isNull(classGroupReq.getGroupId())) {
@@ -243,4 +252,71 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
         return PageResponse.success(pageParam);
     }
 
+    @Override
+    public PageResponse callStudent(HomeWorkReq req) {
+        if(req == null || req.getCourseScheduleId() == null){
+            return  PageResponse.errorParam();
+        }
+        PageResponse response = new PageResponse();
+
+        IPage<StudentAttendance> page = new Page<>(req.getPageNo(),req.getPageSize());
+        IPage<StudentAttendance> studentAttendanceIPage = this.page(page,new QueryWrapper<StudentAttendance>().eq("course_schedule_id_",req.getCourseScheduleId()));
+
+        List<CallStudentResp> callStudentResps = new ArrayList<>();
+        List<StudentAttendance> studentAttendanceList = studentAttendanceIPage.getRecords();
+        if(!CollectionUtils.isEmpty(studentAttendanceList)){
+
+            studentAttendanceList.forEach(e->{
+                CallStudentResp callStudentResp = new CallStudentResp();
+                callStudentResp.setUserId(e.getUserId());
+                SysUser sysUser = userService.getById(e.getUserId());
+                if(sysUser != null ){
+                    callStudentResp.setName(sysUser.getRealName());
+                    callStudentResp.setAvatar(sysUser.getAvatar());
+                }
+                callStudentResp.setStatus(e.getStatus());
+                callStudentResps.add(callStudentResp);
+            });
+
+
+        }
+
+        response.setTotal(Math.toIntExact(page.getTotal()));
+        response.setSize(Math.toIntExact(page.getSize()));
+        response.setCurrent(Math.toIntExact(page.getCurrent()));
+        response.setRecords(callStudentResps);
+        response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
+        return response;
+    }
+
+    @Override
+    public BaseResponse signInfo(HomeWorkReq req) {
+
+        if(req == null || req.getCourseScheduleId() == null){
+            return  BaseResponse.errorParam();
+        }
+
+        SignInfoResp signInfoResp = new SignInfoResp();
+        QueryWrapper<TeacherAttendance> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("course_schedule_id_",req.getCourseScheduleId());
+        TeacherAttendance teacherAttendance = teacherAttendanceService.getOne(queryWrapper);
+        if(teacherAttendance != null){
+            signInfoResp.setSignInTime(DateUtil.date2String(teacherAttendance.getSignInTime(),DateUtil.DATE_FORMAT_DATE));
+            signInfoResp.setSignOutTime(DateUtil.date2String(teacherAttendance.getSignOutTime(),DateUtil.DATE_FORMAT_DATE));
+        }
+        QueryWrapper<CourseHomework> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("course_schedule_id_",req.getCourseScheduleId());
+        CourseHomework courseHomework = courseHomeworkService.getOne(queryWrapper1);
+        if(courseHomework != null){
+            signInfoResp.setContent(courseHomework.getContent());
+            if(courseHomework.getAttachments()!= null){
+                String[] str = courseHomework.getAttachments().split(",");
+                signInfoResp.setAttachments(Arrays.asList(str));
+            }
+
+        }
+
+        return BaseResponse.success(signInfoResp);
+    }
+
 }

+ 2 - 2
mec-education/src/main/java/com/ym/mec/education/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -74,9 +74,9 @@ public class StudentCourseHomeworkServiceImpl extends ServiceImpl<StudentCourseH
         }
         IPage ipage = new Page(req.getPageNo() == null ? 1: req.getPageNo(),req.getPageSize() == null ? 10:req.getPageSize());
         QueryWrapper<StudentCourseHomework> queryWrapper = new QueryWrapper<>();
-      /*  if(userIds != null && !userIds.isEmpty()){
+      if(userIds != null && !userIds.isEmpty()){
             queryWrapper.in("user_id_",userIds);
-        }*/
+        }
         queryWrapper.eq("course_schedule_id_",req.getCourseScheduleId());
         IPage<StudentCourseHomework> homeworkIPage =  this.page(ipage,queryWrapper);
 

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherAttendanceServiceImpl.java

@@ -57,7 +57,7 @@ public class TeacherAttendanceServiceImpl extends ServiceImpl<TeacherAttendanceM
         if (!CollectionUtils.isEmpty(page.getRecords())) {
             page.getRecords().forEach(item -> {
                 TeacherAttendanceResp teacherAttendanceResp = new TeacherAttendanceResp();
-                teacherAttendanceResp.setTeacherAttendanceStatus(SignStatusEnum.getMsgByCode(item.getStatus()));
+                teacherAttendanceResp.setTeacherAttendanceStatus(SignStatusEnum.getMsgByCode(item.getSignInStatus()));
                 CourseSchedule courseSchedule = courseScheduleService.getById(item.getCourseScheduleId());
                 if (Objects.nonNull(courseSchedule)) {
                     if (Objects.nonNull(courseSchedule.getClassDate())) {

+ 1 - 0
mec-education/src/main/java/com/ym/mec/education/utils/DateUtil.java

@@ -23,6 +23,7 @@ public class DateUtil {
     public static final String DATE_FORMAT_HOUR = "MM-dd HH:mm";
     public static final String DATE_FORMAT_MIN = "yyyy年MM月dd日 HH:mm";
     public static final String DATE_FORMAT_EXTRA = "yyyy/MM/dd";
+    public static final String DATE_FORMAT_DATE = "yyyy-MM-dd HH:mm:ss";
     private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>();
 
     public static DateFormat getDateFormat(String dateFormat) {

+ 4 - 3
mec-education/src/main/resources/mapper/TeacherAttendanceMapper.xml

@@ -10,6 +10,7 @@
         <result column="class_group_id_" property="classGroupId"/>
         <result column="course_schedule_id_" property="courseScheduleId"/>
         <result column="sign_in_time_" property="signInTime"/>
+        <result column="sign_out_time_" property="signOutTime"/>
         <result column="status_" property="status"/>
         <result column="remark_" property="remark"/>
         <result column="create_time_" property="createTime"/>
@@ -17,13 +18,13 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id_, teacher_id_, music_group_id_, class_group_id_, course_schedule_id_, sign_in_time_, status_, remark_, create_time_
+        id_, teacher_id_, music_group_id_, class_group_id_, course_schedule_id_, sign_in_time_, sign_in_status_, remark_, create_time_,sign_out_time_
     </sql>
     <sql id="Column_List">
         teacher_attendance.id_, teacher_attendance.teacher_id_, teacher_attendance.music_group_id_,
         teacher_attendance.class_group_id_, teacher_attendance.course_schedule_id_,
-        teacher_attendance.sign_in_time_, teacher_attendance.status_,
-        teacher_attendance.remark_, teacher_attendance.create_time_
+        teacher_attendance.sign_in_time_, teacher_attendance.sign_in_status_,
+        teacher_attendance.remark_, teacher_attendance.create_time_,teacher_attendance.sign_out_time_
     </sql>
 
     <!--上课记录-->