Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

Joburgess 5 yıl önce
ebeveyn
işleme
17b2a00161
36 değiştirilmiş dosya ile 440 ekleme ve 33 silme
  1. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  3. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  4. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkDao.java
  5. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java
  6. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java
  7. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java
  8. 69 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentCourseHomeworkDto.java
  9. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java
  11. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java
  12. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java
  13. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java
  14. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java
  15. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  16. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java
  17. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  18. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  19. 21 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  20. 22 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  21. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  22. 6 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java
  23. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  24. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  25. 3 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  26. 3 1
      mec-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml
  27. 12 9
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  28. 3 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  29. 16 0
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  30. 21 0
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  31. 9 1
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  32. 8 0
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  33. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  34. 33 1
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  35. 7 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java
  36. 9 0
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -577,4 +577,11 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return java.util.List<java.lang.Integer>
      */
     List<Integer> findClassGroupIdsByTeacher(@Param("search") String search);
+
+    /**
+     * 获取基础技能版数量
+     * @param musicGroupId
+     * @return
+     */
+    Integer countClassNumByType(String musicGroupId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -203,4 +203,11 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto>
      */
     List<VipGroupGiveCourseSortDto> findVipGroupSortCourseByGroup(@Param("groupId") String groupId);
+
+    /**
+     * 获取课程学员数量
+     * @param courseScheduleId
+     * @return
+     */
+    Integer countStudentNum(Integer courseScheduleId);
 }

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

@@ -191,4 +191,18 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      */
     List<Map<Long,Integer>> countCourseLeaveStudentNumWithFourHoursAgo(@Param("courseScheduleIds") List<Long> courseScheduleIds,
                                                                        @Param("hours") Integer hours);
+
+    /**
+     * 获取某节课所有学员签到记录
+     * @param params
+     * @return
+     */
+    List<StudentAttendance> findStudentAttendance(Map<String, Object> params);
+
+    /**
+     * COUNT某节课所有学员签到记录
+     * @param params
+     * @return
+     */
+    int countStudentAttendance(Map<String, Object> params);
 }

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkDao.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
+import java.util.Map;
 
 public interface StudentCourseHomeworkDao extends BaseDAO<Long, StudentCourseHomework> {
 
@@ -75,4 +76,18 @@ public interface StudentCourseHomeworkDao extends BaseDAO<Long, StudentCourseHom
      * @return
      */
     List<StudentCourseHomework> queryNotDoneHomeworkList();
+
+    /**
+     * count课程学员作业列表
+     * @param params
+     * @return
+     */
+    int countStudentCourseHomeworks(Map<String, Object> params);
+
+    /**
+     * 获取课程学员作业列表
+     * @param params
+     * @return
+     */
+    List<StudentCourseHomework> findStudentCourseHomeworks(Map<String, Object> params);
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.*;
 
+import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import org.apache.ibatis.annotations.Param;
@@ -212,4 +213,26 @@ public interface StudentManageDao {
      * @return
      */
     Long getHasCourse(Integer userId);
+
+    /**
+     * 获取签到学员数
+     * @param courseScheduleId
+     * @param status
+     * @return
+     */
+    Integer countStudentSignInNum(@Param("courseScheduleId") Integer courseScheduleId,@Param("status") String status);
+
+    /**
+     * 获取交了作业的学生数
+     * @param courseScheduleId
+     * @return
+     */
+    Integer countHomeworkNum(Integer courseScheduleId);
+
+    /**
+     * 获取已回复的数量
+     * @param courseScheduleId
+     * @return
+     */
+    Integer countRepliedNum(Integer courseScheduleId);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -6,7 +6,6 @@ import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -146,4 +145,6 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @return int
 	 */
 	int cleanCourseTeacherSignInfo(@Param("courseScheduleId") Long courseScheduleId);
+
+    TeacherAttendance getTeacherPersonalAttendance(Integer courseScheduleId);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 
+import java.util.Date;
+
 /**
  * @Author Joburgess
  * @Date 2019/12/27
@@ -20,6 +22,26 @@ public class CourseScheduleEndDto extends CourseSchedule {
 
     private int isCallNames;
 
+    private Date signInTime;
+
+    private Date signOutTime;
+
+    public Date getSignInTime() {
+        return signInTime;
+    }
+
+    public void setSignInTime(Date signInTime) {
+        this.signInTime = signInTime;
+    }
+
+    public Date getSignOutTime() {
+        return signOutTime;
+    }
+
+    public void setSignOutTime(Date signOutTime) {
+        this.signOutTime = signOutTime;
+    }
+
     public int getIsSignIn() {
         return isSignIn;
     }

+ 69 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentCourseHomeworkDto.java

@@ -0,0 +1,69 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+
+import java.util.Date;
+import java.util.List;
+
+public class StudentCourseHomeworkDto {
+    private String phone;
+
+    private String username;
+
+    private String url;
+
+    private Date createTime;
+
+    private Integer isReplied;
+
+    private Integer isView;
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getIsReplied() {
+        return isReplied;
+    }
+
+    public void setIsReplied(Integer isReplied) {
+        this.isReplied = isReplied;
+    }
+
+    public Integer getIsView() {
+        return isView;
+    }
+
+    public void setIsView(Integer isView) {
+        this.isView = isView;
+    }
+}

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

@@ -34,6 +34,14 @@ public class StudentAttendance {
 	/**  */
 	@ApiModelProperty(value = "学生编号",required = false)
 	private Integer userId;
+
+	/**  */
+	@ApiModelProperty(value = "学生姓名",required = false)
+	private String username;
+
+	/**  */
+	@ApiModelProperty(value = "学生手机号",required = false)
+	private String phone;
 	
 	/** 点名的教师 */
 	@ApiModelProperty(value = "点名的教师",required = false)
@@ -55,6 +63,22 @@ public class StudentAttendance {
 	@ApiModelProperty(value = "当前课时")
 	private Integer currentClassTimes;
 
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
 	public Date getUpdateTime() {
 		return updateTime;
 	}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java

@@ -20,6 +20,9 @@ public class StudentCourseHomework {
 	@ApiModelProperty(value = "用户名")
 	private String userName;
 
+	@ApiModelProperty(value = "手机号")
+	private String phone;
+
 	@ApiModelProperty(value = "头像")
 	private String avatar;
 	
@@ -62,6 +65,14 @@ public class StudentCourseHomework {
 	@ApiModelProperty(value = "是否已查看")
 	private YesOrNoEnum isView;
 
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
 	public Long getCourseScheduleId() {
 		return courseScheduleId;
 	}

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

@@ -65,8 +65,18 @@ public class TeacherAttendance {
 
 	private String signOutLongitudeLatitude;
 
+	private String schoolLongitudeLatitude;
+
 	private Integer update;
 
+	public String getSchoolLongitudeLatitude() {
+		return schoolLongitudeLatitude;
+	}
+
+	public void setSchoolLongitudeLatitude(String schoolLongitudeLatitude) {
+		this.schoolLongitudeLatitude = schoolLongitudeLatitude;
+	}
+
 	public Integer getUpdate() {
 		return update;
 	}

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

@@ -10,6 +10,8 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
+import javax.validation.constraints.Max;
+import java.util.List;
 import java.util.Map;
 
 public interface StudentAttendanceService extends BaseService<Long, StudentAttendance> {
@@ -71,4 +73,11 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 * @param statusEnum
 	 */
 	void addStudentAttendanceRecord(Integer courseScheduleId, Integer userId, StudentAttendanceStatusEnum statusEnum);
+
+	/**
+	 * 某节课所有学员签到状态
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<StudentAttendance> findStudentAttendance(QueryInfo queryInfo);
 }

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -30,7 +32,6 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
      * @author Joburgess
      * @date 2019/10/20
      * @param teacherId: 教师编号
-     * @param courseScheduelId: 课程计划编号
      * @param studentId: 学生编号
      * @return boolean
      */
@@ -42,4 +43,11 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
      * @return
      */
     void homeworkRemind();
+
+    /**
+     * 获取课程学员作业列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<StudentCourseHomework> findStudentCourseHomeworks(QueryInfo queryInfo);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -2,10 +2,12 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author Joburgess
@@ -137,4 +139,10 @@ public interface StudentManageService {
      */
     List<StudentHasCourseDto> queryHasCourseStudent(String organId);
 
+    /**
+     * 课表列表签到详情统计接口
+     * @param courseScheduleId
+     * @return
+     */
+    Map<String,Integer> sumStudentAttendance(Integer courseScheduleId);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java

@@ -89,4 +89,10 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 */
 	TeacherSignOutDto getTeacherSignDetail(Integer courseScheduleId, Integer userId);
 
+	/**
+	 * 获取单节课教师签到记录
+	 * @param courseScheduleId
+	 * @return
+	 */
+	TeacherAttendance getTeacherPersonalAttendance(Integer courseScheduleId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java

@@ -77,7 +77,7 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 		List<Mapper> list = courseHomeworkDao.queryTeacerNoReplyNum();
 
 		for (Mapper mapper : list) {
-			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			Map<Integer, String> receivers = new HashMap<>();
 			Integer userId = (Integer) mapper.getKey();
 			receivers.put(userId, userId + "");
 

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1434,7 +1434,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         Date now = new Date();
         //明天日期
-        Date tomorrow = DateUtil.addDays1(now, 1);
+//        Date tomorrow = DateUtil.addDays1(now, 1);
 
         //需要生成课程课酬的课程计划
         List<CourseSchedule> needCreateCourseScheduleTeacherSalaryCourse = new ArrayList<>();
@@ -2333,6 +2333,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                     TeacherAttendance teacherAttendance=courseTeacherAttendances.get(0);
                     result.setIsSignIn(Objects.isNull(teacherAttendance.getSignInStatus())?3:teacherAttendance.getSignInStatus().getCode());
                     result.setIsSignOut(Objects.isNull(teacherAttendance.getSignOutStatus())?3:teacherAttendance.getSignOutStatus().getCode());
+                    result.setSignInTime(teacherAttendance.getSignInTime());
+                    result.setSignOutTime(teacherAttendance.getSignOutTime());
                 }
                 Long studentNum = studentNumCourseMap.get(result.getId());
                 if (Objects.nonNull(studentNum)) {

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1025,8 +1025,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     public void pushMessage(String musicGroupId) throws IOException {
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
-            //3.0发送该消息
-            if (new Integer(3).equals(musicGroup.getChargeTypeId())) {
+            //是否有基础训练班
+            Integer num = classGroupDao.countClassNumByType(musicGroupId);
+            if(num != null && num > 0){
                 Map<Integer, String> studentMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findIdMapByMusicGroupId(musicGroupId, 2))), HashMap.class);
                 if (studentMap != null && studentMap.size() > 0) {
                     String baseURL = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);

+ 21 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -235,7 +235,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	@Override
 	public PageInfo<StudentPersonalAttendanceDto> getStudentPersonalAttendances(QueryInfo queryInfo) {
 		PageInfo<StudentPersonalAttendanceDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
+		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
 		List<StudentPersonalAttendanceDto> dataList = null;
@@ -444,4 +444,24 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			}
 		}
 	}
+
+	@Override
+	public PageInfo<StudentAttendance> findStudentAttendance(QueryInfo queryInfo) {
+		PageInfo<StudentAttendance> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<StudentAttendance> dataList = null;
+		int count = studentAttendanceDao.countStudentAttendance(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = studentAttendanceDao.findStudentAttendance(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 22 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -22,14 +22,12 @@ import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 @Service
 public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, StudentCourseHomework> implements StudentCourseHomeworkService {
@@ -136,4 +134,24 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 					.getMusicGroup().getName(), sch.getCourseHomework().getClassGroup().getName());
 		}
 	}
+
+	@Override
+	public PageInfo<StudentCourseHomework> findStudentCourseHomeworks(QueryInfo queryInfo) {
+		PageInfo<StudentCourseHomework> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<StudentCourseHomework> dataList = null;
+		int count = studentCourseHomeworkDao.countStudentCourseHomeworks(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = studentCourseHomeworkDao.findStudentCourseHomeworks(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -360,4 +360,15 @@ public class StudentManageServiceImpl implements StudentManageService {
     public List<StudentHasCourseDto> queryHasCourseStudent(String organId) {
         return studentManageDao.queryHasCourseStudent(organId);
     }
+
+    @Override
+    public Map<String, Integer> sumStudentAttendance(Integer courseScheduleId) {
+        Map<String, Integer> sum = new HashMap<>(5);
+        sum.put("studentNum",scheduleStudentPaymentDao.countStudentNum(courseScheduleId));
+        sum.put("signInNum",studentManageDao.countStudentSignInNum(courseScheduleId,"NORMAL"));
+        sum.put("leaveNum",studentManageDao.countStudentSignInNum(courseScheduleId,"LEAVE"));
+        sum.put("homeworkNum",studentManageDao.countHomeworkNum(courseScheduleId));
+        sum.put("repliedNum",studentManageDao.countRepliedNum(courseScheduleId));
+        return sum;
+    }
 }

+ 6 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java

@@ -105,14 +105,15 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 		sysUserCashAccountDao.update(cashAccount);
 
 		//推送余额消费信息
-		Map<Integer,String> map = new HashMap<>(1);
+		Map<Integer,String> phoneMap = new HashMap<>(1);
 		SysUser sysUser = sysUserFeignService.queryUserById(userId);
-		map.put(userId,sysUser.getPhone());
+		phoneMap.put(userId,sysUser.getPhone());
 		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_BALANCE_CONSUME,
-				map,null,0,null,"",decimal,balance);
-		map.put(userId,userId.toString());
+				phoneMap,null,0,null,"",decimal,balance);
+		Map<Integer,String> idMap = new HashMap<>(1);
+		idMap.put(userId,userId.toString());
 		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_BALANCE_CONSUME,
-				map,null,0,null,"",decimal,balance);
+				idMap,null,0,null,"",decimal,balance);
 		return true;
 	}
 

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -6,7 +6,10 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.SignStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
@@ -17,7 +20,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -403,4 +405,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		teacherSignDetail.setCourseHomeworkInfo(courseHomewok);
 		return teacherSignDetail;
 	}
+
+	@Override
+	public TeacherAttendance getTeacherPersonalAttendance(Integer courseScheduleId) {
+		return teacherAttendanceDao.getTeacherPersonalAttendance(courseScheduleId);
+	}
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -507,9 +507,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			map.put(vipGroup.getUserId(),vipGroup.getUserId().toString());
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_APPLY_RESULT,
 					map,null,0,"7","TEACHER",vipGroup.getName(),vipGroup.getAuditStatus().getMsg());
-			map.put(vipGroup.getUserId(),teacher.getPhone());
+			Map<Integer,String> map1 = new HashMap<>(1);
+			map1.put(vipGroup.getUserId(),teacher.getPhone());
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_APPLY_RESULT,
-					map,null,0,"7","",vipGroup.getName(),vipGroup.getAuditStatus().getMsg());
+					map1,null,0,"7","",vipGroup.getName(),vipGroup.getAuditStatus().getMsg());
 		}
 	}
 

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1006,6 +1006,9 @@
             LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
         WHERE su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
     </select>
+    <select id="countClassNumByType" resultType="java.lang.Integer">
+        SELECT COUNT(id_) FROM class_group WHERE type_ = 'HIGH' AND del_flag_ = '0'
+    </select>
 
 
 </mapper>

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -232,6 +232,8 @@
 	</select>
 	
 	<select id="queryTeacerNoReplyNum" resultMap="Mapper">
-		select cs.actual_teacher_id_ key_,count(1) value_ from student_course_homework sch left join course_schedule cs on sch.course_schedule_id_ = cs.id_ where (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND csh.is_replied_ = 0 group by cs.actual_teacher_id_
+		select cs.actual_teacher_id_ key_,count(1) value_ from student_course_homework sch
+		left join course_schedule cs on sch.course_schedule_id_ = cs.id_
+		where (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND csh.is_replied_ = 0 group by cs.actual_teacher_id_
 	</select>
 </mapper>

+ 12 - 9
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -830,7 +830,7 @@
     <sql id="queryStudentCourseScheduleRecordCondition">
         <where>
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-            AND sa.user_id_=#{userId}
+            AND cssp.user_id_=#{userId}
             AND cs.status_ != 'NOT_START'
             <if test="teachMode!=null and teachMode!=''">
                 AND cs.teach_mode_=#{teachMode}
@@ -838,8 +838,11 @@
             <if test="type!=null and type!=''">
                 AND cs.group_type_ = #{type}
             </if>
-            <if test="status!=null and status!=''">
-                AND sa.status_=#{status}
+            <if test="status != null and status != 'TRUANT'">
+                AND sa.status_ = #{status}
+            </if>
+            <if test="status != null and status = 'TRUANT'">
+                AND (sa.status_ = #{status} OR sa.status_ IS NULL)
             </if>
         </where>
     </sql>
@@ -847,7 +850,7 @@
     <select id="findStudentCourseScheduleRecords" resultMap="studentCourseScheduleRecord">
         SELECT
             sa.id_,
-            sa.status_,
+            IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_,
             sa.teacher_id_,
             su.username_,
             cs.id_ course_schedule_id_,
@@ -857,8 +860,8 @@
             CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
             cs.teacher_id_,
             cs.teach_mode_
-        FROM
-          student_attendance sa
+        FROM course_schedule_student_payment cssp
+            LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
             LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
             LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
         <include refid="queryStudentCourseScheduleRecordCondition"/>
@@ -867,9 +870,9 @@
     </select>
     <select id="countStudentCourseScheduleRecords" resultType="int">
         SELECT
-        count(*)
-        FROM
-        student_attendance sa
+        count(cssp.id_)
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
         LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
         LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
         <include refid="queryStudentCourseScheduleRecordCondition"/>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -283,6 +283,9 @@
 -- 		AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &gt; NOW()
 		AND cssp.settlement_time_ IS NULL
 	</select>
+	<select id="countStudentNum" resultType="java.lang.Integer">
+		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE course_schedule_id_ = #{courseScheduleId}
+	</select>
 
 	<delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -13,6 +13,8 @@
         <result column="class_group_id_" property="classGroupId"/>
         <result column="course_schedule_id_" property="courseScheduleId"/>
         <result column="user_id_" property="userId"/>
+        <result column="username_" property="username"/>
+        <result column="phone_" property="phone"/>
         <result column="teacher_id_" property="teacherId"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" property="createTime"/>
@@ -406,4 +408,18 @@
             </foreach>
             GROUP BY sa.course_schedule_id_
     </select>
+    <select id="findStudentAttendance" resultMap="StudentAttendance">
+        SELECT sa.*,su.username_,su.phone_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
+        LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+        WHERE cssp.course_schedule_id_ = #{search}
+        ORDER BY sa.id_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <select id="countStudentAttendance" resultType="java.lang.Integer">
+        SELECT COUNT(id_)
+        FROM course_schedule_student_payment
+        WHERE course_schedule_id_ = #{search}
+    </select>
 </mapper>

+ 21 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -10,6 +10,7 @@
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
         <result column="username_" property="userName"/>
+        <result column="phone_" property="phone"/>
         <result column="avatar_" property="avatar"/>
         <result column="course_homework_id_" property="courseHomeworkId"/>
         <result column="course_schedule_id_" property="courseScheduleId"/>
@@ -264,4 +265,24 @@
     <select id="queryNotDoneHomeworkList" resultMap="StudentCourseHomeworkFull">
 		SELECT sch.*,cg.name_ classGroupName,mg.name_ musicGroupName FROM student_course_homework sch left join course_homework ch on sch.course_homework_id_ = ch.id_ left join music_group mg on ch.music_group_id_ = mg.id_ left join class_group cg on ch.class_group_id_ = cg.id_ where sch.status_ = 0
 	</select>
+    <select id="countStudentCourseHomeworks" resultType="java.lang.Integer">
+        SELECT COUNT(id_) FROM course_schedule_student_payment WHERE course_schedule_id_ = #{search}
+    </select>
+    <resultMap id="StudentCourseHomeworkDtoMap" type="com.ym.mec.biz.dal.dto.StudentCourseHomeworkDto">
+        <result column="username_" property="username"/>
+        <result column="phone_" property="phone"/>
+        <result column="attachments_" property="url"/>
+        <result column="is_replied_" property="isReplied"/>
+        <result column="is_view_" property="isView"/>
+        <result column="create_time_" property="createTime"/>
+    </resultMap>
+    <select id="findStudentCourseHomeworks" resultMap="StudentCourseHomeworkDtoMap">
+        SELECT sch.attachments_,sch.is_replied_,sch.is_view_,sch.create_time_,su.username_,su.phone_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN student_course_homework sch ON sch.course_schedule_id_ = cssp.course_schedule_id_
+        LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+        WHERE cssp.course_schedule_id_ = #{search}
+        ORDER BY sch.id_ DESC
+        <include refid="global.limit"/>
+    </select>
 </mapper>

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -668,5 +668,13 @@
         LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
         WHERE cs.status_ != 'OVER' AND su.id_ = #{userId}
     </select>
-
+    <select id="countStudentSignInNum" resultType="java.lang.Integer">
+        SELECT COUNT(id_) FROM student_attendance WHERE course_schedule_id_ = #{courseScheduleId} AND status_ = #{status}
+    </select>
+    <select id="countHomeworkNum" resultType="java.lang.Integer">
+        SELECT COUNT(id_) FROM student_course_homework WHERE course_schedule_id_ = #{courseScheduleId}
+    </select>
+    <select id="countRepliedNum" resultType="java.lang.Integer">
+        SELECT COUNT(id_) FROM student_course_homework WHERE course_schedule_id_ = #{courseScheduleId} AND is_replied_ = 1
+    </select>
 </mapper>

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -22,6 +22,7 @@
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="sign_in_longitude_latitude_" property="signInLongitudeLatitude"/>
         <result column="sign_out_longitude_latitude_" property="signOutLongitudeLatitude"/>
+        <result column="longitude_latitude_" property="schoolLongitudeLatitude"/>
     </resultMap>
     
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -335,6 +336,13 @@
                 #{courseScheduleId}
             </foreach>
     </select>
+    <select id="getTeacherPersonalAttendance" resultMap="TeacherAttendance">
+        SELECT ta.sign_in_longitude_latitude_,ta.sign_out_longitude_latitude_,s.longitude_latitude_ FROM teacher_attendance ta
+        LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN school s ON cs.schoole_id_ = s.id_
+        WHERE ta.course_schedule_id_ = #{courseScheduleId}
+        LIMIT 1
+    </select>
 
     <update id="updateViPSignOutStatus" parameterType="string">
     	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now()

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -159,7 +159,7 @@
             1=1
             AND vg.audit_status_='PASS'
             <if test="search!=null and search!=''">
-                AND (vg.name_ LIKE CONCAT('%',#{search},'%') OR vg.id_=#{search})
+                AND (vg.name_ LIKE CONCAT('%',#{search},'%') OR vg.id_= #{search})
             </if>
             <if test="teacherId!=null">
                 AND vg.user_id_=#{teacherId}

+ 33 - 1
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -7,10 +7,12 @@ import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.biz.service.StudentCourseHomeworkService;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -18,7 +20,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -37,7 +38,10 @@ public class StudentManageController extends BaseController {
     @Autowired
     private MusicGroupStudentFeeService musicGroupStudentFeeService;
     @Autowired
+    private StudentCourseHomeworkService studentCourseHomeworkService;
+    @Autowired
     private EmployeeDao employeeDao;
+
     private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 
     @ApiOperation(value = "获取学生列表")
@@ -234,4 +238,32 @@ public class StudentManageController extends BaseController {
         }
         return succeed(musicGroupStudentFeeService.findByUser(studentId,musicGroupId));
     }
+
+    /**
+     * 获取课程学员作业列表
+     * @return
+     */
+    @GetMapping(value = "/findStudentCourseHomeworks")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentCourseHomeworks')")
+    public Object findStudentCourseHomeworks(QueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
+        return succeed(studentCourseHomeworkService.findStudentCourseHomeworks(queryInfo));
+    }
+
+    /**
+     * 获取课程学员作业列表
+     * @return
+     */
+    @GetMapping(value = "/sumStudentAttendance")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/sumStudentAttendance')")
+    public Object sumStudentAttendance(Integer courseScheduleId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
+        return succeed(studentManageService.sumStudentAttendance(courseScheduleId));
+    }
 }

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

@@ -25,4 +25,11 @@ public class TeacherAttendanceController extends BaseController {
     public Object getTeacherPersonalAttendances(TeacherCloseQueryInfo queryInfo){
         return succeed(teacherAttendanceService.getTeacherPersonalAttendances(queryInfo));
     }
+
+    @ApiOperation(value = "查询某节课教师签到记录")
+    @GetMapping("/getTeacherPersonalAttendance")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/getTeacherPersonalAttendance')")
+    public Object getTeacherPersonalAttendances(Integer courseScheduleId){
+        return succeed(teacherAttendanceService.getTeacherPersonalAttendance(courseScheduleId));
+    }
 }

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

@@ -4,9 +4,11 @@ import com.ym.mec.biz.dal.dto.StudentAttendanceDto;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("studentAttendance")
@@ -30,4 +32,11 @@ public class StudentAttendanceController extends BaseController {
         return succeed(studentAttendanceService.getStudentPersonalAttendances(queryInfo));
     }
 
+    @ApiOperation(value = "获取某节课学生签到列表")
+    @GetMapping("/findStudentAttendance")
+    @PreAuthorize("@pcs.hasPermissions('studentAttendance/findStudentAttendance')")
+    public Object findStudentAttendance(QueryInfo queryInfo){
+        return succeed(studentAttendanceService.findStudentAttendance(queryInfo));
+    }
+
 }