version_controller.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. /**
  2. * 版本控制控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/7/28
  6. * @version
  7. */
  8. import BaseController from "../../common/base/base_controller";
  9. import VersionModel from "../models/version_model";
  10. import STDRationLibMapModel from "../../common/std/std_ration_lib_map_model";
  11. import {default as ProvinceConst, List as ProvinceList} from "../../common/const/province_const";
  12. class VersionController extends BaseController {
  13. /**
  14. * 版本控制页面
  15. *
  16. * @param {object} request
  17. * @param {object} response
  18. * @return {void}
  19. */
  20. async index(request, response) {
  21. let id = request.query.id;
  22. let versionList = [];
  23. let billList = {
  24. 1: [
  25. {id: '1', name: '重庆2017标准清单'},
  26. {id: '2', name: '重庆2015标准清单'}
  27. ],
  28. 2: [
  29. {id: '3', name: '广东2017标准清单'},
  30. {id: '4', name: '广东2015标准清单'},
  31. ]
  32. };
  33. let rationList = {};
  34. let selectedVersion = {};
  35. try {
  36. // 获取定额库
  37. let stdRationLibMapModel = new STDRationLibMapModel();
  38. rationList = await stdRationLibMapModel.getRationLib();
  39. let versionModel = new VersionModel();
  40. versionList = await versionModel.getVersionList();
  41. if (versionList.length <= 0) {
  42. throw '没有数据';
  43. }
  44. // 循环查找数据
  45. for (let tmp of versionList) {
  46. if (tmp._id.toString() === id) {
  47. selectedVersion = tmp;
  48. break;
  49. }
  50. }
  51. selectedVersion = Object.keys(selectedVersion).length <= 0 ? versionList[0] : selectedVersion;
  52. } catch (error) {
  53. console.log(error);
  54. }
  55. let renderData = {
  56. id: id,
  57. versionList: versionList,
  58. selectedVersion: selectedVersion,
  59. billList: JSON.stringify(billList),
  60. rationList: JSON.stringify(rationList),
  61. province: JSON.stringify(ProvinceList),
  62. layout: 'users/views/layout/layout'
  63. };
  64. response.render('users/views/version/index', renderData);
  65. }
  66. /**
  67. * 新增版本操作
  68. *
  69. * @param {object} request
  70. * @param {object} response
  71. * @return {void}
  72. */
  73. async add(request, response) {
  74. let name = request.body.name;
  75. let standardBillId = request.body.standard_bill_id;
  76. let standardBill = request.body.standard_bill;
  77. let rationLibId = request.body.ration_lib_id;
  78. let rationLib = request.body.ration_lib;
  79. let responseData = {
  80. err: 0,
  81. msg: ''
  82. };
  83. try {
  84. let sessionManager = request.session.managerData;
  85. let insertData = {
  86. name: name,
  87. standard_bill: [{id: standardBillId, name: standardBill}],
  88. ration_lib: [{id: rationLibId, name: rationLib}],
  89. creator: sessionManager.userID
  90. };
  91. let versionModel = new VersionModel();
  92. let result = await versionModel.add(insertData);
  93. if (!result) {
  94. throw '新增版本失败';
  95. }
  96. } catch (error) {
  97. console.log(error);
  98. responseData.err = 1;
  99. responseData.msg = error;
  100. }
  101. response.json(responseData);
  102. }
  103. /**
  104. * 新增标准清单/定额库
  105. *
  106. * @param {object} request
  107. * @param {object} response
  108. * @return {void}
  109. */
  110. async addLib(request, response) {
  111. let responseData = {
  112. err: 0,
  113. msg: ''
  114. };
  115. try {
  116. let versionModel = new VersionModel();
  117. let addResult = await versionModel.addLib(request.body);
  118. if (!addResult) {
  119. throw '新增失败';
  120. }
  121. } catch (error) {
  122. responseData.err = 1;
  123. responseData.msg = error;
  124. }
  125. response.json(responseData);
  126. }
  127. /**
  128. * 删除对应的标准清单/定额库
  129. *
  130. * @param {object} request
  131. * @param {object} response
  132. * @return {void}
  133. */
  134. async deleteLib(request, response) {
  135. let id = request.body.id;
  136. let model = request.body.model;
  137. let deleteId = request.body.delete_id;
  138. let responseData = {
  139. err: 0,
  140. msg: ''
  141. };
  142. try {
  143. let versionModel = new VersionModel();
  144. let result = await versionModel.deleteLib(id, deleteId, model);
  145. if (!result) {
  146. throw '删除失败';
  147. }
  148. } catch (error) {
  149. responseData.err = 1;
  150. responseData.msg = error;
  151. }
  152. response.json(responseData);
  153. }
  154. }
  155. export default VersionController;