| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- /**
 
-  * Created by Tony on 2017/8/3.
 
-  */
 
- let mongoose = require("mongoose");
 
- let prj_prop_mdl = mongoose.model("project_property");
 
- let std_prj_prop_mdl = mongoose.model("cfg_prj_property");
 
- module.exports = {
 
-     createPrjProperties: createPrjProperties,
 
-     removePrjProperties : removePrjProperties,
 
-     updateWhole: updateWhole,
 
-     updateOneProperty: updateOneProperty,
 
-     addOrChangeProperty: addOrChangeProperty,
 
-     removeOneProperty: removeOneProperty,
 
-     getPrjProperty: getPrjProperty,
 
-     createStdPrjProperties: createStdPrjProperties,
 
-     getStdPrjProperties: getStdPrjProperties,
 
-     createPrjPropertiesWithCallBack: createPrjPropertiesWithCallBack,
 
-     removePrjPropertiesWithCallBack: removePrjPropertiesWithCallBack,
 
-     updateWholeWithCallBack: updateWholeWithCallBack,
 
-     updateOnePropertyWithCallBack: updateOnePropertyWithCallBack,
 
-     addOrChangePropertyWithCallBack: addOrChangePropertyWithCallBack,
 
-     removeOnePropertyWithCallBack: removeOnePropertyWithCallBack
 
- };
 
- async function createStdPrjProperties(rationLibId, items) {
 
-     let data = {};
 
-     data.rationLibID = rationLibId;
 
-     data.properties = items;
 
-     let rst = await  std_prj_prop_mdl.create(data);
 
-     return rst;
 
- }
 
- async function getStdPrjProperties(rationLibId) {
 
-     let rst = await  std_prj_prop_mdl.findOne({"rationLibID": rationLibId});
 
-     return rst;
 
- }
 
- async function getPrjProperty(prjId) {
 
-     let rst = await  prj_prop_mdl.findOne({"projectID": prjId});
 
-     return rst;
 
- }
 
- async function createPrjProperties(prjId, dftItems) {
 
-     let data = {};
 
-     data.projectID = prjId;
 
-     data.properties = dftItems;
 
-     let rst = await  prj_prop_mdl.create(data);
 
-     return rst;
 
- };
 
- async function removePrjProperties(prjId) {
 
-     let rst = await  prj_prop_mdl.remove({'projectID': prjId});
 
-     return rst;
 
- };
 
- async function updateWhole(prjPropObj) {
 
-     let rst = null;
 
-     if (prjPropObj && prjPropObj.hasOwnProperty('projectID') && prjPropObj.hasOwnProperty('properties') && (prjPropObj.properties instanceof Array)) {
 
-         rst = await  prj_prop_mdl.update({'projectID': prjPropObj.projectID}, prjPropObj);
 
-     }
 
-     return rst;
 
- }
 
- async function updateOneProperty(prjId, key, newValue) {
 
-     let rst = await  prj_prop_mdl.update({"projectID": prjId, "properties.key": key}, {"$set": {"properties.$.value": newValue}});
 
-     return rst;
 
- }
 
- async function addOrChangeProperty(prjId, newItem) {
 
-     let rst = null;
 
-     rst = await  prj_prop_mdl.findOne({"projectID": prjId, "properties.key": newItem.key});
 
-     //console.log('find result: ' + rst);
 
-     if (rst === null || rst.length === 0) {
 
-         rst = await  prj_prop_mdl.update({"projectID": prjId}, {"$push": {"properties": newItem}});
 
-         //console.log('push result: ' + rst);
 
-     } else {
 
-         rst = await  prj_prop_mdl.update({"projectID": prjId, "properties.key": newItem.key}, {"$set": {"properties.$.value": newItem.value}});
 
-         //console.log('update result: ' + rst);
 
-     }
 
-     return rst;
 
- };
 
- async  function removeOneProperty(prjId, key) {
 
-     let rst = prj_prop_mdl.update({"projectID": prjId}, {"$pull": {"properties": {"key": key}}});
 
-     return rst;
 
- }
 
- function createPrjPropertiesWithCallBack(prjId, dftItems, cb) {
 
-     let data = {};
 
-     data.projectID = prjId;
 
-     data.properties = dftItems;
 
-     let saveObj = new prj_prop_mdl(data);
 
-     saveObj.save(cb);
 
- };
 
- function removePrjPropertiesWithCallBack(prjId, cb) {
 
-     prj_prop_mdl.remove({'projectID': prjId}, cb);
 
- }
 
- function updateWholeWithCallBack(prjPropObj, cb) {
 
-     if (prjPropObj && prjPropObj.hasOwnProperty('projectID') && prjPropObj.hasOwnProperty('properties') && (prjPropObj.properties instanceof Array)) {
 
-         prj_prop_mdl.update({'projectID': prjPropObj.projectID}, prjPropObj, cb);
 
-     }
 
- }
 
- function updateOnePropertyWithCallBack(prjId, key, newValue, cb) {
 
-     prj_prop_mdl.update({"projectID": prjId, "properties.key": key}, {"$set": {"properties.$.value": newValue}}, cb);
 
- }
 
- function addOrChangePropertyWithCallBack(prjId, newItem, cb) {
 
-     prj_prop_mdl.findOne({"projectID": prjId, "properties.key": newItem.key}, function(err, result){
 
-         if (err === null) {
 
-             if (result === null) {
 
-                 console.log('no result');
 
-                 prj_prop_mdl.update({"projectID": prjId}, {"$push": {"properties": newItem}}, cb);
 
-             } else {
 
-                 console.log('has result');
 
-                 prj_prop_mdl.update({"projectID": prjId, "properties.key": newItem.key}, {"$set": {"properties.$.value": newItem.value}}, cb);
 
-             }
 
-         }
 
-     });
 
- }
 
- function removeOnePropertyWithCallBack(prjId, key, cb) {
 
-     prj_prop_mdl.update({"projectID": prjId}, {"$pull": {"properties": {"key": key}}}, cb);
 
- }
 
 
  |