yonge 5 years ago
parent
commit
09a8da7070

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -334,4 +334,11 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @return
 	 */
 	List<Long> querySettlementScheduleId(String courseScheduleIds);
+	
+	/**
+	 * 获取所有线上课
+	 * @param groupType
+	 * @return
+	 */
+	List<CourseScheduleTeacherSalary> queryOnlineCourseByGroupType(GroupType groupType);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -335,4 +335,10 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
      * @return
      */
     List<Map<Integer,String>> queryUserVipStatus(@Param("userIds") Set<Integer> userIds);
+    
+    /**
+     * 临时用
+     * @return
+     */
+    List<VipCourseStudentInfoDto> queryVipCourseStudentInfo();
 }

+ 19 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -24,6 +24,7 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -2729,8 +2730,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Override
 	public boolean updateHistoryTeacherSalaryOfOnline() {
-		//查询所有含有线上课的课程组,线上课节数,实付金额
+		// 查询所有含有线上课的课程组,线上课节数,实付金额
+		List<VipCourseStudentInfoDto> list = vipGroupDao.queryVipCourseStudentInfo();
+		Map<Long, VipCourseStudentInfoDto> map = list.stream().collect(Collectors.toMap(VipCourseStudentInfoDto::getMusicGroupId, e -> e));
+
+		VipCourseStudentInfoDto dto = null;
+		// 查询需要修改的课酬记录
+		List<CourseScheduleTeacherSalary> teacherSalaryList = courseScheduleTeacherSalaryDao.queryOnlineCourseByGroupType(GroupType.VIP);
+		for (CourseScheduleTeacherSalary ts : teacherSalaryList) {
+			dto = map.get(ts.getCourseScheduleId());
+			if (dto != null) {
+				ts.setExpectSalary(dto.getTotalAmount().divide(new BigDecimal((dto.getTotalCourseTimes() / dto.getStudentNum()))));
+			}
+		}
 		
-		return false;
+		if(teacherSalaryList.size() > 0){
+			courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(teacherSalaryList);
+		}
+
+		return true;
 	}
 }

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

@@ -602,4 +602,9 @@
 		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'PRACTICE' AND ts.settlement_time_ IS NOT NULL
 		GROUP BY ts.id_,ta.id_
 	</select>
+	
+	<select id="queryOnlineCourseByGroupType" resultMap="CourseScheduleTeacherSalary">
+		SELECT csts.*  FROM `course_schedule_teacher_salary` csts LEFT JOIN `course_schedule` cs on csts.`course_schedule_id_` = cs.`id_` 
+		WHERE cs.`group_type_` = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.`teach_mode_` = 'ONLINE'
+	</select>
 </mapper>

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -71,6 +71,13 @@
         <result property="courseStatus" column="course_status_"/>
     </resultMap>
 
+    <resultMap id="vipCourseStudentInfoDto" type="com.ym.mec.biz.dal.dto.VipCourseStudentInfoDto">
+        <result property="totalAmount" column="total_amount_"/>
+        <result property="studentNum" column="student_num_"/>
+        <result property="musicGroupId" column="music_group_id_"/>
+        <result property="totalCourseTimes" column="total_times_"/>
+    </resultMap>
+
     <resultMap id="vipGroupManageDetailDto" type="com.ym.mec.biz.dal.dto.VipGroupManageDetailDto" extends="VipGroup">
         <result property="studentNum" column="student_num_"/>
         <result property="subjectIdList" column="subject_id_list_"/>
@@ -912,4 +919,11 @@
         </foreach>
         GROUP BY cgsm.user_id_
     </select>
+    
+    <select id="queryVipCourseStudentInfo" resultMap="vipCourseStudentInfoDto">
+        SELECT cssp.music_group_id_,sum(cssp.expect_price_) total_amount_,count(DISTINCT(cssp.user_id_)) student_num_,count(cssp.id_) total_times_   
+		FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs on cs.id_ = cssp.course_schedule_id_
+		WHERE cs.group_type_ = 'VIP' and cs.teach_mode_ = 'ONLINE'
+		GROUP BY cssp.music_group_id_
+    </select>
 </mapper>