bills.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author EllisRan.
  6. * @date 2018/4/25
  7. * @version
  8. */
  9. module.exports = app => {
  10. class Bills extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'quota_bills';
  20. }
  21. /**
  22. * 根据层级获取数据
  23. *
  24. * @param {Number} tenderId - 标段id
  25. * @param {Number} showLevel - 显示层数
  26. * @return {Array} - 返回数据
  27. */
  28. async getDataByLibId(libId, showLevel = 4) {
  29. if (libId <= 0) {
  30. return [];
  31. }
  32. this.initSqlBuilder();
  33. this.sqlBuilder.setAndWhere('lib_id', {
  34. value: libId,
  35. operate: '=',
  36. });
  37. if (showLevel > 0) {
  38. this.sqlBuilder.setAndWhere('n_level', {
  39. value: showLevel,
  40. operate: '<=',
  41. });
  42. }
  43. const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
  44. const data = await this.db.query(sql, sqlParam);
  45. return data;
  46. }
  47. /**
  48. * 根据 父节点id 获取子节点
  49. * @param tenderId
  50. * @param nodeId
  51. * @return {Promise<*>}
  52. */
  53. async getChildrenByParentId(libId, nodeId) {
  54. if (libId <= 0 || !nodeId) {
  55. return undefined;
  56. }
  57. const nodeIds = nodeId instanceof Array ? nodeId : [nodeId];
  58. if (nodeIds.length === 0) {
  59. return [];
  60. }
  61. this.initSqlBuilder();
  62. this.sqlBuilder.setAndWhere('lib_id', {
  63. value: libId,
  64. operate: '=',
  65. });
  66. this.sqlBuilder.setAndWhere('n_pid', {
  67. value: nodeIds,
  68. operate: 'in',
  69. });
  70. this.sqlBuilder.orderBy = [['n_order', 'ASC']];
  71. const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
  72. const data = await this.db.query(sql, sqlParam);
  73. return data;
  74. }
  75. }
  76. return Bills;
  77. }