|
@@ -24,58 +24,6 @@ module.exports = app => {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 校验规则
|
|
|
- *
|
|
|
- * @return {Object} - 返回校验规则
|
|
|
- */
|
|
|
- rule() {
|
|
|
- return {
|
|
|
- maintain_time: { type: 'string', required: true, allowEmpty: false },
|
|
|
- duration: { type: 'string', required: true, allowEmpty: false, min: 1 },
|
|
|
- msg: { type: 'string', required: false, allowEmpty: true },
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- async stop(id = 1) {
|
|
|
- const data = {};
|
|
|
- data.id = id;
|
|
|
- data.status = maintainConst.status.notset;
|
|
|
- data.maintain_time = '';
|
|
|
- const operate = await this.db.update(this.tableName, data);
|
|
|
-
|
|
|
- return operate.affectedRows > 0;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 保存数据
|
|
|
- *
|
|
|
- * @param {Object} data - post过来的数据
|
|
|
- * @param {Number} id - 用于判断修改还是新增的id
|
|
|
- * @return {boolean} - 操作结果
|
|
|
- */
|
|
|
- async save(data = {}, id = 1) {
|
|
|
- delete data._csrf;
|
|
|
- data.maintain_time = Date.parse(data.maintain_time);
|
|
|
- let status = maintainConst.status.notset;
|
|
|
- const thisTime = new Date().getTime();
|
|
|
- if (data.maintain_time) {
|
|
|
- const endtime = data.maintain_time + await this.durationAddTime(data.duration);
|
|
|
- if (endtime <= thisTime) {
|
|
|
- throw '维护时间必须大于或等于当前时间';
|
|
|
- } else if (data.maintain_time > thisTime) {
|
|
|
- status = maintainConst.status.unstart;
|
|
|
- } else if (data.maintain_time <= thisTime && endtime > thisTime) {
|
|
|
- status = maintainConst.status.ongoing;
|
|
|
- }
|
|
|
- }
|
|
|
- data.id = id;
|
|
|
- data.status = status;
|
|
|
- const operate = await this.db.update(this.tableName, data);
|
|
|
-
|
|
|
- return operate.affectedRows > 0;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
* 同步系统设置消息
|
|
|
* @param id
|
|
|
* @returns {Promise<boolean>}
|
|
@@ -88,9 +36,9 @@ module.exports = app => {
|
|
|
const thisTime = new Date().getTime();
|
|
|
if (maintainData.maintain_time !== '') {
|
|
|
maintainData.maintain_time = parseFloat(maintainData.maintain_time);
|
|
|
- if (maintainData.status === maintainConst.status.unstart && maintainData.maintain_time <= thisTime && maintainData.duration === maintainConst.duration.forever) {
|
|
|
+ if (maintainData.status !== maintainConst.status.notset && maintainData.maintain_time <= thisTime && maintainData.duration === maintainConst.duration.forever) {
|
|
|
status = maintainConst.status.ongoing;
|
|
|
- } else if (maintainData.status !== maintainConst.status.notset && maintainData.duration !== maintainConst.duration.forever) {
|
|
|
+ } else if (maintainData.status !== maintainConst.status.notset) {
|
|
|
const mttime = maintainData.maintain_time + await this.durationAddTime(maintainData.duration);
|
|
|
if (maintainData.maintain_time > thisTime) {
|
|
|
status = maintainConst.status.unstart;
|
|
@@ -110,6 +58,11 @@ module.exports = app => {
|
|
|
}
|
|
|
const operate = this.db.update(this.tableName, data);
|
|
|
|
|
|
+ if (status === maintainConst.status.ongoing) {
|
|
|
+ this.ctx.session = null;
|
|
|
+ this.ctx.redirect('/');
|
|
|
+ }
|
|
|
+
|
|
|
result = operate.affectedRows > 0;
|
|
|
} catch (error) {
|
|
|
console.log(error);
|