'use strict'; /** * * * @author Mai * @date * @version */ module.exports = app => { class BudgetStd extends app.BaseService { /** * 构造函数 * * @param {Object} ctx - egg全局变量 * @return {void} */ constructor(ctx) { super(ctx); this.tableName = 'budget_std'; } async getDataByProjectId(pid) { const project = await this.ctx.service.project.getDataById(pid); const sid = this._.map(project.budget.split(','), this._.toInteger); return await this.getAllDataByCondition({ where: { id: sid }, columns: ['id', 'name'], }); } async getStdList(id, type) { if (!type) return [[], []]; const gclField = type + '_bills_id', xmjField = type + '_chapter_id'; const std = await this.service.budgetStd.getDataById(id); const billsId = std[gclField] ? this._.map(std[gclField].split(','), this._.toInteger) : []; const chaptersId = std[xmjField] ? this._.map(std[xmjField].split(','), this._.toInteger) : []; const sql = 'SELECT `id`, `name`' + ' From ?? ' + ' WHERE `id` in ( ? ) ORDER BY FIELD(`id`, ?)'; const sqlParam = ['zh_std_gcl_list', billsId, billsId]; const billsList = billsId.length > 0 ? await this.db.query(sql, sqlParam) : []; const sql2 = 'SELECT `id`, `name`' + ' From ?? ' + ' WHERE `id` in ( ? ) ORDER BY FIELD(`id`, ?)'; const sqlParam2 = ['zh_std_xmj_list', chaptersId, chaptersId]; const chapterList = chaptersId.length > 0 ? await this.db.query(sql2, sqlParam2) : []; return [billsList, chapterList]; } async getTemplateId(id, type) { if (!id || !type) throw '参数错误'; const budgetStd = await this.getDataById(id); if (!budgetStd) throw '模板不存在'; return budgetStd[type + '_template_id']; } } return BudgetStd; };