|
@@ -0,0 +1,55 @@
|
|
|
+/**
|
|
|
+ * Created by Tony on 2017/3/21.
|
|
|
+ */
|
|
|
+var mongoose = require('mongoose');
|
|
|
+var dbm = require("../../config/db/db_manager");
|
|
|
+var projectdb = dbm.getCfgConnection("scConstruct");
|
|
|
+
|
|
|
+var Schema = mongoose.Schema;
|
|
|
+var counterSchema = new Schema({
|
|
|
+ _id: String,
|
|
|
+ sequence_value: Number
|
|
|
+});
|
|
|
+counterSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
|
|
|
+ return this.collection.findAndModify(query, sort, doc, options, callback);
|
|
|
+};
|
|
|
+var counterModel = projectdb.model("counters", counterSchema);
|
|
|
+
|
|
|
+const PROJECT_COUNTER = 'projects', USER_COUNTER = 'users', BILL_COUNTER = 'bills', RATION_COUNTER = 'rations',
|
|
|
+ REPORT_COUNTER = 'rptTemplates', FEE_COUNTER = 'fees'
|
|
|
+
|
|
|
+var counterDAO = function(){};
|
|
|
+
|
|
|
+counterDAO.prototype.getIDAfterCount = function(moduleName, stepCount, callback) {
|
|
|
+ //counterModel.findAndModify({_id: moduleName}, [], { $inc: { sequence_value: stepCount } }, {'new':true},
|
|
|
+ // function (err, result) {
|
|
|
+ // if (err) return err
|
|
|
+ // else {
|
|
|
+ // console.log('result: ' + result.value.sequence_value);
|
|
|
+ // return result.value.sequence_value;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //);
|
|
|
+ //var rst = counterModel.findOne({_id: moduleName}).exec()
|
|
|
+ // .then(function(result, err) {
|
|
|
+ // console.log('thenable');
|
|
|
+ // return result;
|
|
|
+ // }
|
|
|
+ //);
|
|
|
+ var rst = counterModel.findAndModify({_id: moduleName}, [], { $inc: { sequence_value: stepCount } }, {'new':true}, callback);
|
|
|
+ //projectdb.close();
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+counterDAO.prototype.getID = function(moduleName) {
|
|
|
+ var rst = counterModel.findOne({_id: moduleName}).exec()
|
|
|
+ .then(function(result, err) {
|
|
|
+ console.log('thenable');
|
|
|
+ //projectdb.close();
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+module.exports = new counterDAO();
|