瀏覽代碼

Merge remote-tracking branch 'origin/feature/0529-live' into feature/0529-live

zouxuan 2 年之前
父節點
當前提交
010706720f

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java

@@ -73,6 +73,22 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     @ApiModelProperty("购物车标题")
     private String shoppingTitle;
 
+    @ApiModelProperty("直播间类型")
+    private String groupType;
+
+    @ApiModelProperty("声部")
+    private String subjectId;
+
+    public ImLiveBroadcastRoomDto groupType(String groupType) {
+        this.groupType = groupType;
+        return this;
+    }
+
+    public ImLiveBroadcastRoomDto subjectId(String subjectId) {
+        this.subjectId = subjectId;
+        return this;
+    }
+
     @ApiModel(value = "房间配置")
     public static class RoomConfig implements Serializable {
 
@@ -251,5 +267,23 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     public void setShoppingTitle(String shoppingTitle) {
         this.shoppingTitle = shoppingTitle;
     }
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+
 }
 

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

@@ -215,6 +215,9 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty("全员静音")
 	private Boolean muteAll;
 
+	@ApiModelProperty("授课直播间编号")
+	private String liveRoomId;
+
 	public Boolean getSettlementReportFlag() {
 		return settlementReportFlag;
 	}
@@ -696,6 +699,14 @@ public class CourseSchedule  extends BaseEntity{
 		return type;
 	}
 
+	public String getLiveRoomId() {
+		return liveRoomId;
+	}
+
+	public void setLiveRoomId(String liveRoomId) {
+		this.liveRoomId = liveRoomId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -135,6 +135,9 @@ public class VipGroup extends BaseEntity {
 	@ApiModelProperty(value = "指定学员列表")
 	private String studentIdList;
 
+	@ApiModelProperty("直播间配置信息")
+	private String liveConfigJson;
+
 	private Integer educationalTeacherId;
 
 	private String educationalTeacherName;
@@ -511,4 +514,12 @@ public class VipGroup extends BaseEntity {
 	public void setGroupType(String groupType) {
 		this.groupType = groupType;
 	}
+
+	public String getLiveConfigJson() {
+		return liveConfigJson;
+	}
+
+	public void setLiveConfigJson(String liveConfigJson) {
+		this.liveConfigJson = liveConfigJson;
+	}
 }

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -2195,8 +2195,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 return;
             }
             try {
+
                 // 判断是否有正在直播的房间
-                List<ImLiveBroadcastRoom> list = this.lambdaQuery()
+                /*List<ImLiveBroadcastRoom> list = this.lambdaQuery()
                                                      .eq(ImLiveBroadcastRoom::getSpeakerId, room.getSpeakerId())
                                                      .eq(ImLiveBroadcastRoom::getLiveState, 1)
                                                      .eq(ImLiveBroadcastRoom::getRoomState, 0)
@@ -2215,9 +2216,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                     throw new BizException("当前用户没有待直播的房间");
                 } else if (!one.getRoomUid().equals(room.getRoomUid())) {
                     throw new BizException("当前用户存在更早的待直播的房间");
-                }
-
-
+                }*/
 
                 //去融云创建房间
                 LivePluginService pluginService = livePluginContext.getPluginService(room.getServiceProvider());

+ 22 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -13,6 +13,7 @@ import java.util.stream.Collectors;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -59,30 +60,6 @@ import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesCycleDao;
 import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
 import com.ym.mec.biz.dal.dao.VipGroupStudentCoursePriceDao;
-import com.ym.mec.biz.dal.dto.ActivityUserDto;
-import com.ym.mec.biz.dal.dto.BaseMapDto;
-import com.ym.mec.biz.dal.dto.GroupUserDto;
-import com.ym.mec.biz.dal.dto.ReturnFeeDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.StudentCourseInfoDto;
-import com.ym.mec.biz.dal.dto.StudentRecoverInfoDto;
-import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
-import com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto;
-import com.ym.mec.biz.dal.dto.TeacherBasicDto;
-import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
-import com.ym.mec.biz.dal.dto.VipBuyResultDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
-import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
-import com.ym.mec.biz.dal.dto.VipGroupClassGroupMapper;
-import com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto;
-import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
-import com.ym.mec.biz.dal.dto.VipGroupPayInfoDto;
-import com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo;
-import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
-import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
-import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementTypeDto;
-import com.ym.mec.biz.dal.dto.VipGroupStudentDto;
 import com.ym.mec.biz.dal.entity.ActivityUserMapper;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
@@ -354,10 +331,29 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
         // LIVE课参数校验
         if (CourseSchedule.CourseScheduleType.LIVE.getCode().equals(groupType)) {
-            // TODO: 2020/3/18 LIVE课参数校验
+
+            ImLiveBroadcastRoomDto liveRoom = vipGroup.getLiveBroadcastRoom();
+            if (Objects.isNull(liveRoom) || Objects.isNull(liveRoom.getRoomConfig())) {
+                throw new BizException("直播间参数错误");
+            }
+
+            if (StringUtils.isAnyBlank(liveRoom.getRoomTitle(), liveRoom.getLiveRemark(), liveRoom.getOs())
+                    || Objects.isNull(liveRoom.getUseScene())) {
+                throw new BizException("直播间参数错误");
+            }
+
+            // 设置默认参数
+            liveRoom.groupType(vipGroup.getVipGroupApplyBaseInfo().getGroupType())
+                    .subjectId(vipGroup.getVipGroupApplyBaseInfo().getSubjectIdList())
+                    .setTenantId(TenantContextHolder.getTenantId());
+
+            vipGroup.getVipGroupApplyBaseInfo().setLiveConfigJson(JSON.toJSONString(liveRoom));
         }
 
-        List<String> studentNames = studentDao.getStudentNames(canBuyStudentIds);
+        List<String> studentNames = Lists.newArrayList();
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(canBuyStudentIds)) {
+            studentNames = studentDao.getStudentNames(canBuyStudentIds);
+        }
 
         //生成vip课信息
         List<String> bySubIds = subjectDao.findBySubIds(vipGroupApplyBaseInfoDto.getSubjectIdList());

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

@@ -241,12 +241,13 @@
          update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,
          name_,organ_id_list_,vip_group_activity_id_,group_status_,online_classes_unit_price_,offline_classes_unit_price_,
          total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,memo_,audit_status_,courses_start_date,
-         course_schedules_json_,student_id_list_,tenant_id_, group_type_)
+         course_schedules_json_,student_id_list_,tenant_id_, group_type_, live_config_json_)
         VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},
                #{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},
                #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},
                #{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{memo},
-               #{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList},#{tenantId}, #{groupType})
+               #{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList},#{tenantId},
+               #{groupType}, #{liveConfigJson})
     </insert>
 
     <!-- 根据主键查询一条记录 -->