瀏覽代碼

课后评价

zouxuan 3 年之前
父節點
當前提交
bcf585e64a
共有 17 個文件被更改,包括 457 次插入55 次删除
  1. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  3. 93 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EvaluateCourseDto.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceDto.java
  5. 55 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentStandardDto.java
  6. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java
  8. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java
  9. 39 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EvaluateCourseQueryInfo.java
  10. 19 4
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  11. 40 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  13. 13 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  14. 70 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 1 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  16. 9 2
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  17. 28 11
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

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

@@ -1872,4 +1872,40 @@ 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);
 }

+ 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);
 }

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

@@ -0,0 +1,93 @@
+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;
+
+    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;
+    }
+}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceDto.java

@@ -25,8 +25,19 @@ public class StudentAttendanceDto {
 
     private String deviceNum;
 
+    @ApiModelProperty(value = "学员学习是否达标")
+    private List<StudentStandardDto> studentStandardDtos;
+
     private List<StudentAttendance> studentAttendances;
 
+    public List<StudentStandardDto> getStudentStandardDtos() {
+        return studentStandardDtos;
+    }
+
+    public void setStudentStandardDtos(List<StudentStandardDto> studentStandardDtos) {
+        this.studentStandardDtos = studentStandardDtos;
+    }
+
     public String getDeviceNum() {
         return deviceNum;
     }

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

@@ -0,0 +1,55 @@
+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;
+
+    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;
+    }
+}

+ 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;
 	}

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

@@ -58,6 +58,17 @@ public class CourseScheduleStudentPayment extends BaseEntity implements Comparab
 
 	private Boolean beMerged;
 
+	//是否达标1是0否
+	private Integer qualifiedFlag = 1;
+
+	public Integer getQualifiedFlag() {
+		return qualifiedFlag;
+	}
+
+	public void setQualifiedFlag(Integer qualifiedFlag) {
+		this.qualifiedFlag = qualifiedFlag;
+	}
+
 	public Boolean getBeMerged() {
 		return beMerged;
 	}

+ 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;
 	}

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

@@ -0,0 +1,39 @@
+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;
+
+    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;
+    }
+}

+ 19 - 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,22 @@ 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);
 }

+ 40 - 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,42 @@ 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;
+    }
 }

+ 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;
     }
 

+ 13 - 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,17 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		return teacherAttendanceDao;
 	}
 
+	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);
+		}
+	}
+
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	@Override
 	public Map<String, Object> addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto) {
@@ -142,6 +146,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(tomorrow.before(courseSchedule.getStartClassTime())){
 			throw new BizException("明天的课程不能进行签到");
 		}
+		//处理学员学习标准是否达标
+
 
 		School school = schoolDao.get(courseSchedule.getSchoolId());
 

+ 70 - 1
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>
 
     <!-- 根据主键查询一条记录 -->
@@ -3912,4 +3914,71 @@
             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_"/>
+    </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_,
+               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 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(cssp.user_id_)
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN student_attendance sa ON sa.user_id_ = cssp.user_id_ AND sa.course_schedule_id_ = cssp.course_schedule_id_
+        WHERE sa.id_ IS NOT NULL AND cssp.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_"/>
+    </resultMap>
+    <select id="queryStudyStandard" resultMap="StudentStandardDto">
+        SELECT su.avatar_,su.username_,cssp.user_id_,sb.name_ subject_name_,cssp.qualified_flag_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN student_attendance sa ON sa.user_id_ = cssp.user_id_ AND sa.course_schedule_id_ = cssp.course_schedule_id_
+        LEFT JOIN student s ON s.user_id_ = cssp.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 cssp.course_schedule_id_ = #{courseScheduleId}
+        <include refid="global.limit"/>
+    </select>
 </mapper>

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

@@ -22,6 +22,7 @@
 		<result column="batch_no_" property="batchNo"/>
 		<result column="be_merged_" property="beMerged"/>
 		<result column="tenant_id_" property="tenantId" />
+		<result column="qualified_flag_" property="qualifiedFlag" />
 	</resultMap>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.StudentCourseTimesDto" id="studentCourseTimesDto">

+ 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">

+ 28 - 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,29 @@ public class TeacherCourseScheduleController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "课程评价列表")
+    @PostMapping("/courseEvaluateList")
+    @AuditLogAnnotation(operateName = "课程评价列表")
+    public HttpResponseResult courseEvaluateList(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));
+    }
+
 }