| 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;
 |