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

Merge remote-tracking branch 'origin/master'

周箭河 5 лет назад
Родитель
Сommit
159f96fbb9

+ 20 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -194,5 +194,24 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	List<TeacherSalaryDto> querySalaries(Map<String, Object> params);
 
-	List<CourseScheduleTeacherSalary> findCourseScheduleTeacherSalaryByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("groupType") GroupType groupType);
+	List<CourseScheduleTeacherSalary> findCourseScheduleTeacherSalaryByMusicGroupId(@Param("musicGroupId") String musicGroupId,
+																					@Param("groupType") GroupType groupType);
+
+	/**
+	 * @describe 判断指定课程是否已经结算
+	 * @author Joburgess
+	 * @date 2019/12/5
+	 * @param courseScheduleId: 课程编号
+	 * @return boolean
+	 */
+	int checkCourseIsSettlement(@Param("courseScheduleId") Integer courseScheduleId);
+
+	/**
+	 * @describe 检测给定的课程是否都已经结算
+	 * @author Joburgess
+	 * @date 2019/12/5
+	 * @param courseScheduleIds: 课程编号列表
+	 * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+	 */
+	List<Map<Integer,Integer>> checkCoursesIsSettlement(@Param("courseScheduleIds") List<Integer> courseScheduleIds);
 }

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

@@ -127,6 +127,16 @@ public class CourseSchedule {
 
 	private String classGroupName;
 
+	private Integer isSettlement;
+
+	public Integer getIsSettlement() {
+		return isSettlement;
+	}
+
+	public void setIsSettlement(Integer isSettlement) {
+		this.isSettlement = isSettlement;
+	}
+
 	public String getSchoolName() {
 		return schoolName;
 	}

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

@@ -1371,9 +1371,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		int count=dataList.size();
 		if(count>0){
-			pageInfo.setTotal(count);
-			dataList=dataList.stream().skip(pageInfo.getOffset()).limit(pageInfo.getLimit()).collect(Collectors.toList());
-		}
+            pageInfo.setTotal(count);
+            if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
+                dataList=dataList.stream().skip(pageInfo.getOffset()).limit(pageInfo.getLimit()).collect(Collectors.toList());
+                dataList.forEach(courseSchedule -> {
+                    courseSchedule.setIsSettlement(0);
+                });
+            }else{
+                List<Integer> courseScheduleIds = dataList.stream()
+                        .map(courseSchedule -> courseSchedule.getId().intValue())
+                        .distinct().collect(Collectors.toList());
+                List<Map<Integer, Integer>> courseSettlementMaps = courseScheduleTeacherSalaryDao.checkCoursesIsSettlement(courseScheduleIds);
+                Map<Integer, Integer> courseSettlementMap = MapUtil.convertMybatisMap(courseSettlementMaps);
+                dataList.forEach(courseSchedule -> {
+                    Integer isSettlement = courseSettlementMap.get(courseSchedule.getId());
+                    if(Objects.isNull(isSettlement)||isSettlement<=0){
+                        courseSchedule.setIsSettlement(0);
+                    }else{
+                        courseSchedule.setIsSettlement(1);
+                    }
+                });
+            }
+        }
 		pageInfo.setRows(dataList);
 		Map<String,Object> result=new HashMap<>();
 		result.put("pageInfo",pageInfo);

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -356,4 +356,27 @@
 		GROUP BY
 			course_schedule_id_
 	</select>
+	<select id="checkCourseIsSettlement" resultType="int">
+		SELECT
+			COUNT(*)
+		FROM
+			course_schedule_teacher_salary
+		WHERE
+			course_schedule_id_ = #{courseScheduleId}
+			AND settlement_time_ IS NOT NULL
+	</select>
+	<select id="checkCoursesIsSettlement" resultType="java.util.Map">
+		SELECT
+			course_schedule_id_ AS 'key',
+			COUNT(*) AS 'value'
+		FROM
+			course_schedule_teacher_salary
+		WHERE
+			settlement_time_ IS NOT NULL
+			AND course_schedule_id_ IN
+			<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+				#{courseScheduleId}
+			</foreach>
+		GROUP BY course_schedule_id_
+	</select>
 </mapper>