/** * Created by Zhong on 2017/9/28. */ import BaseController from '../../common/base/base_controller'; import OptionsDao from '../models/optionsModel'; import optionsTypes from '../models/optionTypes'; let optionsDao = new OptionsDao(); class OptionController extends BaseController { //获得所有选项类型的选项 async getOptions(req, res){ let resJson = {error: null, message: '', data: []}; let user_id = req.session.sessionUser.id, compilation_id = req.session.sessionCompilation._id; let defaultOpts = { GENERALOPTS: { rationQuanACToBillsQuan: true,//自动根据清单工程量填写定额工程量 rationQuanACToRationUnit: true//自动根据定额单位转换定额工程量 } }; try{ resJson.data = await optionsDao.getOptions(user_id, compilation_id); if(!resJson.data){ resJson.data = await optionsDao.saveOptions(user_id, compilation_id, optionsTypes.GENERALOPTS, defaultOpts.GENERALOPTS); } } catch (err){ resJson.error = true; resJson.message = '获取失败'; resJson.data = null; } res.json(resJson); } //获得特定选项类型的选项 async getOptionsByType(req, res){ let resJson = {error: null, message: '', data: null}; let user_id = req.session.sessionUser.id, compilation_id = req.session.sessionCompilation._id, optsType = req.body.optsType; try{ let hasThisOpts = false; for(let i in optionsTypes){ if(optionsTypes[i] === optsType){ hasThisOpts = true; break; } } if(!hasThisOpts) throw '不存在此选项类'; resJson.data = await optionsDao.getOptionsByType(user_id, compilation_id, optsType); } catch (err){ resJson.error = true; resJson.message = '获取失败'; resJson.data = null; } res.json(resJson); } async saveOptions(req, res){ let resJson = {error: null, message: '', data: null}; let user_id = req.session.sessionUser.id, compilation_id = req.session.sessionCompilation._id, optsType = req.body.optsType, opts = JSON.parse(req.body.opts); try{ let hasThisOpts = false; for(let i in optionsTypes){ if(optionsTypes[i] == optsType){ hasThisOpts = true; break; } } if(!hasThisOpts) throw '不存在此选项类'; resJson.data = await optionsDao.saveOptions(user_id, compilation_id, optsType, opts); } catch (err){ resJson.error = true; resJson.message = '保存失败'; resJson.data = null; } res.json(resJson); } } export default OptionController;