audit_ass.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. 'use strict';
  2. /**
  3. * 奖罚金
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. module.exports = app => {
  10. class AuditAss extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'audit_ass';
  20. }
  21. async getData(tid) {
  22. return await this.getAllDataByCondition({ where: { tid } });
  23. }
  24. async getUserData(tid, user_id) {
  25. return await this.getAllDataByCondition({ where: { tid, user_id } });
  26. }
  27. async _addData(data) {
  28. if (!data.user_id || !data.ass_user_id) throw '新增协审错误';
  29. const nd = {
  30. pid: this.ctx.session.sessionProject.id,
  31. tid: this.ctx.tender.id,
  32. user_id: data.user_id,
  33. ass_user_id: data.ass_user_id,
  34. name: data.name,
  35. company: data.company,
  36. role: data.role,
  37. ass_ledger_id: data.ass_ledger_id,
  38. };
  39. const result = await this.db.insert(this.tableName, nd);
  40. nd.id = result.insertId;
  41. return nd;
  42. }
  43. async _delData(data) {
  44. await this.db.delete(this.tableName, {id: data.id});
  45. return data;
  46. }
  47. async _updateData(data) {
  48. if (!data) return;
  49. const datas = data instanceof Array ? data : [datas];
  50. const orgDatas = await this.getAllDataByCondition({
  51. where: { id: this.ctx.helper._.map(datas, 'id') }
  52. });
  53. const uDatas = [];
  54. for (const d of datas) {
  55. const od = this.ctx.helper._.find(orgDatas, {id: d.id});
  56. if (!od) continue;
  57. const nd = {id: od.id};
  58. if (d.ass_ledger_id !== undefined) nd.ass_ledger_id = d.ass_ledger_id;
  59. uDatas.push(nd);
  60. }
  61. if (uDatas.length > 0) {
  62. await this.db.updateRows(this.tableName, uDatas);
  63. return uDatas;
  64. } else {
  65. return [];
  66. }
  67. }
  68. async updateData(data) {
  69. const result = { update: [] };
  70. try {
  71. if (data.add) {
  72. result.add = await this._addData(data.add);
  73. }
  74. if (data.update) {
  75. result.update = await this._updateData(data.update);
  76. }
  77. if (data.del) {
  78. result.del = await this._delData(data.del);
  79. }
  80. return result;
  81. } catch (err) {
  82. if (err) result.err = err;
  83. return result;
  84. }
  85. }
  86. }
  87. return AuditAss;
  88. };