optionsModel.js 2.6 KB

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