From ab3b4221998766f171a7fece4ba9e97c80f06af5 Mon Sep 17 00:00:00 2001 From: 付智勇 <fuzhiyong@efangtec.com> Date: Thu, 24 Aug 2017 17:24:10 +0800 Subject: [PATCH] 1、鉴权完善 2、创建课堂 --- app.js | 6 ++++++ controller/meetingController.js | 42 +++++++++++++++++++++++++++++++++++++++++- controller/userController.js | 2 +- model/meetingModel.js | 1 - routes/meeting.js | 7 ++----- services/meetingService.js | 22 ++++++++++++++++++++++ services/userService.js | 2 +- util/tokenUtil.js | 8 +++++--- 8 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 services/meetingService.js diff --git a/app.js b/app.js index 3b31263..a26f18d 100644 --- a/app.js +++ b/app.js @@ -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 diff --git a/controller/meetingController.js b/controller/meetingController.js index a365fc3..520f8ea 100644 --- a/controller/meetingController.js +++ b/controller/meetingController.js @@ -1,6 +1,7 @@ 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; } } diff --git a/controller/userController.js b/controller/userController.js index 8d368b2..543817e 100644 --- a/controller/userController.js +++ b/controller/userController.js @@ -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位'); } diff --git a/model/meetingModel.js b/model/meetingModel.js index 9ff44c5..227bd4c 100644 --- a/model/meetingModel.js +++ b/model/meetingModel.js @@ -35,7 +35,6 @@ var user = sequelize.define('3m_meeting', { }, beginTime:{ type:Sequelize.DATE, - defaultValue:Sequelize.NOW, field: "begin_time" }, endTime:{ diff --git a/routes/meeting.js b/routes/meeting.js index ef4231a..742b507 100644 --- a/routes/meeting.js +++ b/routes/meeting.js @@ -1,6 +1,4 @@ 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); } }) diff --git a/services/meetingService.js b/services/meetingService.js new file mode 100644 index 0000000..f146526 --- /dev/null +++ b/services/meetingService.js @@ -0,0 +1,22 @@ +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 diff --git a/services/userService.js b/services/userService.js index bb5061c..508743f 100644 --- a/services/userService.js +++ b/services/userService.js @@ -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` diff --git a/util/tokenUtil.js b/util/tokenUtil.js index 3f46471..dc86122 100644 --- a/util/tokenUtil.js +++ b/util/tokenUtil.js @@ -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) } -- libgit2 0.24.0