Browse Source

Merge branch 'zx_saas_shortUrl' of http://git.dayaedu.com/yonge/mec into test

zouxuan 1 year ago
parent
commit
d7f508ff39
19 changed files with 336 additions and 40 deletions
  1. 13 1
      mec-application/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  2. 69 8
      mec-application/src/main/java/com/ym/mec/web/controller/school/SchoolStudentHomeworkController.java
  3. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java
  4. 25 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/OpenMutualTLSController.java
  5. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  6. 52 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java
  7. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java
  8. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java
  9. 15 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/TeachingPointWrapper.java
  10. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java
  11. 23 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  13. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  14. 11 10
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 4 0
      mec-biz/src/main/resources/config/mybatis/CourseSchedulePlusMapper.xml
  16. 6 0
      mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml
  17. 44 4
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  18. 25 5
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  19. 1 1
      mec-common/common-core/src/main/java/com/ym/mec/common/security/BaseAuthenticationEntryPoint.java

+ 13 - 1
mec-application/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -435,7 +435,8 @@ public class ClassGroupController extends BaseController {
 
     @ApiOperation(value = "学校端-场地管理列表")
     @PostMapping("/teachingPointCourse")
-    public HttpResponseResult<PageInfo<TeachingPointWrapper.CourseTeachingPoint>> teachingPoint(@RequestBody TeachingPointWrapper.TeachingPointQuery queryInfo,@RequestHeader Integer coopId) {
+    public HttpResponseResult<PageInfo<TeachingPointWrapper.CourseTeachingPoint>>
+    teachingPoint(@RequestBody TeachingPointWrapper.TeachingPointQuery queryInfo,@RequestHeader Integer coopId) {
         if (coopId == null) {
             return succeed(new PageInfo<>());
         }
@@ -449,6 +450,17 @@ public class ClassGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseTeachingPointIPage));
     }
 
+    @ApiOperation(value = "管理端-场地管理列表")
+    @PostMapping("/eduTeachingPointCourse")
+    public HttpResponseResult<PageInfo<TeachingPointWrapper.CourseTeachingPoint>>
+    eduTeachingPointCourse(@RequestBody TeachingPointWrapper.TeachingPointQuery queryInfo) {
+        if (queryInfo.getCourseStatus() == null) {
+            queryInfo.setCourseStatus(CourseStatusEnum.OVER);
+        }
+        IPage<TeachingPointWrapper.CourseTeachingPoint> courseTeachingPointIPage = courseScheduleService.teachingPointCourse(queryInfo);
+        return succeed(PageUtil.pageInfo(courseTeachingPointIPage));
+    }
+
     @ApiOperation(value = "学校端-场地设置列表")
     @PostMapping("/teachingPointClass")
     public HttpResponseResult<PageInfo<TeachingPointWrapper.ClassTeachingPoint>> teachingPointClass(@RequestBody TeachingPointWrapper.TeachingPointQuery queryInfo,@RequestHeader Integer coopId) {

+ 69 - 8
mec-application/src/main/java/com/ym/mec/web/controller/school/SchoolStudentHomeworkController.java

@@ -1,22 +1,23 @@
 package com.ym.mec.web.controller.school;
 
 
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
-import com.ym.mec.biz.dal.dto.StudentLessonTrainingDetailWrapper;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
-import com.ym.mec.biz.service.StudentCourseHomeworkService;
-import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
-import com.ym.mec.biz.service.StudentLessonExaminationService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Api(tags = "学校学员课后作业")
 @RestController
@@ -34,9 +36,68 @@ public class SchoolStudentHomeworkController extends BaseController {
     private StudentLessonExaminationService studentLessonExaminationService;
     @Resource
     private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
-
-    @Autowired
+    @Resource
     private StudentCourseHomeworkService studentCourseHomeworkService;
+    @Resource
+    private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
+    @Resource
+    private LessonExaminationService lessonExaminationService;
+    @Resource
+    private StudentAttendanceService studentAttendanceService;
+    @Resource
+    private MusicGroupDao musicGroupDao;
+    @ApiOperation(value = "获取教师有服务指标的课程列表")
+    @PostMapping("/queryHomework")
+    public HttpResponseResult<PageInfo<CourseHomeworkWrapper.CourseHomeworkList>>
+    queryHomework(@RequestBody CourseHomeworkWrapper.CourseHomeworkQuery queryInfo,@RequestHeader Integer coopId) {
+        //获取合作单位关联的所有乐团列表
+        List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(coopId);
+        if (CollectionUtils.isEmpty(musicGroupIds)) {
+            return succeed(new PageInfo<>());
+        }
+        queryInfo.setMusicGroupIds(musicGroupIds);
+        return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetailV2(queryInfo));
+    }
+
+    @ApiOperation(value = "获取课外作业列表")
+    @PostMapping("/queryExtraHomework")
+    public HttpResponseResult<PageInfo<CourseHomeworkWrapper.CourseHomeworkList>>
+    queryExtraHomework(@RequestBody CourseHomeworkWrapper.CourseHomeworkQuery queryInfo,@RequestHeader Integer coopId) {
+        //获取合作单位关联的所有乐团列表
+        List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(coopId);
+        if (CollectionUtils.isEmpty(musicGroupIds)) {
+            return succeed(new PageInfo<>());
+        }
+        queryInfo.setMusicGroupIds(musicGroupIds);
+        return succeed(studentExtracurricularExercisesSituationService.queryTeacherExtraHomeworkDetailV2(queryInfo));
+    }
+
+    @ApiOperation(value = "获取进度评测列表")
+    @PostMapping("queryLessonExamination")
+    public HttpResponseResult<PageInfo<LessonExaminationResultDto>>
+    queryLessonExamination(@RequestBody LessonExaminationQueryInfo queryInfo, @RequestHeader Integer coopId) {
+        //获取合作单位关联的所有乐团列表
+        List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(coopId);
+        if (CollectionUtils.isEmpty(musicGroupIds)) {
+            return succeed(new PageInfo<>());
+        }
+        queryInfo.setMusicGroupIds(musicGroupIds);
+        return succeed(lessonExaminationService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "学员请假列表")
+    @PostMapping("queryStudentLeave")
+    public HttpResponseResult<PageInfo<CourseHomeworkWrapper.StudentLeaveResult>>
+    queryStudentLeave(@RequestBody CourseHomeworkWrapper.StudentLeaveQuery queryInfo, @RequestHeader Integer coopId) {
+        if(StringUtils.isEmpty(queryInfo.getMusicGroupIds())){
+            List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(coopId);
+            if (CollectionUtils.isEmpty(musicGroupIds)) {
+                return succeed(new PageInfo<>());
+            }
+            queryInfo.setMusicGroupIds(musicGroupIds.stream().collect(Collectors.joining(",")));
+        }
+        return succeed(studentAttendanceService.queryStudentLeave(queryInfo));
+    }
 
     @ApiOperation(value = "获取课后评测学员列表")
     @PostMapping("queryLessonStudent")

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java

@@ -28,7 +28,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .authorizeRequests().antMatchers(
                         "/task/**", "/user/updatePassword", "/user/noAuth/queryUserByPhone",
                         "/user/queryUserByPhone", "/user/queryClient", "/user/add",
-                        "/user/queryUserById/*","/open/qrcode/*",
+                        "/user/queryUserById/*","/open/**",
                         "/queryUserInfo","/api/queryUserInfo").hasIpAddress("0.0.0.0/0")
                 .anyRequest().authenticated().and().httpBasic();
     }

+ 25 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/OpenMutualTLSController.java

@@ -0,0 +1,25 @@
+package com.ym.mec.auth.web.controller;
+
+import com.microsvc.toolkit.common.response.template.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("/open/mutualTLS")
+@Api(tags = "HTTPS双向认证")
+public class OpenMutualTLSController {
+
+    @ApiOperation(value = "HTTPS双向认证查询")
+    @GetMapping(value = "query")
+    public R<Boolean> queryByParamNameList() {
+        return R.from(true);
+    }
+
+}

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

@@ -397,4 +397,8 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     Integer getTruantStudentNum(Long courseScheduleId);
 
     Integer getStudentNumByStatus(@Param("courseScheduleId") Long courseScheduleId, @Param("status") StudentAttendanceStatusEnum studentAttendanceStatusEnum);
+
+    int countStudentLeave(Map<String, Object> params);
+
+    List<CourseHomeworkWrapper.StudentLeaveResult> queryStudentLeave(Map<String, Object> params);
 }

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.enums.EHomeWorkStatus;
 import com.ym.mec.biz.dal.enums.ELessonTrainingType;
@@ -50,6 +51,9 @@ public class CourseHomeworkWrapper {
         @ApiModelProperty(value = "乐团id")
         private String musicGroupId;
 
+        @ApiModelProperty(value = "乐团id")
+        private List<String> musicGroupIds;
+
         @ApiModelProperty(value = "班级类型  SINGLE:声部班,MIX:合奏班")
         private String classType;
 
@@ -61,6 +65,54 @@ public class CourseHomeworkWrapper {
         private ELessonTrainingType type;
     }
 
+    @Data
+    @ApiModel(value = "学校端学员请假列表")
+    public static class StudentLeaveQuery extends QueryInfo {
+
+        @ApiModelProperty(value = "课程id")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty(value = "班级id")
+        private Integer classGroupId;
+
+        @ApiModelProperty(value = "开始时间(年月日)",required = true)
+        private String startTime;
+
+        @ApiModelProperty(value = "结束时间(年月日)",required = true)
+        private String endTime;
+
+        @ApiModelProperty(value = "乐团id")
+        private String musicGroupIds;
+    }
+
+    @Data
+    @ApiModel(value = "学校端学员请假列表")
+    public static class StudentLeaveResult {
+        @ApiModelProperty(value = "上课时间")
+        private String classDate;
+
+        @ApiModelProperty(value = "上课开始时间")
+        private String startClassTime;
+
+        @ApiModelProperty(value = "上课结束时间")
+        private String endClassTime;
+
+        @ApiModelProperty(value = "请假时间")
+        private String leaveTime;
+
+        @ApiModelProperty(value = "班级名称")
+        private String classGroupName;
+
+        @ApiModelProperty(value = "课程类型")
+        private CourseSchedule.CourseScheduleType courseScheduleType;
+
+        @ApiModelProperty(value = "请假原因")
+        private String remark;
+
+        @ApiModelProperty(value = "学生姓名")
+        private String username;
+    }
+
 
 
     @Data

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java

@@ -82,6 +82,9 @@ public class StudentAttendance extends BaseEntity {
 	@ApiModelProperty(value = "状态(正常、旷课、请假、休学)",required = false)
 	private StudentAttendanceStatusEnum status;
 
+	@ApiModelProperty(value = "请假时间",required = false)
+	private Date leaveTime;
+
 	@ApiModelProperty(value = "是否回访)",required = false)
 	private YesOrNoEnum visitFlag = YesOrNoEnum.NO;
 
@@ -345,7 +348,15 @@ public class StudentAttendance extends BaseEntity {
 	public String getRemark(){
 		return this.remark;
 	}
-			
+
+	public Date getLeaveTime() {
+		return leaveTime;
+	}
+
+	public void setLeaveTime(Date leaveTime) {
+		this.leaveTime = leaveTime;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java

@@ -4,6 +4,8 @@ import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class LessonExaminationQueryInfo extends QueryInfo {
 
@@ -13,6 +15,9 @@ public class LessonExaminationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "乐团编号")
     private String musicGroupId;
 
+    @ApiModelProperty(value = "乐团编号列表")
+    private List<String> musicGroupIds;
+
     @ApiModelProperty(value = "老师编号")
     private Integer teacherId;
 

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/TeachingPointWrapper.java

@@ -24,6 +24,9 @@ public class TeachingPointWrapper {
         @ApiModelProperty("分页行数")
         private Integer rows;
 
+        @ApiModelProperty("分部")
+        private Integer organId;
+
         @ApiModelProperty("合作单位ID")
         private Integer cooperationOrganId;
 
@@ -71,9 +74,21 @@ public class TeachingPointWrapper {
         @ApiModelProperty("课程ID")
         private Long courseId;
 
+        @ApiModelProperty("合作单位")
+        private String coopName;
+
         @ApiModelProperty("课程名")
         private String courseName;
 
+        @ApiModelProperty("课程类型")
+        private CourseSchedule.CourseScheduleType courseType;
+
+        @ApiModelProperty("分部")
+        private Integer organId;
+
+        @ApiModelProperty("分部")
+        private String organName;
+
         @ApiModelProperty(value = "课程状态")
         private CourseStatusEnum courseStatus;
 
@@ -85,11 +100,9 @@ public class TeachingPointWrapper {
         @ApiModelProperty(value = "上课时间")
         private Date startClassTime;
 
-        /** 结束时间 */
         @ApiModelProperty(value = "结束时间")
         private Date endClassTime;
 
-
         @ApiModelProperty("乐团ID")
         private String musicGroupId;
 

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

@@ -1,10 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dto.CourseScheduleResponse;
-import com.ym.mec.biz.dal.dto.ExportStudentAttendanceDto;
-import com.ym.mec.biz.dal.dto.StudentAttendanceDto;
-import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
@@ -119,4 +116,7 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 * @return
 	 */
 	PageInfo<ExportStudentAttendanceDto> exportStudentAttendancesQueryPage(ExportStudentAttendanceQueryInfo queryInfo);
+
+	//学校端学员请假列表
+    PageInfo<CourseHomeworkWrapper.StudentLeaveResult> queryStudentLeave(CourseHomeworkWrapper.StudentLeaveQuery queryInfo);
 }

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

@@ -216,6 +216,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Autowired
     private TenantInfoService tenantInfoService;
+    @Autowired
+    private CooperationOrganService cooperationOrganService;
+    @Autowired
+    private OrganizationService organizationService;
 
     private final Logger businessLogger = LoggerFactory
             .getLogger(this.getClass());
@@ -6076,7 +6080,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (CollectionUtils.isEmpty(courseTeachingPoints)) {
             return page;
         }
-
         // 设置老师信息
 
         // 老师ID集合
@@ -6094,12 +6097,29 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 .map(TeachingPointWrapper.CourseTeachingPoint::getCourseId)
                 .filter(Objects::nonNull)
                 .collect(Collectors.toList());
+		//获取乐团编号
+		List<String> musicGroupIds = courseTeachingPoints.stream().map(TeachingPointWrapper.CourseTeachingPoint::getMusicGroupId).collect(Collectors.toList());
+		Map<String,String> coopNameMap = new HashMap<>();
+		if (CollectionUtils.isNotEmpty(musicGroupIds)) {
+			coopNameMap = cooperationOrganService.getDao().
+					queryByGroupIds(musicGroupIds).stream().collect(Collectors.toMap(e -> e.getMusicGroupId(), e -> e.getName()));
+		}
+		//获取分部编号
+		List<Integer> organIds = courseTeachingPoints.stream().map(TeachingPointWrapper.CourseTeachingPoint::getOrganId).collect(Collectors.toList());
+		Map<Integer,Organization> organNameMap = new HashMap<>();
+		if (CollectionUtils.isNotEmpty(musicGroupIds)) {
+			organNameMap = organizationService.getMapByIds(organIds);
+		}
 
         Map<Long, TeacherAttendance> attendanceMap = teacherAttendanceService.getMapByCourseIds(courseIds);
 
         for (TeachingPointWrapper.CourseTeachingPoint courseTeachingPoint : courseTeachingPoints) {
-
-            // 设置老师信息
+			courseTeachingPoint.setCoopName(coopNameMap.get(courseTeachingPoint.getMusicGroupId()));
+			Organization organization = organNameMap.get(courseTeachingPoint.getOrganId());
+			if (Objects.nonNull(organization)){
+				courseTeachingPoint.setOrganName(organization.getName());
+			}
+			// 设置老师信息
             if (courseTeachingPoint.getTeacherId() != null) {
                 Teacher teacher = teacherMap.get(courseTeachingPoint.getTeacherId());
                 if (teacher != null) {

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

@@ -404,6 +404,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         studentAttendance.setCurrentClassTimes(0);
         studentAttendance.setRemark(remark);
         studentAttendance.setStatus(StudentAttendanceStatusEnum.LEAVE);
+        studentAttendance.setLeaveTime(date);
         studentAttendance.setUserId(userId);
         studentAttendance.setGroupType(courseSchedule.getGroupType());
         studentAttendance.setMusicGroupId(courseSchedule.getMusicGroupId());
@@ -814,4 +815,24 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<CourseHomeworkWrapper.StudentLeaveResult> queryStudentLeave(CourseHomeworkWrapper.StudentLeaveQuery queryInfo) {
+        PageInfo<CourseHomeworkWrapper.StudentLeaveResult> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<CourseHomeworkWrapper.StudentLeaveResult> dataList = null;
+        int count = studentAttendanceDao.countStudentLeave(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentAttendanceDao.queryStudentLeave(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

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

@@ -695,6 +695,7 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
         params.put("versionTag","v2");
+		params.put("offset", pageInfo.getOffset());
 
          int count = courseScheduleDao.countTeacherServeHomeworkDetailV2(params, courseIds);
          if (count == 0) {

+ 11 - 10
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -4342,16 +4342,22 @@
 
 
     <sql id="selectPage">
-        <if test="param.teacherId != null">
+        <where>
+            <if test="param.teacherId != null">
                 and ( cs.actual_teacher_id_ = #{param.teacherId})
             </if>
             <if test="param.classType != null and param.classType != ''">
                 and cs.type_ = #{param.classType}
             </if>
-
             <if test="param.musicGroupId != null and  param.musicGroupId != ''">
                 and #{param.musicGroupId} = cs.music_group_id_
             </if>
+            <if test="param.musicGroupIds != null and param.musicGroupIds.size > 0">
+                and cs.music_group_id_ IN
+                <foreach collection="param.musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
+                    #{musicGroupId}
+                </foreach>
+            </if>
             <if test="param.homeWorkStatus != null">
                 <if test="param.homeWorkStatus.code == 'UNASSIGNED'">
                     and ch.id_ is null
@@ -4375,6 +4381,7 @@
             <if test="param.versionTag !=null and param.versionTag != ''">
                 and (ch.version_tag_ = #{param.versionTag} or ch.version_tag_ is null)
             </if>
+        </where>
     </sql>
     <select id="queryTeacherServeHomeworkDetailV2"
             resultType="com.ym.mec.biz.dal.dto.CourseHomeworkWrapper$CourseHomeworkList">
@@ -4397,11 +4404,7 @@
         ch.expect_num_ as studentNum
         from course_schedule cs
         left join course_homework ch on cs.id_ = ch.course_schedule_id_
-
-        <where>
-            <include refid="selectPage"/>
-
-        </where>
+        <include refid="selectPage"/>
         <if test="param.offset != null">
             limit #{param.offset},#{param.rows}
         </if>
@@ -4412,9 +4415,7 @@
         count(1)
         from course_schedule cs
         left join course_homework ch on cs.id_ = ch.course_schedule_id_
-        <where>
-            <include refid="selectPage"/>
-        </where>
+        <include refid="selectPage"/>
     </select>
 
     <update id="updateTeachingPointByClassGroupId">

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/CourseSchedulePlusMapper.xml

@@ -9,6 +9,7 @@
         ,mg.id_ as musicGroupId
         ,mg.name_ as musicGroupName
         ,cs.actual_teacher_id_ as teacherId
+        ,cs.organ_id_ as organId
         ,cs.teaching_point_ as teachingPoint
         ,cs.class_date_ as courseDate
         ,cs.start_class_time_ as startClassTime
@@ -23,6 +24,9 @@
             <if test="param.cooperationOrganId != null">
                 and mg.cooperation_organ_id_ = #{param.cooperationOrganId}
             </if>
+            <if test="param.organId != null">
+                and cs.organ_id_ = #{param.organId}
+            </if>
             <if test="param.startTime != null">
                 and cs.class_date_ &gt;= date_format(#{param.startTime}, '%Y-%m-%d')
             </if>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml

@@ -68,6 +68,12 @@
             <if test="musicGroupId != null and musicGroupId != ''">
                 AND le.music_group_id_ = #{musicGroupId}
             </if>
+            <if test="musicGroupIds != null and musicGroupIds.size > 0">
+                and le.music_group_id_ IN
+                <foreach collection="musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
+                    #{musicGroupId}
+                </foreach>
+            </if>
             <if test="organId != null and organId != ''">
                 AND FIND_IN_SET(le.organ_id_,#{organId})
             </if>

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

@@ -21,6 +21,7 @@
         <result column="teacher_id_" property="teacherId"/>
         <result column="sign_in_time_" property="signInTime"/>
         <result column="sign_out_time_" property="signOutTime"/>
+        <result column="leave_time_" property="leaveTime"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="visitFlag" property="visitFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" property="createTime"/>
@@ -61,24 +62,24 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentAttendance" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO student_attendance
-        (group_type_,music_group_id_,class_group_id_,course_schedule_id_,user_id_,teacher_id_,status_,create_time_,
+        (group_type_,music_group_id_,class_group_id_,course_schedule_id_,user_id_,teacher_id_,status_,leave_time_,create_time_,
         update_time_,remark_,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_,normal_remind_,tenant_id_,qualified_flag_)
         VALUES(#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{classGroupId},
-        #{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),
+        #{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{leaveTime},now(),now(),
         #{remark},#{currentClassTimes},#{signInTime},#{signOutTime},#{currentScheduleId},#{visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{normalRemind},#{tenantId},#{qualifiedFlag})
     </insert>
 
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
       INSERT INTO student_attendance (group_type_, music_group_id_, class_group_id_, course_schedule_id_,
-      user_id_, teacher_id_, status_, create_time_,update_time_, remark_ ,current_class_times_,sign_in_time_,
+      user_id_, teacher_id_, status_,leave_time_, create_time_,update_time_, remark_ ,current_class_times_,sign_in_time_,
                                       sign_out_time_,current_schedule_id_,visit_flag_,normal_remind_,tenant_id_)
       VALUES
 	  <foreach collection="list" item="studentAttendance" separator=",">
           (#{studentAttendance.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
           #{studentAttendance.musicGroupId},#{studentAttendance.classGroupId},#{studentAttendance.courseScheduleId},
           #{studentAttendance.userId},#{studentAttendance.teacherId},
-          #{studentAttendance.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),#{studentAttendance.updateTime},
+          #{studentAttendance.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{leaveTime},now(),#{studentAttendance.updateTime},
           #{studentAttendance.remark},#{studentAttendance.currentClassTimes},
           #{studentAttendance.signInTime},#{studentAttendance.signOutTime},#{studentAttendance.currentScheduleId},
            #{studentAttendance.visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -102,6 +103,9 @@
             <if test="signOutTime != null">
                 sign_out_time_ = #{signOutTime},
             </if>
+            <if test="leaveTime != null">
+                leave_time_ = #{leaveTime},
+            </if>
             <if test="signInTime != null">
                 sign_in_time_ = #{signInTime},
             </if>
@@ -766,4 +770,40 @@
             <if test="status.name == 'TRUANT'"> or sa.id_ is null </if>
         )
     </select>
+    <select id="queryStudentLeave"
+            resultType="com.ym.mec.biz.dal.dto.CourseHomeworkWrapper$StudentLeaveResult">
+        select cs.class_date_ classDate,cs.start_class_time_ startClassTime,cs.end_class_time_ endClassTime,sa.leave_time_ leaveTime,
+               cg.name_ classGroupName,cs.type_ courseScheduleType,sa.remark_ remark,su.username_ username from student_attendance sa
+        left join course_schedule cs ON cs.id_ = sa.course_schedule_id_
+        left join class_group cg ON cg.id_ = cs.class_group_id_
+        left join sys_user su ON su.id_ = sa.user_id_
+        <include refid="queryStudentLeaveCondition"/>
+        <include refid="global.limit"/>
+    </select>
+    <select id="countStudentLeave" resultType="java.lang.Integer">
+        select COUNT(sa.id_) from student_attendance sa
+         left join course_schedule cs ON cs.id_ = sa.course_schedule_id_
+         left join sys_user su ON su.id_ = sa.user_id_
+        <include refid="queryStudentLeaveCondition"/>
+    </select>
+    <sql id="queryStudentLeaveCondition">
+        <where>
+            sa.status_ = 'LEAVE'
+            <if test="classGroupId != null">
+                AND sa.class_group_id_ = #{classGroupId}
+            </if>
+            <if test="courseScheduleId != null">
+                AND sa.course_schedule_id_ = #{courseScheduleId}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND cs.class_date_ BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="musicGroupIds != null and musicGroupIds != ''">
+                AND FIND_IN_SET(cs.music_group_id_,#{musicGroupIds})
+            </if>
+            <if test="search != null and search != ''">
+                AND (sa.user_id_ = #{search} OR su.phone_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+        </where>
+    </sql>
 </mapper>

+ 25 - 5
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -834,12 +834,14 @@
                  LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
                  LEFT JOIN student_extracurricular_exercises_situation_ se ON se.teacher_id_ = csts.user_id_
         left join lesson_examination le on le.course_schedule_id_ = csts.course_schedule_id_
-        WHERE csts.user_id_ = #{teacherId}
+        WHERE FIND_IN_SET(cs.id_, se.course_ids_) and le.id_ is null
+        AND se.serve_type_ = 'HOMEWORK'
+        <if test="teacherId != null">
+            AND csts.user_id_ = #{teacherId}
+        </if>
         <if test="firstDayOfMonth != null and lastDayOfMonth != null">
             AND cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth}
         </if>
-          AND FIND_IN_SET(cs.id_, se.course_ids_) and le.id_ is null
-          AND se.serve_type_ = 'HOMEWORK'
     </select>
 
     <select id="countWaitCreateHomeworkNum" resultType="java.lang.Integer">
@@ -975,7 +977,16 @@
     <select id="queryStudentExerciseMusicGroupList" resultType="com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto">
     	SELECT sees.music_group_id_ musicGroupId,mg.name_ musicGroupName,count(distinct sees.student_id_) studentNum,group_concat(distinct  sees.student_id_) as studentIds from student_extracurricular_exercises_situation_ sees
 		LEFT JOIN music_group mg on mg.id_ = sees.music_group_id_
-		WHERE sees.teacher_id_ = #{teacherId} and sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+		WHERE sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+        <if test="teacherId != null">
+            AND sees.teacher_id_ = #{teacherId}
+        </if>
+        <if test="musicGroupIds != null and musicGroupIds.size > 0">
+            and sees.music_group_id_ IN
+            <foreach collection="musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
+                #{musicGroupId}
+            </foreach>
+        </if>
 		<if test="musicGroupName != null and musicGroupName != ''">
 			and mg.name_ LIKE CONCAT('%', #{musicGroupName}, '%')
 		</if>
@@ -992,7 +1003,16 @@
     <select id="queryStudentExerciseMusicGroupListCount" resultType="int">
     	SELECT count(distinct sees.music_group_id_) from student_extracurricular_exercises_situation_ sees 
 		LEFT JOIN music_group mg on mg.id_ = sees.music_group_id_
-		WHERE sees.teacher_id_ = #{teacherId} and sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+		WHERE sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+		<if test="teacherId != null">
+            AND sees.teacher_id_ = #{teacherId}
+		</if>
+        <if test="musicGroupIds != null and musicGroupIds.size > 0">
+            and sees.music_group_id_ IN
+            <foreach collection="musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
+                #{musicGroupId}
+            </foreach>
+        </if>
 		<if test="musicGroupName != null and musicGroupName != ''">
 			and mg.name_ LIKE CONCAT('%', #{musicGroupName}, '%')
 		</if>

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/security/BaseAuthenticationEntryPoint.java

@@ -39,7 +39,7 @@ public class BaseAuthenticationEntryPoint implements AuthenticationEntryPoint {
 			errorCode = HttpServletResponse.SC_FORBIDDEN;
 		}
 
-		HttpResponseResult result = new HttpResponseResult(false, errorCode, null, "登陆失效,请重新登陆");
+		HttpResponseResult result = new HttpResponseResult(false, errorCode, null, "登录过期,请重新登录");
 
 		ObjectMapper objectMapper = new ObjectMapper();