optionsModel.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * Created by Zhong on 2017/9/28.
  3. */
  4. let mongoose = require('mongoose');
  5. const optionsModel = mongoose.model('options');
  6. class OptionsDao {
  7. async getOptions(user_id, compilation_id){
  8. let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  9. rst = rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null;
  10. return rst;
  11. }
  12. async getOptionsByType(user_id, compilation_id, optsType){
  13. let rst = await optionsModel.findOne({user_id: user_id, compilation_id: compilation_id});
  14. if(rst){
  15. return rst.options[optsType] !== undefined && rst.options[optsType] !== null ? rst.options[optsType] : null;
  16. }
  17. }
  18. async saveOptions(user_id, compilation_id, optSetting){
  19. let optionsData = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  20. if(optionsData.length === 0){
  21. await optionsModel.create({user_id: user_id, compilation_id: compilation_id, options: optSetting});
  22. }
  23. await optionsModel.update({user_id: user_id, compilation_id: compilation_id}, optSetting);
  24. let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  25. return rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null;
  26. }
  27. }
  28. /*class OptionsDao {
  29. async getOptions(user_id, compilation_id){
  30. let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  31. rst = rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null;
  32. return rst;
  33. }
  34. async getOptionsByType(user_id, compilation_id, optsType){
  35. let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  36. if(rst.length > 0){
  37. let opts = rst[0].options;
  38. for(let i = 0, len = opts.length; i < len; i++){
  39. if(opts[i].type === optsType){
  40. return opts[i];
  41. }
  42. }
  43. }
  44. return null;
  45. }
  46. async saveOptions(user_id, compilation_id, opsType, opts){
  47. let optionsData = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  48. if(optionsData.length === 0){
  49. await optionsModel.create({user_id: user_id, compilation_id: compilation_id, options: [{type: opsType, opts: opts}]});
  50. }
  51. await optionsModel.update({user_id: user_id, compilation_id: compilation_id, 'options.type': opsType}, {$set: {'options.$.opts': opts}});
  52. let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id});
  53. return rst;
  54. }
  55. }*/
  56. export default OptionsDao;