Browse Source

上课签到

Joburgess 5 years ago
parent
commit
2a2d203ddc
20 changed files with 505 additions and 47 deletions
  1. 2 0
      .gitignore
  2. 41 0
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  3. 12 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentAttendanceController.java
  4. 5 12
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java
  5. 19 1
      mec-web/src/main/java/com/ym/mec/web/dal/dao/CourseScheduleDao.java
  6. 8 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentAttendanceDao.java
  7. 1 1
      mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherAttendance.java
  8. 3 1
      mec-web/src/main/java/com/ym/mec/web/dal/enums/StudentAttendanceStatusEnum.java
  9. 2 1
      mec-web/src/main/java/com/ym/mec/web/dal/enums/YesOrNoEnum.java
  10. 89 0
      mec-web/src/main/java/com/ym/mec/web/dal/utilEntity/StudentAttendanceViewUtilEntity.java
  11. 111 0
      mec-web/src/main/java/com/ym/mec/web/dal/utilEntity/TeacherAttendanceViewUtilEntity.java
  12. 18 0
      mec-web/src/main/java/com/ym/mec/web/service/CourseScheduleService.java
  13. 9 0
      mec-web/src/main/java/com/ym/mec/web/service/StudentAttendanceService.java
  14. 7 0
      mec-web/src/main/java/com/ym/mec/web/service/TeacherAttendanceService.java
  15. 14 1
      mec-web/src/main/java/com/ym/mec/web/service/impl/CourseScheduleServiceImpl.java
  16. 7 1
      mec-web/src/main/java/com/ym/mec/web/service/impl/StudentAttendanceServiceImpl.java
  17. 30 4
      mec-web/src/main/java/com/ym/mec/web/service/impl/TeacherAttendanceServiceImpl.java
  18. 62 0
      mec-web/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  19. 8 0
      mec-web/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  20. 57 25
      mec-web/src/test/java/com/ym/webApplicationTest.java

+ 2 - 0
.gitignore

@@ -8,3 +8,5 @@ target
 bin
 bin
 /manage-center/src/main/resources/config/properties/generatorConfig.xml
 /manage-center/src/main/resources/config/properties/generatorConfig.xml
 /p2p-utils/.gitignore
 /p2p-utils/.gitignore
+/.idea
+*.iml

+ 41 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -0,0 +1,41 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.service.CourseScheduleService;
+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.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/10
+ */
+@RequestMapping("courseSchedule")
+@Api(tags = "课程计划服务")
+@RestController
+public class CourseScheduleController extends BaseController {
+
+    @Autowired
+    private CourseScheduleService scheduleService;
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @ApiOperation(value = "查询正在或即将开始的课程")
+    @GetMapping("/getCurrentCourseDetail")
+    public Object getCurrentCourseDetail(){
+        return succeed(scheduleService.getCurrentCourseDetail(1));
+    }
+
+    @ApiOperation(value = "根据班级ID获取当前课程的学生")
+    @GetMapping("/getCurrentCourseStudents/{classID}")
+    public Object getCurrentCourseStudents(@ApiParam(value = "学校编号", required = true) @PathVariable("classID") Long classID){
+        return succeed(scheduleService.getCurrentCourseStudents(classID));
+    }
+
+}

+ 12 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentAttendanceController.java

@@ -3,7 +3,9 @@ package com.ym.mec.web.controller;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.web.dal.entity.CourseGroup;
 import com.ym.mec.web.dal.entity.CourseGroup;
+import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.service.CourseGroupService;
 import com.ym.mec.web.service.CourseGroupService;
+import com.ym.mec.web.service.StudentAttendanceService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiParam;
@@ -11,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @RequestMapping("studentAttendance")
 @RequestMapping("studentAttendance")
 @Api(tags = "学生考勤服务")
 @Api(tags = "学生考勤服务")
@@ -19,6 +22,8 @@ public class StudentAttendanceController extends BaseController {
 
 
     @Autowired
     @Autowired
     private CourseGroupService courseGroupService;
     private CourseGroupService courseGroupService;
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
 
 
     @ApiOperation(value = "新增课程组")
     @ApiOperation(value = "新增课程组")
     @PostMapping("/add")
     @PostMapping("/add")
@@ -56,4 +61,11 @@ public class StudentAttendanceController extends BaseController {
     public Object queryPage(@RequestBody QueryInfo queryInfo){
     public Object queryPage(@RequestBody QueryInfo queryInfo){
         return succeed(courseGroupService.queryPage(queryInfo));
         return succeed(courseGroupService.queryPage(queryInfo));
     }
     }
+
+    @ApiOperation(value = "批量插入学生上课签到信息")
+    @PostMapping("/addStudentAttendances")
+    public Object addStudentAttendances(@RequestBody List<StudentAttendance> studentAttendances){
+        studentAttendanceService.addStudentAttendances(studentAttendances);
+        return succeed();
+    }
 }
 }

+ 5 - 12
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -1,20 +1,16 @@
 package com.ym.mec.web.controller;
 package com.ym.mec.web.controller;
 
 
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.security.SecurityUtils;
-import com.ym.mec.web.dal.entity.Teacher;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
 import com.ym.mec.web.dal.page.TeacherAttendanceQueryInfo;
 import com.ym.mec.web.dal.page.TeacherAttendanceQueryInfo;
-import com.ym.mec.web.dal.page.TeacherQueryInfo;
-import com.ym.mec.web.service.ClassGroupService;
 import com.ym.mec.web.service.TeacherAttendanceService;
 import com.ym.mec.web.service.TeacherAttendanceService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
+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;
 
 
 @RequestMapping("teacherAttendance")
 @RequestMapping("teacherAttendance")
 @Api(tags = "教师签到服务")
 @Api(tags = "教师签到服务")
@@ -27,10 +23,7 @@ public class TeacherAttendanceController extends BaseController {
     @ApiOperation(value = "新增教师签到")
     @ApiOperation(value = "新增教师签到")
     @PostMapping("/add")
     @PostMapping("/add")
     public Object add(@RequestBody TeacherAttendance teacherAttendance) {
     public Object add(@RequestBody TeacherAttendance teacherAttendance) {
-        Date date = new Date();
-        teacherAttendance.setSignInTime(date);
-        teacherAttendance.setCreateTime(date);
-        teacherAttendanceService.insert(teacherAttendance);
+        teacherAttendanceService.addTeacherAttendanceRecord(teacherAttendance);
         return succeed();
         return succeed();
     }
     }
 
 

+ 19 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/CourseScheduleDao.java

@@ -2,8 +2,26 @@ package com.ym.mec.web.dal.dao;
 
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.dal.entity.CourseSchedule;
+import com.ym.mec.web.dal.utilEntity.StudentAttendanceViewUtilEntity;
+import com.ym.mec.web.dal.utilEntity.TeacherAttendanceViewUtilEntity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
-	
+    /**
+     * 根据教师ID获取当前课程信息
+     * @param teacherID
+     * @return
+     */
+    TeacherAttendanceViewUtilEntity getCurrentCourseDetail(@Param("teacherID") Integer teacherID);
+
+    /**
+     * 根据班级ID获取该班级学生
+     * @param classID
+     * @return
+     */
+    List<StudentAttendanceViewUtilEntity> getCurrentCourseStudents(@Param("classID") Long classID);
+
 }
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentAttendanceDao.java

@@ -3,7 +3,15 @@ package com.ym.mec.web.dal.dao;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 
 
+import java.util.List;
+
 public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
 public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
 
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/11
+     * 批量插入学生上课签到情况
+     */
+    int addStudentAttendances(List<StudentAttendance> studentAttendances);
 	
 	
 }
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherAttendance.java

@@ -37,7 +37,7 @@ public class TeacherAttendance {
 	private java.util.Date signInTime;
 	private java.util.Date signInTime;
 	
 	
 	/** 状态(正常签到,异常签到) */
 	/** 状态(正常签到,异常签到) */
-	@ApiModelProperty(value = "状态(1正常签到,0异常签到) ",required = false)
+	@ApiModelProperty(value = "状态(1正常签到,0异常签到,2正常签退) ",required = false)
 	private YesOrNoEnum status;
 	private YesOrNoEnum status;
 	
 	
 	/** 备注 */
 	/** 备注 */

+ 3 - 1
mec-web/src/main/java/com/ym/mec/web/dal/enums/StudentAttendanceStatusEnum.java

@@ -8,7 +8,9 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum StudentAttendanceStatusEnum implements BaseEnum<String,StudentAttendanceStatusEnum> {
 public enum StudentAttendanceStatusEnum implements BaseEnum<String,StudentAttendanceStatusEnum> {
     NORMAL("NORMAL","正常"),
     NORMAL("NORMAL","正常"),
     TRUANT("TRUANT","旷课"),
     TRUANT("TRUANT","旷课"),
-    LEAVE("LEAVE","请假");
+    LEAVE("LEAVE","请假"),
+    QUIT_SCHOOL("QUIT_SCHOOL","休学"),
+    DROP_OUT("DROP_OUT","退学");
 
 
     private String code;
     private String code;
 
 

+ 2 - 1
mec-web/src/main/java/com/ym/mec/web/dal/enums/YesOrNoEnum.java

@@ -4,7 +4,8 @@ import com.ym.mec.common.enums.BaseEnum;
 
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     YES(1,"是"),
     YES(1,"是"),
-    NO(0,"否");
+    NO(0,"否"),
+    YES_QUIT(2,"正常签退");
 
 
     private Integer code;
     private Integer code;
     private String msg;
     private String msg;

+ 89 - 0
mec-web/src/main/java/com/ym/mec/web/dal/utilEntity/StudentAttendanceViewUtilEntity.java

@@ -0,0 +1,89 @@
+package com.ym.mec.web.dal.utilEntity;
+
+import com.ym.mec.web.dal.enums.StudentAttendanceStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/11
+ * 上课点名响应
+ */
+public class StudentAttendanceViewUtilEntity {
+
+    @ApiModelProperty(value = "乐团ID",required = false)
+    private Long musicGroupId;
+
+    @ApiModelProperty(value = "科目ID",required = false)
+    private Long subjectId;
+
+    @ApiModelProperty(value = "班级ID",required = false)
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "学生ID",required = false)
+    private Long studentId;
+
+    @ApiModelProperty(value = "科目名称",required = false)
+    private String subjectName;
+
+    @ApiModelProperty(value = "学生姓名",required = false)
+    private String userName;
+
+    @ApiModelProperty(value = "学生在学状态",required = false)
+    private StudentAttendanceStatusEnum status;
+
+    public StudentAttendanceStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(StudentAttendanceStatusEnum status) {
+        this.status = status;
+    }
+
+    public Long getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Long musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Long getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Long subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Long getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Long classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public Long getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+}

+ 111 - 0
mec-web/src/main/java/com/ym/mec/web/dal/utilEntity/TeacherAttendanceViewUtilEntity.java

@@ -0,0 +1,111 @@
+package com.ym.mec.web.dal.utilEntity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/10
+ */
+public class TeacherAttendanceViewUtilEntity {
+
+    @ApiModelProperty(value = "课程计划ID",required = false)
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "上课日期",required = false)
+    private java.util.Date classDate;
+
+    @ApiModelProperty(value = "上课时间",required = false)
+    private java.util.Date startClassTime;
+
+    @ApiModelProperty(value = "结束时间",required = false)
+    private java.util.Date endClassTime;
+
+    @ApiModelProperty(value = "班级ID",required = false)
+    private Long classId;
+
+    @ApiModelProperty(value = "班级名称",required = false)
+    private String className;
+
+    @ApiModelProperty(value = "班级类型",required = false)
+    private String classType;
+
+    @ApiModelProperty(value = "乐团ID",required = false)
+    private Long musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称",required = false)
+    private String musicGroupName;
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public Date getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(Date classDate) {
+        this.classDate = classDate;
+    }
+
+    public Date getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(Date startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public Date getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(Date endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+
+    public Long getClassId() {
+        return classId;
+    }
+
+    public void setClassId(Long classId) {
+        this.classId = classId;
+    }
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+
+    public String getClassType() {
+        return classType;
+    }
+
+    public void setClassType(String classType) {
+        this.classType = classType;
+    }
+
+    public Long getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Long musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+}

+ 18 - 0
mec-web/src/main/java/com/ym/mec/web/service/CourseScheduleService.java

@@ -2,7 +2,25 @@ package com.ym.mec.web.service;
 
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.dal.entity.CourseSchedule;
+import com.ym.mec.web.dal.utilEntity.StudentAttendanceViewUtilEntity;
+import com.ym.mec.web.dal.utilEntity.TeacherAttendanceViewUtilEntity;
+
+import java.util.List;
 
 
 public interface CourseScheduleService extends BaseService<Long, CourseSchedule> {
 public interface CourseScheduleService extends BaseService<Long, CourseSchedule> {
 
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/10
+     * 根据教师ID获取当前课程的信息
+     */
+    TeacherAttendanceViewUtilEntity getCurrentCourseDetail(Integer teacherId);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/11
+     * 根据班级ID获取当前课程的学生
+     */
+    List<StudentAttendanceViewUtilEntity> getCurrentCourseStudents(Long classID);
+
 }
 }

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/service/StudentAttendanceService.java

@@ -3,6 +3,15 @@ package com.ym.mec.web.service;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 
 
+import java.util.List;
+
 public interface StudentAttendanceService extends BaseService<Long, StudentAttendance> {
 public interface StudentAttendanceService extends BaseService<Long, StudentAttendance> {
 
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/11
+     * 批量插入学生上课签到信息
+     */
+    void addStudentAttendances(List<StudentAttendance> studentAttendances);
+
 }
 }

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/service/TeacherAttendanceService.java

@@ -5,4 +5,11 @@ import com.ym.mec.web.dal.entity.TeacherAttendance;
 
 
 public interface TeacherAttendanceService extends BaseService<Long, TeacherAttendance> {
 public interface TeacherAttendanceService extends BaseService<Long, TeacherAttendance> {
 
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/10
+     * 添加教师签到记录
+     */
+    void addTeacherAttendanceRecord(TeacherAttendance teacherAttendance);
+
 }
 }

+ 14 - 1
mec-web/src/main/java/com/ym/mec/web/service/impl/CourseScheduleServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.service.impl;
 package com.ym.mec.web.service.impl;
 
 
+import com.ym.mec.web.dal.utilEntity.StudentAttendanceViewUtilEntity;
+import com.ym.mec.web.dal.utilEntity.TeacherAttendanceViewUtilEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -9,6 +11,8 @@ import com.ym.mec.web.dal.dao.CourseScheduleDao;
 import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.service.CourseScheduleService;
 import com.ym.mec.web.service.CourseScheduleService;
 
 
+import java.util.List;
+
 @Service
 @Service
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule>  implements CourseScheduleService {
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule>  implements CourseScheduleService {
 	
 	
@@ -19,5 +23,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	public BaseDAO<Long, CourseSchedule> getDAO() {
 	public BaseDAO<Long, CourseSchedule> getDAO() {
 		return courseScheduleDao;
 		return courseScheduleDao;
 	}
 	}
-	
+
+	@Override
+	public TeacherAttendanceViewUtilEntity getCurrentCourseDetail(Integer teacherId) {
+		return courseScheduleDao.getCurrentCourseDetail(teacherId);
+	}
+
+	@Override
+	public List<StudentAttendanceViewUtilEntity> getCurrentCourseStudents(Long classID) {
+		return courseScheduleDao.getCurrentCourseStudents(classID);
+	}
 }
 }

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/service/impl/StudentAttendanceServiceImpl.java

@@ -9,6 +9,8 @@ import com.ym.mec.web.dal.dao.StudentAttendanceDao;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import com.ym.mec.web.service.StudentAttendanceService;
 import com.ym.mec.web.service.StudentAttendanceService;
 
 
+import java.util.List;
+
 @Service
 @Service
 public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentAttendance>  implements StudentAttendanceService {
 public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentAttendance>  implements StudentAttendanceService {
 	
 	
@@ -19,5 +21,9 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	public BaseDAO<Long, StudentAttendance> getDAO() {
 	public BaseDAO<Long, StudentAttendance> getDAO() {
 		return studentAttendanceDao;
 		return studentAttendanceDao;
 	}
 	}
-	
+
+	@Override
+	public void addStudentAttendances(List<StudentAttendance> studentAttendances) {
+		studentAttendanceDao.addStudentAttendances(studentAttendances);
+	}
 }
 }

+ 30 - 4
mec-web/src/main/java/com/ym/mec/web/service/impl/TeacherAttendanceServiceImpl.java

@@ -1,23 +1,49 @@
 package com.ym.mec.web.service.impl;
 package com.ym.mec.web.service.impl;
 
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.web.dal.dao.CourseScheduleDao;
 import com.ym.mec.web.dal.dao.TeacherAttendanceDao;
 import com.ym.mec.web.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
 import com.ym.mec.web.service.TeacherAttendanceService;
 import com.ym.mec.web.service.TeacherAttendanceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 
 @Service
 @Service
 public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherAttendance>  implements TeacherAttendanceService {
 public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherAttendance>  implements TeacherAttendanceService {
 	
 	
 	@Autowired
 	@Autowired
 	private TeacherAttendanceDao teacherAttendanceDao;
 	private TeacherAttendanceDao teacherAttendanceDao;
+	@Autowired
+	private CourseScheduleDao courseScheduleDao;
 
 
 	@Override
 	@Override
 	public BaseDAO<Long, TeacherAttendance> getDAO() {
 	public BaseDAO<Long, TeacherAttendance> getDAO() {
 		return teacherAttendanceDao;
 		return teacherAttendanceDao;
 	}
 	}
-	
+
+	@Override
+	public void addTeacherAttendanceRecord(TeacherAttendance teacherAttendance) {
+		CourseSchedule courseSchedule = courseScheduleDao.get(teacherAttendance.getCourseScheduleId());
+		StringBuilder startClassDateTimeString=new StringBuilder(new SimpleDateFormat("yyyy-MM-dd").format(courseSchedule.getClassDate()));
+		startClassDateTimeString.append(" ");
+		startClassDateTimeString.append(new SimpleDateFormat("HH:mm:dd").format(courseSchedule.getStartClassTime()));
+		Date startClassTime = null;
+		try {
+			startClassTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd")
+					.parse(startClassDateTimeString.toString());
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		Date date = new Date();
+		Long temp=(date.getTime()-startClassTime.getTime())/1000/60;
+		teacherAttendance.setSignInTime(date);
+		teacherAttendance.setCreateTime(date);
+		teacherAttendanceDao.insert(teacherAttendance);
+	}
 }
 }

+ 62 - 0
mec-web/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -93,4 +93,66 @@
     <select id="queryCount" resultType="int">
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM course_schedule
 		SELECT COUNT(*) FROM course_schedule
 	</select>
 	</select>
+
+    <resultMap type="com.ym.mec.web.dal.utilEntity.TeacherAttendanceViewUtilEntity" id="TeacherAttendanceViewUtilEntity">
+        <result property="courseScheduleId" column="id_"/>
+        <result property="classDate" column="class_date_"/>
+        <result property="startClassTime" column="start_class_time_"/>
+        <result property="endClassTime" column="end_class_time_"/>
+        <result property="classId" column="class_id"/>
+        <result property="className" column="class_name"/>
+        <result property="classType" column="class_type"/>
+        <result property="musicGroupId" column="music_group_id"/>
+        <result property="musicGroupName" column="music_group_name"/>
+    </resultMap>
+
+    <select id="getCurrentCourseDetail"
+            resultMap="TeacherAttendanceViewUtilEntity">
+        SELECT
+            cs.id_ ,
+            cs.class_date_,
+            cs.start_class_time_,
+            cs.end_class_time_,
+            cg.id_ class_id,
+            cg.name_ class_name,
+            cg.type_ class_type,
+            mg.id_ music_group_id,
+            mg.name_ music_group_name
+        FROM
+            course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+        WHERE
+            DATE_FORMAT( class_date_, "%Y%m%d" ) = DATE_FORMAT( NOW(), "%Y%m%d" )
+            AND cs.teacher_id_= #{teacherID}
+        ORDER BY cs.start_class_time_ LIMIT 1
+    </select>
+
+    <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.web.dal.utilEntity.StudentAttendanceViewUtilEntity">
+        <result property="classGroupId" column="class_group_id_"/>
+        <result property="studentId" column="student_id_"/>
+        <result property="userName" column="username_"/>
+        <result property="musicGroupId" column="music_group_id_"/>
+        <result property="subjectId" column="subject_id_"/>
+        <result property="subjectName" column="subject_name_"/>
+        <result property="status" column="status_"/>
+    </resultMap>
+
+    <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
+        SELECT
+            cgsm.class_group_id_,
+            su.id_ student_id_,
+            su.username_,
+            mg.id_ music_group_id_,
+            s.id_ subject_id_,
+            s.name_ subject_name_,
+            cgsm.status_
+        FROM
+            class_group cg
+        LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
+        LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+        LEFT JOIN `subject` s ON cg.subject_id_=s.id_
+        WHERE cgsm.class_group_id_=#{classID}
+    </select>
 </mapper>
 </mapper>

+ 8 - 0
mec-web/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -42,6 +42,14 @@
         VALUES(#{id},#{musicGroupId},#{subjectId},#{classGroupId},#{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{createTime},#{remark})
         VALUES(#{id},#{musicGroupId},#{subjectId},#{classGroupId},#{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{createTime},#{remark})
     </insert>
     </insert>
 
 
+    <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
+      INSERT INTO student_attendance ( music_group_id_, subject_id_, class_group_id_, course_schedule_id_, user_id_, teacher_id_, status_, create_time_, remark_ )
+      VALUES
+	  <foreach collection="list" item="studentAttendance" separator=",">
+          (#{studentAttendance.musicGroupId},#{studentAttendance.subjectId},#{studentAttendance.classGroupId},#{studentAttendance.courseScheduleId},#{studentAttendance.userId},#{studentAttendance.teacherId},#{studentAttendance.status},now(),#{studentAttendance.remark})
+      </foreach>
+    </insert>
+
     <!-- 根据主键查询一条记录 -->
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.web.dal.entity.StudentAttendance">
     <update id="update" parameterType="com.ym.mec.web.dal.entity.StudentAttendance">
         UPDATE student_attendance
         UPDATE student_attendance

+ 57 - 25
mec-web/src/test/java/com/ym/webApplicationTest.java

@@ -1,38 +1,70 @@
 package com.ym;
 package com.ym;
 
 
-import junit.framework.Test;
+import com.ym.mec.common.security.SecurityUtils;
+import com.ym.mec.web.WebApplication;
+import com.ym.mec.web.dal.dao.StudentAttendanceDao;
+import com.ym.mec.web.dal.entity.StudentAttendance;
+import com.ym.mec.web.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.web.service.CourseScheduleService;
 import junit.framework.TestCase;
 import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.*;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
 
 
 /**
 /**
  * Unit test for simple App.
  * Unit test for simple App.
  */
  */
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = WebApplication.class)
 public class webApplicationTest
 public class webApplicationTest
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public webApplicationTest(String testName )
-    {
-        super( testName );
-    }
+    extends TestCase{
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private CourseScheduleService css;
+
+    @Autowired
+    private StudentAttendanceDao sad;
 
 
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( webApplicationTest.class );
+    @Test
+    public void test(){
+
+        String url = "http://auth-server/queryUserInfo";
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization", "bearer " + SecurityUtils.getAuthentication());
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+        HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<MultiValueMap<String, String>>(null, headers);
+        ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
+
+        System.out.println("---------"+resp);
     }
     }
 
 
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
+    @Test
+    public void test1(){
+        List<StudentAttendance> sas=new ArrayList<>();
+        StudentAttendance sa=new StudentAttendance();
+        sa.setClassGroupId(1);
+        sa.setCourseScheduleId(1L);
+        sa.setMusicGroupId(1);
+        sa.setRemark("test");
+        sa.setStatus(StudentAttendanceStatusEnum.LEAVE);
+        sa.setTeacherId(1);
+        sa.setUserId(1);
+        sas.add(sa);
+        sad.addStudentAttendances(sas);
     }
     }
+
 }
 }