Browse Source

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

liujunchi 3 years ago
parent
commit
3050d9f601

+ 27 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -1155,7 +1155,33 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 
     @Override
     public IPage<CourseGroupPianoDetailVo> selectPianoGroupTeacherDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search) {
-        return baseMapper.selectPianoGroupTeacherDetail(page,search);
+        if (search.getStudentSign() != null) {
+            List<StudentSignVo> list = studentSign(null, CourseScheduleEnum.PIANO_ROOM_CLASS.getCode());
+            List<Long> collect=new ArrayList<>();
+            if (search.getStudentSign() == 0) {//异常学生
+                collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) != 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
+            }
+            if (search.getStudentSign() == 1) {//正常学生
+                collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) == 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
+            }
+            collect.add(Long.valueOf(-1));
+            search.setCourseIds(collect);
+        }
+
+        IPage<CourseGroupPianoDetailVo> detailPage = baseMapper.selectPianoGroupTeacherDetail(page, search);
+        List<CourseGroupPianoDetailVo> records = detailPage.getRecords();
+
+        for (CourseGroupPianoDetailVo record : records) {
+            List<StudentSignVo> studentSigns = studentSign(record.getCourseId(), null);
+            for (StudentSignVo studentSign : studentSigns) {
+                if ((studentSign.getStudentInSign() + studentSign.getStudentOutSign()) == 2) {//签到正常
+                    record.setStudentSign(1);
+                } else {//签到异常
+                    record.setStudentSign(0);
+                }
+            }
+        }
+        return detailPage;
     }
 }
 

+ 7 - 7
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -909,9 +909,6 @@
         su.real_name_ AS studentRealName,
         (CASE WHEN cs.start_time_ &gt;= ta.sign_in_time_ THEN 1 ELSE 0 END) AS teacherInSign,
         (CASE WHEN cs.end_time_ &lt;= ta.sign_out_time_ THEN 1 ELSE 0 END) AS teacherOutSign,
-        (CASE WHEN cs.start_time_ &gt;= sa.sign_in_time_ THEN 1 ELSE 0 END) AS studentInSign,
-        (CASE WHEN cs.end_time_ &lt;= sa.sign_out_time_ THEN 1 ELSE 0 END) AS studentOutSign,
-        (CASE WHEN cs.start_time_ &gt;= sa.sign_in_time_ AND cs.end_time_ &lt;= sa.sign_out_time_ THEN 1 ELSE 0 END) AS studentSign,
         (CASE WHEN cs.start_time_ &gt;= ta.sign_in_time_ AND cs.end_time_ &lt;= ta.sign_out_time_ THEN 1 ELSE 0 END) AS teacherSign
         FROM course_schedule cs
         LEFT JOIN course_group cg ON cs.course_group_id_ = cg.id_
@@ -924,7 +921,13 @@
         LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
         WHERE cs.type_='PIANO_ROOM_CLASS'
         AND cs.teacher_id_=#{param.teacherId}
-        AND p.course_group_id_=#{param.courseGroupId}) m
+        AND p.course_group_id_=#{param.courseGroupId}
+        <if test="param.studentSign != null">
+            AND cs.id_ IN
+            <foreach collection="param.courseIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>) m
         <where>
             <if test="param.search != null and param.search != ''">
                 AND (
@@ -933,9 +936,6 @@
                 studentId LIKE concat('%',#{param.search},'%')
                 )
             </if>
-            <if test="param.studentSign != null">
-                AND studentSign = #{param.studentSign}
-            </if>
             <if test="param.teacherSign != null">
                 AND teacherSign = #{param.teacherSign}
             </if>