libController.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Zhong
  6. * @date 2018/5/29
  7. * @version
  8. */
  9. import BaseController from '../../common/base/base_controller';
  10. import moment from 'moment';
  11. const billsGuidanceFacade = require('../facade/facades');
  12. let logger = require('../../../logs/log_helper').logger;
  13. let callback = function (req, res, err, msg, data) {
  14. res.json({error: err, message: msg, data: data});
  15. };
  16. const zhLibID = 'cf851660-3534-11ec-9641-2da8021b8e4e';
  17. class BillsGuideLibController extends BaseController{
  18. //获取编办及编办清单库信息
  19. async getComBillsLibInfo(req, res){
  20. try{
  21. let comBillsLibInfo = await billsGuidanceFacade.getComBillsLibInfo();
  22. callback(req, res, 0, '', comBillsLibInfo);
  23. }
  24. catch(err) {
  25. callback(req, res, 1, err, null);
  26. }
  27. }
  28. async getBillsGuideLibs(req, res){
  29. try{
  30. let libs = await billsGuidanceFacade.getBillsGuideLibs({deleted: false}, req.session.managerData.isTemporary);
  31. callback(req, res, 0, '', libs);
  32. }
  33. catch(err){
  34. callback(req, res, 1, '获取清单指引库数据错误', null);
  35. }
  36. }
  37. async updateBillsGuideLib(req, res){
  38. try{
  39. let data = JSON.parse(req.body.data);
  40. if(data.updateType === 'create'){
  41. data.updateData.createDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
  42. data.updateData.creator = req.session.managerData.username;
  43. await billsGuidanceFacade.initBillsGuideLib(data.updateData);
  44. }
  45. else{
  46. if (data.updateType === 'delete') {
  47. logger.info(`delete billsGuidanceLib ${req.ip}`);
  48. }
  49. await billsGuidanceFacade.updateBillsGuideLib(data);
  50. }
  51. callback(req, res, 0, '', data.updateData);
  52. }
  53. catch(err){
  54. callback(req, res, 1, '更新失败', null);
  55. }
  56. }
  57. //获取清单指引库和该库引用的清单
  58. async getLibWithBills(req, res){
  59. try{
  60. let data = JSON.parse(req.body.data);
  61. let rst = await billsGuidanceFacade.getLibWithBills(data.libID);
  62. callback(req, res, 0, '', rst);
  63. }
  64. catch(err){
  65. callback(req, res, 1, err, null);
  66. }
  67. }
  68. async getItemsByBills(req, res){
  69. try{
  70. let data = JSON.parse(req.body.data);
  71. let items = await billsGuidanceFacade.getItemsBybills(data.guidanceLibID, data.billsID);
  72. callback(req, res, 0, '', items);
  73. }
  74. catch(err){
  75. callback(req, res, 1, err, null);
  76. }
  77. }
  78. async updateItems(req, res){
  79. try{
  80. if (req.session.managerData.isTemporary) {
  81. const match = req.headers.referer.match(/libID=([\d,a-z,A-Z,-]{36})/);
  82. if (match && match[1] && match[1] !== zhLibID) {
  83. throw '无此清单精灵库权限';
  84. }
  85. }
  86. let data = JSON.parse(req.body.data);
  87. let updateDatas = data.updateDatas;
  88. await billsGuidanceFacade.updateItems(updateDatas, req.session.managerData.isTemporary);
  89. callback(req, res, 0, '', null);
  90. }
  91. catch(err){
  92. callback(req, res, 1, err, null);
  93. }
  94. }
  95. async testItems(req, res){
  96. try{
  97. let data = JSON.parse(req.body.data);
  98. let rst = await billsGuidanceFacade.testItems(data.libID);
  99. res.json({error: 0, data: rst, message: ''});
  100. }
  101. catch (error){
  102. res.json({error: 1, data: null, message: error});
  103. }
  104. }
  105. }
  106. export default BillsGuideLibController;