template_index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. 'use strict';
  2. /**
  3. * 指标模板 -- 指标节点业务类
  4. *
  5. * @author Mai
  6. * @date 2018/4/19
  7. * @version
  8. */
  9. module.exports = app => {
  10. class TemplateIndex 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 = 'template_index';
  20. }
  21. /**
  22. * 导入指标数据
  23. *
  24. * @param {Array|Object} datas
  25. * @param transaction - 事务
  26. * @returns {Promise<void>}
  27. */
  28. async importData(data, transaction, templateId = 1) {
  29. const datas = data instanceof Array ? data : [data];
  30. await transaction.delete(this.tableName, {template_id: templateId});
  31. const insertResult = await transaction.insert(this.tableName, datas);
  32. if (insertResult.affectedRows !== datas.length) {
  33. throw '导入指标错误';
  34. }
  35. }
  36. /**
  37. * 设置计算规则
  38. * 应同步设置rule, calc_rule, parse_rule
  39. *
  40. * @param data
  41. * @returns {Promise<*>}
  42. */
  43. async setRule(data) {
  44. const result = await this.db.update(this.tableName, data);
  45. return result;
  46. }
  47. }
  48. return TemplateIndex;
  49. };