fee_rate_controller.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /**
  2. * Created by zhang on 2018/9/10.
  3. */
  4. import BaseController from "../../common/base/base_controller";
  5. import CompilationModel from '../../users/models/compilation_model';
  6. let config = require("../../../config/config.js");
  7. import feeRateFacade from "../facade/fee_rate_facade";
  8. import { checkCompilationPermission } from '../../common/base/base_util';
  9. class FeeRateController extends BaseController {
  10. async main(request, response) {
  11. let compilationModel = new CompilationModel();
  12. let compilationList = await compilationModel.getPermissionCompilationList(request, { _id: 1, name: 1 });
  13. compilationList.unshift({ _id: 'all', name: '所有' });
  14. let activeCompilation = compilationList.find(compilation => compilation._id.toString() === request.query.filter);
  15. if (activeCompilation) {
  16. activeCompilation.active = 'active';
  17. } else {
  18. compilationList[0].active = 'active'
  19. }
  20. let filter = request.query.filter ? { compilationId: request.query.filter } : {};
  21. let feeRateLibs = await feeRateFacade.findByCondition(filter, { rates: 0 }, false);
  22. const compilationPermission = request.session.managerData.compilationPermission || [];
  23. feeRateLibs = feeRateLibs.filter(lib => compilationPermission.includes(lib.compilationId));
  24. let randerData = {
  25. title: '费率标准库',
  26. userAccount: request.session.managerData.username,
  27. userID: request.session.managerData.userID,
  28. feeRateLibs: feeRateLibs,
  29. compilationList: compilationList,
  30. layout: 'maintain/common/html/layout'
  31. };
  32. response.render("maintain/fee_rate_lib/html/main", randerData);
  33. }
  34. async addLib(request, response) {
  35. try {
  36. await feeRateFacade.addLib(request.body);
  37. } catch (error) {
  38. console.log(error);
  39. }
  40. response.redirect(request.headers.referer);
  41. }
  42. async findLib(request, response) {
  43. let result = {
  44. error: 0
  45. };
  46. try {
  47. let data = request.body.data;
  48. data = JSON.parse(data);
  49. let conditions = { ID: data.ID };
  50. let resultData = await feeRateFacade.findByCondition(conditions);
  51. result.data = resultData;
  52. } catch (err) {
  53. console.log(err);
  54. result.error = 1;
  55. result.message = err.message;
  56. }
  57. response.json(result);
  58. }
  59. async saveLib(request, response) {
  60. let result = {
  61. error: 0
  62. };
  63. try {
  64. let data = request.body.data;
  65. data = JSON.parse(data);
  66. let resultData = await feeRateFacade.saveLib(data);
  67. result.data = resultData;
  68. } catch (err) {
  69. console.log(err);
  70. result.error = 1;
  71. result.message = err.message;
  72. }
  73. response.json(result);
  74. }
  75. async deleteLibByID(request, response) {
  76. let result = {
  77. error: 0
  78. };
  79. try {
  80. let data = request.body.data;
  81. data = JSON.parse(data);
  82. let resultData = await feeRateFacade.deleteLibByID(data.ID);
  83. result.data = resultData;
  84. } catch (err) {
  85. console.log(err);
  86. result.error = 1;
  87. result.message = err.message;
  88. }
  89. response.json(result);
  90. }
  91. async edit(request, response) {
  92. //先取出替换库信息:
  93. let libID = request.params.libID;
  94. let feeRateLib = await feeRateFacade.findByCondition({ 'ID': libID });
  95. if (feeRateLib) {
  96. checkCompilationPermission(request, response, feeRateLib.compilationId, '/feeRate/main');
  97. let randerData = {
  98. title: '费率标准库',
  99. mainURL: '/feeRate/main',
  100. libName: feeRateLib.libName,
  101. userAccount: request.session.managerData.username,
  102. userID: request.session.managerData.userID,
  103. rateList: JSON.stringify(feeRateLib.rates),
  104. libID: libID,
  105. LicenseKey: config.getLicenseKey(process.env.NODE_ENV),
  106. layout: 'maintain/common/html/edit_layout'
  107. };
  108. response.render("maintain/fee_rate_lib/html/edit", randerData);
  109. } else {
  110. response.redirect(request.headers.referer);
  111. }
  112. }
  113. }
  114. export default FeeRateController;