1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 'use strict';
- /**
- * 版本数据模型
- *
- * @author CaiAoLin
- * @date 2017/10/25
- * @version
- */
- const shenpiConst = require('../const/shenpi');
- module.exports = app => {
- class PaymentShenpiAudit extends app.BaseService {
- /**
- * 构造函数
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- constructor(ctx) {
- super(ctx);
- this.tableName = 'payment_shenpi_audit';
- }
- async getShenpiAudit(tr_id, status) {
- if (status === shenpiConst.sp_status.gdspl) {
- return await this.getAuditList(this.ctx.paymentTender.id, tr_id, status);
- } else if (status === shenpiConst.sp_status.gdzs) {
- return await this.getAudit(this.ctx.paymentTender.id, tr_id, status);
- }
- }
- async getAudit(tid, tr_id, status) {
- const sql = 'SELECT sp.audit_id, pa.name FROM ?? AS sp LEFT JOIN ?? AS pa ON sp.audit_id = pa.id' +
- ' WHERE sp.tid = ? AND sp.tr_id = ? AND sp.sp_status = ?';
- const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, tid, tr_id, status];
- return await this.db.queryOne(sql, sqlParam);
- }
- async getAuditList(tid, tr_id, status) {
- const sql = 'SELECT sp.audit_id, pa.name FROM ?? AS sp LEFT JOIN ?? AS pa ON sp.audit_id = pa.id' +
- ' WHERE sp.tid = ? AND sp.tr_id = ? AND sp.sp_status = ? ORDER BY sp.id ASC';
- const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, tid, tr_id, status];
- return await this.db.query(sql, sqlParam);
- }
- async addAudit(data) {
- const transaction = await this.db.beginTransaction();
- try {
- const insertData = {
- tid: this.ctx.paymentTender.id,
- tr_id: data.tr_id,
- sp_status: data.status,
- audit_id: data.audit_id,
- };
- await transaction.insert(this.tableName, insertData);
- await transaction.commit();
- return await this.getShenpiAudit(data.tr_id, data.status);
- } catch (err) {
- await transaction.rollback();
- throw err;
- }
- }
- async removeAudit(data) {
- const transaction = await this.db.beginTransaction();
- try {
- const delData = {
- tid: this.ctx.paymentTender.id,
- tr_id: data.tr_id,
- sp_status: data.status,
- audit_id: data.audit_id,
- };
- await transaction.delete(this.tableName, delData);
- await transaction.commit();
- return await this.getShenpiAudit(data.tr_id, data.status);
- } catch (err) {
- await transaction.rollback();
- throw err;
- }
- }
- async delDataFromtrids(transaction, tr_ids) {
- return await transaction.delete(this.tableName, { tr_id: tr_ids });
- }
- async removeAuditByReport(transaction, tr_id, audit_id) {
- return await transaction.delete(this.tableName, { tr_id, audit_id });
- }
- }
- return PaymentShenpiAudit;
- };
|