| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 'use strict';/** * * * @author Ellisran * @date 2021/4/8 * @version */const touristPermissionConst = require('../const/tourist_permission').defaultPermission;module.exports = app => {    class TenderTourist extends app.BaseService {        /**         * 构造函数         *         * @param {Object} ctx - egg全局变量         * @return {void}         */        constructor(ctx) {            super(ctx);            this.tableName = 'tender_tourist';        }        async getTourists(tid) {            const sql = 'SELECT tt.*,' +                'pa.`name` As `user_name`, pa.`role` As `user_role`, pa.`company` As `user_company` ' +                'FROM ?? As tt LEFT JOIN ?? As pa ON tt.`user_id` = pa.`id` ' +                'WHERE tt.`tid` = ?';            const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, tid];            return await this.db.query(sql, sqlParam);        }        async addAudit(data) {            const transaction = await this.db.beginTransaction();            try {                const insertData = {                    tid: this.ctx.tender.id,                    user_id: data.user_id,                    in_time: new Date(),                };                const result = await transaction.insert(this.tableName, insertData);                await transaction.commit();                return await this.getDataById(result.insertId);            } catch (err) {                await transaction.rollback();                throw err;            }        }        async removeAudit(data) {            const transaction = await this.db.beginTransaction();            try {                await transaction.delete(this.tableName, { id: data.id });                await transaction.commit();                return true;            } catch (err) {                await transaction.rollback();                throw err;            }        }        async getTouristPermission(info) {            if (info && info.permission) {                return JSON.parse(info.permission);            }            return touristPermissionConst;        }        async setPermission(data) {            const transaction = await this.db.beginTransaction();            try {                await transaction.update(this.tableName, { id: data.id, permission: JSON.stringify(data.permission) });                await transaction.commit();                return true;            } catch (err) {                await transaction.rollback();                throw err;            }        }    }    return TenderTourist;};
 |