search_controller.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Created by Mai on 2017/6/5.
  3. */
  4. var rationItem = require('../models/ration_item');
  5. let rationChapter = require('../models/ration_section_tree');
  6. let asyncTool = require('async');
  7. var callback = function(req, res, err, message, data){
  8. res.json({error: err, message: message, data: data});
  9. };
  10. module.exports = {
  11. getRationItem: function (req, res) {
  12. let rId = req.body.rationLibId, code = req.body.code;
  13. rationItem.getRationItem(rId, code).then(function (result) {
  14. let rationData = JSON.stringify(result._doc);
  15. rationData = JSON.parse(rationData);
  16. rationChapter.getRationChapter(rationData.rationRepId, rationData.sectionId).then(function (result) {
  17. rationData.chapter = result._doc;
  18. callback(req, res, null, '', rationData);
  19. }).catch(function (err, message) {
  20. callback(req, res, null, '', rationData);
  21. });
  22. }).catch(function (err, message) {
  23. callback(req, res, err, message, null);
  24. })
  25. },
  26. findRation: function (req, res) {
  27. var rId = req.body.rationLibId, keyword = req.body.keyword;
  28. rationItem.findRation(rId, keyword, function (err, message, rst) {
  29. if (err) {
  30. callback(req, res, err, message, null);
  31. } else {
  32. callback(req, res, 0, '', rst);
  33. }
  34. });
  35. },
  36. matchRation: function (req, res) {
  37. let rId = req.body.rationLibId, code = req.body.code;
  38. asyncTool.waterfall([
  39. function (callback) {
  40. rationItem.matchRation(rId, code, callback);
  41. },
  42. function (ration, callback) {
  43. if (ration) {
  44. rationChapter.getRationChapter(rId, ration.sectionId).then(function(result, err) {
  45. if (!err) {
  46. ration.chapter = JSON.parse(JSON.stringify(result));
  47. callback(err, ration);
  48. } else {
  49. callback(err, ration);
  50. }
  51. }).catch(
  52. );
  53. } else {
  54. callback(null, ration);
  55. }
  56. }
  57. ], function (err, result) {
  58. if (err) {
  59. callback(req, res, 1, err, null);
  60. } else {
  61. callback(req, res, 0, err, result);
  62. }
  63. });
  64. }
  65. };