Просмотр исходного кода

Merge branch 'zx_saas_0301' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 3 лет назад
Родитель
Сommit
74dc634170
22 измененных файлов с 621 добавлено и 88 удалено
  1. 5 26
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java
  2. 63 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  4. 103 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EvaluateCourseDto.java
  5. 65 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentStandardDto.java
  6. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherSignOutDto.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  8. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleReview.java
  9. 1 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java
  11. 61 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EvaluateCourseQueryInfo.java
  12. 28 4
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  13. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  14. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java
  15. 59 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  16. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  17. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java
  18. 16 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  19. 94 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  20. 9 2
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  21. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseReviewController.java
  22. 41 11
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

+ 5 - 26
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java

@@ -22,7 +22,6 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
-import org.springframework.security.oauth2.provider.OAuth2Authentication;
 import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices;
 import org.springframework.security.oauth2.provider.token.TokenStore;
 import org.springframework.util.LinkedMultiValueMap;
@@ -43,6 +42,7 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.security.AuthUser;
 import com.ym.mec.common.security.SecurityConstants;
+import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.im.ImFeignService;
 
 @RestController
@@ -81,10 +81,8 @@ public class TokenController extends BaseController {
     }
 
     @GetMapping("/queryUserInfo")
-    public SysUser queryUserInfo(HttpServletRequest request) {
-		
-		AuthUser authUser = getAuthUser(request);
-    	
+    public SysUser queryUserInfo() {
+		AuthUser authUser = SecurityUtils.getUser();
 		if(authUser != null){
 			SysUser sysUser = userService.get(authUser.getUserId());
 			if(StringUtils.isEmpty(sysUser.getImToken())){
@@ -100,10 +98,8 @@ public class TokenController extends BaseController {
 
 	@ApiOperation(value = "获取用户信息")
     @GetMapping("/api/queryUserInfo")
-    public Object apiQueryUserInfo(HttpServletRequest request) {
-		
-		AuthUser authUser = getAuthUser(request);
-		
+    public Object apiQueryUserInfo() {
+		AuthUser authUser = SecurityUtils.getUser();
 		if(authUser != null){
 			return succeed(userService.queryUserInfo(authUser.getUserId()));
 		}
@@ -207,22 +203,5 @@ public class TokenController extends BaseController {
 
 		return succeed();
 	}
-	
-	private AuthUser getAuthUser(HttpServletRequest request){
-		String authHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
-		if (StringUtils.isBlank(authHeader)) {
-			return null;
-		}
-
-		String token = authHeader.toLowerCase().replace(OAuth2AccessToken.BEARER_TYPE.toLowerCase(), StringUtils.EMPTY).trim();
-		
-		OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(token);
-    	if (null != oAuth2AccessToken) {
-    	    OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(token);
-    	    return (AuthUser) auth2Authentication.getUserAuthentication().getPrincipal();
-    	}
-    	
-    	return null;
-	}
 
 }

+ 63 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1872,4 +1872,67 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     * @date 2021/11/15 17:23
     */
     List<Integer> queryHasCourseStudentIds(Map<String, Object> params);
+
+    /**
+    * @description: 课程评价列表
+     * @param params
+    * @return int
+    * @author zx
+    * @date 2022/3/1 10:15
+    */
+    int countCourseEvaluateList(Map<String, Object> params);
+
+    /**
+     * @description: 课程评价列表
+     * @param params
+     * @return int
+     * @author zx
+     * @date 2022/3/1 10:15
+     */
+    List<EvaluateCourseDto> queryCourseEvaluateList(Map<String, Object> params);
+
+    /**
+    * @description: 学员学习标准列表
+     * @param params
+    * @return int
+    * @author zx
+    * @date 2022/3/1 14:27
+    */
+    int countStudyStandard(Map<String, Object> params);
+
+    /**
+    * @description: 学员学习标准列表
+     * @param params
+    * @return java.util.List<com.ym.mec.biz.dal.dto.StudentStandardDto>
+    * @author zx
+    * @date 2022/3/1 14:27
+    */
+    List<StudentStandardDto> queryStudyStandard(Map<String, Object> params);
+
+    /**
+    * @description: 标记当前课程已评价
+     * @param courseScheduleId
+    * @return void
+    * @author zx
+    * @date 2022/3/1 17:06
+    */
+    void updateEvaluate(Long courseScheduleId);
+
+    /**
+     * @description: 学习标准待回访列表
+     * @param params
+     * @return void
+     * @author zx
+     * @date 2022/3/1 17:06
+     */
+    int countStudyStandardWaitVisit(Map<String, Object> params);
+
+    /**
+     * @description: 学习标准待回访列表
+     * @param params
+     * @return void
+     * @author zx
+     * @date 2022/3/1 17:06
+     */
+    List<StudentStandardDto> queryStudyStandardWaitVisit(Map<String, Object> params);
 }

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

@@ -349,4 +349,14 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @param userId
      */
     void updateLeaveVisitFlag(Integer userId);
+
+    /**
+    * @description: 标记学员学习未达标
+     * @param courseScheduleId
+     * @param studentIds
+    * @return void
+    * @author zx
+    * @date 2022/3/1 16:03
+    */
+    void updateQualified(@Param("courseScheduleId") Long courseScheduleId, @Param("studentIds") List<Integer> studentIds);
 }

+ 103 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EvaluateCourseDto.java

@@ -0,0 +1,103 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class EvaluateCourseDto {
+
+    @ApiModelProperty(value = "课程编号")
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "课程结束时间")
+    private String classEndTime;
+
+    @ApiModelProperty(value = "课程开始时间")
+    private String classStartTime;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    private String groupType;
+
+    @ApiModelProperty(value = "课程类型")
+    private String courseType;
+
+    @ApiModelProperty(value = "线上线下")
+    private String teachMode;
+
+    @ApiModelProperty(value = "教学点")
+    private String schoolName;
+
+    private Integer courseScheduleReviewId;
+
+    public Integer getCourseScheduleReviewId() {
+        return courseScheduleReviewId;
+    }
+
+    public void setCourseScheduleReviewId(Integer courseScheduleReviewId) {
+        this.courseScheduleReviewId = courseScheduleReviewId;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getClassEndTime() {
+        return classEndTime;
+    }
+
+    public void setClassEndTime(String classEndTime) {
+        this.classEndTime = classEndTime;
+    }
+
+    public String getClassStartTime() {
+        return classStartTime;
+    }
+
+    public void setClassStartTime(String classStartTime) {
+        this.classStartTime = classStartTime;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(String courseType) {
+        this.courseType = courseType;
+    }
+
+    public String getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(String teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+}

+ 65 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentStandardDto.java

@@ -0,0 +1,65 @@
+package com.ym.mec.biz.dal.dto;
+
+//学员学习是否达标
+public class StudentStandardDto {
+
+    private Integer userId;
+
+    private String username;
+
+    private String avatar;
+
+    private String subjectName;
+
+    private Integer qualifiedFlag;
+
+    private String classDate;
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public Integer getQualifiedFlag() {
+        return qualifiedFlag;
+    }
+
+    public void setQualifiedFlag(Integer qualifiedFlag) {
+        this.qualifiedFlag = qualifiedFlag;
+    }
+}

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherSignOutDto.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 
+import java.util.List;
+
 /**
  * @Author Joburgess
  * @Date 2019/9/18
@@ -17,11 +19,22 @@ public class TeacherSignOutDto {
     @ApiModelProperty(value = "课后作业信息")
     private CourseHomework courseHomeworkInfo;
 
+    @ApiModelProperty(value = "学员学习是否达标")
+    private List<StudentStandardDto> studentStandardDtos;
+
     /**
      * 是否返回错误信息
      */
     private boolean notRturnErrorInfo;
 
+    public List<StudentStandardDto> getStudentStandardDtos() {
+        return studentStandardDtos;
+    }
+
+    public void setStudentStandardDtos(List<StudentStandardDto> studentStandardDtos) {
+        this.studentStandardDtos = studentStandardDtos;
+    }
+
     public boolean isNotRturnErrorInfo() {
         return notRturnErrorInfo;
     }

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

@@ -197,6 +197,17 @@ public class CourseSchedule  extends BaseEntity{
 	//课程调整不的超过该时间限制
 	private Date validEndTime;
 
+	//学员学习标准是否评价1是0否
+	private int evaluateFlag = 0;
+
+	public int getEvaluateFlag() {
+		return evaluateFlag;
+	}
+
+	public void setEvaluateFlag(int evaluateFlag) {
+		this.evaluateFlag = evaluateFlag;
+	}
+
 	public Date getValidStartTime() {
 		return validStartTime;
 	}

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleReview.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.dto.StudentStandardDto;
 import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.common.entity.BaseEntity;
 
@@ -8,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.Date;
+import java.util.List;
 
 public class CourseScheduleReview extends BaseEntity {
     /**
@@ -130,6 +132,17 @@ public class CourseScheduleReview extends BaseEntity {
 
     private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
 
+    @ApiModelProperty(value = "学员学习是否达标")
+    private List<StudentStandardDto> studentStandardDtos;
+
+    public List<StudentStandardDto> getStudentStandardDtos() {
+        return studentStandardDtos;
+    }
+
+    public void setStudentStandardDtos(List<StudentStandardDto> studentStandardDtos) {
+        this.studentStandardDtos = studentStandardDtos;
+    }
+
     public ImSendTypeEnum getMsgType() {
         return msgType;
     }

+ 1 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java

@@ -1,11 +1,9 @@
 package com.ym.mec.biz.dal.entity;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.entity.BaseEntity;
-
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
 

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

@@ -97,6 +97,17 @@ public class StudentAttendance extends BaseEntity {
 
 	private int normalRemind;
 
+	@ApiModelProperty(value = "是否达标1是0否")
+	private Integer qualifiedFlag = 0;
+
+	public Integer getQualifiedFlag() {
+		return qualifiedFlag;
+	}
+
+	public void setQualifiedFlag(Integer qualifiedFlag) {
+		this.qualifiedFlag = qualifiedFlag;
+	}
+
 	public Integer getCurrentGradeNum() {
 		return currentGradeNum;
 	}

+ 61 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EvaluateCourseQueryInfo.java

@@ -0,0 +1,61 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class EvaluateCourseQueryInfo extends QueryInfo {
+
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程编号")
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "是否评价,默认否")
+    private Integer evaluateFlag = 0;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startDate;
+
+    @ApiModelProperty(value = "截止时间")
+    private String endDate;
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public int getEvaluateFlag() {
+        return evaluateFlag;
+    }
+
+    public void setEvaluateFlag(int evaluateFlag) {
+        this.evaluateFlag = evaluateFlag;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+}

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

@@ -7,10 +7,7 @@ import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -653,4 +650,31 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	void checkOnlineCategory(List<CourseSchedule> courseSchedules,TeachModeEnum teachMode);
 	
 	Object queryMusicCoursePlan(Integer userId, Date startDate, Date endDate);
+
+	/**
+	* @description: 课程评价列表
+	 * @param queryInfo
+	* @return void
+	* @author zx
+	* @date 2022/3/1 10:10 
+	*/
+	PageInfo<EvaluateCourseDto> courseEvaluateList(EvaluateCourseQueryInfo queryInfo);
+
+	/**
+	* @description: 学员学习标准列表
+	 * @param queryInfo
+	* @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentStandardDto>
+	* @author zx
+	* @date 2022/3/1 13:57
+	*/
+	PageInfo<StudentStandardDto> studyStandardList(EvaluateCourseQueryInfo queryInfo);
+
+	/**
+	* @description: 学习标准待回访列表
+	 * @param queryInfo
+	* @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentStandardDto>
+	* @author zx
+	* @date 2022/3/1 18:01
+	*/
+	PageInfo<StudentStandardDto> queryStudyStandardWaitVisit(EvaluateCourseQueryInfo queryInfo);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.StudentStandardDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDetailDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
@@ -10,11 +11,22 @@ import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
 import java.util.Map;
 
 public interface TeacherAttendanceService extends BaseService<Long, TeacherAttendance> {
 
 	/**
+	* @description: 处理学员学习标准是否达标
+	 * @param studentStandardDtos
+	 * @param courseScheduleId
+	* @return void
+	* @author zx
+	* @date 2022/3/1 17:17
+	*/
+	void saveStudentStandard(List<StudentStandardDto> studentStandardDtos, Long courseScheduleId);
+
+	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/9/10
 	 * 添加教师签到记录

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

@@ -83,6 +83,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     @Autowired
     private StudentServeService studentServeService;
 
+    @Autowired
+    private TeacherAttendanceService teacherAttendanceService;
+
     @Override
     public BaseDAO<Integer, CourseScheduleReview> getDAO() {
         return courseScheduleReviewDao;
@@ -179,6 +182,8 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         if (num <= 0) {
             throw new BizException("评论提交失败,请重试");
         }
+        //处理课程评价
+        teacherAttendanceService.saveStudentStandard(courseScheduleReview.getStudentStandardDtos(),courseScheduleReview.getCourseScheduleId().longValue());
 
         CourseHomework existHomework = courseHomeworkDao.findByCourseSchedule(courseScheduleId.longValue());
 

+ 59 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -32,6 +32,8 @@ import java.util.TreeSet;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.page.*;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -80,30 +82,6 @@ import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
 import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
 import com.ym.mec.biz.dal.dao.VipGroupDao;
-import com.ym.mec.biz.dal.dto.BatchCourseAdjustDto;
-import com.ym.mec.biz.dal.dto.BatchInsertCoursesDto;
-import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
-import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
-import com.ym.mec.biz.dal.dto.CourseMergeDto;
-import com.ym.mec.biz.dal.dto.CoursePostponeDto;
-import com.ym.mec.biz.dal.dto.CourseRepeatCheckDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
-import com.ym.mec.biz.dal.dto.CourseSchedulePlanDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleRateDto;
-import com.ym.mec.biz.dal.dto.CourseTimeDto;
-import com.ym.mec.biz.dal.dto.CreateCourseScheduleDto;
-import com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.PracticeCourseDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto;
-import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
-import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
-import com.ym.mec.biz.dal.dto.TeacherRemarkCommitDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
-import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
 import com.ym.mec.biz.dal.entity.ActivityUserMapper;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
@@ -158,10 +136,6 @@ import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.event.source.CourseEventSource;
 import com.ym.mec.biz.event.source.SendSeoMessageSource;
 import com.ym.mec.biz.service.ClassGroupService;
@@ -5882,4 +5856,61 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		
 		return result;
 	}
+
+    @Override
+    public PageInfo<EvaluateCourseDto> courseEvaluateList(EvaluateCourseQueryInfo queryInfo) {
+        PageInfo<EvaluateCourseDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+        List<EvaluateCourseDto> dataList = null;
+        int count = courseScheduleDao.countCourseEvaluateList(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = courseScheduleDao.queryCourseEvaluateList(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<StudentStandardDto> studyStandardList(EvaluateCourseQueryInfo queryInfo) {
+        PageInfo<StudentStandardDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+        List<StudentStandardDto> dataList = null;
+        int count = courseScheduleDao.countStudyStandard(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = courseScheduleDao.queryStudyStandard(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<StudentStandardDto> queryStudyStandardWaitVisit(EvaluateCourseQueryInfo queryInfo) {
+        PageInfo<StudentStandardDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+        List<StudentStandardDto> dataList = null;
+        int count = courseScheduleDao.countStudyStandardWaitVisit(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = courseScheduleDao.queryStudyStandardWaitVisit(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

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

@@ -357,10 +357,8 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
                     break;
                 default:
                     break;
-
             }
         });
-
         return result;
     }
 

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

@@ -38,8 +38,6 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
-	private SysConfigDao sysConfigDao;
-	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
 	private StudentServeService studentServeService;

+ 16 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -12,7 +12,6 @@ import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.filters.TenantIdThreadLocal;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -29,11 +28,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
-import static com.ym.mec.biz.dal.enums.JobNatureEnum.*;
 import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
 
 @Service
@@ -56,10 +53,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private CourseScheduleService courseScheduleService;
 	@Autowired
-	private SysConfigDao sysConfigDao;
-	@Autowired
-	private SysConfigService sysConfigService;
-	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
@@ -83,6 +76,20 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		return teacherAttendanceDao;
 	}
 
+	@Transactional(rollbackFor = Exception.class)
+	public void saveStudentStandard(List<StudentStandardDto> studentStandardDtos,Long courseScheduleId){
+		if(studentStandardDtos == null || studentStandardDtos.size() == 0){
+			return;
+		}
+		List<StudentStandardDto> collect = studentStandardDtos.stream().filter(e -> e.getQualifiedFlag() == 0).collect(Collectors.toList());
+		if(collect.size() > 0){
+			List<Integer> studentIds = collect.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+			studentAttendanceDao.updateQualified(courseScheduleId,studentIds);
+		}
+		//标记当前课程为已评价
+		courseScheduleDao.updateEvaluate(courseScheduleId);
+	}
+
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	@Override
 	public Map<String, Object> addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto) {
@@ -142,6 +149,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(tomorrow.before(courseSchedule.getStartClassTime())){
 			throw new BizException("明天的课程不能进行签到");
 		}
+		//处理学员学习标准是否达标
+		this.saveStudentStandard(teacherSignOutDto.getStudentStandardDtos(),teacherAttendance.getCourseScheduleId());
 
 		School school = schoolDao.get(courseSchedule.getSchoolId());
 

+ 94 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -41,6 +41,7 @@
         <result column="valid_end_time_" property="validEndTime"/>
         <result column="valid_start_time_" property="validStartTime"/>
         <result column="tenant_id_" property="tenantId"/>
+        <result column="evaluate_flag_" property="evaluateFlag"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -169,7 +170,8 @@
         cs.valid_end_time_,
         cs.valid_start_time_,
         cs.pre_course_flag_,
-        cs.tenant_id_
+        cs.tenant_id_,
+        cs.evaluate_flag_
     </sql>
 
     <!-- 根据主键查询一条记录 -->
@@ -918,7 +920,7 @@
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
         AND cssp.user_id_ = #{studentId} AND cs.pre_course_flag_ = 0
         <if test="month==null">
             AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
@@ -3163,6 +3165,9 @@
             #{courseId}
         </foreach>
     </update>
+    <update id="updateEvaluate">
+        UPDATE course_schedule SET evaluate_flag_ = 1 WHERE id_ = #{courseScheduleId}
+    </update>
 
     <select id="getStudentCourseScheduleNum" resultMap="com.ym.mec.biz.dal.dao.PracticeGroupDao.courseGroupExport">
         SELECT COUNT(*) total_class_times_,cssp.user_id_ student_id_
@@ -3912,4 +3917,91 @@
             GROUP BY s.user_id_ HAVING COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) &lt;= 0 OR MAX(cs.id_) IS NULL
         </if>
     </select>
+    <resultMap id="EvaluateCourseDto" type="com.ym.mec.biz.dal.dto.EvaluateCourseDto">
+        <result property="groupType" column="group_type_"/>
+        <result property="courseType" column="type_"/>
+        <result property="teachMode" column="teach_mode_"/>
+        <result property="classStartTime" column="class_start_time_"/>
+        <result property="classEndTime" column="class_end_time_"/>
+        <result property="courseScheduleId" column="course_schedule_id_"/>
+        <result property="courseName" column="name_"/>
+        <result property="schoolName" column="school_name_"/>
+        <result property="courseScheduleReviewId" column="course_schedule_review_id_"/>
+    </resultMap>
+    <sql id="queryCourseEvaluateSql">
+        <where>
+            cs.status_ = 'OVER' AND ta.sign_in_time_ IS NOT NULL
+            AND cs.del_flag_ = 0 AND (cs.is_lock_ = 0 OR cs.is_lock_ IS NULL) AND cs.pre_course_flag_ = 0
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_) AND sa.id_ IS NOT NULL
+            <if test="teacherId != null">
+                AND ta.teacher_id_ = #{teacherId}
+            </if>
+            <if test="evaluateFlag != null">
+                AND cs.evaluate_flag_ = #{evaluateFlag}
+            </if>
+        </where>
+    </sql>
+    <select id="queryCourseEvaluateList" resultMap="EvaluateCourseDto">
+        SELECT cs.id_ course_schedule_id_,CONCAT(cs.class_date_," ",cs.start_class_time_) class_start_time_,
+               CONCAT(cs.class_date_," ",cs.end_class_time_) class_end_time_,csr.id_ course_schedule_review_id_,
+               cs.name_,cs.group_type_,cs.type_,cs.teach_mode_,CASE WHEN s.name_ IS NULL THEN '网络教室' ELSE s.name_ END school_name_
+        FROM course_schedule cs
+        LEFT JOIN course_schedule_review csr ON csr.course_schedule_id_ = cs.id_
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.status_ = 'NORMAL'
+        LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
+        LEFT JOIN school s ON s.id_ = cs.schoole_id_
+        <include refid="queryCourseEvaluateSql"/>
+        GROUP BY cs.id_
+        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <select id="countCourseEvaluateList" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT cs.id_)
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.status_ = 'NORMAL'
+        <include refid="queryCourseEvaluateSql"/>
+    </select>
+    <select id="countStudyStandard" resultType="java.lang.Integer">
+        SELECT COUNT(sa.user_id_)
+        FROM student_attendance sa
+        WHERE sa.id_ IS NOT NULL AND sa.course_schedule_id_ = #{courseScheduleId}
+    </select>
+    <resultMap id="StudentStandardDto" type="com.ym.mec.biz.dal.dto.StudentStandardDto">
+        <result property="qualifiedFlag" column="qualified_flag_"/>
+        <result property="userId" column="user_id_"/>
+        <result property="avatar" column="avatar_"/>
+        <result property="subjectName" column="subject_name_"/>
+        <result property="username" column="username_"/>
+        <result property="classDate" column="class_date_"/>
+    </resultMap>
+    <select id="queryStudyStandard" resultMap="StudentStandardDto">
+        SELECT su.avatar_,su.username_,sa.user_id_,sb.name_ subject_name_,sa.qualified_flag_
+        FROM student_attendance sa
+        LEFT JOIN student s ON s.user_id_ = sa.user_id_
+        LEFT JOIN `subject` sb ON sb.id_ = s.subject_id_list_
+        LEFT JOIN sys_user su ON su.id_ = s.user_id_
+        WHERE sa.id_ IS NOT NULL AND sa.course_schedule_id_ = #{courseScheduleId}
+        <include refid="global.limit"/>
+    </select>
+    <select id="countStudyStandardWaitVisit" resultType="java.lang.Integer">
+        SELECT COUNT(sa.user_id_) FROM course_schedule cs
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = csts.course_schedule_id_
+        LEFT JOIN student_visit sv ON sv.object_id_ = sa.id_ AND sv.purpose_ = '教学内容未达标'
+        WHERE csts.user_id_ = #{teacherId} AND cs.evaluate_flag_ = 1 AND sa.qualified_flag_ = 0 AND sv.id_ IS NULL
+    </select>
+    <select id="queryStudyStandardWaitVisit" resultMap="StudentStandardDto">
+        SELECT su.avatar_,s.user_id_,su.username_,cs.class_date_,sb.name_ subject_name_ FROM course_schedule cs
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = csts.course_schedule_id_
+        LEFT JOIN student_visit sv ON sv.object_id_ = sa.id_ AND sv.purpose_ = '教学内容未达标'
+        LEFT JOIN student s ON s.user_id_ = sa.user_id_
+        LEFT JOIN `subject` sb ON sb.id_ = s.subject_id_list_
+        LEFT JOIN sys_user su ON su.id_ = s.user_id_
+        WHERE csts.user_id_ = #{teacherId} AND cs.evaluate_flag_ = 1 AND sa.qualified_flag_ = 0 AND sv.id_ IS NULL
+        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+        <include refid="global.limit"/>
+    </select>
 </mapper>

+ 9 - 2
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -42,6 +42,7 @@
         <result column="end_class_time_" property="courseSchedule.endClassTime"/>
         <result column="new_course_id_" property="courseSchedule.newCourseId"/>
         <result column="tenant_id_" property="tenantId"/>
+        <result column="qualified_flag_" property="qualifiedFlag"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -59,11 +60,11 @@
             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_,
-        update_time_,remark_,current_class_times_,sign_in_time_,sign_out_time_,current_schedule_id_,visit_flag_,normal_remind_,tenant_id_)
+        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(),
         #{remark},#{currentClassTimes},#{signInTime},#{signOutTime},#{currentScheduleId},#{visitFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{normalRemind},#{tenantId})
+        #{normalRemind},#{tenantId},#{qualifiedFlag})
     </insert>
 
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
@@ -142,6 +143,12 @@
     <update id="updateLeaveVisitFlag">
         UPDATE student_attendance SET leave_visit_flag_ = 1 WHERE user_id_ = #{userId} AND status_ = 'LEAVE'
     </update>
+    <update id="updateQualified">
+        UPDATE student_attendance SET qualified_flag_ = 0 WHERE course_schedule_id_ = #{courseScheduleId} AND user_id_ IN
+        <foreach collection="studentIds" separator="," item="userId" open="(" close=")">
+            #{userId}
+        </foreach>
+    </update>
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseReviewController.java

@@ -46,7 +46,7 @@ public class CourseReviewController extends BaseController {
 
     @ApiOperation(value = "提交评论")
     @PostMapping(value = "/add")
-    public HttpResponseResult add(CourseScheduleReview courseScheduleReview) {
+    public HttpResponseResult add(@RequestBody CourseScheduleReview courseScheduleReview) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (Objects.isNull(sysUser)) {
             return failed(HttpStatus.FORBIDDEN, "请登录");

+ 41 - 11
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -4,19 +4,12 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
 import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleDto;
-import com.ym.mec.biz.dal.dto.TeacherRemarkCommitDto;
-import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
-import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.SysConfigService;
@@ -24,6 +17,7 @@ import com.ym.mec.biz.service.SysTenantConfigService;
 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 com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -56,8 +50,6 @@ public class TeacherCourseScheduleController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private SysConfigService sysConfigService;
-    @Autowired
     private StudentAttendanceDao studentAttendanceDao;
     @Autowired
     private SysTenantConfigService sysTenantConfigService;
@@ -371,4 +363,42 @@ public class TeacherCourseScheduleController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "课程评价列表")
+    @PostMapping("/courseEvaluateList")
+    @AuditLogAnnotation(operateName = "课程评价列表")
+    public HttpResponseResult courseEvaluateList(@RequestBody EvaluateCourseQueryInfo queryInfo){
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(null==user){
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        queryInfo.setTeacherId(user.getId());
+        String offlineSignInEarlyForwardTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_EARLY_FORWARD_TIME, user.getTenantId());
+        String configValue1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP, user.getTenantId());
+        Map<String,Object> result = new HashMap<>(3);
+        result.put("pageInfo",scheduleService.courseEvaluateList(queryInfo));
+        result.put("offlineSignInEarlyForwardTime", StringUtils.isEmpty(offlineSignInEarlyForwardTime)?60:Integer.parseInt(offlineSignInEarlyForwardTime));
+        result.put("enableStudentAttendanceTimeRangeVip",StringUtils.isEmpty(configValue1)?20:Integer.parseInt(configValue1));
+        return succeed(result);
+    }
+
+    @ApiOperation(value = "学员学习标准列表")
+    @PostMapping("/studyStandardList")
+    @AuditLogAnnotation(operateName = "学员学习标准列表")
+    public HttpResponseResult studyStandardList(EvaluateCourseQueryInfo queryInfo){
+        return succeed(scheduleService.studyStandardList(queryInfo));
+    }
+
+
+    @ApiOperation(value = "学习标准待回访列表")
+    @PostMapping("/queryStudyStandardWaitVisit")
+    @AuditLogAnnotation(operateName = "学习标准待回访列表")
+    public HttpResponseResult queryStudyStandardWaitVisit(EvaluateCourseQueryInfo queryInfo){
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(null==user){
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        queryInfo.setTeacherId(user.getId());
+        return succeed(scheduleService.queryStudyStandardWaitVisit(queryInfo));
+    }
+
 }