Browse Source

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

zouxuan 5 years ago
parent
commit
b70bd7add5

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

@@ -36,6 +36,15 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     List<StudentAttendance> findByCourseId(@Param("courseId") Long courseId);
 
     /**
+     * @describe 获取课程的学生签到记录
+     * @author Joburgess
+     * @date 2020/2/20
+     * @param courseIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentAttendance>
+     */
+    List<StudentAttendance> findByCourseIds(@Param("courseIds") List<Long> courseIds);
+
+    /**
      * @describe 根据课程删除对应的点名记录
      * @author Joburgess
      * @date 2019/10/21

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -64,6 +64,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
     @Autowired
     private VipGroupCategoryDao vipGroupCategoryDao;
+    @Autowired
+    private StudentAttendanceDao studentAttendanceDao;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(CourseScheduleTeacherSalaryServiceImpl.class);
@@ -181,7 +183,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void teacherSalarySettlement() {
-
         int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_APPEAL_DAYS_RANGE).getParanValue());
 
         BigDecimal percent = new BigDecimal(10);
@@ -195,6 +196,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Date now = new Date();
         //获取未结算课程编号列表
         List<Long> courseScheduleIds = someDayAgoTeacherCourseSalaryNoSettlement.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
+
+        //所有课程的学生考勤记录
+        List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseIds(courseScheduleIds);
+        Map<Long, List<StudentAttendance>> courseStudentAttendancesMap = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getCourseScheduleId));
+
         //获取未结算课程投诉记录
         List<CourseScheduleComplaints> courseScheduleComplaints = courseScheduleComplaintsDao.findByCourseScheduleIds(courseScheduleIds);
         //获取未结算课程学生缴费信息
@@ -215,6 +221,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
         //处理课酬信息
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
+
             //获取当前课程学生缴费记录
             List<CourseScheduleStudentPayment> studentPaymentsWithCourse = studentPaymentGroupByCourse.get(courseScheduleTeacherSalary.getCourseScheduleId());
 
@@ -222,6 +229,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 return;
             }
 
+            List<StudentAttendance> courseStudentAttendances = courseStudentAttendancesMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
+            int normalStudentNum=0;
+            for (StudentAttendance courseStudentAttendance : courseStudentAttendances) {
+                if(courseStudentAttendance.getStatus().equals(StudentAttendanceStatusEnum.NORMAL)){
+                    normalStudentNum+=1;
+                }
+            }
+            if(normalStudentNum==0){
+                return;
+            }
+
             //当前课程缴费学生数量
             BigDecimal courseStudentNum = new BigDecimal(studentPaymentsWithCourse.size());
 

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

@@ -469,4 +469,10 @@
     <select id="findByCourseId" resultMap="StudentAttendance">
         SELECT * FROM student_attendance WHERE course_schedule_id_=#{courseId}
     </select>
+    <select id="findByCourseIds" resultMap="StudentAttendance">
+        SELECT * FROM student_attendance WHERE course_schedule_id_ IN
+        <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+            #{courseId}
+        </foreach>
+    </select>
 </mapper>