付智勇

1、鉴权完善 2、创建课堂

... ... @@ -10,6 +10,7 @@ const cors = require('koa-cors');
const index = require('./routes/index')
const users = require('./routes/users')
const meeting = require('./routes/meeting')
const filterUrl = require(__dirname+'/util/filterUrl')
var tokenUtil = require('./util/tokenUtil');
const _ = require('lodash');
... ... @@ -41,6 +42,9 @@ app.use(async (ctx, next) => {
status.catchError(ctx,400,'请登录');
}else{
let isToken = await tokenUtil.prverifySession(ctx.header.token);
ctx.request.userID = isToken.id;
ctx.request.userName = isToken.userName;
ctx.request.userRole = isToken.userRole;
await next();
}
const ms = new Date() - start;
... ... @@ -53,5 +57,7 @@ app.use(async (ctx, next) => {
// routes
app.use(index.routes(), index.allowedMethods())
app.use(users.routes(), users.allowedMethods())
app.use(meeting.routes(), meeting.allowedMethods())
module.exports = app
... ...
var userModel = require('../model/userModel');
var saitMd5 = require('../util/saltMD5')
var status = require('../util/resTemplate')
const meetingService = require('../services/meetingService')
const uuid = require('../util/UuidUtil')
... ... @@ -11,8 +12,47 @@ const uuid = require('../util/UuidUtil')
meetingController.prototype.createMeeting = async(ctx,next)=>{
try {
let meetingbody = ctx.request.body;
if(!meetingbody.presenterPassword){
return status.paramError('meetingName');
}else if(!meetingbody.meetingName){
return status.paramError('meetingName','不能为空');
}
let num = JSON.stringify(Math.floor(Math.random() * 99999) + 1000)
let meeting = {
meetingNumber:num, //课堂序号
meetingName:meetingbody.meetingName, //课堂名字
meetingContent:meetingbody.meetingContent, //课堂描述
create_user:ctx.request.userName, //创建用户名
presenterPassword:meetingbody.presenterPassword, //主讲人密码
beginTime:new Date(meetingbody.beginTime), //开始时间
endTime:new Date(meetingbody.endTime), // 结束时间
isPublic:meetingbody.isPublic, //是否公开课
repeatmode:meetingbody.repeatmode, //是否重复周期
meetingType:meetingbody.meetingType, //课堂类型
h5Module:meetingbody.h5Module, // 是否支持H5
attendeePassword:meetingbody.attendeePassword, //学生密码
videoModule:meetingbody.videoModule, //视频是否启用
chatInterval:meetingbody.chatInterval, //聊天延时时间
aheadTime:meetingbody.aheadTime, // 提前进入课堂时间
maxVideoChannels:meetingbody.maxVideoChannels, //最大视频路数
max_audioChannels:meetingbody.max_audioChannels, // 最大音频路数
video_quality:meetingbody.video_quality, //视频画质
pagenaviUserprivilege:meetingbody.pagenaviUserprivilege, //换页权限是否开启
markerUserprivilege:meetingbody.markerUserprivilege, // 批注权限是否开启
chatToNormalUserprivilege:meetingbody.chatToNormalUserprivilege, //与参会者聊天权限是否开启
chatToHostUserprivilege:meetingbody.chatToHostUserprivilege, //与主持人聊天权限是否开启
docModule:meetingbody.docModule, //文档共享是否开启
screenModule:meetingbody.screenModule, //屏幕共享是否开启
mediaModule:meetingbody.mediaModule, //媒体共享是否开启
whiteboardModule:meetingbody.whiteboardModule, //白板共享是否开启
recordModule:meetingbody.recordModule, //录制是否启用
chatModule:meetingbody.chatModule, //聊天模式是否启用
}
let backMeeting = await meetingService.createMeeting(meeting);
return backMeeting;
} catch (error) {
throw error;
}
}
... ...
... ... @@ -25,7 +25,7 @@ userController.prototype.addUser = async(ctx, next) =>{
return status.paramError('loginName');
}else if(!params.password){
return status.paramError('password','不能为空');
}if(params.password.length < 6){
}else if(params.password.length < 6){
return status.paramError('password','不得小于6位');
}
... ...
... ... @@ -35,7 +35,6 @@ var user = sequelize.define('3m_meeting', {
},
beginTime:{
type:Sequelize.DATE,
defaultValue:Sequelize.NOW,
field: "begin_time"
},
endTime:{
... ...
const router = require('koa-router')()
var userModel = require('../model/userModel');
var saitMd5 = require('../util/saltMD5')
var meetingContoller = require('../controller/meetingController')
var status = require('../util/resTemplate')
... ... @@ -11,10 +9,9 @@ router.prefix('/meeting')
router.post('/createMeeting', async (ctx, next) => {
try{
var data = await meetingContoller.createMeeting(ctx, next);
status.successTemp(200,data);
status.successTemp(ctx,200,data);
}catch(e){
const err = {code:0,msg:e.message}
status.catchError(400,e.message);
status.catchError(ctx,400,e.message);
}
})
... ...
var meetingModel = require('../model/meetingModel');
var status = require('../util/resTemplate');
var saitMd5 = require('../util/saltMD5');
var sequelize = require('../config');
var tokenUtil = require('../util/tokenUtil');
var co = require('co');
function meetingService(){
}
meetingService.prototype.createMeeting = async(meetingInfo) =>{
try {
let backMeeting = meetingModel.create(meetingInfo);
return backMeeting
} catch (error) {
throw error
}
}
module.exports = new meetingService();
\ No newline at end of file
... ...
... ... @@ -46,7 +46,7 @@ userService.prototype.login = async(name,pw) => {
userService.prototype.getStu = async(type)=>{
try {
let sql = `SELECT
u.*, ug.name
u.*, ug.name groupName
FROM
3m_user u
LEFT JOIN 3m_user_group ug ON ug.id = u.group_id`
... ...
... ... @@ -15,11 +15,12 @@ module.exports = new JwtSession() ;
* @param cb
*/
JwtSession.prototype.getSession = (users) =>{
var expiresIn = 60 * 60 * 2;
console.log(users)
var expiresIn = 60 * 60 * 1000;
var payload = {};
payload.id = users.id;
payload.name = users.loginName;
payload.code =users.userType;
payload.name = users.userName;
payload.userRole =users.userRole;
var options = {
"expiresIn": expiresIn
};
... ... @@ -39,6 +40,7 @@ JwtSession.prototype.getSession = (users) =>{
JwtSession.prototype.prverifySession = async(token) => {
try {
let back =jwt.verify(token, '3mang');
return back;
} catch (error) {
throw new Error(error)
}
... ...