project.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /**
  2. * Created by Mai on 2017/1/18.
  3. */
  4. var db = require('../db/pm_db');
  5. var Schema = db.mongoose.Schema;
  6. var ProjectSchema = new Schema({
  7. "name": String,
  8. "projType": String,
  9. "lastDateTime": Date,
  10. "createDateTime": Date,
  11. "id": Number,
  12. "parentId": Number,
  13. "nextId": Number,
  14. "userId": Number,
  15. "deleted": Boolean,
  16. 'deleteDateTime': Date,
  17. 'deleteFullFolder': Array
  18. });
  19. var Projects = db.mongoose.model("projects", ProjectSchema);
  20. var ProjectsDAO = function(){};
  21. ProjectsDAO.prototype.getUserProjects = function(userId, callback){
  22. Projects.find({userId: userId, deleted: { $in: [false, null]}}, '-_id', function(err, templates){
  23. if (err) {
  24. callback(1, 'Error', null);
  25. } else {
  26. callback(0, '', templates);
  27. }
  28. });
  29. };
  30. ProjectsDAO.prototype.getUserProject = function (userId, ProjId, callback) {
  31. Projects.findOne({userId: userId, id: ProjId}, '-_id', function(err, template){
  32. if (err) {
  33. callback(1, '找不到标段数据', null);
  34. } else {
  35. callback(0, '', template);
  36. }
  37. });
  38. }
  39. ProjectsDAO.prototype.updateUserProjects = function(userId, datas, callback){
  40. var data, project, updateLength = 0, hasError = false;
  41. var updateAll = function (err) {
  42. if (!err){
  43. updateLength += 1;
  44. if (updateLength === datas.length) {
  45. callback(0, '', datas);
  46. }
  47. } else {
  48. hasError = true;
  49. callback(1, '提交数据出错.', null);
  50. }
  51. };
  52. if (datas){
  53. for (var i = 0; i < datas.length && !hasError; i++){
  54. data = datas[i];
  55. if (data.updateType === 'update') {
  56. Projects.update({userId: userId, id: data.updateData.id}, data.updateData, updateAll)
  57. } else if (data.updateType === 'new') {
  58. data.updateData['userId'] = userId;
  59. if (data.updateData.projType === 'Tender') {
  60. data.updateData['createDateTime'] = new Date();
  61. }
  62. newProject = new Projects(data.updateData);
  63. newProject.save(updateAll);
  64. } else if (data.updateType === 'delete') {
  65. data.updateData['deleteDateTime'] = new Date();
  66. Projects.update({userId: userId, id: data.updateData.id}, data.updateData, updateAll);
  67. }
  68. }
  69. }
  70. };
  71. ProjectsDAO.prototype.rename = function (userId, projectId, newName, callback){
  72. Projects.update({userId: userId, id: projectId}, {name: newName}, function(err){
  73. if (err){
  74. callback(1, '项目不存在.');
  75. } else {
  76. callback(0, '');
  77. }
  78. });
  79. };
  80. module.exports = new ProjectsDAO();