12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 'use strict';
- /**
- * 指标库控制器
- *
- * @author Mai
- * @data 2018/4/19
- * @version
- */
- const fs = require('fs');
- const path = require('path');
- const awaitWriteStream = require('await-stream-ready').write;
- const sendToWormhole = require('stream-wormhole');
- const libConst = require('../const/lib');
- module.exports = app => {
- class LibController extends app.BaseController {
- /**
- * 指标库页面
- *
- * @param {object} ctx - egg全局context
- * @return {void}
- */
- async index (ctx) {
- let status = ctx.query.status;
- const libList = await ctx.service.quotaLib.getList(status);
- //获取指标源状态数量
- const libStatus = await ctx.service.quotaLib.getStatusNum();
- const renderData = {
- status,
- libList,
- libConst,
- libStatus
- };
- await this.layout('lib/index.ejs', renderData, 'lib/modal.ejs');
- }
- /**
- * 上传指标源
- *
- * @param {object} ctx - egg全局context
- * @return {void}
- */
- async upload(ctx) {
- const parts = ctx.multipart({ autoFields: true });
- let addData = {};
- let stream;
- while ((stream = await parts()) != null) {
- const filename = stream.filename.toLowerCase();
- if(filename === ''){
- throw '请上传文件';
- }
- const fileInfo = path.parse(filename);
- let create_time = Date.parse( new Date())/1000;
- let filepath = libConst.quotaLibDir + create_time + fileInfo.ext;
- addData = {
- name: fileInfo.name,
- path: filepath,
- create_time: create_time
- };
- const target = path.join(filepath);
- const writeStream = fs.createWriteStream(target);
- try {
- await awaitWriteStream(stream.pipe(writeStream));
- } catch (err) {
- await sendToWormhole(stream);
- throw err;
- }
- }
- if(addData !== {}){
- try {
- //插入数据到数据库
- const result = await ctx.service.quotaLib.add(addData);
- if (!result) {
- throw '新增指标源数据失败';
- }
- ctx.redirect('/lib');
- } catch (err) {
- throw err;
- }
- }else{
- throw '请上传文件';
- }
- }
- }
- return LibController;
- }
|