1234567891011121314151617181920212223242526272829303132333435363738 |
- /**
- * Created by Zhong on 2017/9/28.
- */
- import optionsModel from '../models/schemas';
- 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];
- }
- }
- }
- else 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;
|