'use strict';
const moment = require('moment');


//系统可用性
async function getCalculability(ctx) {
   try {
      const { models } = ctx.fs.dc
      const query = ctx.query
      const sequelize = ctx.fs.dc.ORM;
      const { eTime, sTime } = query
      const timer = (new Date(eTime) - new Date(sTime)) / 1000  //时间之间的秒数
      //console.log('timer', timer)
      let recordRes = await models.MaintenanceRecord.findAndCount({
         attributes: ['occurrenceTime', 'solvingTime'],
         where: {
            occurrenceTime: { $between: [moment(sTime).format('YYYY-MM-DD HH:mm:ss'), moment(eTime).format('YYYY-MM-DD HH:mm:ss')] }
            // $and: [
            //    sequelize.where(sequelize.fn('timestamp', sequelize.col('occurrence_time')), '>=', moment(sTime).format('YYYY-MM-DD HH:mm:ss')),
            //    sequelize.where(sequelize.fn('timestamp', sequelize.col('occurrence_time')), '<=', moment(eTime).format('YYYY-MM-DD HH:mm:ss')),
            // ]
         }

      })
      let problemtime = 0
      recordRes.rows.forEach((item) => {
         let diff = (item.solvingTime - item.occurrenceTime) / 1000;
         problemtime += diff;
      })

      console.log('recordRes', recordRes)
      //console.log(time, 'time1')
      const abilty = (timer - problemtime) / timer
      console.log('timer', timer, problemtime)
      //console.log('abc', abilty)
      console.log('query2', query, problemtime, timer, abilty)

      ctx.status = 200

      ctx.body = abilty
   } catch (error) {
      ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`)
      ctx.status = 400
      ctx.body = {
         message: `查询系统可用性失败`
      }
   }
}

module.exports = {
   getCalculability
}