repository_map.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /**
  2. * Created by Tony on 2017/4/24.
  3. * 重新构造,不适宜生成多个定额库db,还是得统一在一个表
  4. */
  5. var mongoose = require('mongoose');
  6. var dbm = require("../../../config/db/db_manager");
  7. //var stringUtil = require('../../../public/stringUtil');
  8. var rationLibdb = dbm.getCfgConnection("scConstruct");
  9. var Schema = mongoose.Schema;
  10. var RepositoryMapSchema = new Schema({
  11. "ID": Number,
  12. "dispName" : String,
  13. "appType" : String, //如:"建筑" / "公路"
  14. "localeType": String, //如 各个省份 / 部颁
  15. "descr" : String,
  16. "deleted": Boolean
  17. });
  18. var counter = require('../../../public/counter/counter');
  19. var rationRepository = rationLibdb.model("std_ration_lib_map", RepositoryMapSchema, "std_ration_lib_map");
  20. function createNewLibModel(rationLibObj){
  21. var rst = {};
  22. rst.dispName = rationLibObj.dispName;
  23. rst.appType = rationLibObj.appType?rationLibObj.appType:'construct';
  24. rst.localeType = rationLibObj.localeType?rationLibObj.localeType:'';
  25. rst.descr = rationLibObj.descr;
  26. rst.deleted = false;
  27. return rst;
  28. }
  29. let rationRepositoryDao = function(){};
  30. rationRepositoryDao.prototype.getRealLibName = function(dispName,callback){
  31. if (callback) {
  32. rationRepository.find({"dispName": dispName}, function(err,data){
  33. if (err) {
  34. callback('Error', null);
  35. } else {
  36. callback(false, data);
  37. }
  38. });
  39. } else {
  40. var rst = rationRepository.find({"dispName": dispName}).exec();
  41. return rst;
  42. }
  43. };
  44. rationRepositoryDao.prototype.getLibIDByName = function(dispName, callback){
  45. rationRepository.findOne({"dispName": dispName}, function(err,data){
  46. if (err) {
  47. callback('Error', null);
  48. } else {
  49. callback(false, data.ID);
  50. }
  51. });
  52. };
  53. rationRepositoryDao.prototype.getRepositoryById = function(repId,callback){
  54. if (callback) {
  55. rationRepository.find({"ID": repId}, function(err,data){
  56. if (err) {
  57. callback('Error', null);
  58. } else {
  59. callback(false, data);
  60. }
  61. });
  62. } else {
  63. var rst = rationRepository.find({"ID": repId}).exec();
  64. return rst;
  65. }
  66. };
  67. rationRepositoryDao.prototype.addRationRepository = function( rationLibObj,callback){
  68. counter.counterDAO.getIDAfterCount(counter.moduleName.rationMap, 1, function(err, result){
  69. var rMap = createNewLibModel(rationLibObj);
  70. rMap.ID = result.value.sequence_value;
  71. new rationRepository(rMap).save(function(err, result) {
  72. if (err) callback("Error", null)
  73. else
  74. callback(false, result);
  75. });
  76. });
  77. };
  78. rationRepositoryDao.prototype.getDisplayRationLibs = function(callback) {
  79. rationRepository.find({"deleted": false}, function(err, data){
  80. if (err) {
  81. callback( 'Error', null);
  82. } else {
  83. callback( false, data);
  84. }
  85. });
  86. };
  87. rationRepositoryDao.prototype.updateName = function(orgName,newName,callback){
  88. rationRepository.find({"dispName":newName, "deleted": false}, function(err, data){
  89. if (data.length == 0) {
  90. rationRepository.update({dispName:orgName},{$set:{dispName:newName}},function(err){
  91. if(err) callback("err",false);
  92. else callback(false,"ok")
  93. })
  94. } else
  95. callback("不可重名!",false);
  96. });
  97. }
  98. rationRepositoryDao.prototype.deleteRationLib = function(rationName,callback){
  99. rationRepository.find({"dispName":rationName, "deleted": false}, function(err, data){
  100. if (data.length == 1) {
  101. rationRepository.update({dispName:rationName},{$set:{deleted: true}},function(err){
  102. if(err) callback("err",false);
  103. else callback(false,"ok")
  104. })
  105. } else
  106. callback("删除失败!",false);
  107. });
  108. }
  109. module.exports = new rationRepositoryDao();