tender_tourist.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Ellisran
  6. * @date 2021/4/8
  7. * @version
  8. */
  9. module.exports = app => {
  10. class TenderTourist extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'tender_tourist';
  20. }
  21. async getTourists(tid) {
  22. const sql = 'SELECT tt.*,' +
  23. 'pa.`name` As `user_name`, pa.`role` As `user_role`, pa.`company` As `user_company` ' +
  24. 'FROM ?? As tt LEFT JOIN ?? As pa ON tt.`user_id` = pa.`id` ' +
  25. 'WHERE tt.`tid` = ?';
  26. const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, tid];
  27. return await this.db.query(sql, sqlParam);
  28. }
  29. async addAudit(data) {
  30. const transaction = await this.db.beginTransaction();
  31. try {
  32. const insertData = {
  33. tid: this.ctx.tender.id,
  34. user_id: data.user_id,
  35. in_time: new Date(),
  36. };
  37. const result = await transaction.insert(this.tableName, insertData);
  38. await transaction.commit();
  39. return await this.getDataById(result.insertId);
  40. } catch (err) {
  41. await transaction.rollback();
  42. throw err;
  43. }
  44. }
  45. async removeAudit(data) {
  46. const transaction = await this.db.beginTransaction();
  47. try {
  48. await transaction.delete(this.tableName, { id: data.id });
  49. await transaction.commit();
  50. return true;
  51. } catch (err) {
  52. await transaction.rollback();
  53. throw err;
  54. }
  55. }
  56. }
  57. return TenderTourist;
  58. };