Commit f4809454 by zhangleyuan

feat:联调创建直播课的接口

parent 471a280f
/* /*
* @Author: wufan * @Author: wufan
* @Date: 2020-12-12 11:57:10 * @Date: 2020-12-12 11:57:10
* @LastEditors: wufan * @LastEditors: zhangleyuan
* @LastEditTime: 2020-12-14 18:05:23 * @LastEditTime: 2020-12-14 20:32:46
* @Description: Description * @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -14,5 +14,9 @@ export function fetchLecturerData(params: object) { ...@@ -14,5 +14,9 @@ export function fetchLecturerData(params: object) {
} }
export function fetchUserData(params: object) { export function fetchUserData(params: object) {
return Service.Hades("public/courseCloud/queryStudentVisitData", params); return Service.Hades("public/courseCloud/queryStudentVisitData", params);
} }
\ No newline at end of file
export function createLiveCloudCourse(params: object) {
return Service.Hades("public/courseCloud/createLiveCloudCourse", params);
}
/* /*
* @Author: wufan * @Author: wufan
* @Date: 2020-11-25 18:25:02 * @Date: 2020-11-25 18:25:02
* @LastEditors: wufan * @LastEditors: zhangleyuan
* @LastEditTime: 2020-12-14 18:08:07 * @LastEditTime: 2020-12-14 21:01:52
* @Description: Description * @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import { fetchLecturerData, fetchUserData } from '@/data-source/course/request-api'; import { fetchLecturerData, fetchUserData,createLiveCloudCourse} from '@/data-source/course/request-api';
export default class StoreService { export default class courseService {
// 获取讲师上课数据 // 获取讲师上课数据
static fetchLecturerData(params: any) { static fetchLecturerData(params: any) {
return fetchLecturerData(params); return fetchLecturerData(params);
...@@ -18,5 +18,7 @@ export default class StoreService { ...@@ -18,5 +18,7 @@ export default class StoreService {
static fetchUserData(params: any) { static fetchUserData(params: any) {
return fetchUserData(params); return fetchUserData(params);
} }
static createLiveCloudCourse(params: any) {
return createLiveCloudCourse(params);
}
} }
\ No newline at end of file
...@@ -18,8 +18,9 @@ import AddLiveClass from './components/AddLiveClass'; ...@@ -18,8 +18,9 @@ import AddLiveClass from './components/AddLiveClass';
import AddLiveIntro from './components/AddLiveIntro'; import AddLiveIntro from './components/AddLiveIntro';
import PreviewCourseModal from './modal/PreviewCourseModal'; import PreviewCourseModal from './modal/PreviewCourseModal';
import LackConsumeStudentModal from './modal/LackConsumeStudentModal'; import LackConsumeStudentModal from './modal/LackConsumeStudentModal';
import StoreService from "@/domains/store-domain/storeService"; import CourseService from "@/domains/course-domain/CourseService";
import moment from 'moment'; import moment from 'moment';
import User from '@/common/js/user';
import './AddLive.less'; import './AddLive.less';
...@@ -268,44 +269,14 @@ class AddLive extends React.Component { ...@@ -268,44 +269,14 @@ class AddLive extends React.Component {
} }
// 修改上课信息 // 修改上课信息
handleChangeClassInfo = (field, value, teacherList) => { handleChangeClassInfo = (field, value) => {
console.log("change-----",value);
const _value = value ? value.valueOf() : null; const _value = value ? value.valueOf() : null;
if (teacherList) { this.setState({
let selectedTeacher; addLiveClassInfo: {
if (field === 'teacherId') { ...this.state.addLiveClassInfo,
selectedTeacher = _.find(teacherList, item => item.teacherId === value) [field]: _value,
// 判断上课老师是否已经被选为了助教老师
const { addLiveClassInfo: { assistant } } = this.state;
if (selectedTeacher && assistant.includes(selectedTeacher.teacherId)) {
message.warning('上课老师和助教老师不能是同一个人');
return;
}
}
this.setState({
addLiveClassInfo: {
...this.state.addLiveClassInfo,
nickname: selectedTeacher ? selectedTeacher.teacherName: null,
[field]: _value,
}
});
} else {
if (field === 'assistant') {
// 判断助教老师是否已经被选为了上课老师
const { addLiveClassInfo: { teacherId } } = this.state;
if (_value && _value.includes(teacherId)) {
message.warning('上课老师和助教老师不能是同一个人');
return;
}
} }
this.setState({ });
addLiveClassInfo: {
...this.state.addLiveClassInfo,
[field]: _value,
}
});
}
// 批量开始时间改变,结束时间自动同步一致 // 批量开始时间改变,结束时间自动同步一致
if (field === 'startTime') { if (field === 'startTime') {
this.setState({ this.setState({
...@@ -355,7 +326,7 @@ class AddLive extends React.Component { ...@@ -355,7 +326,7 @@ class AddLive extends React.Component {
if (!res) return; if (!res) return;
const { type } = this.state; const { type } = this.state;
const { courseName, coverId, coverUrl } = addLiveBasicInfo; const { courseName, coverId, coverUrl,parentCatalogId} = addLiveBasicInfo;
const { const {
podium, podium,
liveType, liveType,
...@@ -374,7 +345,7 @@ class AddLive extends React.Component { ...@@ -374,7 +345,7 @@ class AddLive extends React.Component {
let { startTime, endTime } = addLiveClassInfo; let { startTime, endTime } = addLiveClassInfo;
const { liveCourseMediaRequests, needRecord, liveCourseWarmMedia, isAutoSendReport} = addLiveIntroInfo; const { liveCourseMediaRequests, needRecord, liveCourseWarmMedia, isAutoSendReport} = addLiveIntroInfo;
if(window.NewVersion && type === 'add') { if(type === 'add') {
startTime = startTime; startTime = startTime;
endTime = endTime; endTime = endTime;
} else { } else {
...@@ -387,42 +358,37 @@ class AddLive extends React.Component { ...@@ -387,42 +358,37 @@ class AddLive extends React.Component {
} }
const commonParams = { const commonParams = {
coverId, adminIds:['1338412893361590273'],
startTime, calendarTime,
categoryId:parentCatalogId,
endTime, endTime,
teacherId,
liveType,
consumeHourNum,
consumeClassTime,
adminIds: assistant,
courseName: courseName.trim(),
studentIds: _.pluck(studentList, "studentId"),
consumeStudentIds: consumeStudentList,
liveCourseMediaRequests: liveCourseMediaRequests.filter(item => { return !!item.mediaContent; }),
needRecord, needRecord,
liveCourseWarmMedia, operatorId:User.getUserId(),
applyMode, startTime,
autoSendReport: isAutoSendReport ? "AUTO":"OFF_AUTO", storeId:User.getUserId(),
calendarTime courseName: courseName.trim(),
storeId:User.getStoreId(),
teacherId:'1338461876914020353',
} }
if (type === 'add') { if (type === 'add') {
const params = { const params = {
coverUrl,
...commonParams, ...commonParams,
} }
if(params.liveCourseWarmMedia && !params.liveCourseWarmMedia.mediaUrl) { // if(params.liveCourseWarmMedia && !params.liveCourseWarmMedia.mediaUrl) {
delete params.liveCourseWarmMedia // delete params.liveCourseWarmMedia
} // }
axios.Apollo("public/businessLive/createCourse", params).then((res) => {
if (!res) return; CourseService.createLiveCloudCourse(params).then((res) => {
message.success("新建成功"); // if (!res) return;
localStorage.setItem('largeLiveCourseItem', JSON.stringify({ // message.success("新建成功");
...params, // localStorage.setItem('largeLiveCourseItem', JSON.stringify({
liveCourseId: res.result // ...params,
})); // liveCourseId: res.result
// }));
window.RCHistory.goBack();
// window.RCHistory.goBack();
}); });
} else { } else {
const params = { const params = {
...commonParams, ...commonParams,
...@@ -527,37 +493,38 @@ class AddLive extends React.Component { ...@@ -527,37 +493,38 @@ class AddLive extends React.Component {
} }
} }
} }
resolve(true)
// if(consumeClassTime > (endTime - startTime) / 60000) { // if(consumeClassTime > (endTime - startTime) / 60000) {
// message.warning('到课规则时长不能超过排课时长'); // message.warning('到课规则时长不能超过排课时长');
// resolve(false); // resolve(false);
// return; // return;
// } // }
if(!teacherId) { // if(!teacherId) {
message.warning('上课老师不能为空'); // message.warning('上课老师不能为空');
resolve(false); // resolve(false);
return; // return;
} else if(!applyMode) { // } else if(!applyMode) {
message.warning('请选择分享设置'); // message.warning('请选择分享设置');
resolve(false); // resolve(false);
return; // return;
} else { // } else {
const textIntro = liveCourseMediaRequests.filter(item => { return item.mediaType === 'TEXT'; }); // const textIntro = liveCourseMediaRequests.filter(item => { return item.mediaType === 'TEXT'; });
for (let i = 0, len = textIntro.length; i < len; i++) { // for (let i = 0, len = textIntro.length; i < len; i++) {
if (textIntro[i].mediaContent && textIntro[i].mediaContentLength.length > 1000) { // if (textIntro[i].mediaContent && textIntro[i].mediaContentLength.length > 1000) {
message.warning(`第${i+1}个文字简介的字数超过了1000个字`); // message.warning(`第${i+1}个文字简介的字数超过了1000个字`);
resolve(false); // resolve(false);
return; // return;
} // }
} // }
} // }
if(window.NewVersion && type === 'add') { // if(window.NewVersion && type === 'add') {
this.handleValidateLackConsumeModal(consumeHourNum, calendarTime, consumeStudentList).then(res => { // this.handleValidateLackConsumeModal(consumeHourNum, calendarTime, consumeStudentList).then(res => {
resolve(res) // resolve(res)
}) // })
} else { // } else {
resolve(true); // resolve(true);
} // }
}); });
} }
......
...@@ -19,9 +19,10 @@ import MultipleDatePicker from '@/components/MultipleDatePicker'; ...@@ -19,9 +19,10 @@ import MultipleDatePicker from '@/components/MultipleDatePicker';
import moment from 'moment'; import moment from 'moment';
import './AddLiveClass.less'; import './AddLiveClass.less';
const defaultQuery = { const defaultTeacherQuery = {
size: 10, size: 10,
current: 1, current: 1,
nickName:null
} }
class AddLiveClass extends React.Component { class AddLiveClass extends React.Component {
constructor(props) { constructor(props) {
...@@ -29,7 +30,7 @@ class AddLiveClass extends React.Component { ...@@ -29,7 +30,7 @@ class AddLiveClass extends React.Component {
this.state = { this.state = {
loading: false, loading: false,
hasNext: false, hasNext: false,
teacherQuery: defaultQuery, teacherQuery: defaultTeacherQuery,
teacherList:[], teacherList:[],
assistantList: [], // 助教老师列表 assistantList: [], // 助教老师列表
addLiveType: props.addLiveType addLiveType: props.addLiveType
...@@ -41,30 +42,20 @@ class AddLiveClass extends React.Component { ...@@ -41,30 +42,20 @@ class AddLiveClass extends React.Component {
this.getAssistantList(); this.getAssistantList();
} }
getTeacherList(current = 1, selectList){ getTeacherList(current = 1, selectList){
const { teacherQuery,} = this.state; const { teacherQuery,teacherList} = this.state;
const idList = selectList ? selectList : [];
const _query = { const _query = {
...teacherQuery, ...teacherQuery,
current, current,
idList, size:10
size: idList.length <= 10 ? 10 : idList.length + 10
}; };
StoreService.getEmployeeList( _query).then((res) => { StoreService.getEmployeeList( _query).then((res) => {
// const { result = {} } = res; const { result = {} } = res;
// const { records = [], total = 0, hasNext } = result; const { records = [], total = 0, hasNext } = result;
// const list = current > 1 ? assistantList.concat(records) : records; const list = current > 1 ? teacherList.concat(records) : records;
// const _assistantList = _.uniq( this.setState({
// selectedAssistant.concat( hasNext,
// _.reject(list, (item) => item.id === teacherId) teacherList: list,
// ), })
// false,
// (item) => item.id
// );
// this.setState({
// hasNext,
// assistantList: list,
// _assistantList: _assistantList
// })
}); });
} }
// 获取助教老师列表 // 获取助教老师列表
...@@ -133,6 +124,8 @@ class AddLiveClass extends React.Component { ...@@ -133,6 +124,8 @@ class AddLiveClass extends React.Component {
render() { render() {
const { const {
loading, loading,
teacherList,
teacherQuery
} = this.state; } = this.state;
// pageType: 页面类型:add->新建、edit->编辑 // pageType: 页面类型:add->新建、edit->编辑
...@@ -140,13 +133,14 @@ class AddLiveClass extends React.Component { ...@@ -140,13 +133,14 @@ class AddLiveClass extends React.Component {
// data:表单数据 // data:表单数据
// selectedAssistant: 已经选择的助教 // selectedAssistant: 已经选择的助教
const { pageType, liveScene, data, selectedAssistant, isXiaomai, isEdit, after } = this.props; const { pageType, liveScene, data, selectedAssistant, isXiaomai,isEdit, after} = this.props;
const { const {
endTime, endTime,
startTime, startTime,
studentList, studentList,
consumeStudentList, consumeStudentList,
calendarTime calendarTime,
} = data; } = data;
// 已选择的上课学员数量(不扣课时) // 已选择的上课学员数量(不扣课时)
const hasSelectedStu = studentList.length; const hasSelectedStu = studentList.length;
...@@ -214,13 +208,25 @@ class AddLiveClass extends React.Component { ...@@ -214,13 +208,25 @@ class AddLiveClass extends React.Component {
placeholder="请选择讲师" placeholder="请选择讲师"
style={{ width: 240, marginTop: 6 }} style={{ width: 240, marginTop: 6 }}
filterOption={(input, option) => option} filterOption={(input, option) => option}
onSearch={(value) => { // onPopupScroll={this.handleScroll}
onChange={(value) => {
this.props.onChange('teacherId', value)
}} }}
onBlur={() => { onSearch={(value) => {
teacherQuery.nickName = value
this.setState({
teacherQuery
}, () => {
this.getAssistantList()
})
}} }}
></Select> >
{_.map(teacherList, (item, index) => {
return (
<Select.Option value={item.id} key={item.id}>{item.nickName}</Select.Option>
);
})}
</Select>
</div> </div>
<div className="assistant-teacher"> <div className="assistant-teacher">
<span className="label">助教:</span> <span className="label">助教:</span>
...@@ -231,6 +237,7 @@ class AddLiveClass extends React.Component { ...@@ -231,6 +237,7 @@ class AddLiveClass extends React.Component {
style={{ width: 240, marginTop: 6 }} style={{ width: 240, marginTop: 6 }}
filterOption={(input, option) => option} filterOption={(input, option) => option}
> >
</Select> </Select>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment