tender_param.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. module.exports = app => {
  10. class TenderParam extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局context
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'tender_param';
  20. }
  21. /**
  22. * 更新参数取值
  23. * @param data
  24. * @returns {Promise<boolean>}
  25. */
  26. async updateCalcValue(data) {
  27. const transaction = await this.db.beginTransaction();
  28. try {
  29. const condition = {
  30. lib_id: parseInt(data.lib_id),
  31. node_id: data.node_id,
  32. code: data.code
  33. };
  34. if (condition.lib_id < 0 || condition.node_id < 0) {
  35. throw '提交数据错误';
  36. }
  37. const updateData = {
  38. calc_value: parseFloat(data.value),
  39. };
  40. await transaction.update(this.tableName, updateData, {where: condition});
  41. // to do 计算
  42. await transaction.commit();
  43. return true;
  44. } catch (err) {
  45. await transaction.rollback();
  46. throw err;
  47. }
  48. }
  49. /**
  50. * 重置参数取值
  51. * @param data
  52. * @returns {Promise<boolean>}
  53. */
  54. async resetCalcValue(data) {
  55. try {
  56. const condition = {
  57. lib_id: parseInt(data.lib_id),
  58. node_id: data.node_id,
  59. code: data.code,
  60. };
  61. if (condition.lib_id < 0 || condition.node_id < 0) {
  62. throw '提交数据错误';
  63. }
  64. const param = await this.getDataByCondition(condition);
  65. data.value = param.match_value;
  66. await this.updateCalcValue(data);
  67. return true;
  68. } catch (err) {
  69. throw err;
  70. }
  71. }
  72. };
  73. return TenderParam;
  74. };