12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 'use strict';
- /**
- * 签名相关控制器
- *
- * @author EllisRan
- * @date 2019/8/14
- * @version
- */
- const moment = require('moment');
- const path = require('path');
- const sendToWormhole = require('stream-wormhole');
- const fs = require('fs');
- module.exports = app => {
- class SignController extends app.BaseController {
- /**
- * 电子签名页面
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- async index(ctx) {
- const renderData = {
- error: false,
- };
- try {
- const userinfo = await ctx.service.projectAccount.getDataById(ctx.query.user_id);
- if (userinfo && userinfo.session_token && userinfo.session_token === ctx.query.app_token) {
- renderData.id = userinfo.id;
- renderData.name = userinfo.name;
- // renderData.role = userinfo.role;
- } else {
- throw '参数有误, 无法访问本页.';
- }
- } catch (error) {
- console.log(error);
- renderData.error = true;
- }
- await ctx.render('sign/info.ejs', renderData);
- }
- /**
- * 保存签名
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- async save(ctx) {
- try {
- const stream = await ctx.getFileStream({ requireFile: false });
- const create_time = Date.parse(new Date()) / 1000;
- const dirName = 'app/public/upload/sign/';
- const fileName = moment().format('YYYYMMDD') + '_sign_' + create_time + '.png';
- await ctx.helper.saveStreamFile(stream, path.join(this.app.baseDir, dirName, fileName));
- await sendToWormhole(stream);
- const result = await ctx.service.projectAccount.update({ sign_path: fileName }, { id: stream.fields.id });
- if (result) {
- ctx.body = { err: 0, msg: '' };
- } else {
- throw '添加数据库失败';
- }
- } catch (err) {
- this.log(err);
- ctx.body = { err: 1, msg: err.toString() };
- }
- }
- }
- return SignController;
- };
|