tender_permission.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. 修改脚本,请现在指定spid测试
  3. 例如: node db_script/sub_project local 3fcee213-92c9-41de-8f5a-b896c986311a
  4. 没有意外再全部执行
  5. 所有修改均应考虑脚本二次执行时的兼容,应检查是否已执行过,避免在生产环境运行时出现问题后需要二次执行,参见自定义分类脚本
  6. */
  7. const BaseUtil = require('./baseUtils');
  8. const scheduleConst = require('../app/const/schedule');
  9. const querySql = BaseUtil.querySql;
  10. const uuid = require('node-uuid');
  11. const getInsertSql = function (tableName, data) {
  12. const column = [], query = [], value = [];
  13. for (const prop in data) {
  14. column.push(prop);
  15. query.push('?');
  16. value.push(data[prop]);
  17. }
  18. return [`INSERT INTO ${tableName} (${column.join(',')}) VALUES (${query.join(',')})`, value];
  19. };
  20. console.log('Copy tender_permission properties: schedule');
  21. const doComplete = async function() {
  22. try {
  23. const audits = await querySql('Select * From zh_schedule_audit');
  24. for (const a of audits) {
  25. const existTender = await querySql('SELECT * FROM zh_tender where id = ?;', [a.tid]);
  26. if (existTender.length === 0) {
  27. continue;
  28. } else {
  29. const existTenderPermission = await querySql('SELECT * FROM zh_tender_permission WHERE tid = ? and uid = ?', [existTender[0].id, a.audit_id]);
  30. let schedule_permission = '';
  31. if (a.permission === scheduleConst.permission.show) {
  32. schedule_permission = '1';
  33. } else if (a.permission === scheduleConst.permission.edit) {
  34. schedule_permission = '1,2';
  35. }
  36. const fund_pay_permission = [];
  37. if (a.permission_pay_show) {
  38. fund_pay_permission.push(1);
  39. }
  40. if (a.permission_pay_file) {
  41. fund_pay_permission.push(3);
  42. }
  43. if (schedule_permission !== '') {
  44. console.log('Copy tender_permission_schedule: ' + a.audit_id + ' ' + a.tid + ' ');
  45. if (existTenderPermission.length === 0) {
  46. const tender_permission = { id: uuid.v4(), pid: existTender[0].project_id, spid: existTender[0].spid, tid: existTender[0].id, uid: a.audit_id, schedule: schedule_permission };
  47. const [spSql, spSqlParam] = getInsertSql('zh_tender_permission', tender_permission);
  48. await querySql(spSql, spSqlParam);
  49. } else {
  50. await querySql('Update zh_tender_permission SET schedule = ? WHERE id = ?; ', [schedule_permission, existTenderPermission[0].id]);
  51. }
  52. }
  53. }
  54. }
  55. console.log('END Update;');
  56. } catch (err) {
  57. console.log(err);
  58. }
  59. BaseUtil.closePool();
  60. };
  61. doComplete();