budget_final_list.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const status = {
  10. cancel: 0,
  11. wait: 1,
  12. ext: 2,
  13. done: 3,
  14. };
  15. module.exports = app => {
  16. class BudgetFinalList extends app.BaseService {
  17. /**
  18. * 构造函数
  19. *
  20. * @param {Object} ctx - egg全局变量
  21. * @return {void}
  22. */
  23. constructor(ctx) {
  24. super(ctx);
  25. this.tableName = 'budget_final_list';
  26. }
  27. _analysisFinal(data) {
  28. data.tender = data.tender ? data.tender.split(',') : [];
  29. data.tender_info = data.tender_info ? JSON.parse(data.tender_info) : [];
  30. }
  31. async getFinal(id) {
  32. const data = await this.getDataById(id);
  33. this._analysisFinal(data);
  34. return data;
  35. }
  36. async addFinal(budget, tender) {
  37. const user = await this.ctx.service.projectAccount.getDataById(this.ctx.session.sessionUser.accountId);
  38. const final = {
  39. bid: budget.id, uid: user.id,
  40. u_name: user.name, u_role: user.role, u_company: user.company, u_mobile: user.mobile,
  41. u_login: this.ctx.session.sessionUser.loginType + ';' + this.ctx.session.sessionUser.loginStatus,
  42. tender: tender ? tender.join(',') : '', status: status.ext,
  43. };
  44. const result = await this.db.insert(this.tableName, final);
  45. return await this.getFinal(result.insertId);
  46. }
  47. }
  48. return BudgetFinalList;
  49. };