budget_final_list.js 1.5 KB

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