change_company.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/8/14
  7. * @version
  8. */
  9. const audit = require('../const/audit');
  10. module.exports = app => {
  11. class ChangeCompany extends app.BaseService {
  12. /**
  13. * 构造函数
  14. *
  15. * @param {Object} ctx - egg全局变量
  16. * @return {void}
  17. */
  18. constructor(ctx) {
  19. super(ctx);
  20. this.tableName = 'change_company';
  21. }
  22. /**
  23. * 队列修改和添加公司信息
  24. * @param tenderId 标段id
  25. * @param updateIdArray 更新的公司id
  26. * @param updateArray 更新的公司名称
  27. * @param addArray 添加的公司名称
  28. * @return {Promise.<[*,*]>} 返回新增的公司列表,和替换下拉选择公司列表
  29. */
  30. async setCompanyList(data) {
  31. const tenderId = parseInt(data.tid);
  32. const updateIdArray = data.uci;
  33. const updateArray = data.uc;
  34. const addArray = data.ac;
  35. let addCompany = new Array();
  36. let selectCompany = new Array();
  37. // 初始化事务
  38. this.transaction = await this.db.beginTransaction();
  39. try {
  40. // 更新公司信息
  41. if (updateIdArray.length !== 0) {
  42. for (let index in updateIdArray) {
  43. const updateData = {
  44. id: updateIdArray[index],
  45. name: updateArray[index],
  46. };
  47. await this.transaction.update(this.tableName, updateData);
  48. selectCompany.push(updateData);
  49. }
  50. }
  51. if (addArray.length !== 0) {
  52. for (let name of addArray) {
  53. const addData = {
  54. tid: tenderId,
  55. name: name,
  56. };
  57. const operate = await this.transaction.insert(this.tableName, addData);
  58. if (operate.affectedRows !== 1) {
  59. throw '提交数据失败';
  60. } else {
  61. selectCompany.push({id: operate.insertId, name: name});
  62. addCompany.push({id: operate.insertId, name: name});
  63. }
  64. }
  65. }
  66. this.transaction.commit();
  67. } catch (error) {
  68. console.log(error);
  69. // 回滚
  70. await this.transaction.rollback();
  71. }
  72. return [addCompany, selectCompany];
  73. }
  74. }
  75. return ChangeCompany;
  76. };