/** * 版本控制控制器 * * @author CaiAoLin * @date 2017/7/28 * @version */ import BaseController from "../../common/base/base_controller"; import VersionModel from "../models/version_model"; import STDRationLibMapModel from "../../common/std/std_ration_lib_map_model"; import STDBillLibListsModel from "../../common/std/std_bills_lib_lists_model"; import {default as ProvinceConst, List as ProvinceList} from "../../common/const/province_const"; import {default as EngineeringConst, List as EngineeringList} from "../../common/const/engineering"; class VersionController extends BaseController { /** * 版本控制页面 * * @param {object} request * @param {object} response * @return {void} */ async index(request, response) { let id = request.query.id; let versionList = []; let selectedVersion = {}; try { let versionModel = new VersionModel(); versionList = await versionModel.getVersionList(); if (versionList.length <= 0) { throw '没有数据'; } // 循环查找数据 for (let tmp of versionList) { if (tmp._id.toString() === id) { selectedVersion = tmp; break; } } selectedVersion = Object.keys(selectedVersion).length <= 0 ? versionList[0] : selectedVersion; request.session.selectedVersion = selectedVersion; } catch (error) { console.log(error); } let renderData = { id: id, versionList: versionList, selectedVersion: selectedVersion, layout: 'users/views/layout/layout' }; response.render('users/views/version/index', renderData); } /** * 新增计价页面 * * @param {object} request * @param {object} response * @return {void} */ async addValuation(request, response) { let name = request.body.name; let id = request.body.id; let section = request.body.section; let responseData = { err: 0, msg: '' }; try { if (id === undefined || id === '') { throw '参数错误'; } let insertData = { name: name, }; let versionModel = new VersionModel(); let result = await versionModel.addValuation(id, section, insertData); if (!result) { throw '新增计价规则失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } /** * 修改计价规则页面 * * @param {object} request * @param {object} response * @return {void} */ async editValuation(request, response) { let selectedVersion = request.session.selectedVersion; let valuationId = request.params.id; let section = request.params.section; let billList = {}; let rationList = {}; let versionList = []; let valuationData = {}; let valuationList = {}; try { let versionModel = new VersionModel(); versionList = await versionModel.getVersionList(); // 获取标准清单 let stdBillLibListsModel = new STDBillLibListsModel(); billList = await stdBillLibListsModel.getBillList(); // 获取定额库 let stdRationLibMapModel = new STDRationLibMapModel(); rationList = await stdRationLibMapModel.getRationLib(); // 获取对应的计价规则数据 [valuationData, valuationList] = await versionModel.getValuation(selectedVersion._id, valuationId, section); if (Object.keys(valuationData).length <= 0) { throw '不存在数据'; } } catch (error) { console.log(error); } let renderData = { versionList: versionList, billList: JSON.stringify(billList), rationList: JSON.stringify(rationList), province: JSON.stringify(ProvinceList), engineeringList: EngineeringList, selectedVersion: selectedVersion, valuationData: valuationData, valuationList: valuationList, valuationId: valuationId, section: section, layout: 'users/views/layout/layout' }; response.render('users/views/version/add', renderData); } /** * 保存计价规则 * * @param {object} request * @param {object} response * @return {void} */ async saveValuation(request, response) { let valuationId = request.body.id; try { if (valuationId === '') { throw 'id参数错误'; } let versionModel = new VersionModel(); let result = await versionModel.saveValuation(valuationId, request.body); if (!result) { throw '保存失败'; } } catch (error) { console.log(error); } response.redirect(request.headers.referer); } /** * 删除计价规则 * * @param {object} request * @param {object} response * @return {void} */ async deleteValuation(request, response) { let id = request.params.id; let section = request.params.section; let selectedVersion = request.session.selectedVersion; try { if (id === undefined || id === '' || section === undefined || section === '') { throw '参数错误'; } let versionModel = new VersionModel(); let result = versionModel.deleteValuation(selectedVersion._id, id, section); if (!result) { throw '删除失败'; } } catch (error) { console.log(error); } response.redirect(request.headers.referer); } /** * 快速切换启用/禁用 * * @param {object} request * @param {object} response * @return {void} */ async enableSwitch(request, response) { let id = request.body.id; let section = request.params.section; let enable = request.body.enable; let responseData = { err: 0, msg: '' }; try { let versionModel = new VersionModel(); let result = await versionModel.switchEnable(id, section, enable); if (!result) { throw '新增版本失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } /** * 发布/取消版本 * * @param {object} request * @param {object} response * @return {void} */ async release(request, response) { let id = request.params.id; let release = request.params.release; release = parseInt(release); try { let versionModel = new VersionModel(); let updateData = { is_release: release === 1, release_time: new Date().getTime() }; let result = await versionModel.updateById(id, updateData); if (!result) { throw '发布版本失败'; } } catch (error) { console.log(error); } response.redirect(request.headers.referer); } /** * 新增版本操作 * * @param {object} request * @param {object} response * @return {void} */ async addVersion(request, response) { let name = request.body.name; let responseData = { err: 0, msg: '' }; try { let sessionManager = request.session.managerData; let insertData = { name: name, creator: sessionManager.userID }; let versionModel = new VersionModel(); let result = await versionModel.add(insertData); if (!result) { throw '新增版本失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } } export default VersionController;