'use strict'; /** * * 附件 * @author Ellisran * @date 2019/1/11 * @version */ module.exports = app => { class PaymentDetailAtt extends app.BaseService { /** * 构造函数 * * @param {Object} ctx - egg全局变量 * @return {void} */ constructor(ctx) { super(ctx); this.tableName = 'payment_detail_attachment'; } /** * 添加附件 * @param {Object} postData - 表单信息 * @param {Object} fileData - 文件信息 * @param {int} uid - 上传者id * @return {void} */ async save(postData, fileData, uid) { const data = { tender_id: postData.tender_id, tr_id: postData.tr_id, td_id: postData.td_id, uid, }; Object.assign(data, fileData); const result = await this.db.insert(this.tableName, data); return result; } /** * 获取 详情 所有附件 * @param {uuid} td_id - 详情id * @return {Promise} */ async getPaymentDetailAttachment(td_id, sort = 'asc') { const sql = 'SELECT ca.*, pa.name As u_name, pa.role As u_role ' + ' FROM ?? As ca ' + ' Left Join ?? As pa ' + ' On ca.uid = pa.id ' + ' Where ca.td_id = ? order by id ' + sort; const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, td_id]; const result = await this.db.query(sql, sqlParam); return result.map(item => { item.orginpath = this.ctx.app.config.fujianOssPath + item.filepath; if (!this.ctx.helper.canPreview(item.fileext)) { item.filepath = `/payment/${item.tender_id}/detail/${item.td_id}/file/${item.id}/download`; } else { item.filepath = this.ctx.app.config.fujianOssPath + item.filepath; item.viewpath = item.filepath; } return item; }); } } return PaymentDetailAtt; };