123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /**
- * 计价规则标准库业务逻辑
- *
- * @author CaiAoLin
- * @date 2017/8/31
- * @version
- */
- import mongoose from "mongoose";
- import BaseModel from "../../common/base/base_model";
- class EngineeringLibModel extends BaseModel {
- /**
- * 构造函数
- *
- * @return {void}
- */
- constructor() {
- let parent = super();
- parent.model = mongoose.model('engineering_lib');
- parent.init();
- }
- /**
- * 获取标准库数据
- *
- * @param {Object} data
- * @return {Promise}
- */
- async getLib(data) {
- if (data.length <= 0) {
- return data;
- }
- let valuationIDs = [];
- // 整理出数据库需要查找的id,一次查找
- for(let valuation of data) {
- if (valuation === null) {
- continue;
- }
- if(valuation.id){
- valuationIDs.push(valuation.id);
- }
- }
- // 查找对应的id数据
- let condition = {visible:true,valuationID: {"$in": valuationIDs}};
- let engineeringLibList = await this.findDataByCondition(condition,null,false);
- engineeringLibList = JSON.parse(JSON.stringify(engineeringLibList));
- // 组合计价规则id对应专业工程标准库数据
- let engineeringLib = {};
- for(let engineering of engineeringLibList){
- let tem = {//做一下转换,和原来的结构一致
- engineering_id:engineering._id.toString(),
- engineering:engineering.engineering,
- lib:engineering
- };
- if(engineeringLib[engineering.valuationID] === undefined){
- engineeringLib[engineering.valuationID] = [tem];
- }else {
- engineeringLib[engineering.valuationID].push(tem);
- }
- }
- // 替换计价规则数据
- let valuationData = JSON.parse(JSON.stringify(data));
- for(let valuation of valuationData) {
- if (valuation === null) {
- continue;
- }
- valuation.engineering_list = [];
- if(engineeringLib[valuation.id]){
- valuation.engineering_list = engineeringLib[valuation.id]
- }
- }
- return valuationData;
- };
- async getEngineering(engineering_id) {
- let condition = {_id: engineering_id};
- let engineering = await this.findDataByCondition(condition);
- return engineering;
- };
- }
- module.exports = EngineeringLibModel;
|