tender_tourist.js 2.6 KB

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