book-meeting-room
Version:
## 项目简介
2 lines • 9.36 kB
JavaScript
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(r,e){var t,n=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),n.push.apply(n,t)),n}function _objectSpread(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(t),!0).forEach(function(e){_defineProperty(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,r){if("object"!=_typeof(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(e);t=t.call(e,r||"default");if("object"!=_typeof(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}function _createForOfIteratorHelper(e,r){var t,n,o,i,a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(a)return o=!(n=!0),{s:function(){a=a.call(e)},n:function(){var e=a.next();return n=e.done,e},e:function(e){o=!0,t=e},f:function(){try{n||null==a.return||a.return()}finally{if(o)throw t}}};if(Array.isArray(e)||(a=_unsupportedIterableToArray(e))||r&&e&&"number"==typeof e.length)return a&&(e=a),i=0,{s:r=function(){},n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){var t;if(e)return"string"==typeof e?_arrayLikeToArray(e,r):"Map"===(t="Object"===(t={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function _regenerator(){var l,e="function"==typeof Symbol?Symbol:{},r=e.iterator||"@@iterator",t=e.toStringTag||"@@toStringTag";function n(e,r,t,n){var o,i,a,c,u,s,f,p,m,r=r&&r.prototype instanceof b?r:b,r=Object.create(r.prototype);return _regeneratorDefine2(r,"_invoke",(o=e,i=t,f=n||[],p=!1,m={p:s=0,n:0,v:l,a:y,f:y.bind(l,4),d:function(e,r){return a=e,c=0,u=l,m.n=r,g}},function(e,r,t){if(1<s)throw TypeError("Generator is already running");for(p&&1===r&&y(r,t),c=r,u=t;(_=c<2?l:u)||!p;){a||(c?c<3?(1<c&&(m.n=-1),y(c,u)):m.n=u:m.v=u);try{if(s=2,a){if(_=a[e=c?e:"next"]){if(!(_=_.call(a,u)))throw TypeError("iterator result is not an object");if(!_.done)return _;u=_.value,c<2&&(c=0)}else 1===c&&(_=a.return)&&_.call(a),c<2&&(u=TypeError("The iterator does not provide a '"+e+"' method"),c=1);a=l}else if((_=(p=m.n<0)?u:o.call(i,m))!==g)break}catch(e){a=l,c=1,u=e}finally{s=1}}return{value:_,done:p}}),!0),r;function y(e,r){for(c=e,u=r,_=0;!p&&s&&!t&&_<f.length;_++){var t,n=f[_],o=m.p,i=n[2];3<e?(t=i===r)&&(u=n[(c=n[4])?5:c=3],n[4]=n[5]=l):n[0]<=o&&((t=e<2&&o<n[1])?(c=0,m.v=r,m.n=n[1]):o<i&&(t=e<3||n[0]>r||i<r)&&(n[4]=e,n[5]=r,m.n=i,c=0))}if(t||1<e)return g;throw p=!0,r}}var g={};function b(){}function o(){}function i(){}var _=Object.getPrototypeOf,e=[][r]?_(_([][r]())):(_regeneratorDefine2(_={},r,function(){return this}),_),a=i.prototype=b.prototype=Object.create(e);function c(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,i):(e.__proto__=i,_regeneratorDefine2(e,t,"GeneratorFunction")),e.prototype=Object.create(a),e}return _regeneratorDefine2(a,"constructor",o.prototype=i),_regeneratorDefine2(i,"constructor",o),_regeneratorDefine2(i,t,o.displayName="GeneratorFunction"),_regeneratorDefine2(a),_regeneratorDefine2(a,t,"Generator"),_regeneratorDefine2(a,r,function(){return this}),_regeneratorDefine2(a,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:n,m:c}})()}function _regeneratorDefine2(e,r,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(_regeneratorDefine2=function(e,r,t,n){r?o?o(e,r,{value:t,enumerable:!n,configurable:!n,writable:!n}):e[r]=t:((n=function(r,t){_regeneratorDefine2(e,r,function(e){return this._invoke(r,t,e)})})("next",0),n("throw",1),n("return",2))})(e,r,t,n)}function asyncGeneratorStep(e,r,t,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void t(e)}c.done?r(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(c){return function(){var e=this,a=arguments;return new Promise(function(r,t){var n=c.apply(e,a);function o(e){asyncGeneratorStep(n,r,t,o,i,"next",e)}function i(e){asyncGeneratorStep(n,r,t,o,i,"throw",e)}o(void 0)})}}import MeetingRoomBookingSystem from"./meetingRoom.js";import inquirer from"inquirer";import dayjs from"dayjs";import chalk from"chalk";var bookingSystem=new MeetingRoomBookingSystem;function getBookingInfo(){return _getBookingInfo.apply(this,arguments)}function _getBookingInfo(){return(_getBookingInfo=_asyncToGenerator(_regenerator().m(function e(){var r,t,n,o,i,a,c,u,s;return _regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,inquirer.prompt([{type:"input",name:"subject",message:"请输入会议主题:"}]);case 1:if(r=e.v,r=r.subject,t=process.env.BOOKING_DATE,n=process.env.BOOKING_START_TIME,o=process.env.BOOKING_END_TIME,t){e.n=3;break}return i=dayjs(),a=Array.from({length:8},function(e,r){return i.add(r,"day").format("YYYY-MM-DD")}),e.n=2,inquirer.prompt([{type:"list",name:"meetingDate",message:"请选择会议日期:",choices:a}]);case 2:a=e.v,c=a.meetingDate,t=c;case 3:if(n){e.n=5;break}return c=Array.from({length:11},function(e,r){return"".concat((10+r).toString().padStart(2,"0"),":00")}),e.n=4,inquirer.prompt([{type:"list",name:"startTime",message:"请选择开始时间:",choices:c}]);case 4:u=e.v,u=u.startTime,n=u;case 5:if(o){e.n=7;break}return u=timeChoices.filter(function(e){return n<e}),e.n=6,inquirer.prompt([{type:"list",name:"endTime",message:"请选择结束时间:",choices:u}]);case 6:s=e.v,s=s.endTime,o=s;case 7:return e.a(2,{subject:r,meetingDate:t,startTime:n,endTime:o,bookingUser:process.env.BOOKING_USER,bookingUserName:process.env.BOOKING_USER_NAME,bookingUserMail:process.env.BOOKING_USER_MAIL,bookingUserDept:process.env.BOOKING_USER_DEPT,bookingUserMobile:process.env.BOOKING_USER_MOBILE,roomId:process.env.ROOM_ID,name:process.env.ROOM_NAME,remindMinute:15,participants:[]});case 8:throw e.p=8,new Error("获取预约信息失败");case 9:return e.a(2)}},e,null,[[0,8]])}))).apply(this,arguments)}function main(){return _main.apply(this,arguments)}function _main(){return(_main=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,i,r,a,c,u,s,f,p,m,y,l;return _regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,t=function(e,r,t,n){return!(r<=t||n<=e)},e.n=1,getBookingInfo();case 1:return n=e.v,e.n=2,bookingSystem.listMeetingRooms({meetingDate:n.meetingDate,cityId:+process.env.CITY_ID,employeeNo:process.env.BOOKING_USER});case 2:y=e.v,o=dayjs("".concat(n.meetingDate," ").concat(n.startTime),"YYYY-MM-DD HH:mm"),i=dayjs("".concat(n.meetingDate," ").concat(n.endTime),"YYYY-MM-DD HH:mm"),r=[],a=_createForOfIteratorHelper(y);try{for(a.s();!(c=a.n()).done;){u=_createForOfIteratorHelper(c.value.roomInfoList);try{for(u.s();!(s=u.n()).done;)(null==(p=s.value)||null==(f=p.roomBookingInfoList)?void 0:f.some(function(e){var r;return e.happenDate===n.meetingDate&&(r=dayjs("".concat(e.happenDate," ").concat(e.startTime),"YYYY-MM-DD HH:mm"),e=dayjs("".concat(e.happenDate," ").concat(e.endTime),"YYYY-MM-DD HH:mm"),t(o,i,r,e))}))||r.push(p)}catch(e){u.e(e)}finally{u.f()}}}catch(e){a.e(e)}finally{a.f()}if(0===r.length)return console.log(chalk.red("当前日期没有可预约的会议室")),console.log(chalk.red("请重新选择日期")),e.a(2,main());e.n=3;break;case 3:return e.n=4,inquirer.prompt([{type:"list",name:"room",message:"请选择要预约的会议室:",choices:r.map(function(e){return e.name})}]);case 4:return m=e.v,(y=r.find(function(e){return e.name===m.room}))||(console.log("未选择会议室"),process.exit(0)),n=_objectSpread(_objectSpread({},n),{},{roomId:y.id,name:y.name,cityBuildingFloorAreaName:y.cityBuildingFloorAreaName,capacity:y.capacity,devices:y.devices,roomBookingInfoList:y.roomBookingInfoList}),e.n=5,bookingSystem.bookMeetingRoom(n);case 5:return l=e.v,console.log("会议室预约成功!\n预约信息:\n会议主题:".concat(n.subject,"\n会议时间:").concat(n.meetingDate," ").concat(n.startTime,"-").concat(n.endTime,"\n会议室:").concat(n.name,"(").concat(n.cityBuildingFloorAreaName,")\n会议室容量:").concat(n.capacity,"人\n会议室设备:").concat(n.devices)),e.a(2,l);case 6:throw e.p=6,l=e.v,console.error("预约失败:".concat(l.message)),l;case 7:return e.a(2)}},e,null,[[0,6]])}))).apply(this,arguments)}main().catch(console.error);