付智勇

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

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