payment_detail_att.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict';
  2. /**
  3. *
  4. * 附件
  5. * @author Ellisran
  6. * @date 2019/1/11
  7. * @version
  8. */
  9. module.exports = app => {
  10. class PaymentDetailAtt extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'payment_detail_attachment';
  20. }
  21. /**
  22. * 添加附件
  23. * @param {Object} postData - 表单信息
  24. * @param {Object} fileData - 文件信息
  25. * @param {int} uid - 上传者id
  26. * @return {void}
  27. */
  28. async save(postData, fileData, uid) {
  29. const data = {
  30. tender_id: postData.tender_id,
  31. tr_id: postData.tr_id,
  32. td_id: postData.td_id,
  33. uid,
  34. };
  35. Object.assign(data, fileData);
  36. const result = await this.db.insert(this.tableName, data);
  37. return result;
  38. }
  39. /**
  40. * 获取 详情 所有附件
  41. * @param {uuid} td_id - 详情id
  42. * @return {Promise<void>}
  43. */
  44. async getPaymentDetailAttachment(td_id, sort = 'asc') {
  45. const sql = 'SELECT ca.*, pa.name As u_name, pa.role As u_role ' +
  46. ' FROM ?? As ca ' +
  47. ' Left Join ?? As pa ' +
  48. ' On ca.uid = pa.id ' +
  49. ' Where ca.td_id = ? order by id ' + sort;
  50. const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, td_id];
  51. const result = await this.db.query(sql, sqlParam);
  52. return result.map(item => {
  53. item.orginpath = this.ctx.app.config.fujianOssPath + item.filepath;
  54. if (!this.ctx.helper.canPreview(item.fileext)) {
  55. item.filepath = `/payment/${item.tender_id}/detail/${item.td_id}/file/${item.id}/download`;
  56. } else {
  57. item.filepath = this.ctx.app.config.fujianOssPath + item.filepath;
  58. item.viewpath = item.filepath;
  59. }
  60. return item;
  61. });
  62. }
  63. }
  64. return PaymentDetailAtt;
  65. };