Jelajahi Sumber

Merge branch 'saas' into feature/0731-bugfix

zouxuan 1 tahun lalu
induk
melakukan
18f8419cb4
19 mengubah file dengan 103 tambahan dan 124 penghapusan
  1. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupCategoryDao.java
  3. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportCourseIncomeDto.java
  4. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java
  5. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExportCourseIncomeQueryInfo.java
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  7. 1 4
      mec-biz/src/main/java/com/ym/mec/biz/service/IndexBaseMonthDataService.java
  8. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  9. 6 84
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  10. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  11. 0 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OperatingReportNewServiceImpl.java
  12. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java
  13. 9 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  14. 3 6
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  15. 3 3
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  16. 13 2
      mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml
  17. 6 4
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  18. 8 5
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java
  19. 4 0
      mec-web/src/main/resources/exportColumnMapper.ini

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

@@ -2088,4 +2088,6 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                     @Param("teacherId") Integer teacherId);
 
     CourseSchedule findByRoomUid(@Param("roomUid") String roomUid, @Param("type") GroupType type);
+
+    List<ExportCourseIncomeDto> exportCourseIncome(@Param("month") String month);
 }

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupCategoryDao.java

@@ -10,7 +10,9 @@ import java.util.Set;
 
 public interface VipGroupCategoryDao extends BaseDAO<Integer, VipGroupCategory> {
 
-    List<VipGroupCategory> findAllByOrgan(@Param("organId") String organId, @Param("groupType") String groupType);
+    List<VipGroupCategory> findAllByOrgan1(@Param("organId") String organId, @Param("groupType") String groupType);
+
+    List<VipGroupCategory> findAllByOrgan(@Param("groupType") String groupType);
 
     List<VipGroupCategory> findTeacherDefaultSalary(Integer userId);
 

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportCourseIncomeDto.java

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.dal.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ExportCourseIncomeDto {
+    private String organName;
+
+    private Long courseId;
+
+    private BigDecimal amount = BigDecimal.ZERO;
+}

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java

@@ -91,6 +91,7 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     EXPORT_OA_SUMMARY_EXPENSES("EXPORT_OA_SUMMARY_EXPENSES","oa费用汇总"),
     EXPORT_OA_SUMMARY_EXPENSES_DETAIL("EXPORT_OA_SUMMARY_EXPENSES_DETAIL","oa费用明细"),
     EXPORT_OPERATING_SUMMARY_INCOME("EXPORT_OPERATING_SUMMARY_INCOME","经营报表收入汇总"),
+    EXPORT_COURSE_INCOME("EXPORT_COURSE_INCOME","课程收入明细导出"),
     ;
 
     private String code;

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExportCourseIncomeQueryInfo.java

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.page;
+
+import lombok.Data;
+
+@Data
+public class ExportCourseIncomeQueryInfo{
+
+    private String date;
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -855,4 +855,6 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	* @date 2023/6/15 14:47
 	*/
 	void sendChatRoomMessage(List<CourseSchedule> courseSchedules);
+
+    List<ExportCourseIncomeDto> exportCourseIncome(String month);
 }

+ 1 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/IndexBaseMonthDataService.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.DecimalMapDto;
-import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
-import com.ym.mec.biz.dal.dto.IndexBaseDto;
-import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
 import com.ym.mec.biz.dal.enums.IndexDataType;

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -6200,7 +6200,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		executor.shutdown();*/
 	}
 
-	@Override
+    @Override
+    public List<ExportCourseIncomeDto> exportCourseIncome(String month) {
+        return courseScheduleDao.exportCourseIncome(month);
+    }
+
+    @Override
     public List<CourseScheduleStudentDto> queryDetailList(CourseDetailQueryInfo courseDetailQueryInfo) {
 
 

+ 6 - 84
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -929,92 +929,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //乐团课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportMusicTeacherSalary(params));
         //vip课
+        params.put("groupType","VIP");
         List<ExportTeacherSalaryDto> exportVipTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
-        //获取有奖励的vip课
-        /*List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(month);
-        Map<Integer,Double> rewardMap = new HashMap<>(1000);
-        Map<Integer,String> rewardNameMap = new HashMap<>(1000);
-        if(rewardsRulesDtos != null && rewardsRulesDtos.size() > 0){
-            List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
-            List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
-            Map<Integer, List<CourseScheduleRewardsRules>> integerListMap = rewardsRules.stream().collect(Collectors.groupingBy(CourseScheduleRewardsRules::getId));
-            rewardsRulesDtos.forEach(e->{
-                CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
-                List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
-                BigDecimal money = BigDecimal.ZERO;
-                //STAIR 阶梯, PER 累计, TOTAL
-                RewardsRulesJsonDto dto;
-                int times = e.getTimes();
-                switch (rewardsRule.getRewardMode()) {
-                    case STAIR:
-                        for (int i = 0;i< rulesJsonDtos.size();i++){
-                            dto = rulesJsonDtos.get(i);
-                            if (e.getTimes() >= dto.getMin()) {
-                                //最后一个梯度
-                                if(rulesJsonDtos.size()-1 == i){
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
-                                }else if(e.getTimes() >= dto.getMax()){
-                                    times = Math.abs(dto.getMax() - times);
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(dto.getMax()-dto.getMin()+1)));
-                                }else {
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
-                                }
-                            }
-                        }
-                        break;
-                    case PER:
-                        for (int i = 0;i< rulesJsonDtos.size();i++){
-                            dto = rulesJsonDtos.get(i);
-                            if (e.getTimes() >= dto.getMin()) {
-                                money = dto.getMoney().multiply(new BigDecimal(times));
-                            }
-                        }
-                        break;
-                    case TOTAL:
-                        break;
-                }
-                if (money.doubleValue() > 0) {
-                    String[] split = e.getCourseScheduleIds().split(",");
-                    switch (rewardsRule.getRewardMode()) {
-                        case STAIR:
-                            List<String> list = new ArrayList(Arrays.asList(split));
-                            Collections.sort(list);
-                            int fromIndex = 0;
-                            List<String> subList;
-                            int max = 0;
-                            for (RewardsRulesJsonDto rulesJsonDto:rulesJsonDtos) {
-                                if(list.size() < fromIndex){
-                                    break;
-                                }
-                                max = rulesJsonDto.getMax();
-                                if(list.size() < rulesJsonDto.getMax()){
-                                    max = list.size();
-                                }
-                                subList = list.subList(fromIndex,max);
-                                fromIndex = rulesJsonDto.getMax();
-                                if(subList != null && subList.size() > 0){
-                                    subList.forEach(courseId->{
-                                        rewardMap.put(Integer.parseInt(courseId),rulesJsonDto.getMoney().doubleValue());
-                                        rewardNameMap.put(Integer.parseInt(courseId),e.getActiveName());
-                                    });
-                                }
-                            }
-                            break;
-                        case PER:
-                            for (int i = 0; i < split.length; i++) {
-                                rewardMap.put(Integer.parseInt(split[i]),money.doubleValue()/split.length);
-                                rewardNameMap.put(Integer.parseInt(split[i]),e.getActiveName());
-                            }
-                            break;
-                    }
-                }
-            });
-        }
-        exportVipTeacherSalaryDtos.forEach(e->{
-            e.setRewards(rewardMap.get(e.getCourseScheduleId()));
-            e.setActiveName(rewardNameMap.get(e.getCourseScheduleId()));
-        });*/
+        params.put("groupType","LIVE");
+        List<ExportTeacherSalaryDto> exportLiveTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
         exportTeacherSalaryDtos.addAll(exportVipTeacherSalaryDtos);
+        if(!CollectionUtils.isEmpty(exportLiveTeacherSalaryDtos)){
+            exportTeacherSalaryDtos.addAll(exportLiveTeacherSalaryDtos);
+        }
         //vip课(梯度课酬)
         //陪练课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportPracticeTeacherSalary(params));

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -350,6 +350,7 @@ public class ExportServiceImpl implements ExportService {
         exportFuncMap.put(ExportEnum.EXPORT_STUDENT_SERVE_INFO, (info) -> exportStudentServeInfo(info));
         exportFuncMap.put(ExportEnum.EXPORT_OPERATING_REPORT_NEW, (info) -> exportOperatingNew(info));
         exportFuncMap.put(ExportEnum.EXPORT_INDEX_COOP, (info) -> exportIndexCoop(info));
+        exportFuncMap.put(ExportEnum.EXPORT_COURSE_INCOME, (info) -> exportCourseIncome(getQueryInfo(info, ExportCourseIncomeQueryInfo.class, false)));
 
 
         //导出到报表中心
@@ -453,6 +454,10 @@ public class ExportServiceImpl implements ExportService {
         return indexService.indexCoop(organId,startTime,endTime);
     }
 
+    private List<ExportCourseIncomeDto> exportCourseIncome(ExportCourseIncomeQueryInfo queryInfo){
+        return courseScheduleService.exportCourseIncome(queryInfo.getDate());
+    }
+
 
     //导出对账单
     @Override

+ 0 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OperatingReportNewServiceImpl.java

@@ -72,19 +72,6 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 		paramMap.put("month",currentMonth);
 		List<OperatingTotalIncomeDto> incomeDtos = studentPaymentOrderService.queryOperatingSummaryIncome(paramMap);
 		Map<Integer, OperatingTotalIncomeDto> incomeDtoMap = incomeDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
-		//服务收入
-/*		//导入的服务收入  (全部记录为课程收入)
-		Map<Integer, BigDecimal> collect24 = MapUtil.convertIntegerMap(operatingReportNewDao.sumImportServerOrderAmount(currentMonth));
-		//付费课程实际收入
-		Map<Integer, BigDecimal> collect2 = MapUtil.convertIntegerMap(operatingReportNewDao.sumCourseAmount(firstDayOfMonth,lastDayOfMonth,currentYear));
-		//个人云教练当月收入
-		Map<Integer, BigDecimal> collect3 = MapUtil.convertIntegerMap(operatingReportNewDao.sumPersonalCloudAmount(currentMonth,firstDayOfMonth,lastDayOfMonth));
-		//团体云教练费用
-		Map<Integer, BigDecimal> collect4 = MapUtil.convertIntegerMap(operatingReportNewDao.sumGroupCloudAmount(currentMonth,firstDayOfMonth,lastDayOfMonth));
-		//团体云教练当月一次性结转
-		Map<Integer, BigDecimal> collect5 = MapUtil.convertIntegerMap(operatingReportNewDao.sumGroupAmount(currentMonth));
-		//乐保实收
-		Map<Integer, BigDecimal> collect26 = MapUtil.convertIntegerMap(operatingReportNewDao.sumMaintenanceAmount(currentMonth));*/
 
 		//业务退费
 		Map<Integer, BigDecimal> collect6 = MapUtil.convertIntegerMap(operatingReportNewDao.sumRefundAmount(currentMonth));

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java

@@ -2,11 +2,14 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
 import com.ym.mec.biz.dal.dto.ConditionDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -26,7 +29,11 @@ public class VipGroupCategoryServiceImpl extends BaseServiceImpl<Integer, VipGro
 
 	@Override
 	public List<VipGroupCategory> findAllByOrgan(String organId, String groupType) {
-		return vipGroupCategoryDao.findAllByOrgan(organId, groupType);
+		if (CourseSchedule.CourseScheduleType.LIVE.getCode().equalsIgnoreCase(groupType) || StringUtils.isNotEmpty(organId)) {
+			return vipGroupCategoryDao.findAllByOrgan1(organId, groupType);
+		}else {
+			return vipGroupCategoryDao.findAllByOrgan(groupType);
+		}
 	}
 
 	@Override

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -4495,4 +4495,13 @@
     <select id="findByRoomUid"  resultMap="CourseSchedule">
         select * from course_schedule where live_room_id_ = #{roomUid} and group_type_ = #{type.name}
     </select>
+    <select id="exportCourseIncome" resultType="com.ym.mec.biz.dal.dto.ExportCourseIncomeDto">
+        select o.name_ organName,cs.id_ courseId,SUM(cssp.actual_price_) amount from course_schedule cs
+        left join course_schedule_student_payment cssp ON cs.id_ = cssp.course_schedule_id_
+        left join organization o ON o.id_ = cs.organ_id_
+        where DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cssp.actual_price_ > 0
+          AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0
+          AND cs.tenant_id_ = 1
+        group by cs.id_ order by cs.organ_id_;
+    </select>
 </mapper>

+ 3 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -1112,13 +1112,10 @@
         group by cssp.user_id_ , u.organ_id_
 	</select>
     <select id="statCourseFee" resultType="java.util.Map">
-		select cs.organ_id_ 'key',SUM(cssp.actual_price_) 'value' from course_schedule cs
-		left join course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
-		left join course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
-		LEFT JOIN teacher t ON t.id_ = csts.user_id_
+		select cs.organ_id_ 'key',SUM(cssp.actual_price_) 'value' from course_schedule_student_payment cssp
+		left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
 		where cs.class_date_ BETWEEN #{cutFirstDayOfMonth} AND #{cutLastDayOfMonth} AND cssp.actual_price_ > 0
-		AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0 AND t.is_settlement_salary_ = 1
-		AND csts.settlement_time_ IS NOT NULL AND cs.tenant_id_ = 1
+		AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0 AND cs.tenant_id_ = 1
 		group by cs.organ_id_
 	</select>
 

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

@@ -759,7 +759,7 @@
 		u.real_name_ teacherName,o.name_ teacherOrganName,cs.music_group_id_ group_id_,
 		CASE WHEN cs.teach_mode_ = 'OFFLINE' THEN '线下' WHEN cs.teach_mode_ = 'ONLINE' THEN '线上' END teach_mode_,
 		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
-		'vip课' courseScheduleType,
+		CASE WHEN #{groupType} = 'LIVE' THEN '直播课' ELSE 'VIP课' END courseScheduleType,
 		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
 		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
 		ts.actual_salary_ price,vga.name_ vip_active_name_,vgc.name_ vip_category_name_,
@@ -781,12 +781,12 @@
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
 		LEFT JOIN `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_`
-		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = 'VIP')
+		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = #{groupType})
 		LEFT JOIN vip_group_activity vga ON vg.vip_group_activity_id_ = vga.id_
 		LEFT JOIN organization vgo ON vgo.id_ = cs.organ_id_
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		WHERE vg.organ_id_ != 41 AND DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0
-		AND cs.group_type_ = 'VIP' AND ts.settlement_time_ IS NOT NULL
+		AND cs.group_type_ = #{groupType} AND ts.settlement_time_ IS NOT NULL
 		AND t.is_settlement_salary_ = 1 and ts.tenant_id_ = #{tenantId}
 		<if test="courseTypeList != null">
 			and cs.type_ in (#{courseTypeList})

+ 13 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml

@@ -32,14 +32,25 @@
 		ORDER BY id_
 	</select>
 
-	<select id="findAllByOrgan" resultMap="VipGroupCategory">
+	<select id="findAllByOrgan1" resultMap="VipGroupCategory">
 		SELECT
 		    vgc.*
 		    , vgdcup.online_classes_unit_price_
 		    , vgdcup.offline_classes_unit_price_
 			, vgdcup.id_ AS unit_price_id_
 		FROM vip_group_category vgc
-		LEFT JOIN vip_group_default_classes_unit_price_ vgdcup ON vgc.id_=vgdcup.vip_group_category_id_ <if test="organId != null"> AND FIND_IN_SET(vgdcup.organ_id_,#{organId})</if>
+		LEFT JOIN vip_group_default_classes_unit_price_ vgdcup ON vgc.id_ = vgdcup.vip_group_category_id_ <if test="organId != null"> AND FIND_IN_SET(vgdcup.organ_id_,#{organId})</if>
+		WHERE vgc.del_flag_ != 1
+		<if test="groupType != null">
+			AND vgc.group_type_ = #{groupType}
+		</if>
+		ORDER BY vgc.id_
+	</select>
+
+	<select id="findAllByOrgan" resultMap="VipGroupCategory">
+		SELECT
+		    vgc.*
+		FROM vip_group_category vgc
 		WHERE vgc.del_flag_ != 1
 		<if test="groupType != null">
 			AND vgc.group_type_ = #{groupType}

+ 6 - 4
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -532,7 +532,7 @@ public class RoomServiceImpl implements RoomService {
             userResult.setHandUpOn(false);
             userResult.setJoinTime(curTime);
             if (Optional.ofNullable(joinRoom).orElse(true)) {
-                saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, microphone);
+                member = saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime, microphone);
             }
         } else {
             roleEnum = RoleEnum.getEnumByValue(member.getRole());
@@ -575,9 +575,11 @@ public class RoomServiceImpl implements RoomService {
             if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomResult.getServiceProvider())) {
 
                 // 网络教室人员信息
-                RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-                // 发送消息
-                sendDisplayMessage(display, roomMember);
+//                RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+                if (Objects.nonNull(member)) {
+                    // 发送消息
+                    sendDisplayMessage(display, member);
+                }
             }
         } else {
             ExamSongDownloadData examSongDownloadData;

+ 8 - 5
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java

@@ -3,6 +3,8 @@ package com.ym.mec.web.controller;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
+import com.ym.mec.biz.service.EmployeeService;
+import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.biz.service.VipGroupDefaultClassesUnitPriceService;
 import com.ym.mec.common.controller.BaseController;
@@ -30,6 +32,8 @@ import java.util.stream.Collectors;
 public class VipGroupCategoryController extends BaseController {
 
 	@Autowired
+	private OrganizationService organizationService;
+	@Autowired
 	private VipGroupCategoryService vipGroupCategoryService;
 	@Autowired
 	private VipGroupDefaultClassesUnitPriceService vipGroupDefaultClassesUnitPriceService;
@@ -47,15 +51,14 @@ public class VipGroupCategoryController extends BaseController {
 			@ApiImplicitParam(name = "groupType", value = "课程类型", dataType = "String", paramType = "query", defaultValue = "VIP"),
 
 	})
+
 	@GetMapping(value = "/queryAll")
     @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/queryAll')")
-	public Object queryAll(String organId, @RequestParam(defaultValue = "VIP") String groupType) {
-
+	public Object queryAll(String organId,@RequestParam(defaultValue = "VIP") String groupType) {
 		// 直播课强制转换为
-		if (CourseSchedule.CourseScheduleType.LIVE.getCode().equals(groupType)) {
-			organId = String.valueOf(TenantContextHolder.getTenantId());
+		if (CourseSchedule.CourseScheduleType.LIVE.getCode().equalsIgnoreCase(groupType)) {
+			organId = organizationService.getEmployeeOrgan(null);
 		}
-
 		return succeed(vipGroupCategoryService.findAllByOrgan(organId, groupType));
 	}
 

+ 4 - 0
mec-web/src/main/resources/exportColumnMapper.ini

@@ -353,3 +353,7 @@ fieldColumns = ["organName","batchNo","cooperationOrganName","applyUser","feePro
 [经营报表收入汇总]
 headColumns = ["城市","学生指导费课耗收入","承担课程云教练收入","学校课程采买课耗收入","考级","维修费用","乐保费用","其他服务收入","不承担课程云教练收入","团购乐器","团购教辅","大件乐器","其他","服务收入","销售收入"]
 fieldColumns = ["organName","studentGuidanceIncome","cloudCoachIncome","coursePurchaseIncome","examIncome","maintenanceCost","instrumentInsuranceCost","otherServiceIncome","saleCloudCoachIncome","groupPurchaseInstruments","groupPurchaseTeachingAids","largeInstruments","otherIncome","serviceIncome","salesIncome"]
+
+[课程收入明细导出]
+headColumns = ["分部","课程编号","课程收入"]
+fieldColumns = ["organName","courseId","amount"]