var studentMeeting = require('../model/studentMeetingModel'); var userModel = require('../model/userModel'); var status = require('../util/resTemplate'); var saitMd5 = require('../util/saltMD5'); var sequelize = require('../config'); var tokenUtil = require('../util/tokenUtil'); var meetingModel = require('../model/meetingModel'); var co = require('co'); function studentMeetingService(){ } studentMeetingService.prototype.addStudentMeeting = async(body)=>{ try { var t = await sequelize.transaction({ autocommit: true }) let user = await userModel.findOne({where:{id:body.studentId}}); if(!user){ t.rollback(); return {code:300,msg:'用户不存在'} } let oldSutudentMeeting = await studentMeeting.findOne({where:{studentId:body.studentId,meetingId:body.meetingId}}); if(oldSutudentMeeting){ t.rollback(); console var error = {code:300,msg:''} if(body.status == 7){ error.msg = '您已收藏这堂课' }else{ error.msg = '您已预约这堂课' } return error } let Meeting = await meetingModel.findOne({where:{id:body.meetingId}}); if(!Meeting){ t.rollback(); return {code:300,msg:'课堂不存在'} } let sm = await studentMeeting.create(body,{transaction: t}); // let MeetingBack = await meetingModel.update( // {reservationNumber:Meeting.reservationNumber+1}, // {where:{id:body.meetingId}}, // {transaction: t}); t.commit(); return sm; } catch (error) { t.rollback(); throw error; } } studentMeetingService.prototype.getStudentMeetingCount = async(meetingId) =>{ try { let sm = await studentMeeting.count({where:{meetingId:meetingId}}) return sm; } catch (error) { console.log(error) throw error; } } studentMeetingService.prototype.queryStudentMeeting = async(teacherName,page=1,pageno=8)=>{ try { let querySql = `SELECT 3u.*, 3meet.meeting_name, 3meet.create_user teacherName FROM 3m_student_meeting 3sm LEFT JOIN 3m_user 3u ON 3u.id = 3sm.student_id LEFT JOIN 3m_meeting 3meet ON 3meet.id = 3sm.meeting_id WHERE 3meet.create_user = '` +teacherName+"'";; querySql += ' ORDER BY 3sm.create_time DESC LIMIT '+(page-1)*pageno+' , ' +pageno let sm = await sequelize.query(querySql); return sm[0]; } catch (error) { console.log(error) throw error; } } studentMeetingService.prototype.getStudentMeetingBySite = async(siteId,page=1,pageno=8)=>{ try { let querySql = `SELECT 3u.*, 3meet.meeting_name, 3meet.meeting_status meetingStatus, 3meet.id meetingId, 3meet.create_user teacherName, 3meet.meeting_number meetingNumber, 3meet.begin_time meetingBeginTime, 3meet.end_time meetingEndTime, 3sm. STATUS studentMeetingStatus, 3u2.user_name checkUserName, 3sm.check_time check_time, 3sm.id studentMeetingId, (SELECT 3m_attachment.path FROM 3m_user LEFT JOIN 3m_attachment ON 3m_attachment.business_id = 3m_user.id WHERE 3m_user.login_name = 3meet.create_user) teacherPhoto, ( SELECT path FROM 3m_attachment WHERE 3m_attachment.business_id = 3meet.id and 3m_attachment.category = 1 ) meetingPhoto FROM 3m_student_meeting 3sm LEFT JOIN 3m_user 3u ON 3u.id = 3sm.student_id LEFT JOIN 3m_user 3u2 ON 3u2.id = 3sm.check_user_id LEFT JOIN 3m_meeting 3meet ON 3meet.id = 3sm.meeting_id WHERE 3sm.site_id = '` +siteId+"'";; querySql += ' AND 3sm.status != 5 ORDER BY 3sm.create_time DESC LIMIT '+(page-1)*pageno+' , ' +pageno let count = await studentMeeting.count({where:{siteId:siteId,status:{$ne: 5}}}) let sm = await sequelize.query(querySql); return {studentMeeting:sm[0],count:count,page:page,pageno:pageno}; //return sm[0]; } catch (error) { throw error; } } studentMeetingService.prototype.updateStudentMeetingBySite = async(id,data) =>{ try { let studentMeetingS = await studentMeeting.update(data,{where:{id:id}}); return studentMeetingS; } catch (error) { throw error; } } studentMeetingService.prototype.delStudentMeetingBySite = async(id,siteId) =>{ try { console.log(siteId) let s = await studentMeeting.find({where:{meetingId:id,siteId:siteId}}); if(!s){ throw new Error('数据不存在') } let studentMeetingS = await studentMeeting.destroy({where:{meetingId:id,siteId:siteId}}); return studentMeetingS; } catch (error) { throw error; } } studentMeetingService.prototype.getStudentMeetingByStudentId = async(id,page=1,pageno=8,body) =>{ try { let querySql = `SELECT 3u.*, 3meet.meeting_name, 3meet.meeting_status meetingStatus, 3meet.id meetingId, 3meet.create_user teacherName, 3meet.meeting_number meetingNumber, 3meet.begin_time meetingBeginTime, 3meet.end_time meetingEndTime, 3sm. STATUS studentMeetingStatus, 3u2.user_name checkUserName, 3sm.check_time check_time, 3sm.id studentMeetingId, (SELECT 3m_attachment.path FROM 3m_user LEFT JOIN 3m_attachment ON 3m_attachment.business_id = 3m_user.id WHERE 3m_user.login_name = 3meet.create_user) teacherPhoto, ( SELECT path FROM 3m_attachment WHERE 3m_attachment.business_id = 3meet.id and 3m_attachment.category = 1 ) meetingPhoto FROM 3m_student_meeting 3sm LEFT JOIN 3m_user 3u ON 3u.id = 3sm.student_id LEFT JOIN 3m_user 3u2 ON 3u2.id = 3sm.check_user_id LEFT JOIN 3m_meeting 3meet ON 3meet.id = 3sm.meeting_id WHERE 3sm.student_id = '` +id+"'";; if(body.status){ querySql += ' and 3sm.status = ' + body.status } querySql += ' AND 3sm.status != 5 ORDER BY 3sm.create_time DESC LIMIT '+(page-1)*pageno+' , ' +pageno let sm = await sequelize.query(querySql); return sm[0]; } catch (error) { throw error } } studentMeetingService.prototype.isAppointment = async(body)=>{ try { let Appointment = await studentMeeting.findAll({where:body}); return Appointment; } catch (error) { throw error; } } module.exports = new studentMeetingService();