Explorar o código

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge %!s(int64=5) %!d(string=hai) anos
pai
achega
e59b684457
Modificáronse 25 ficheiros con 487 adicións e 80 borrados
  1. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  2. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java
  3. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java
  4. 166 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendancesDto.java
  5. 0 22
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherPersonalAttendanceDto.java
  6. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCloseQueryInfo.java
  7. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  8. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  9. 9 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  10. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java
  11. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java
  12. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  13. 6 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  14. 24 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  15. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  16. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  17. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  18. 14 6
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  19. 25 2
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  20. 75 3
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  21. 2 0
      mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java
  22. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesReplyController.java
  23. 17 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java
  24. 5 1
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java
  25. 36 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

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

@@ -80,4 +80,19 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      * @return java.util.List<com.ym.mec.biz.dal.dto.StudentServeDto>
      */
     List<StudentServeDto> getBeServiceStudents(@Param("monday") String monday);
+
+    /**
+     * @describe 更新指定学员的服务指标或运营指标
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param studentId: 学生编号
+     * @param serviceTag: 服务指标
+     * @param operatingTag: 运营指标
+     * @return int
+     */
+    int updateStudentServiceOrOperatingTag(@Param("studentId") Integer studentId,
+                                           @Param("studentIds") List<Integer> studentIds,
+                                           @Param("serviceTag") Integer serviceTag,
+                                           @Param("operatingTag") Integer operatingTag);
+
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -29,6 +29,15 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
      */
     int deleteByMonday(@Param("monday") String monday);
 
+    /**
+     * @describe 删除指定学员的服务指标
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param studentId: 学员编号
+     * @return int
+     */
+    int deleteByStudent(@Param("studentId") Integer studentId);
+
     List<StudentExercisesSituationDto> findExercisesSituations(Map<String, Object> params);
     int countExercisesSituations(Map<String, Object> params);
 

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
+import com.ym.mec.biz.dal.dto.TeacherAttendancesDto;
 import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
@@ -22,6 +23,13 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
      */
     List<TeacherPersonalAttendanceDto> getTeacherPersonalAttendances(Map<String,Object> params);
 
+    /**
+     * 获取教师签到列表
+     * @param params
+     * @return
+     */
+    List<TeacherAttendancesDto> queryTeacherAttendances(Map<String,Object> params);
+
     int batchInsert(@Param("teacherAttendances") List<TeacherAttendance> teacherAttendances);
 
     int batchDeleteByCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
@@ -37,6 +45,13 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
     int getTeacherPersonalAttendancesCount(Map<String,Object> params);
 
     /**
+     * 获取教师签到列表
+     * @param params
+     * @return
+     */
+    int countTeacherAttendances(Map<String,Object> params);
+
+    /**
      * @Author: Joburgess
      * @Date: 2019/9/24
      * 统计课次

+ 166 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendancesDto.java

@@ -0,0 +1,166 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class TeacherAttendancesDto {
+
+    @ApiModelProperty(value = "老师名",required = false)
+	private String teacherName;
+
+    @ApiModelProperty(value = "教师编号",required = false)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程编号",required = false)
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "课程名",required = false)
+    private String courseScheduleName;
+
+    @ApiModelProperty(value = "课程状态",required = false)
+    private CourseStatusEnum courseScheduleStatus;
+
+    @ApiModelProperty(value = "上课日期",required = false)
+    private String classDate;
+
+    @ApiModelProperty(value = "上课时间",required = false)
+    private String startClassTime;
+
+    @ApiModelProperty(value = "结束时间",required = false)
+    private String endClassTime;
+
+    @ApiModelProperty(value = "课程类型",required = false)
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+
+    @ApiModelProperty(value = "签到状态(1正常签到,0异常签到) ",required = false)
+    private Integer signInStatus;
+
+    /** 状态(正常签到,异常签到) */
+    @ApiModelProperty(value = "签退状态(1正常签到,0异常签到) ",required = false)
+    private Integer signOutStatus;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注",required = false)
+    private String remark;
+
+    @ApiModelProperty(value = "签到时间",required = false)
+    private Date signInTime;
+
+    @ApiModelProperty(value = "签退时间",required = false)
+    private Date signOutTime;
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getCourseScheduleName() {
+        return courseScheduleName;
+    }
+
+    public void setCourseScheduleName(String courseScheduleName) {
+        this.courseScheduleName = courseScheduleName;
+    }
+
+    public CourseStatusEnum getCourseScheduleStatus() {
+        return courseScheduleStatus;
+    }
+
+    public void setCourseScheduleStatus(CourseStatusEnum courseScheduleStatus) {
+        this.courseScheduleStatus = courseScheduleStatus;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public String getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(String endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+
+    public CourseSchedule.CourseScheduleType getCourseScheduleType() {
+        return courseScheduleType;
+    }
+
+    public void setCourseScheduleType(CourseSchedule.CourseScheduleType courseScheduleType) {
+        this.courseScheduleType = courseScheduleType;
+    }
+
+    public Integer getSignInStatus() {
+        return signInStatus;
+    }
+
+    public void setSignInStatus(Integer signInStatus) {
+        this.signInStatus = signInStatus;
+    }
+
+    public Integer getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(Integer signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    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;
+    }
+}

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

@@ -3,8 +3,6 @@ package com.ym.mec.biz.dal.dto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.Date;
-
 /**
  * @Author Joburgess
  * @Date 2019/9/16
@@ -33,10 +31,6 @@ public class TeacherPersonalAttendanceDto {
     @ApiModelProperty(value = "班级名称",required = false)
     private String name;
 
-    private Date signInTime;
-
-    private Date signOutTime;
-
     /** 状态(正常签到,异常签到) */
     @ApiModelProperty(value = "签到状态(1正常签到,0异常签到) ",required = false)
     private Integer signInStatus;
@@ -49,22 +43,6 @@ public class TeacherPersonalAttendanceDto {
     @ApiModelProperty(value = "备注",required = false)
     private String remark;
 
-    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 Integer getSignInStatus() {
         return signInStatus;
     }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCloseQueryInfo.java

@@ -25,6 +25,28 @@ public class TeacherCloseQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "签到状态")
     private String signInStatus;
 
+    @ApiModelProperty(value = "签退状态")
+    private String signOutStatus;
+
+    @ApiModelProperty(value = "分部")
+    private String organId;
+
+    public String getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(String signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
     public String getSignInStatus() {
         return signInStatus;
     }

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

@@ -187,6 +187,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String HOLIDAY_SETTING = "holiday_setting";
 
+    String PRACTICE_FREE_APPLY_EXPIRE_DATE = "practice_free_apply_expire_date";
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

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

@@ -44,6 +44,12 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	PageInfo getTeacherPersonalAttendances(TeacherCloseQueryInfo queryInfo);
 
 	/**
+	 * 获取教师个人的签到记录
+	 * @return
+	 */
+	PageInfo queryTeacherAttendances(TeacherCloseQueryInfo queryInfo);
+
+	/**
 	 * 推送未签退消息提醒
 	 * @return
 	 */

+ 9 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -24,6 +24,7 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,29 +36,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.ClassGroupRelationDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.CoursesGroupDao;
-import com.ym.mec.biz.dal.dao.GroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dao.PracticeGroupDao;
-import com.ym.mec.biz.dal.dao.SchoolDao;
-import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
 import com.ym.mec.biz.dal.dto.ClassGroupImGroupDto;
 import com.ym.mec.biz.dal.dto.ClassGroupTeacherMapDto;
@@ -216,6 +194,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private StudentDao studentDao;
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -2077,6 +2057,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if(courseScheduleStudentPaymentList.size() > 0) {
             courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
         }
+
+        if(!CollectionUtils.isEmpty(studentList)){
+            List<Integer> studentIds = studentList.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
+            studentDao.updateStudentServiceOrOperatingTag(null, studentIds, YesOrNoEnum.YES.getCode(), null);
+        }
+
         return classGroup;
     }
 

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java

@@ -605,6 +605,8 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             e.printStackTrace();
         }
 
+        studentDao.updateStudentServiceOrOperatingTag(practiceGroup.getStudentId(),null,YesOrNoEnum.YES.getCode(),null);
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         imGroupMemberList.add(new ImGroupMember(practiceGroup.getUserId().toString()));
         imGroupMemberList.add(new ImGroupMember(practiceGroup.getStudentId().toString()));
@@ -1143,6 +1145,8 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             e.printStackTrace();
         }
 
+        studentDao.updateStudentServiceOrOperatingTag(practiceGroupBuyParams.getStudentId(),null,YesOrNoEnum.YES.getCode(),null);
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         if(Objects.nonNull(practiceGroupBuyParams.getEducationalTeacherId())){
             imGroupMemberList.add(new ImGroupMember(practiceGroupBuyParams.getEducationalTeacherId().toString()));

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

@@ -282,6 +282,8 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
             e.printStackTrace();
         }
 
+        studentDao.updateStudentServiceOrOperatingTag(onlineMusicGroupCourseInfo.getStudentId(),null,YesOrNoEnum.YES.getCode(),null);
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         if(Objects.nonNull(musicGroup.getEducationalTeacherId())){
             imGroupMemberList.add(new ImGroupMember(musicGroup.getEducationalTeacherId().toString()));

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

@@ -233,6 +233,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Override
     public Map<String, Object> checkCanApplyFreePracticeGroup(Integer userId) {
         Map<String,Object> result=new HashMap<>();
+        SysConfig practiceFreeApplyExpireDateConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_FREE_APPLY_EXPIRE_DATE);
+        result.put("practiceFreeApplyExpireDate", practiceFreeApplyExpireDateConfig.getParanValue());
         return result;
     }
 
@@ -754,6 +756,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         SysConfig practiceApplyEndTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_END_TIME);
         SysConfig practiceApplyIntervalTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_INTERVAL_TIME);
         SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
+        SysConfig practiceFreeApplyExpireDateConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_FREE_APPLY_EXPIRE_DATE);
         Student student = studentDao.get(userId);
         List<Subject> subjects = subjectDao.findBySubjectByIdList(practiceSubjectIdListConfig.getParanValue());
         List<Integer> subjectIds = Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).stream().mapToInt(idStr -> Integer.valueOf(idStr)).boxed().collect(Collectors.toList());
@@ -772,6 +775,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         result.put("userDefaultSubjectIds", StringUtils.join(userDefaultSubjectIds.toArray(), ","));
         result.put("practiceApplyIntervalMinutes", practiceApplyIntervalTimeConfig.getParanValue(Integer.class));
         result.put("practiceCourseMinutes", practiceCourseMinutesConfig.getParanValue(Integer.class));
+        result.put("practiceFreeApplyExpireDate", practiceFreeApplyExpireDateConfig.getParanValue());
         return result;
     }
 
@@ -3273,6 +3277,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             e.printStackTrace();
         }
 
+        studentDao.updateStudentServiceOrOperatingTag(practiceGroup.getStudentId(),null,YesOrNoEnum.YES.getCode(),null);
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
             imGroupMemberList.add(new ImGroupMember(practiceGroup.getEducationalTeacherId().toString()));

+ 6 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,18 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentManageDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
@@ -85,6 +74,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     private SysUserCashAccountDao sysUserCashAccountDao;
     @Autowired
     private StudentDao studentDao;
+    @Autowired
+    private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 
     @Override
     public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
@@ -434,6 +425,9 @@ public class StudentManageServiceImpl implements StudentManageService {
         student.setServiceTag(sysUser.getServiceTag());
         student.setTeacherId(sysUser.getTeacherId());
         studentService.upSet(student);
+        if(new Integer(1).equals(student.getServiceTag())){
+            studentExtracurricularExercisesSituationDao.deleteByStudent(sysUser.getId());
+        }
         return userId;
     }
 

+ 24 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -45,11 +46,9 @@ public class StudentServeServiceImpl implements StudentServeService {
     public void exercisesSituationStatistics(String monday) {
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
 
-        if(nowDate.getDayOfWeek()== DayOfWeek.MONDAY){
-            int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-1).toString());
-            if(lastWeekTodayUpdateNum<=0){
-                nowDate = nowDate.plusDays(-1);
-            }
+        int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-nowDate.getDayOfWeek().getValue()).toString());
+        if(lastWeekTodayUpdateNum<=0){
+            nowDate = nowDate.plusDays(-nowDate.getDayOfWeek().getValue());
         }
 
         if(StringUtils.isNotBlank(monday)){
@@ -122,9 +121,11 @@ public class StudentServeServiceImpl implements StudentServeService {
                 }else{
                     studentExtracurricularExercisesSituation.setActualExercisesNum(1);
                     long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
-                    Date lastSubmitTime = studentHomeworks.stream().max(Comparator.comparing(StudentServeCourseHomeworkDto::getSubmitTime)).get().getSubmitTime();
-                    studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
                     studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
+                    if(replyNum>0){
+                        Date lastSubmitTime = studentHomeworks.stream().max(Comparator.comparing(StudentServeCourseHomeworkDto::getSubmitTime)).get().getSubmitTime();
+                        studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
+                    }
                     int exercisesMessageNum=0;
                     int exercisesMessageTimelyNum=0;
                     for (StudentServeCourseHomeworkDto studentHomework : studentHomeworks) {
@@ -157,9 +158,11 @@ public class StudentServeServiceImpl implements StudentServeService {
                 }
                 studentExtracurricularExercisesSituation.setActualExercisesNum(1);
                 long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
-                Date lastSubmitTime = studentExercises.stream().max(Comparator.comparing(ExtracurricularExercisesReply::getSubmitTime)).get().getSubmitTime();
-                studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
                 studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
+                if(replyNum>0){
+                    Date lastSubmitTime = studentExercises.stream().max(Comparator.comparing(ExtracurricularExercisesReply::getSubmitTime)).get().getSubmitTime();
+                    studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
+                }
                 int exercisesMessageNum=0;
                 int exercisesMessageTimelyNum=0;
                 for (ExtracurricularExercisesReply studentHomework : studentExercises) {
@@ -179,5 +182,17 @@ public class StudentServeServiceImpl implements StudentServeService {
                 results.add(studentExtracurricularExercisesSituation);
             }
         }
+
+        studentExtracurricularExercisesSituationDao.deleteByMonday(monDayDate.toString());
+
+        BigDecimal currentPage=BigDecimal.ONE,
+                pageSize=new BigDecimal(10000),
+                total=new BigDecimal(results.size()),
+                totalPage=total.divide(pageSize, BigDecimal.ROUND_UP);
+        while (currentPage.compareTo(totalPage)<=0){
+            List<StudentExtracurricularExercisesSituation> rows=results.stream().skip(pageSize.multiply(currentPage.subtract(BigDecimal.ONE)).longValue()).limit(pageSize.longValue()).collect(Collectors.toList());
+            studentExtracurricularExercisesSituationDao.batchInsert(rows);
+            currentPage=currentPage.add(BigDecimal.ONE);
+        }
     }
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -416,6 +416,26 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	}
 
 	@Override
+	public PageInfo queryTeacherAttendances(TeacherCloseQueryInfo queryInfo) {
+		PageInfo<TeacherAttendancesDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<TeacherAttendancesDto> dataList = null;
+		int count = teacherAttendanceDao.countTeacherAttendances(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = teacherAttendanceDao.queryTeacherAttendances(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
 	public boolean pushNoSignOutMessage() {
 
 		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));;

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -128,6 +128,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private GroupDao groupDao;
 	@Autowired
 	private TeacherCourseRewardService teacherCourseRewardService;
+	@Autowired
+	private StudentDao studentDao;
 
 	private static final Logger LOGGER = LoggerFactory
 			.getLogger(VipGroup.class);
@@ -1138,6 +1140,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				e.printStackTrace();
 			}
 			imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
+			studentDao.updateStudentServiceOrOperatingTag(classGroupStudent.getUserId(), null, YesOrNoEnum.YES.getCode(),null);
 		}
 
 		try {
@@ -2708,6 +2711,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),null);
 
+		studentDao.updateStudentServiceOrOperatingTag(null, studentIds, YesOrNoEnum.YES.getCode(),null);
+
 		try {
 			ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
 			// 创建群组

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

@@ -353,7 +353,7 @@
         SELECT
             sch.*,
             DATE_FORMAT(sch.create_time_, '%Y-%m-%d') homework_create_time_,
-            cs.class_date_
+            cs.class_date_ course_start_time_
         FROM
             student_course_homework sch
             LEFT JOIN course_schedule cs ON sch.course_schedule_id_ = cs.id_

+ 14 - 6
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -20,6 +20,7 @@
 		<result column="exercises_message_timely_num_" property="exercisesMessageTimelyNum" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="last_submit_time_" property="lastSubmitTime"/>
 	</resultMap>
 
 	<resultMap id="StudentExercisesSituationDto" type="com.ym.mec.biz.dal.dto.StudentExercisesSituationDto" extends="StudentExtracurricularExercisesSituation">
@@ -46,15 +47,15 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_)
-		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW())
+		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
+		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_)
+		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
 		VALUES
 		<foreach collection="situations" item="situation" separator=",">
-			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW())
+			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime})
 		</foreach>
 	</insert>
 
@@ -98,6 +99,9 @@
 			<if test="sunday != null">
 				sunday_ = #{sunday},
 			</if>
+			<if test="lastSubmitTime!=null">
+				last_submit_time_=#{lastSubmitTime}
+			</if>
 			update_time_ = #{updateTime}
 		</set> WHERE id_ = #{id}
 	</update>
@@ -109,8 +113,11 @@
 	<delete id="deleteByMonday">
 		DELETE FROM student_extracurricular_exercises_situation_ WHERE monday_ = #{monday}
 	</delete>
+    <delete id="deleteByStudent">
+		DELETE FROM student_extracurricular_exercises_situation_ WHERE student_id_ = #{studentId}
+	</delete>
 
-	<!-- 分页查询 -->
+    <!-- 分页查询 -->
 	<select id="queryPage" resultMap="StudentExtracurricularExercisesSituation" parameterType="map">
 		SELECT * FROM student_extracurricular_exercises_situation_ ORDER BY id_ <include refid="global.limit"/>
 	</select>
@@ -131,7 +138,8 @@
 			SUM( actual_exercises_num_ ) actual_exercises_num_,
 			SUM( exercises_reply_num_ ) exercises_reply_num_,
 			SUM( exercises_message_num_ ) exercises_message_num_,
-			SUM( exercises_message_timely_num_ ) exercises_message_timely_num_
+			SUM( exercises_message_timely_num_ ) exercises_message_timely_num_,
+			MAX(last_submit_time_) last_submit_time_
 		FROM
 			student_extracurricular_exercises_situation_ sees
 			LEFT JOIN sys_user stu ON stu.id_=sees.student_id_

+ 25 - 2
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -167,6 +167,28 @@
             WHERE user_id_ = #{item.userId}
         </foreach>
     </update>
+    <update id="updateStudentServiceOrOperatingTag">
+        UPDATE student
+        <set>
+            <if test="serviceTag != null">
+                service_tag_ = #{serviceTag},
+            </if>
+            <if test="operatingTag != null">
+                operating_tag_ = #{operatingTag},
+            </if>
+                update_time_ = NOW()
+        </set>
+        WHERE
+        <if test="studentId!=null">
+            user_id_ = #{studentId}
+        </if>
+        <if test="studentIds!=null and studentIds.size()>0">
+            user_id_ IN
+            <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+                #{studentId}
+            </foreach>
+        </if>
+    </update>
 
     <resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating">
         <result column="organ_name_" property="organName"/>
@@ -336,7 +358,8 @@
     </resultMap>
     <select id="getBeServiceStudents" resultMap="StudentServeDto">
         SELECT
-            s.*,
+            s.user_id_,
+	        s.teacher_id_,
             MIN( CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) ) course_start_time_
         FROM
             student s
@@ -347,6 +370,6 @@
         WHERE
             s.service_tag_ = 1
         GROUP BY
-            s.user_id_
+            s.user_id_,s.teacher_id_
     </select>
 </mapper>

+ 75 - 3
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -159,8 +159,6 @@
         <result column="class_date_" property="classDate"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="name_" property="name"/>
-        <result column="sign_in_time_" property="signInTime"/>
-        <result column="sign_out_time_" property="signOutTime"/>
         <result column="sign_in_status_" property="signInStatus"/>
         <result column="sign_out_status_" property="signOutStatus"/>
         <result column="remark_" property="remark"/>
@@ -168,6 +166,23 @@
         <result column="end_class_time_" property="endClassTime"/>
     </resultMap>
 
+    <resultMap id="TeacherAttendancesDto" type="com.ym.mec.biz.dal.dto.TeacherAttendancesDto">
+        <result column="class_date_" property="classDate"/>
+        <result column="start_class_time_" property="startClassTime"/>
+        <result column="end_class_time_" property="endClassTime"/>
+        <result column="course_schedule_type_" property="courseScheduleType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="course_schedule_status_" property="courseScheduleStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="course_schedule_name_" property="courseScheduleName"/>
+        <result column="teacher_name_" property="teacherName"/>
+        <result column="teacher_id_" property="teacherId"/>
+        <result column="sign_in_status_" property="signInStatus"/>
+        <result column="sign_out_status_" property="signOutStatus"/>
+        <result column="sign_in_time_" property="signInTime"/>
+        <result column="sign_out_time_" property="signOutTime"/>
+        <result column="remark_" property="remark"/>
+        <result column="course_schedule_id_" property="courseScheduleId"/>
+    </resultMap>
+
     <sql id="queryCondition">
         <where>
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
@@ -200,10 +215,42 @@
             </if>
         </where>
     </sql>
+    <sql id="queryTeacherAttendancesCondition">
+        <where>
+            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.actual_teacher_id_ = ta.teacher_id_
+            <if test="search != null and search != ''">
+                AND (su.id_ = #{search} OR su.real_name_ LIKE CONCAT('%',#{search},'%') OR cs.id_ = #{search} OR cs.name_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="courseStartDate != null">
+                AND cs.class_date_ &gt;= #{courseStartDate}
+            </if>
+            <if test="courseEndDate != null">
+                AND cs.class_date_ &lt;= #{courseEndDate}
+            </if>
+            <if test="signInStatus != null and signInStatus != '' and signInStatus != 3">
+                AND ta.sign_in_status_ = #{signInStatus}
+            </if>
+            <if test="signOutStatus != null and signOutStatus != '' and signOutStatus != 3">
+                AND ta.sign_out_status_ = #{signOutStatus}
+            </if>
+            <if test="signOutStatus != null and signOutStatus != '' and signOutStatus == 3">
+                AND ta.sign_out_status_ IS NULL
+            </if>
+            <if test="signInStatus != null and signInStatus != '' and signInStatus == 3">
+                AND ta.sign_in_status_ IS NULL
+            </if>
+            <if test="courseScheduleType != null">
+                AND cs.type_ = #{courseScheduleType}
+            </if>
+            <if test="organId != null and organId != ''">
+                AND FIND_IN_SET(t.organ_id_,#{organId})
+            </if>
+        </where>
+    </sql>
 
     <select id="getTeacherPersonalAttendances" parameterType="map" resultMap="teacherPersonalAttendance">
         SELECT
-            cs.class_date_,cs.start_class_time_,cs.name_,cs.type_,ta.sign_in_time_,ta.sign_out_time_,
+            cs.class_date_,cs.start_class_time_,cs.name_,cs.type_,
             IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,
             IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
             ta.remark_,cs.id_,cs.end_class_time_
@@ -215,12 +262,37 @@
         <include refid="global.limit"/>
     </select>
 
+    <select id="queryTeacherAttendances" parameterType="map" resultMap="TeacherAttendancesDto">
+        SELECT su.real_name_ teacher_name_,su.id_ teacher_id_,ta.course_schedule_id_,cs.name_ course_schedule_name_,
+        cs.status_ course_schedule_status_,
+        cs.class_date_,cs.start_class_time_,cs.end_class_time_,cs.type_ course_schedule_type_,
+        IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,
+        IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
+        ta.sign_in_time_,ta.sign_out_time_,ta.remark_
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN teacher t ON t.id_ = ta.teacher_id_
+        LEFT JOIN sys_user su ON su.id_ = t.id_
+        <include refid="queryTeacherAttendancesCondition"/>
+        ORDER BY cs.class_date_ ASC,cs.start_class_time_ ASC
+        <include refid="global.limit"/>
+    </select>
+
     <select id="getTeacherPersonalAttendancesCount" resultType="int">
         SELECT count(cs.id_) FROM course_schedule cs LEFT JOIN teacher_attendance ta
         ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
     </select>
 
+    <select id="countTeacherAttendances" resultType="int">
+        SELECT COUNT(DISTINCT cs.id_)
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN teacher t ON t.id_ = ta.teacher_id_
+        LEFT JOIN sys_user su ON su.id_ = t.id_
+        <include refid="queryTeacherAttendancesCondition"/>
+    </select>
+
     <select id="countClassTime" resultType="java.lang.Integer">
         SELECT COUNT(*) FROM teacher_attendance WHERE class_group_id_=#{classGroupId} FOR UPDATE
     </select>

+ 2 - 0
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -10,9 +10,11 @@ import com.ym.mec.biz.dal.dto.PracticeGroupBuyDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;

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

@@ -60,7 +60,7 @@ public class ExtracurricularExercisesReplyController extends BaseController {
         if(StringUtils.isNotBlank(monday)){
             extracurricularExercisesReplyService.exercisesSituationStatistics2(monday);
         }else{
-            String[] mondays=new String[]{"2020-03-30","2020-04-06","2020-04-13","2020-04-20","2020-04-27"};
+            String[] mondays=new String[]{"2020-05-13","2020-05-20","2020-05-27"};
             for (String mondayStr : mondays) {
                 extracurricularExercisesReplyService.exercisesSituationStatistics2(mondayStr);
             }

+ 17 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesMessageService;
 import com.ym.mec.biz.service.StudentCourseHomeworkReplyService;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
+import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
@@ -46,6 +47,9 @@ public class StudentExtracurricularExercisesSituationController extends BaseCont
     private StudentCourseHomeworkReplyService studentCourseHomeworkReplyService;
 
     @Autowired
+    private StudentServeService studentServeService;
+
+    @Autowired
     private EmployeeDao employeeDao;
 
     @ApiOperation(value = "课外训练-教学")
@@ -89,4 +93,17 @@ public class StudentExtracurricularExercisesSituationController extends BaseCont
         }
     }
 
+    @GetMapping("/exercisesSituationStatistics")
+    public HttpResponseResult exercisesSituationStatistics(String monday){
+        if(StringUtils.isNotBlank(monday)){
+            studentServeService.exercisesSituationStatistics(monday);
+        }else{
+            String[] mondays=new String[]{"2020-05-13","2020-05-20","2020-05-27"};
+            for (String mondayStr : mondays) {
+                studentServeService.exercisesSituationStatistics(mondayStr);
+            }
+        }
+        return succeed();
+    }
+
 }

+ 5 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -68,6 +68,9 @@ public class TaskController extends BaseController {
 	@Autowired
 	private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
 
+	@Autowired
+	private StudentServeService studentServeService;
+
 	@GetMapping(value = "/refreshUserMusicGroupPaymentStatusTask")
 	// 刷新学员乐团付费状态
 	public void refreshUserMusicGroupPaymentStatusTask(){
@@ -227,7 +230,8 @@ public class TaskController extends BaseController {
 	//学生服务信息统计
 	@GetMapping("/exercisesSituationStatistics")
 	public void exercisesSituationStatistics(){
-		extracurricularExercisesReplyService.exercisesSituationStatistics2(null);
+//		extracurricularExercisesReplyService.exercisesSituationStatistics2(null);
+		studentServeService.exercisesSituationStatistics(null);
 	}
 
 	//更新学生运营指标

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

@@ -1,11 +1,16 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -13,6 +18,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Arrays;
+import java.util.List;
+
 @RequestMapping("teacherAttendance")
 @Api(tags = "教师签到服务")
 @RestController
@@ -20,6 +28,10 @@ public class TeacherAttendanceController extends BaseController {
 
     @Autowired
     private TeacherAttendanceService teacherAttendanceService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
 
     @ApiOperation(value = "查询教师签到(上课)记录")
     @GetMapping("/getTeacherPersonalAttendances")
@@ -28,6 +40,30 @@ public class TeacherAttendanceController extends BaseController {
         return succeed(teacherAttendanceService.getTeacherPersonalAttendances(queryInfo));
     }
 
+    @ApiOperation(value = "获取教师考勤记录")
+    @PostMapping("/queryTeacherAttendances")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/queryTeacherAttendances')")
+    public Object queryTeacherAttendances(TeacherCloseQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+                return failed("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(teacherAttendanceService.queryTeacherAttendances(queryInfo));
+    }
+
     @ApiOperation(value = "查询某节课教师签到记录")
     @GetMapping("/getTeacherPersonalAttendance")
     @PreAuthorize("@pcs.hasPermissions('teacherAttendance/getTeacherPersonalAttendance')")