cgserver 13.2.8 → 13.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # 版本更新日志
2
+ ## v13.2.10
3
+ - Refactor auto-increment ID logic for MongoDB
2
4
  ## v13.2.3
3
5
  - Improve MongoDB connection validation and error handling
4
6
  ## v13.2.2
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GMongoAutoIdsService = void 0;
13
+ const mongoose_1 = require("mongoose");
14
+ const MongoBaseService_1 = require("./MongoBaseService");
15
+ const SyncCall_1 = require("../../Decorator/SyncCall");
16
+ const underscore_1 = __importDefault(require("underscore"));
17
+ const autoIdSchema = new mongoose_1.Schema({
18
+ autoid: { type: Number, required: true, default: 0 }
19
+ });
20
+ class MongoAutoIdsService extends MongoBaseService_1.MongoBaseService {
21
+ constructor() {
22
+ super('auto_ids', autoIdSchema);
23
+ }
24
+ async getIncressId(key) {
25
+ let md = await this.findOneAndUpdate({ _id: key }, { $inc: { autoid: 1 } }, { upsert: true });
26
+ if (md && md.autoid) {
27
+ return md.autoid + 1;
28
+ }
29
+ return -underscore_1.default.random(2, 999999999);
30
+ }
31
+ }
32
+ __decorate([
33
+ (0, SyncCall_1.SyncCall2)(0)
34
+ ], MongoAutoIdsService.prototype, "getIncressId", null);
35
+ exports.GMongoAutoIdsService = new MongoAutoIdsService();
@@ -7,6 +7,7 @@ exports.MongoBaseService = void 0;
7
7
  const mongoose_1 = __importDefault(require("mongoose"));
8
8
  const Log_1 = require("../../Logic/Log");
9
9
  const MongoManager_1 = require("./MongoManager");
10
+ const MongoAutoIdService_1 = require("./MongoAutoIdService");
10
11
  class MongoBaseService {
11
12
  _model;
12
13
  _schema;
@@ -101,7 +102,7 @@ class MongoBaseService {
101
102
  return ret;
102
103
  }
103
104
  async getAutoIds() {
104
- let id = await this.mongo.getAutoIds(this.model.collection.name);
105
+ let id = await MongoAutoIdService_1.GMongoAutoIdsService.getIncressId(this._collection_name);
105
106
  return id;
106
107
  }
107
108
  }
@@ -196,21 +196,6 @@ class MongoExt {
196
196
  onError(err) {
197
197
  Log_1.gLog.error(err);
198
198
  }
199
- /**
200
- * 获取自增长id
201
- * @param key
202
- * @returns 小于等于0为异常
203
- */
204
- async getAutoIds(key) {
205
- let collection = "auto_ids";
206
- let col = mongoose_2.default.connection.collection(collection);
207
- let where = { _id: key };
208
- let rs = await Core_1.core.safeCall(col.findOneAndUpdate, col, where, { $inc: { id: 1 } }, { upsert: true });
209
- if (rs && rs.id) {
210
- return rs.id + 1;
211
- }
212
- return 1;
213
- }
214
199
  async findOne(model, filter, projection, options) {
215
200
  filter = this._convertFilter(filter);
216
201
  if (!model) {
@@ -363,9 +348,6 @@ exports.MongoExt = MongoExt;
363
348
  __decorate([
364
349
  (0, MongoActionCheck_1.MongoActionCheck)(false)
365
350
  ], MongoExt.prototype, "init", null);
366
- __decorate([
367
- (0, MongoActionCheck_1.MongoActionCheck)(-1)
368
- ], MongoExt.prototype, "getAutoIds", null);
369
351
  __decorate([
370
352
  (0, MongoActionCheck_1.MongoActionCheck)(null)
371
353
  ], MongoExt.prototype, "findOne", null);
@@ -12,20 +12,20 @@ let MongoActionCheck = function (ret = null) {
12
12
  ret = await method.apply(this, arguments);
13
13
  let dt = Date.now() - start_time;
14
14
  let collection = "unknown";
15
- if (arguments && arguments[0] && arguments[0].name) {
16
- collection = arguments[0].name;
15
+ if (arguments && arguments[0] && arguments[0].modelName) {
16
+ collection = arguments[0].modelName;
17
17
  }
18
- self.debug && Log_1.gLog.info({ collection, action: method.name, dt, arguments, dbName: self.dbName });
18
+ self.debug && Log_1.gLog.info({ dt, collection, action: method.name, arguments, dbName: self.dbName });
19
19
  return ret;
20
20
  }
21
21
  catch (error) {
22
22
  Log_1.gLog.error("MongoDB action error:", error);
23
23
  let collection = "unknown";
24
- if (arguments && arguments[0] && arguments[0].name) {
25
- collection = arguments[0].name;
24
+ if (arguments && arguments[0] && arguments[0].modelName) {
25
+ collection = arguments[0].modelName;
26
26
  }
27
27
  let dt = Date.now() - start_time;
28
- self.debug && Log_1.gLog.info({ collection, action: method.name, dt, arguments, dbName: self.dbName });
28
+ self.debug && Log_1.gLog.info({ dt, collection, action: method.name, arguments, dbName: self.dbName });
29
29
  return ret;
30
30
  }
31
31
  };
@@ -0,0 +1,11 @@
1
+ import { IMongoBaseModel } from "./MongoManager";
2
+ import { MongoBaseService } from "./MongoBaseService";
3
+ export interface IAutoIdModel extends IMongoBaseModel {
4
+ autoid: number;
5
+ }
6
+ declare class MongoAutoIdsService extends MongoBaseService<IAutoIdModel> {
7
+ constructor();
8
+ getIncressId(key: string): Promise<number>;
9
+ }
10
+ export declare let GMongoAutoIdsService: MongoAutoIdsService;
11
+ export {};
@@ -75,12 +75,6 @@ export declare class MongoExt {
75
75
  available: any;
76
76
  }>;
77
77
  onError(err: Error): void;
78
- /**
79
- * 获取自增长id
80
- * @param key
81
- * @returns 小于等于0为异常
82
- */
83
- getAutoIds(key: string): Promise<number>;
84
78
  findOne<T>(model: mongoose.Model<T>, filter?: FilterQuery<T>, projection?: any, options?: any): Promise<T | null>;
85
79
  find<T>(model: mongoose.Model<T>, filter?: FilterQuery<T>, projection?: mongoose.ProjectionType<T>, options?: MongooseQueryOptions): Promise<T[]>;
86
80
  findById<T>(model: mongoose.Model<T>, id: any, projection?: mongoose.ProjectionType<T>, options?: MongooseQueryOptions): Promise<T | null>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cgserver",
3
- "version": "13.2.8",
3
+ "version": "13.2.10",
4
4
  "author": "trojan",
5
5
  "type": "commonjs",
6
6
  "description": "free for all.Websocket or Http",