cgserver 7.8.2113 → 7.10.2113

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.
Files changed (236) hide show
  1. package/dist/lib/{AI → Framework/AI}/BehaviorAI.js +1 -1
  2. package/dist/lib/{index.js → Framework/index.js} +5 -2
  3. package/dist/lib/test/test.js +21 -0
  4. package/dist/types/{index.d.ts → Framework/index.d.ts} +1 -1
  5. package/dist/types/test/test.d.ts +1 -0
  6. package/package.json +1 -1
  7. package/src/Framework/AI/AiObject.ts +12 -0
  8. package/src/Framework/AI/Astar.ts +157 -0
  9. package/src/Framework/AI/BehaviorAI.ts +382 -0
  10. package/src/Framework/AI/Entity.ts +37 -0
  11. package/src/Framework/AI/Point.ts +84 -0
  12. package/src/Framework/AI/TriggerMgr.ts +280 -0
  13. package/src/Framework/Config/Config.ts +61 -0
  14. package/src/Framework/Config/FrameworkConfig.ts +286 -0
  15. package/src/Framework/Config/IServerConfig.ts +28 -0
  16. package/src/Framework/Config/_error_.ts +32 -0
  17. package/src/Framework/Core/Core.ts +810 -0
  18. package/src/Framework/Core/Timer.ts +147 -0
  19. package/src/Framework/Database/Decorator/AutoIncrement.ts +9 -0
  20. package/src/Framework/Database/Decorator/DBCache.ts +74 -0
  21. package/src/Framework/Database/Decorator/NotNull.ts +9 -0
  22. package/src/Framework/Database/Decorator/PrimaryKey.ts +9 -0
  23. package/src/Framework/Database/Decorator/Property.ts +64 -0
  24. package/src/Framework/Database/Decorator/Table.ts +13 -0
  25. package/src/Framework/Database/Decorator/Type.ts +21 -0
  26. package/src/Framework/Database/MSSqlManager.ts +52 -0
  27. package/src/Framework/Database/MongoBaseService.ts +136 -0
  28. package/src/Framework/Database/MongoManager.ts +501 -0
  29. package/src/Framework/Database/MysqlBaseService.ts +345 -0
  30. package/src/Framework/Database/MysqlManager.ts +212 -0
  31. package/src/Framework/Database/RedisManager.ts +544 -0
  32. package/src/Framework/Logic/CacheTool.ts +85 -0
  33. package/src/Framework/Logic/EventTool.ts +31 -0
  34. package/src/Framework/Logic/HttpTool.ts +82 -0
  35. package/src/Framework/Logic/Log.ts +171 -0
  36. package/src/Framework/Logic/SyncQueueTool.ts +51 -0
  37. package/src/Framework/Service/AccountService.ts +508 -0
  38. package/src/Framework/Service/MongoAccountService.ts +456 -0
  39. package/src/Framework/Service/MongoCacheService.ts +48 -0
  40. package/src/Framework/Service/MongoUserService.ts +103 -0
  41. package/src/Framework/Service/UserService.ts +168 -0
  42. package/src/Framework/Service/ini.ts +33 -0
  43. package/src/Framework/SocketServer/IClientWebSocket.ts +50 -0
  44. package/src/Framework/SocketServer/IRpc.ts +12 -0
  45. package/src/Framework/SocketServer/IRpcClientWebSocket.ts +75 -0
  46. package/src/Framework/SocketServer/IRpcServerWebSocket.ts +76 -0
  47. package/src/Framework/SocketServer/IServerWebSocket.ts +88 -0
  48. package/src/Framework/SocketServer/ISocketServer.ts +243 -0
  49. package/src/Framework/SocketServer/IWebSocket.ts +243 -0
  50. package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +68 -0
  51. package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +11 -0
  52. package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +34 -0
  53. package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +34 -0
  54. package/src/Framework/ThirdParty/AlipayTool.ts +224 -0
  55. package/src/Framework/ThirdParty/Alisms.ts +53 -0
  56. package/src/Framework/ThirdParty/AppleTool.ts +252 -0
  57. package/src/Framework/ThirdParty/CgMq.ts +153 -0
  58. package/src/Framework/ThirdParty/EmailTool.ts +37 -0
  59. package/src/Framework/ThirdParty/OpenSocial.ts +36 -0
  60. package/src/Framework/ThirdParty/QQTool.ts +124 -0
  61. package/src/Framework/ThirdParty/QiniuTool.ts +23 -0
  62. package/src/Framework/ThirdParty/Rpc.ts +75 -0
  63. package/src/Framework/ThirdParty/WechatOATool.ts +61 -0
  64. package/src/Framework/ThirdParty/WechatTool.ts +80 -0
  65. package/src/Framework/WebServer/Controller/BaseController.ts +140 -0
  66. package/src/Framework/WebServer/Controller/BaseUserController.ts +209 -0
  67. package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +209 -0
  68. package/src/Framework/WebServer/Decorator/AdminValidate.ts +19 -0
  69. package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +25 -0
  70. package/src/Framework/WebServer/Decorator/CreatorValidate.ts +19 -0
  71. package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +16 -0
  72. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  73. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +23 -0
  74. package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +19 -0
  75. package/src/Framework/WebServer/Decorator/SyncCall.ts +20 -0
  76. package/src/Framework/WebServer/Decorator/SyncCallServer.ts +45 -0
  77. package/src/Framework/WebServer/Engine/ControllerManager.ts +134 -0
  78. package/src/Framework/WebServer/Engine/Engine.ts +186 -0
  79. package/src/Framework/WebServer/Engine/RazorJs.ts +720 -0
  80. package/src/Framework/WebServer/Engine/Request.ts +267 -0
  81. package/src/Framework/WebServer/Engine/Response.ts +123 -0
  82. package/src/Framework/WebServer/IWebServer.ts +61 -0
  83. package/src/Framework/cgserver.ts +112 -0
  84. package/src/Framework/index.ts +92 -0
  85. package/src/test/test.ts +12 -0
  86. /package/dist/lib/{AI → Framework/AI}/AiObject.js +0 -0
  87. /package/dist/lib/{AI → Framework/AI}/Astar.js +0 -0
  88. /package/dist/lib/{AI → Framework/AI}/Entity.js +0 -0
  89. /package/dist/lib/{AI → Framework/AI}/Point.js +0 -0
  90. /package/dist/lib/{AI → Framework/AI}/TriggerMgr.js +0 -0
  91. /package/dist/lib/{Config → Framework/Config}/Config.js +0 -0
  92. /package/dist/lib/{Config → Framework/Config}/FrameworkConfig.js +0 -0
  93. /package/dist/lib/{Config → Framework/Config}/IServerConfig.js +0 -0
  94. /package/dist/lib/{Config → Framework/Config}/_error_.js +0 -0
  95. /package/dist/lib/{Core → Framework/Core}/Core.js +0 -0
  96. /package/dist/lib/{Core → Framework/Core}/Timer.js +0 -0
  97. /package/dist/lib/{Database → Framework/Database}/Decorator/AutoIncrement.js +0 -0
  98. /package/dist/lib/{Database → Framework/Database}/Decorator/DBCache.js +0 -0
  99. /package/dist/lib/{Database → Framework/Database}/Decorator/NotNull.js +0 -0
  100. /package/dist/lib/{Database → Framework/Database}/Decorator/PrimaryKey.js +0 -0
  101. /package/dist/lib/{Database → Framework/Database}/Decorator/Property.js +0 -0
  102. /package/dist/lib/{Database → Framework/Database}/Decorator/Table.js +0 -0
  103. /package/dist/lib/{Database → Framework/Database}/Decorator/Type.js +0 -0
  104. /package/dist/lib/{Database → Framework/Database}/MSSqlManager.js +0 -0
  105. /package/dist/lib/{Database → Framework/Database}/MongoBaseService.js +0 -0
  106. /package/dist/lib/{Database → Framework/Database}/MongoManager.js +0 -0
  107. /package/dist/lib/{Database → Framework/Database}/MysqlBaseService.js +0 -0
  108. /package/dist/lib/{Database → Framework/Database}/MysqlManager.js +0 -0
  109. /package/dist/lib/{Database → Framework/Database}/RedisManager.js +0 -0
  110. /package/dist/lib/{Logic → Framework/Logic}/CacheTool.js +0 -0
  111. /package/dist/lib/{Logic → Framework/Logic}/EventTool.js +0 -0
  112. /package/dist/lib/{Logic → Framework/Logic}/HttpTool.js +0 -0
  113. /package/dist/lib/{Logic → Framework/Logic}/Log.js +0 -0
  114. /package/dist/lib/{Logic → Framework/Logic}/SyncQueueTool.js +0 -0
  115. /package/dist/lib/{Service → Framework/Service}/AccountService.js +0 -0
  116. /package/dist/lib/{Service → Framework/Service}/MongoAccountService.js +0 -0
  117. /package/dist/lib/{Service → Framework/Service}/MongoCacheService.js +0 -0
  118. /package/dist/lib/{Service → Framework/Service}/MongoUserService.js +0 -0
  119. /package/dist/lib/{Service → Framework/Service}/UserService.js +0 -0
  120. /package/dist/lib/{Service → Framework/Service}/ini.js +0 -0
  121. /package/dist/lib/{SocketServer → Framework/SocketServer}/IClientWebSocket.js +0 -0
  122. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpc.js +0 -0
  123. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.js +0 -0
  124. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.js +0 -0
  125. /package/dist/lib/{SocketServer → Framework/SocketServer}/IServerWebSocket.js +0 -0
  126. /package/dist/lib/{SocketServer → Framework/SocketServer}/ISocketServer.js +0 -0
  127. /package/dist/lib/{SocketServer → Framework/SocketServer}/IWebSocket.js +0 -0
  128. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.js +0 -0
  129. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.js +0 -0
  130. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.js +0 -0
  131. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.js +0 -0
  132. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AlipayTool.js +0 -0
  133. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Alisms.js +0 -0
  134. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AppleTool.js +0 -0
  135. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/CgMq.js +0 -0
  136. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/EmailTool.js +0 -0
  137. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/OpenSocial.js +0 -0
  138. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QQTool.js +0 -0
  139. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QiniuTool.js +0 -0
  140. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Rpc.js +0 -0
  141. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatOATool.js +0 -0
  142. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatTool.js +0 -0
  143. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseController.js +0 -0
  144. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseUserController.js +0 -0
  145. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.js +0 -0
  146. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AdminValidate.js +0 -0
  147. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.js +0 -0
  148. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.js +0 -0
  149. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.js +0 -0
  150. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.js +0 -0
  151. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.js +0 -0
  152. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCall.js +0 -0
  153. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.js +0 -0
  154. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/ControllerManager.js +0 -0
  155. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Engine.js +0 -0
  156. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/RazorJs.js +0 -0
  157. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Request.js +0 -0
  158. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Response.js +0 -0
  159. /package/dist/lib/{WebServer → Framework/WebServer}/IWebServer.js +0 -0
  160. /package/dist/lib/{cgserver.js → Framework/cgserver.js} +0 -0
  161. /package/dist/types/{AI → Framework/AI}/AiObject.d.ts +0 -0
  162. /package/dist/types/{AI → Framework/AI}/Astar.d.ts +0 -0
  163. /package/dist/types/{AI → Framework/AI}/BehaviorAI.d.ts +0 -0
  164. /package/dist/types/{AI → Framework/AI}/Entity.d.ts +0 -0
  165. /package/dist/types/{AI → Framework/AI}/Point.d.ts +0 -0
  166. /package/dist/types/{AI → Framework/AI}/TriggerMgr.d.ts +0 -0
  167. /package/dist/types/{Config → Framework/Config}/Config.d.ts +0 -0
  168. /package/dist/types/{Config → Framework/Config}/FrameworkConfig.d.ts +0 -0
  169. /package/dist/types/{Config → Framework/Config}/IServerConfig.d.ts +0 -0
  170. /package/dist/types/{Config → Framework/Config}/_error_.d.ts +0 -0
  171. /package/dist/types/{Core → Framework/Core}/Core.d.ts +0 -0
  172. /package/dist/types/{Core → Framework/Core}/Timer.d.ts +0 -0
  173. /package/dist/types/{Database → Framework/Database}/Decorator/AutoIncrement.d.ts +0 -0
  174. /package/dist/types/{Database → Framework/Database}/Decorator/DBCache.d.ts +0 -0
  175. /package/dist/types/{Database → Framework/Database}/Decorator/NotNull.d.ts +0 -0
  176. /package/dist/types/{Database → Framework/Database}/Decorator/PrimaryKey.d.ts +0 -0
  177. /package/dist/types/{Database → Framework/Database}/Decorator/Property.d.ts +0 -0
  178. /package/dist/types/{Database → Framework/Database}/Decorator/Table.d.ts +0 -0
  179. /package/dist/types/{Database → Framework/Database}/Decorator/Type.d.ts +0 -0
  180. /package/dist/types/{Database → Framework/Database}/MSSqlManager.d.ts +0 -0
  181. /package/dist/types/{Database → Framework/Database}/MongoBaseService.d.ts +0 -0
  182. /package/dist/types/{Database → Framework/Database}/MongoManager.d.ts +0 -0
  183. /package/dist/types/{Database → Framework/Database}/MysqlBaseService.d.ts +0 -0
  184. /package/dist/types/{Database → Framework/Database}/MysqlManager.d.ts +0 -0
  185. /package/dist/types/{Database → Framework/Database}/RedisManager.d.ts +0 -0
  186. /package/dist/types/{Logic → Framework/Logic}/CacheTool.d.ts +0 -0
  187. /package/dist/types/{Logic → Framework/Logic}/EventTool.d.ts +0 -0
  188. /package/dist/types/{Logic → Framework/Logic}/HttpTool.d.ts +0 -0
  189. /package/dist/types/{Logic → Framework/Logic}/Log.d.ts +0 -0
  190. /package/dist/types/{Logic → Framework/Logic}/SyncQueueTool.d.ts +0 -0
  191. /package/dist/types/{Service → Framework/Service}/AccountService.d.ts +0 -0
  192. /package/dist/types/{Service → Framework/Service}/MongoAccountService.d.ts +0 -0
  193. /package/dist/types/{Service → Framework/Service}/MongoCacheService.d.ts +0 -0
  194. /package/dist/types/{Service → Framework/Service}/MongoUserService.d.ts +0 -0
  195. /package/dist/types/{Service → Framework/Service}/UserService.d.ts +0 -0
  196. /package/dist/types/{Service → Framework/Service}/ini.d.ts +0 -0
  197. /package/dist/types/{SocketServer → Framework/SocketServer}/IClientWebSocket.d.ts +0 -0
  198. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpc.d.ts +0 -0
  199. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.d.ts +0 -0
  200. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.d.ts +0 -0
  201. /package/dist/types/{SocketServer → Framework/SocketServer}/IServerWebSocket.d.ts +0 -0
  202. /package/dist/types/{SocketServer → Framework/SocketServer}/ISocketServer.d.ts +0 -0
  203. /package/dist/types/{SocketServer → Framework/SocketServer}/IWebSocket.d.ts +0 -0
  204. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
  205. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.d.ts +0 -0
  206. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.d.ts +0 -0
  207. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.d.ts +0 -0
  208. /package/dist/types/{ThirdParty → Framework/ThirdParty}/AlipayTool.d.ts +0 -0
  209. /package/dist/types/{ThirdParty → Framework/ThirdParty}/Alisms.d.ts +0 -0
  210. /package/dist/types/{ThirdParty → Framework/ThirdParty}/AppleTool.d.ts +0 -0
  211. /package/dist/types/{ThirdParty → Framework/ThirdParty}/CgMq.d.ts +0 -0
  212. /package/dist/types/{ThirdParty → Framework/ThirdParty}/EmailTool.d.ts +0 -0
  213. /package/dist/types/{ThirdParty → Framework/ThirdParty}/OpenSocial.d.ts +0 -0
  214. /package/dist/types/{ThirdParty → Framework/ThirdParty}/QQTool.d.ts +0 -0
  215. /package/dist/types/{ThirdParty → Framework/ThirdParty}/QiniuTool.d.ts +0 -0
  216. /package/dist/types/{ThirdParty → Framework/ThirdParty}/Rpc.d.ts +0 -0
  217. /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatOATool.d.ts +0 -0
  218. /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatTool.d.ts +0 -0
  219. /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseController.d.ts +0 -0
  220. /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseUserController.d.ts +0 -0
  221. /package/dist/types/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.d.ts +0 -0
  222. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AdminValidate.d.ts +0 -0
  223. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.d.ts +0 -0
  224. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.d.ts +0 -0
  225. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.d.ts +0 -0
  226. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.d.ts +0 -0
  227. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.d.ts +0 -0
  228. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCall.d.ts +0 -0
  229. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.d.ts +0 -0
  230. /package/dist/types/{WebServer → Framework/WebServer}/Engine/ControllerManager.d.ts +0 -0
  231. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Engine.d.ts +0 -0
  232. /package/dist/types/{WebServer → Framework/WebServer}/Engine/RazorJs.d.ts +0 -0
  233. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Request.d.ts +0 -0
  234. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Response.d.ts +0 -0
  235. /package/dist/types/{WebServer → Framework/WebServer}/IWebServer.d.ts +0 -0
  236. /package/dist/types/{cgserver.d.ts → Framework/cgserver.d.ts} +0 -0
@@ -0,0 +1,501 @@
1
+ import { GLog } from '../Logic/Log';
2
+ import * as mongo from 'mongodb';
3
+ import { EErrorCode } from '../Config/_error_';
4
+ import { core } from '../Core/Core';
5
+ export class MongoConfig
6
+ {
7
+ open=false
8
+ host="127.0.0.1"
9
+ port=27017
10
+ options:mongo.MongoClientOptions=null
11
+ database='mongodb'
12
+ }
13
+ export class MongoBaseModel
14
+ {
15
+ _id: any
16
+ }
17
+ export class MrResult
18
+ {
19
+ /**
20
+ * select 的数据量
21
+ */
22
+ length:number=0
23
+ /**
24
+ * 插入数据的自增id
25
+ */
26
+ insertId:number=null
27
+ insertIds:{ [key: number]: number }=null
28
+ /**
29
+ * update 更新数据的影响条数
30
+ */
31
+ changedRows:number=null
32
+ /**
33
+ * 插入或删除数据的影响条数
34
+ */
35
+ affectedRows:number=null
36
+ }
37
+ export class MgReturn
38
+ {
39
+ error=null
40
+ result=new MrResult()
41
+ list=[]
42
+ }
43
+ export let GMongoMgr:MongoManager = null
44
+ class MongoManager
45
+ {
46
+ protected _mongocfg:MongoConfig=null
47
+ protected _init_cbs=[]
48
+ protected _mongo:mongo.Db = null
49
+ get mongo()
50
+ {
51
+ return this._mongo
52
+ }
53
+ protected _mongo_init_succ:boolean=false
54
+ protected _inited:boolean=false
55
+ get isValid()
56
+ {
57
+ return this._inited
58
+ }
59
+ constructor()
60
+ {
61
+
62
+ }
63
+ async init(cfg:MongoConfig)
64
+ {
65
+ if(!cfg||!cfg.open)
66
+ {
67
+ return false
68
+ }
69
+ if(this._inited)
70
+ {
71
+ return false
72
+ }
73
+ if(this._mongo)
74
+ {
75
+ return true
76
+ }
77
+ this._mongocfg=cfg
78
+ this._inited = true
79
+ GLog.info("mongo config="+JSON.stringify(this._mongocfg))
80
+ let client = new mongo.MongoClient("mongodb://"+this._mongocfg.host+":"+this._mongocfg.port,this._mongocfg.options)
81
+ await core.safeCall(client.connect,client)
82
+ this.onConnect()
83
+ this._mongo = client.db(this._mongocfg.database)
84
+ for(let i=0;i<this._init_cbs.length;++i)
85
+ {
86
+ this._init_cbs[i]()
87
+ }
88
+ return true
89
+ }
90
+ registerInitCb(cb:Function)
91
+ {
92
+ this._init_cbs.push(cb)
93
+ }
94
+ onConnect()
95
+ {
96
+ this._mongo_init_succ = true
97
+ GLog.info("mongo has connected!")
98
+ }
99
+ onEnd()
100
+ {
101
+ this._mongo_init_succ = false
102
+ GLog.error("mongo has ended!")
103
+ GLog.info("mongo try reconnect")
104
+ this.init(this._mongocfg)
105
+ }
106
+ onError(err)
107
+ {
108
+ GLog.error("Error " + err)
109
+ GLog.info("mongo try reconnect")
110
+ this.init(this._mongocfg)
111
+ }
112
+ async getAutoIds(key:string)
113
+ {
114
+ if(!this._mongo)
115
+ {
116
+ return -1
117
+ }
118
+ let collection = "auto_ids"
119
+ let col = this._mongo.collection(collection);
120
+ try{
121
+ let where = this._convertWhere({_id: key })
122
+ let rs = await core.safeCall(col.findOneAndUpdate,col,where, { $inc:{id:1} }, { upsert: true })
123
+ if(rs.ok)
124
+ {
125
+ return rs.value.id+1
126
+ }
127
+ return 0+1
128
+ }
129
+ catch(e)
130
+ {
131
+ GLog.error(e.stack)
132
+ }
133
+ return -1
134
+ }
135
+ protected _convertWhere(where?:any)
136
+ {
137
+ if(!where||!where._id)
138
+ {
139
+ return
140
+ }
141
+ if(core.isString(where._id)&&where._id.length==24)
142
+ {
143
+ let _id=where._id
144
+ try
145
+ {
146
+ where._id=new mongo.ObjectId(_id)
147
+ }
148
+ catch(e)
149
+ {
150
+ where._id=_id
151
+ }
152
+ }
153
+ return where
154
+ }
155
+ /**
156
+ * 获取单条消息
157
+ * @param collection
158
+ */
159
+ async findOne(collection:string,property={},where={})
160
+ {
161
+ this._convertWhere(where)
162
+ let rs = {errcode:<{id:number,des:string}>null,one:null}
163
+ if(!this._mongo)
164
+ {
165
+ rs.errcode=EErrorCode.No_Mongo
166
+ return rs
167
+ }
168
+ let one = null
169
+ try{
170
+ let col = this._mongo.collection(collection)
171
+ one = await col.findOne(where,{projection:property})
172
+ }
173
+ catch(e)
174
+ {
175
+ GLog.error({collection,property,where})
176
+ GLog.error(e.stack)
177
+ rs.errcode=EErrorCode.Mongo_Error
178
+ }
179
+ rs.one=one
180
+ return rs
181
+ }
182
+ async findMany(collection:string,property={},where={},sort?:{},skip=0,limit=0)
183
+ {
184
+ this._convertWhere(where)
185
+ let rs = {errcode:<{id:number,des:string}>null,list:<any[]>null}
186
+ if(!this._mongo)
187
+ {
188
+ rs.errcode=EErrorCode.No_Mongo
189
+ return rs
190
+ }
191
+ let list=[]
192
+ try{
193
+ let col = this._mongo.collection(collection)
194
+ let cursor = col.find(where,property)
195
+ if(sort)
196
+ {
197
+ cursor = cursor.sort(sort)
198
+ }
199
+ if(skip)
200
+ {
201
+ cursor = cursor.skip(skip)
202
+ }
203
+ if(limit)
204
+ {
205
+ cursor = cursor.limit(limit)
206
+ }
207
+ list = await cursor.toArray()
208
+ }
209
+ catch(e)
210
+ {
211
+ GLog.error({collection,property,where,sort,skip,limit})
212
+ GLog.error(e.stack)
213
+ rs.errcode=EErrorCode.Mongo_Error
214
+ }
215
+ rs.list=list
216
+ return rs
217
+ }
218
+ async countDocuments(collection:string,where?:{},options?: mongo.CountDocumentsOptions)
219
+ {
220
+ this._convertWhere(where)
221
+ let rs = {errcode:<{id:number,des:string}>null,count:-1}
222
+ if(!this._mongo)
223
+ {
224
+ rs.errcode=EErrorCode.No_Mongo
225
+ return rs
226
+ }
227
+ let count=-1
228
+ try{
229
+ let col = this._mongo.collection(collection)
230
+ count = await col.countDocuments(where||{},options)
231
+ }
232
+ catch(e)
233
+ {
234
+ GLog.error({collection,where})
235
+ GLog.error(e.stack)
236
+ rs.errcode=EErrorCode.Mongo_Error
237
+ }
238
+ rs.count=count
239
+ return rs
240
+ }
241
+ async deleteOne(collection,where)
242
+ {
243
+ this._convertWhere(where)
244
+ let rs = {errcode:<{id:number,des:string}>null,count:-1}
245
+ if(!this._mongo)
246
+ {
247
+ rs.errcode=EErrorCode.No_Mongo
248
+ return rs
249
+ }
250
+ let del_rs:mongo.DeleteResult=null
251
+ try{
252
+ let col = this._mongo.collection(collection)
253
+ del_rs = await col.deleteOne(where||{})
254
+ }
255
+ catch(e)
256
+ {
257
+ GLog.error({collection,where})
258
+ GLog.error(e.stack)
259
+ rs.errcode=EErrorCode.Mongo_Error
260
+ }
261
+ if(del_rs)
262
+ {
263
+ rs.count=del_rs.deletedCount
264
+ }
265
+ return rs
266
+ }
267
+ async deleteMany(collection,where)
268
+ {
269
+ this._convertWhere(where)
270
+ let rs = {errcode:<{id:number,des:string}>null,count:-1}
271
+ if(!this._mongo)
272
+ {
273
+ rs.errcode=EErrorCode.No_Mongo
274
+ return rs
275
+ }
276
+ let del_rs:mongo.DeleteResult=null
277
+ try{
278
+ let col = this._mongo.collection(collection)
279
+ del_rs = await col.deleteMany(where||{})
280
+ }
281
+ catch(e)
282
+ {
283
+ GLog.error({collection,where})
284
+ GLog.error(e.stack)
285
+ rs.errcode=EErrorCode.Mongo_Error
286
+ }
287
+ if(del_rs)
288
+ {
289
+ rs.count=del_rs.deletedCount
290
+ }
291
+ return rs
292
+ }
293
+ /**
294
+ * 插入数据
295
+ * @param collection
296
+ * @param data
297
+ */
298
+ async insertOne(collection:string,data)
299
+ {
300
+ let rs = {errcode:<{id:number,des:string}>null,rs:<mongo.InsertOneResult<any>>null}
301
+ if(!this._mongo)
302
+ {
303
+ rs.errcode=EErrorCode.No_Mongo
304
+ return rs
305
+ }
306
+ let in_rs:mongo.InsertOneResult<any>=null
307
+ try
308
+ {
309
+ let col = this._mongo.collection(collection)
310
+ in_rs = await col.insertOne(data)
311
+ }
312
+ catch(e)
313
+ {
314
+ GLog.error({collection,data})
315
+ GLog.error(e.stack)
316
+ rs.errcode=EErrorCode.Mongo_Error
317
+ }
318
+ rs.rs=in_rs
319
+ return rs
320
+ }
321
+ async insertManay(collection:string,data:[])
322
+ {
323
+ let rs = {errcode:<{id:number,des:string}>null,rs:<mongo.InsertManyResult<any>>null}
324
+ if(!this._mongo)
325
+ {
326
+ rs.errcode=EErrorCode.No_Mongo
327
+ return rs
328
+ }
329
+ let in_rs:mongo.InsertManyResult<any>=null
330
+ try{
331
+ let col = this._mongo.collection(collection)
332
+ in_rs = await col.insertMany(data)
333
+ }
334
+ catch(e)
335
+ {
336
+ GLog.error({collection,data})
337
+ GLog.error(e.stack)
338
+ rs.errcode=EErrorCode.Mongo_Error
339
+ }
340
+ rs.rs=in_rs
341
+ return rs
342
+ }
343
+ async updateOne(collection:string,model?:{},where?:{},upsert=false)
344
+ {
345
+ let _id = model["_id"]
346
+ delete model["_id"]
347
+ if(!where&&_id)
348
+ {
349
+ where["_id"]=_id
350
+ }
351
+ this._convertWhere(where)
352
+ let rs = {errcode:<{id:number,des:string}>null,rs:<mongo.UpdateResult>null}
353
+ if(!this._mongo)
354
+ {
355
+ if(_id)
356
+ {
357
+ model["_id"]=_id
358
+ }
359
+ rs.errcode=EErrorCode.No_Mongo
360
+ return rs
361
+ }
362
+ let up_rs:mongo.UpdateResult=null
363
+ try{
364
+ let updatemodel=null
365
+ let money=false
366
+ for(let key in model)
367
+ {
368
+ if(key.startsWith("$"))
369
+ {
370
+ money=true
371
+ }
372
+ }
373
+ if(!money)
374
+ {
375
+ updatemodel={"$set":model}
376
+ }
377
+ else
378
+ {
379
+ updatemodel=model
380
+ }
381
+ let col = this._mongo.collection(collection)
382
+ up_rs = await col.updateOne(where, updatemodel,{upsert:upsert})
383
+ }
384
+ catch(e)
385
+ {
386
+ GLog.error({collection,model,where,upsert})
387
+ GLog.error(e.stack)
388
+ rs.errcode=EErrorCode.Mongo_Error
389
+ }
390
+ rs.rs=up_rs
391
+ if(up_rs?.upsertedId||_id)
392
+ {
393
+
394
+ model["_id"]=up_rs?.upsertedId||_id
395
+ }
396
+ return rs
397
+ }
398
+ async updateMany(collection:string,model,where?:{},upsert=false)
399
+ {
400
+ this._convertWhere(where)
401
+ let rs = {errcode:<{id:number,des:string}>null,rs:<mongo.Document | mongo.UpdateResult>null}
402
+ if(!this._mongo)
403
+ {
404
+ rs.errcode=EErrorCode.No_Mongo
405
+ return rs
406
+ }
407
+ let up_rs:mongo.Document | mongo.UpdateResult=null
408
+ try{
409
+ let updateModel=null
410
+ let firstKey=Object.keys(model)[0]
411
+ if(!firstKey.startsWith("$"))
412
+ {
413
+ updateModel={ $set: model }
414
+ }
415
+ else
416
+ {
417
+ updateModel=model
418
+ }
419
+ let col = this._mongo.collection(collection)
420
+ up_rs = await col.updateMany(where, updateModel,{upsert:upsert})
421
+ }
422
+ catch(e)
423
+ {
424
+ GLog.error({collection,model,where,upsert})
425
+ GLog.error(e.stack)
426
+ rs.errcode=EErrorCode.Mongo_Error
427
+ }
428
+ rs.rs=up_rs
429
+ return rs
430
+ }
431
+ async createIndex(collection:string,index:any,options?:mongo.CreateIndexesOptions)
432
+ {
433
+ let rs = {errcode:<{id:number,des:string}>null,rs:<string>null}
434
+ if(!this._mongo)
435
+ {
436
+ rs.errcode=EErrorCode.No_Mongo
437
+ return rs
438
+ }
439
+ let i_rs:string=null
440
+ try{
441
+ let col = this._mongo.collection(collection)
442
+ i_rs = await col.createIndex(index,options)
443
+ }
444
+ catch(e)
445
+ {
446
+ GLog.error({collection,index})
447
+ GLog.error(e.stack)
448
+ rs.errcode=EErrorCode.Mongo_Error
449
+ }
450
+ rs.rs=i_rs
451
+ return rs
452
+ }
453
+ async simpleAggregate(collection:string,property={},where={},size?:number,random_size?:number)
454
+ {
455
+ this._convertWhere(where)
456
+ let rs = {errcode:<{id:number,des:string}>null,list:<any[]>null}
457
+ if(!this._mongo)
458
+ {
459
+ rs.errcode=EErrorCode.No_Mongo
460
+ return rs
461
+ }
462
+ let list=[]
463
+ try{
464
+ let col = this._mongo.collection(collection)
465
+ let params = []
466
+ params.push({'$match': where||{}})
467
+ params.push({'$project': property||{}})
468
+ if(random_size)
469
+ {
470
+ params.push({'$sample': {'size': random_size}})
471
+ }
472
+ let agg = col.aggregate(params)
473
+ if(size)
474
+ {
475
+ list = await agg.limit(size).toArray()
476
+ }
477
+ else
478
+ {
479
+ list = await agg.toArray()
480
+ }
481
+ }
482
+ catch(e)
483
+ {
484
+ GLog.error(e.stack)
485
+ rs.errcode=EErrorCode.Mongo_Error
486
+ }
487
+ rs.list=list
488
+ return rs
489
+ }
490
+ aggregate(collection:string,pipeline?: Document[], options?: mongo.AggregateOptions)
491
+ {
492
+ if(!this._mongo)
493
+ {
494
+ return
495
+ }
496
+ let col = this._mongo.collection(collection)
497
+ let agg = col.aggregate(pipeline,options)
498
+ return agg
499
+ }
500
+ }
501
+ GMongoMgr = new MongoManager()