/** * Created by Zhong on 2017/9/28. */ const optionsModel = mongoose.model('options'); class OptionsDao { async getOptions(user_id, compilation_id){ let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); rst = rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null; return rst; } async getOptionsByType(user_id, compilation_id, optsType){ let rst = await optionsModel.findOne({user_id: user_id, compilation_id: compilation_id}); if(rst){ return rst.options[optsType] !== undefined && rst.options[optsType] !== null ? rst.options[optsType] : null; } } async saveOptions(user_id, compilation_id, optSetting){ let optionsData = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); if(optionsData.length === 0){ await optionsModel.create({user_id: user_id, compilation_id: compilation_id, options: optSetting}); } await optionsModel.update({user_id: user_id, compilation_id: compilation_id}, optSetting); let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); return rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null; } } /*class OptionsDao { async getOptions(user_id, compilation_id){ let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); rst = rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null; return rst; } async getOptionsByType(user_id, compilation_id, optsType){ let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); if(rst.length > 0){ let opts = rst[0].options; for(let i = 0, len = opts.length; i < len; i++){ if(opts[i].type === optsType){ return opts[i]; } } } return null; } async saveOptions(user_id, compilation_id, opsType, opts){ let optionsData = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); if(optionsData.length === 0){ await optionsModel.create({user_id: user_id, compilation_id: compilation_id, options: [{type: opsType, opts: opts}]}); } await optionsModel.update({user_id: user_id, compilation_id: compilation_id, 'options.type': opsType}, {$set: {'options.$.opts': opts}}); let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); return rst; } }*/ export default OptionsDao;