datacollect_audit.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. 'use strict';
  2. /**
  3. * 决策大屏用户查看权限-数据模型
  4. *
  5. * @author ellisran
  6. * @date 2021/09/23
  7. * @version
  8. */
  9. const accountGroup = require('../const/account_group').group;
  10. module.exports = app => {
  11. class datacollectAudit extends app.BaseService {
  12. constructor(ctx) {
  13. super(ctx);
  14. this.tableName = 'datacollect_audit';
  15. }
  16. async getGroupInfo(pid, groupid) {
  17. const sql = 'SELECT * FROM ?? WHERE pid = ? AND groupid = ? AND uid is NULL';
  18. const sqlParam = [this.tableName, pid, groupid];
  19. return await this.db.queryOne(sql, sqlParam);
  20. }
  21. async saveAudit(pid, groupid, uid) {
  22. const data = {
  23. pid,
  24. groupid,
  25. uid,
  26. create_time: new Date(),
  27. };
  28. return await this.db.insert(this.tableName, data);
  29. }
  30. async saveGroup(pid, groupid) {
  31. const transaction = await this.db.beginTransaction();
  32. try {
  33. // 删除所在组的用户
  34. await transaction.delete(this.tableName, { pid, groupid });
  35. const data = {
  36. pid,
  37. groupid,
  38. create_time: new Date(),
  39. };
  40. await transaction.insert(this.tableName, data);
  41. await transaction.commit();
  42. return true;
  43. } catch (err) {
  44. await transaction.rollback();
  45. throw err;
  46. }
  47. }
  48. async delAudit(id) {
  49. return await this.db.delete(this.tableName, { id });
  50. }
  51. async getList(pid) {
  52. const list = await this.db.select(this.tableName, { where: { pid } });
  53. for (const l of list) {
  54. if (l.uid) {
  55. const accountInfo = await this.ctx.service.projectAccount.getDataById(l.uid);
  56. l.name = accountInfo.name;
  57. } else {
  58. l.name = accountGroup[l.groupid];
  59. }
  60. }
  61. return list;
  62. }
  63. }
  64. return datacollectAudit;
  65. };