mm_os 3.3.0 → 4.0.0

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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +491 -99
  3. package/README_EN.md +498 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/com/event/com.json +5 -0
  28. package/{core/com → com}/event/config.tpl.json +8 -8
  29. package/com/event/drive.js +59 -0
  30. package/com/event/index.js +409 -0
  31. package/com/event/script.tpl.js +23 -0
  32. package/com/mqtt/com.json +5 -0
  33. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  34. package/com/mqtt/drive.js +676 -0
  35. package/com/mqtt/index.js +822 -0
  36. package/com/mqtt/mm_mqtt.js +425 -0
  37. package/com/mqtt/script.tpl.js +723 -0
  38. package/com/nav/com.json +5 -0
  39. package/com/nav/config.tpl.json +84 -0
  40. package/com/nav/drive.js +702 -0
  41. package/com/nav/index.js +231 -0
  42. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  44. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  45. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  46. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  47. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  48. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  49. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  50. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  51. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  52. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  53. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  54. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  55. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  57. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  58. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  59. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  60. package/com/nav/viewmodel.js +446 -0
  61. package/com/param/com.json +5 -0
  62. package/{core/com → com}/param/config.tpl.json +7 -1
  63. package/com/param/drive.js +502 -0
  64. package/com/param/index.js +155 -0
  65. package/com/param/script.tpl.js +12 -0
  66. package/com/pendant/com.json +5 -0
  67. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  68. package/com/pendant/drive.js +204 -0
  69. package/com/pendant/index.js +441 -0
  70. package/com/pendant/pendant.html +16 -0
  71. package/com/pendant/script.tpl.js +18 -0
  72. package/com/socket/com.json +5 -0
  73. package/com/socket/config.tpl.json +12 -0
  74. package/com/socket/drive.js +651 -0
  75. package/com/socket/index.js +351 -0
  76. package/com/socket/script.tpl.js +41 -0
  77. package/com/sql/com.json +5 -0
  78. package/{core/com → com}/sql/config.tpl.json +13 -9
  79. package/com/sql/drive.js +1259 -0
  80. package/com/sql/index.js +150 -0
  81. package/com/sql/script.tpl.js +47 -0
  82. package/com/static/com.json +5 -0
  83. package/{core/com → com}/static/config.tpl.json +10 -6
  84. package/com/static/drive.js +194 -0
  85. package/com/static/index.js +226 -0
  86. package/com/static/script.tpl.js +28 -0
  87. package/com/task/com.json +5 -0
  88. package/{core/com → com}/task/config.tpl.json +4 -6
  89. package/com/task/drive.js +405 -0
  90. package/com/task/index.js +148 -0
  91. package/com/task/script.tpl.js +37 -0
  92. package/com/template/com.json +5 -0
  93. package/com/template/config.tpl.json +16 -0
  94. package/com/template/drive.js +80 -0
  95. package/com/template/index.js +141 -0
  96. package/com.js +156 -0
  97. package/common/README.md +2 -0
  98. package/common/handler/msg/handler.json +22 -0
  99. package/common/handler/msg/index.js +23 -0
  100. package/common/handler/player/handler.json +22 -0
  101. package/common/handler/player/index.js +287 -0
  102. package/common/handler/user/handler.json +22 -0
  103. package/common/handler/user/index.js +23 -0
  104. package/common/middleware/web_after/index.js +29 -0
  105. package/common/middleware/web_after/middleware.json +9 -0
  106. package/common/middleware/web_base/index.js +113 -0
  107. package/common/middleware/web_base/middleware.json +19 -0
  108. package/common/middleware/web_before/index.js +33 -0
  109. package/common/middleware/web_before/middleware.json +9 -0
  110. package/common/middleware/web_cors/index.js +87 -0
  111. package/common/middleware/web_cors/middleware.json +24 -0
  112. package/common/middleware/web_error/index.js +119 -0
  113. package/common/middleware/web_error/middleware.json +18 -0
  114. package/common/middleware/web_ip/index.js +15 -0
  115. package/common/middleware/web_ip/middleware.json +14 -0
  116. package/common/middleware/web_logger/index.js +156 -0
  117. package/common/middleware/web_logger/middleware.json +14 -0
  118. package/common/middleware/web_main/index.js +24 -0
  119. package/common/middleware/web_main/middleware.json +9 -0
  120. package/common/middleware/web_static/index.js +73 -0
  121. package/common/middleware/web_static/middleware.json +54 -0
  122. package/common/middleware/web_waf/index.js +385 -0
  123. package/common/middleware/web_waf/middleware.json +13 -0
  124. package/common/model/msg/index.js +88 -0
  125. package/common/model/msg/model.json +401 -0
  126. package/common/model/player/index.js +63 -0
  127. package/common/model/player/model.json +185 -0
  128. package/common/model/user/index.js +11 -0
  129. package/common/model/user/model.json +219 -0
  130. package/core/app/config.tpl.json +67 -0
  131. package/core/app/index.js +632 -0
  132. package/core/app/script.tpl.js +52 -0
  133. package/core/channel/index.js +899 -0
  134. package/core/channel/matcher.js +585 -0
  135. package/core/com/config.tpl.json +16 -0
  136. package/core/com/index.js +74 -0
  137. package/core/com/script.tpl.js +5 -0
  138. package/core/component/component.js +42 -0
  139. package/core/component/config.tpl.json +63 -0
  140. package/core/component/index.js +273 -0
  141. package/core/component/script.tpl.js +19 -0
  142. package/core/controller/config.tpl.json +14 -0
  143. package/core/controller/index.js +373 -0
  144. package/core/controller/script.tpl.js +27 -0
  145. package/core/factory/config.tpl.json +14 -0
  146. package/core/factory/entity.js +275 -0
  147. package/core/factory/index.js +241 -0
  148. package/core/factory/script.tpl.js +16 -0
  149. package/core/game/bat/index.js +137 -0
  150. package/core/game/bat/world.js +622 -0
  151. package/core/game/config.tpl.json +16 -0
  152. package/core/game/entity_admin.js +230 -0
  153. package/core/game/index.js +186 -0
  154. package/core/handler/config.tpl.json +22 -0
  155. package/core/handler/index.js +181 -0
  156. package/core/handler/script.tpl.js +23 -0
  157. package/core/logic/config.tpl.json +14 -0
  158. package/core/logic/index.js +59 -0
  159. package/core/logic/script.tpl.js +19 -0
  160. package/core/middleware/config.tpl.json +16 -0
  161. package/core/middleware/index.js +125 -0
  162. package/core/middleware/script.tpl.js +37 -0
  163. package/core/mod/config.tpl.json +22 -0
  164. package/core/mod/index.js +130 -0
  165. package/core/mod/script.tpl.js +34 -0
  166. package/core/model/config.tpl.json +219 -0
  167. package/core/model/index.js +272 -0
  168. package/core/model/model.js +27 -0
  169. package/core/model/script.tpl.js +20 -0
  170. package/core/notifier/config.tpl.json +14 -0
  171. package/core/notifier/index.js +77 -0
  172. package/core/notifier/script.tpl.js +20 -0
  173. package/core/plugin/config.tpl.json +24 -0
  174. package/core/plugin/index.js +232 -0
  175. package/core/plugin/script.tpl.js +51 -0
  176. package/core/pusher/config.tpl.json +14 -0
  177. package/core/pusher/index.js +161 -0
  178. package/core/pusher/script.tpl.js +20 -0
  179. package/core/room/bat/index.js +170 -0
  180. package/core/room/bat/room.js +524 -0
  181. package/core/room/config.tpl.json +20 -0
  182. package/core/room/index.js +249 -0
  183. package/core/room/room.js +61 -0
  184. package/core/scene/config.tpl.json +14 -0
  185. package/core/scene/index.js +466 -0
  186. package/core/scene/loop.js +1255 -0
  187. package/core/scene/map.js +28 -0
  188. package/core/scene/script.tpl.js +22 -0
  189. package/core/sender/config.tpl.json +14 -0
  190. package/core/sender/index.js +79 -0
  191. package/core/sender/script.tpl.js +20 -0
  192. package/core/service/config.tpl.json +14 -0
  193. package/core/service/index.js +100 -0
  194. package/core/service/script.tpl.js +25 -0
  195. package/core/store/config.tpl.json +26 -0
  196. package/core/store/index.js +1755 -0
  197. package/core/store/script.tpl.js +22 -0
  198. package/core/store/sql.js +1464 -0
  199. package/core/system/config.tpl.json +18 -0
  200. package/core/system/index.js +312 -0
  201. package/core/system/script.tpl.js +77 -0
  202. package/core/view/config.tpl.json +14 -0
  203. package/core/view/index.js +91 -0
  204. package/core/view/script.tpl.js +20 -0
  205. package/core/zone/bat/index.js +725 -0
  206. package/core/zone/config.tpl.json +54 -0
  207. package/core/zone/index.js +614 -0
  208. package/core/zone/script.tpl.js +10 -0
  209. package/core/zone/zone_bat.js +136 -0
  210. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  211. package/index.js +17 -314
  212. package/os.js +57 -0
  213. package/package.json +60 -58
  214. package/server.js +598 -0
  215. package/README.en.md +0 -36
  216. package/conf.json +0 -3
  217. package/core/base/mqtt/index.js +0 -1107
  218. package/core/base/mqtt/lib.js +0 -40
  219. package/core/base/web/index.js +0 -243
  220. package/core/com/api/com.json +0 -4
  221. package/core/com/api/drive.js +0 -668
  222. package/core/com/api/index.js +0 -108
  223. package/core/com/api/oauth.js +0 -158
  224. package/core/com/api/script.js +0 -32
  225. package/core/com/app/README.md +0 -3
  226. package/core/com/app/com.json +0 -4
  227. package/core/com/app/config.tpl.json +0 -16
  228. package/core/com/app/drive.js +0 -309
  229. package/core/com/app/index.js +0 -211
  230. package/core/com/app/script.js +0 -155
  231. package/core/com/cmd/com.json +0 -4
  232. package/core/com/cmd/config.tpl.json +0 -66
  233. package/core/com/cmd/drive.js +0 -513
  234. package/core/com/cmd/index.js +0 -354
  235. package/core/com/cmd/old/5w2h.js +0 -54
  236. package/core/com/cmd/old/drive.js +0 -423
  237. package/core/com/cmd/script.js +0 -11
  238. package/core/com/component/README.md +0 -3
  239. package/core/com/component/com.json +0 -4
  240. package/core/com/component/component.html +0 -16
  241. package/core/com/component/drive.js +0 -197
  242. package/core/com/component/index.js +0 -312
  243. package/core/com/component/script.js +0 -18
  244. package/core/com/db/com.json +0 -4
  245. package/core/com/db/drive.js +0 -1160
  246. package/core/com/db/index.js +0 -176
  247. package/core/com/event/com.json +0 -4
  248. package/core/com/event/drive.js +0 -133
  249. package/core/com/event/index.js +0 -345
  250. package/core/com/event/script.js +0 -26
  251. package/core/com/eventer/com.js +0 -477
  252. package/core/com/eventer/com.json +0 -4
  253. package/core/com/middleware/com.js +0 -153
  254. package/core/com/middleware/com.json +0 -4
  255. package/core/com/middleware/config.tpl.json +0 -8
  256. package/core/com/middleware/script.js +0 -9
  257. package/core/com/mqtt/com.json +0 -4
  258. package/core/com/mqtt/drive.js +0 -600
  259. package/core/com/mqtt/index.js +0 -572
  260. package/core/com/mqtt/mm_mqtt.js +0 -330
  261. package/core/com/mqtt/script.js +0 -604
  262. package/core/com/msg/com.js +0 -296
  263. package/core/com/msg/com.json +0 -4
  264. package/core/com/nav/com.json +0 -4
  265. package/core/com/nav/config.tpl.json +0 -75
  266. package/core/com/nav/drive.js +0 -549
  267. package/core/com/nav/index.js +0 -182
  268. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  269. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  270. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  271. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  272. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  273. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  274. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  275. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  276. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  277. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  278. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  279. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  281. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  282. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  283. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  284. package/core/com/nav/viewmodel.js +0 -296
  285. package/core/com/param/drive.js +0 -366
  286. package/core/com/param/index.js +0 -80
  287. package/core/com/param/script.js +0 -12
  288. package/core/com/param/test.js +0 -98
  289. package/core/com/plugin/README.md +0 -3
  290. package/core/com/plugin/com.json +0 -4
  291. package/core/com/plugin/config.tpl.json +0 -26
  292. package/core/com/plugin/drive.js +0 -536
  293. package/core/com/plugin/index.js +0 -259
  294. package/core/com/plugin/script.js +0 -213
  295. package/core/com/rpc/com.json +0 -4
  296. package/core/com/rpc/drive.js +0 -160
  297. package/core/com/rpc/index.js +0 -87
  298. package/core/com/rpc/rpc.js +0 -118
  299. package/core/com/socket/com.json +0 -4
  300. package/core/com/socket/config.tpl.json +0 -14
  301. package/core/com/socket/drive.js +0 -403
  302. package/core/com/socket/index.js +0 -62
  303. package/core/com/socket/script.js +0 -42
  304. package/core/com/sql/drive.js +0 -1087
  305. package/core/com/sql/index.js +0 -83
  306. package/core/com/sql/script.js +0 -48
  307. package/core/com/static/com.json +0 -4
  308. package/core/com/static/drive.js +0 -220
  309. package/core/com/static/index.js +0 -149
  310. package/core/com/static/script.js +0 -28
  311. package/core/com/task/com.json +0 -4
  312. package/core/com/task/drive.js +0 -403
  313. package/core/com/task/index.js +0 -110
  314. package/core/com/task/script.js +0 -37
  315. package/core/com/timer/com.js +0 -217
  316. package/core/com/timer/com.json +0 -4
  317. package/core/com/tpl/com.js +0 -19
  318. package/core/com/tpl/com.json +0 -4
  319. package/lib/actions.js +0 -50
  320. package/lib/base.js +0 -361
  321. package/lib/com.js +0 -29
  322. package/lib/ref.js +0 -121
  323. package/middleware/mqtt_base/index.js +0 -10
  324. package/middleware/mqtt_base/middleware.json +0 -10
  325. package/middleware/performance/index.js +0 -151
  326. package/middleware/performance/middleware.json +0 -16
  327. package/middleware/security_audit/index.js +0 -549
  328. package/middleware/security_audit/middleware.json +0 -48
  329. package/middleware/security_headers/index.js +0 -487
  330. package/middleware/security_headers/middleware.json +0 -45
  331. package/middleware/waf/index.js +0 -348
  332. package/middleware/waf/middleware.json +0 -10
  333. package/middleware/waf_ddos/index.js +0 -520
  334. package/middleware/waf_ddos/middleware.json +0 -38
  335. package/middleware/waf_ip/index.js +0 -379
  336. package/middleware/waf_ip/middleware.json +0 -49
  337. package/middleware/waf_xss/index.js +0 -269
  338. package/middleware/waf_xss/middleware.json +0 -18
  339. package/middleware/web_after/index.js +0 -33
  340. package/middleware/web_after/middleware.json +0 -9
  341. package/middleware/web_base/index.js +0 -90
  342. package/middleware/web_base/middleware.json +0 -9
  343. package/middleware/web_before/index.js +0 -27
  344. package/middleware/web_before/middleware.json +0 -9
  345. package/middleware/web_check/index.js +0 -28
  346. package/middleware/web_check/middleware.json +0 -9
  347. package/middleware/web_main/index.js +0 -28
  348. package/middleware/web_main/middleware.json +0 -9
  349. package/middleware/web_proxy/index.js +0 -37
  350. package/middleware/web_proxy/middleware.json +0 -9
  351. package/middleware/web_render/index.js +0 -87
  352. package/middleware/web_render/middleware.json +0 -9
  353. package/middleware/web_socket/index.js +0 -34
  354. package/middleware/web_socket/middleware.json +0 -9
  355. package/middleware/web_static/index.js +0 -115
  356. package/middleware/web_static/middleware.json +0 -9
  357. /package/{core/com → com}/api/README.md +0 -0
  358. /package/{core/com → com}/db/README.md +0 -0
  359. /package/{core/com → com}/event/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -1,604 +0,0 @@
1
- /**
2
- * 查询个人记录
3
- * @param {String} clientid 客户端ID
4
- * @param {Object} param
5
- */
6
- exports.get_log = async function(clientid, param) {
7
- var res = await this.push("GetRecordsByPicOrID", clientid, param);
8
- return res;
9
- }
10
-
11
- /**
12
- * 考勤打卡
13
- * @param {String} clientid 客户端ID
14
- * @param {Object} uuid 用户唯一标识
15
- * @param {String} avatar base64头像
16
- * @param {Number} longtime 超时回馈
17
- */
18
- exports.sign_in = async function(clientid, uuid, avatar) {
19
- var res = await this.push("PullRecordOnlyPic", clientid, {
20
- "personID": uuid,
21
- "picinfo": avatar
22
- });
23
-
24
- if (!res || res.result == "fail") {
25
- return "打卡失败!";
26
- }
27
- }
28
-
29
- /**
30
- * 下发二维码(没用到)
31
- * @param {String} clientid
32
- * @param {Object} param
33
- * @param {Number} longtime 超时回馈
34
- */
35
- exports.push_qrcode = function(clientid, param) {
36
- return this.push("ShowQRCode", clientid, param);
37
- }
38
-
39
- /**
40
- * 以图搜人
41
- * @param {String} clientid 客户端ID
42
- * @param {Object} avatar 人脸照片
43
- * @param {Number} longtime 超时回馈
44
- */
45
- exports.get_member_pic = async function(clientid, avatar) {
46
- var res = await this.push("GetPictureSearch", clientid, {
47
- "facesluiceId": clientid,
48
- "MaxSimilarity": 80,
49
- "MaxNum": 1,
50
- "picinfo": avatar
51
- });
52
- var user;
53
- if (res) {
54
- if (res.result == "fail") {
55
-
56
- } else {
57
- var u = res.SearchInfo[0];
58
- var name = u.name || u.persionName;
59
- var customId = u.customId.trim();
60
- var phone = (u.telnum || "").trim();
61
- var idcard = (u.idCard || "").trim();
62
- user = {
63
- name,
64
- customId,
65
- phone,
66
- idcard
67
- }
68
- }
69
- }
70
- return user
71
- }
72
-
73
- /**
74
- * 远程开门
75
- * @param {String} clientid 客户端ID
76
- * @param {String} uuid 用户唯一标识
77
- * @param {Boolean} pass 是否可通行 true为是
78
- * @param {String} tip 提示
79
- */
80
- exports.unlock = async function(clientid, uuid = '0', pass = false, tip = '没有访问权限') {
81
- var res = await this.push("Unlock", clientid, {
82
- "uid": uuid,
83
- // 0不开门,1开门
84
- "openDoor": pass ? "1" : "0",
85
- "showInfo": tip
86
- });
87
-
88
- if (!res || res.result == "fail") {
89
- return "非内部人员!";
90
- }
91
- }
92
-
93
-
94
- /**
95
- * 远程锁门(没用到)
96
- * @param {String} clientid 客户端ID
97
- * @param {String} uuid 用户唯一标识
98
- * @param {Boolean} pass 是否可通行 true为是
99
- * @param {String} tip 提示
100
- */
101
- exports.lock = async function(clientid, uuid = '0', pass = false, tip = '没有访问权限') {
102
- var res = await this.push("Lock", clientid, {
103
- "uid": uuid,
104
- "showInfo": tip
105
- });
106
-
107
- if (!res || res.result == "fail") {
108
- return "已锁门!";
109
- }
110
- }
111
-
112
- /**
113
- * 删除成员
114
- * @param {String} clientid 客户端ID
115
- * @param {String} uuid 用户唯一标识
116
- * @param {Number} longtime 超时回馈
117
- */
118
- exports.delete_member = async function(clientid, uuid) {
119
- var res = await this.push("DeletePersons", clientid, {
120
- "customId": uuid
121
- });
122
-
123
- return
124
- }
125
-
126
- /**
127
- * 批量删除成员
128
- * @param {String} clientid 客户端ID
129
- * @param {Object} arr 成员列表
130
- * @param {Number} longtime 超时回馈
131
- */
132
- exports.delete_member_batch = async function(clientid, arr, longtime) {
133
- var res = await this.push("DeletePersons", clientid, {
134
- DataBegin: "BeginFlag",
135
- DataEnd: "EndFlag",
136
- PersonNum: arr.length.toString(),
137
- customId: arr
138
- }, longtime);
139
-
140
- var result;
141
- var error = 0;
142
- var success = 0;
143
- var error_info = [];
144
- var success_info = [];
145
-
146
- if (res) {
147
- if (res.result == 'ok') {
148
- var now = new Date().toStr("yyyy-MM-dd hh:mm:ss");
149
- error = Number(res.DelErrNum);
150
- success = Number(res.DelSucNum);
151
- error_info = res.DelErrInfo.map((o) => {
152
- o.time_create = now;
153
- return o
154
- });
155
- success_info = res.DelSucInfo.map((o) => {
156
- o.time_create = now;
157
- return o
158
- });
159
- result = res.result;
160
- } else if (res.detail && res.detail.indexOf('busy') === -1) {
161
- result = 'fail';
162
- }
163
- }
164
- return {
165
- error,
166
- success,
167
- error_info,
168
- success_info,
169
- result
170
- };
171
-
172
- return
173
- }
174
-
175
- /**
176
- * 重启设备
177
- * @param {String} clientid 设备sn
178
- */
179
- exports.reboot_device = async function(clientid) {
180
- var res = await this.push("RebootDevice", clientid, {});
181
- if (!res || res.result == "ok") {
182
- return
183
- }
184
- return "重启设备失败"
185
- }
186
-
187
- /**
188
- * 设置设备时间
189
- * @param {String} clientid 设备sn
190
- * @param {String} datetime 日期时间
191
- */
192
- exports.set_device_time = async function(clientid, datetime) {
193
- var res = await this.push("SetSysTime", clientid, {
194
- "SysTime": datetime.replace(" ", "T")
195
- });
196
- if (!res || res.result == "ok") {
197
- return
198
- }
199
- return "重置时间失败"
200
- }
201
-
202
- /**
203
- * 恢复出厂设置
204
- * @param {String} clientid 设备sn
205
- * @param {Boolean} record 是否恢复控制记录,true为恢复
206
- * @param {Boolean} member 是否恢复成员,true为恢复
207
- * @param {Boolean} log 是否恢复请求日志,true为恢复
208
- */
209
- exports.reset_device = async function(clientid, record = true, member = false, log = true) {
210
- var res = await this.push("SetFactoryDefault", clientid, {
211
- DefaltRecord: record ? "1" : "0",
212
- DefaltPerson: member ? "1" : "0",
213
- DefaltLog: log ? "1" : "0"
214
- });
215
-
216
- if (!res || res.result == "ok") {
217
- return
218
- }
219
- return "恢复出厂设置失败"
220
- }
221
-
222
- /**
223
- * 查询下发进度
224
- * @param {String} clientid 设备sn
225
- * @param {String} mode 查询方式 默认为更新
226
- */
227
- exports.get_progress = async function(clientid, mode = 'update') {
228
- var type = "";
229
- if (mode == 'update') {
230
- type = "EditPersonsNew";
231
- } else {
232
- type = "DeletePersons";
233
- }
234
- var res = await this.push("QueryProgress", clientid, {
235
- "QueryType": type
236
- });
237
- if (res) {
238
- if (res.Status !== "0") {
239
- return 1;
240
- } else {
241
- return 0;
242
- }
243
- }
244
- return -1;
245
- }
246
-
247
- /**
248
- * 考勤补卡
249
- * @param {String} clientid 设备sn
250
- * @param {Object} param 其他信息
251
- * @param {Number} longtime 超时回馈
252
- */
253
- exports.replacement = async function(clientid, uuid, time, avatar) {
254
- var res = await this.push("PullRecordOnlyPic", clientid, {
255
- "personID": uuid,
256
- "time": time,
257
- "picinfo": avatar
258
- });
259
-
260
- if (!res || res.result == "fail") {
261
- return "补卡失败!";
262
- }
263
- return
264
- }
265
-
266
- /**
267
- * 查询人员名单
268
- * @param {String} clientid 客户端ID
269
- * @param {Number} longtime 超时回馈
270
- */
271
- exports.get_member = function(clientid, longtime = 0) {
272
- return this.push("QueryPerson", clientid, longtime);
273
- }
274
-
275
- /**
276
- * 查询人员名单
277
- * @param {String} clientid 客户端ID
278
- * @param {String} uuid 用户唯一标识
279
- * @param {Number} longtime 超时回馈
280
- */
281
- exports.get_member_one = function(clientid, uuid, longtime = 0) {
282
- return this.push("QueryPerson", clientid, {
283
- "personId": uuid
284
- }, longtime);
285
- }
286
-
287
- /**
288
- * 成员模型
289
- * @param {Object} m 原始的成员
290
- */
291
- exports.member_model_out = function(m) {
292
- var nfc = m.nfc || '';
293
- var obj = {
294
- "customId": m.customId,
295
- "name": m.name,
296
- "native": m.place || '',
297
- "nation": m.nation || '',
298
- "address": m.address || '',
299
- "idCard": m.idcard || '',
300
- "gender": m.sex - 1,
301
- "phone": m.phone,
302
- "birthday": m.birthday,
303
- "cardType2": 2,
304
- "cardNum2": nfc,
305
- "RFCardMode": 0,
306
- "RFIDCard": nfc,
307
- "notes": "",
308
- "personType": m.state == 4 ? 1 : 0,
309
- "cardType": 0,
310
- "picURI": this.fullUrl(m.avatar)
311
- }
312
-
313
- if (m.time_valid_end && m.time_valid_end.toTime() > "2021-01-01 00:00:00".toTime() && m.time_valid_end
314
- .toTime() <=
315
- "2038-01-01 00:00:00".toTime()) {
316
- if (typeof(m.time_valid_start) == "object") {
317
- obj.cardValidBegin = m.time_valid_start.toStr("yyyy-MM-dd hh:mm:ss");
318
- } else {
319
- obj.cardValidBegin = m.time_valid_start.toTime().toStr("yyyy-MM-dd hh:mm:ss");
320
- }
321
- if (typeof(m.time_valid_end) == "object") {
322
- obj.cardValidEnd = m.time_valid_end.toStr("yyyy-MM-dd hh:mm:ss");
323
- } else {
324
- obj.cardValidEnd = m.time_valid_end.toTime().toStr("yyyy-MM-dd hh:mm:ss");
325
- }
326
- obj.tempCardType = 1;
327
- } else {
328
- obj.tempCardType = 0;
329
- }
330
- return obj
331
- }
332
-
333
- /**
334
- * 批量下发人员名单
335
- * @param {String} clientid 客户端ID
336
- * @param {Array} list 人员名单
337
- * @param {Number} longtime 超时回馈
338
- */
339
- exports.update_member_batch = async function(clientid, list, longtime = 180) {
340
- var res = await this.pushS(clientid, {
341
- "messageId": this.get_msgid('EditPersonsNew'),
342
- "DataBegin": "BeginFlag",
343
- "DataEnd": "EndFlag",
344
- "operator": "EditPersonsNew",
345
- "PersonNum": list.length,
346
- "info": list.map((o) => {
347
- return this.member_model_out(o);
348
- })
349
- }, longtime);
350
-
351
- var result;
352
- var error = 0;
353
- var success = 0;
354
- var error_info = [];
355
- var success_info = [];
356
- if (res) {
357
- if (res.result == 'ok') {
358
- var now = new Date().toStr("yyyy-MM-dd hh:mm:ss");
359
- error = Number(res.AddErrNum);
360
- success = Number(res.AddSucNum);
361
- error_info = res.AddErrInfo.map((o) => {
362
- o.time_create = now;
363
- return o
364
- });
365
- success_info = res.AddSucInfo.map((o) => {
366
- o.time_create = now;
367
- return o
368
- });
369
- result = res.result;
370
- } else if (res.detail && res.detail.indexOf('busy') === -1) {
371
- result = 'fail';
372
- }
373
- }
374
- return {
375
- error,
376
- success,
377
- error_info,
378
- success_info,
379
- result
380
- };
381
- }
382
-
383
- /**
384
- * 下发人员名单
385
- * @param {String} clientid 设备ID
386
- * @param {Object} user 人员信息
387
- * @param {Number} longtime 超时回馈
388
- */
389
- exports.update_member = function(clientid, user, longtime = 0) {
390
- return this.pushS(clientid, {
391
- "messageId": this.get_msgid('EditPerson'),
392
- "DataBegin": "BeginFlag",
393
- "DataEnd": "EndFlag",
394
- "method": "EditPerson",
395
- "info": this.member_model_out(user)
396
- }, longtime);
397
- }
398
-
399
- /**
400
- * 初始化函数, 用于定义开放给前端的函数
401
- */
402
- exports.init = function() {
403
- var m = this.methods;
404
- var _this = this;
405
-
406
- m["HeartBeat"] = function(clientid, params) {
407
- if (!_this.drives[clientid]) {
408
- _this.drives[clientid] = {};
409
- }
410
- _this.drives[clientid].online = 1;
411
- _this.drives[clientid].time_last = new Date().getTime();
412
- // console.log("心跳", clientid, _this.drives[clientid]);
413
- }
414
-
415
- /**
416
- * 离线通知
417
- * @param {String} clientid 设备sn
418
- * @param {Object} param 其他信息
419
- */
420
- m["Offline"] = async function(clientid, params) {
421
- _this.update_online(clientid, 0);
422
- // console.log("离线", clientid, _this.drives[clientid]);
423
- };
424
-
425
- /**
426
- * 在线通知
427
- * @param {String} clientid 设备sn
428
- * @param {Object} param 其他信息
429
- */
430
- m["Online"] = async function(clientid, params) {
431
- await _this.update_online(clientid, 1, params.ip);
432
- return {
433
- "facesluiceId": clientid,
434
- "result": "ok",
435
- "detail": ""
436
- };
437
- console.log("上线", clientid, _this.drives[clientid]);
438
- };
439
-
440
- /**
441
- * 更新人体生命体征,如温度、湿度、位置、
442
- * @param {String} clientid 设备sn
443
- * @param {Object} param 其他信息
444
- */
445
- m["life"] = async function(clientid, params) {
446
- _this.update_life(clientid, {
447
- // 心率
448
- heart_rate: 0,
449
- // 睡眠状态 是深度睡眠还是浅睡眠
450
- sleep: 0,
451
- // 血氧饱和度
452
- oxygen: 0,
453
- // 行走步数
454
- step: 0,
455
- // 压力
456
- pressure: 0,
457
- // 时间戳
458
- timestamp: 0,
459
- // GPS横坐标,保留生命体脱下设备时的最后位置
460
- gps_x: 0,
461
- // GPS纵坐标,保留生命体脱下设备时的最后位置
462
- gps_y: 0
463
- });
464
- // console.log("离线", clientid, _this.drives[clientid]);
465
- };
466
-
467
- /**
468
- * 更新设备信息,如温度、湿度、位置
469
- * @param {String} clientid 设备sn
470
- * @param {Object} param 其他信息
471
- */
472
- m["info"] = async function(clientid, params) {
473
- _this.update_device_info(clientid, {
474
- // 温度
475
- temperature: 0,
476
- // 湿度
477
- humidity: 0,
478
- // 氧气
479
- oxygen: 0,
480
- // 二氧化碳
481
- carbon_dioxide: 0,
482
- // 光照强度
483
- light: 0,
484
- // 烟雾浓度
485
- smoke: 0,
486
- // 压力
487
- pressure: 0,,
488
- // 光敏
489
- photosensitive: 0,
490
- // 声波
491
- acoustic_wave: 0,
492
- // 磁力
493
- magnetism: 0,
494
- // 火焰
495
- flame: 0,
496
- // 震动
497
- vibrate: 0,
498
- // 时间戳
499
- timestamp: 0,
500
- // GPS横坐标
501
- gps_x: 0,
502
- // GPS纵坐标
503
- gps_y: 0
504
- });
505
- // console.log("离线", clientid, _this.drives[clientid]);
506
- };
507
-
508
-
509
- /**
510
- * 上报
511
- * @param {String} clientid 设备sn
512
- * @param {Object} param 其他信息
513
- */
514
- m["RecPush"] = async function(clientid, params, msg, id) {
515
- _this.send(`mqtt/face/${clientid}`, {
516
- "messageId": _this.get_msgid('PushAck'),
517
- "operator": "PushAck",
518
- "info": {
519
- "PushAckType": "2",
520
- "SnapOrRecordID": params.RecordID
521
- }
522
- });
523
- var type = 1;
524
- switch (params.otype) {
525
- // (1刷脸验证|2远程开门|3智码开门|4刷卡验证)
526
- case "7":
527
- case "27":
528
- type = 2;
529
- break;
530
- case "47":
531
- case "48":
532
- case "55":
533
- case "56":
534
- case "57":
535
- type = 3;
536
- break;
537
- case "21":
538
- case "22":
539
- case "24":
540
- case "25":
541
- type = 4;
542
- break;
543
- default:
544
- break;
545
- }
546
- if (type == 2) {
547
- return;
548
- }
549
- // 1白名单|2黑名单
550
- var person_type = params.PersonType == "1" ? 2 : 1;
551
- var record_type = params.RecordType ? Number(params.RecordType) + 1 : 1;
552
-
553
- // 拿到打卡人的姓名
554
- var name = params.persionName || params.name;
555
- if (!name) {
556
- return;
557
- }
558
- var customId = params.customId.trim();
559
- var phone = (params.telnum || "").trim();
560
- var idcard = (params.idCard || "").trim();
561
- var nfc = (params.cardNum2 || params.RFIDCard || "").trim();
562
- if (nfc == "0") {
563
- ncf = ""
564
- }
565
- var time = params.time;
566
- var avatar = "";
567
- if (params.pic) {
568
- avatar = params.pic;
569
- }
570
- if (typeof(time) == "object") {
571
- time = time.toStr("yyyy-MM-dd hh:mm:ss");
572
- } else {
573
- time = time.toTime().toStr("yyyy-MM-dd hh:mm:ss");
574
- }
575
- var log = {
576
- customId,
577
- name,
578
- phone,
579
- idcard,
580
- nfc,
581
- clientid,
582
- type,
583
- person_type,
584
- record_type,
585
- action: "刷脸验证",
586
- time,
587
- avatar
588
- }
589
- $.server.exec_log(clientid, log);
590
- }
591
-
592
- m["QRCodePush"] = async function(clientid, params, msg, id) {
593
- var qrcode = params.QRCodeInfo;
594
- var {
595
- uuid,
596
- pass,
597
- tip,
598
- device
599
- } = await $.server.exec_qrcode(clientid, qrcode);
600
- if (device && device.online) {
601
- await _this.unlock(clientid, uuid, pass, tip);
602
- }
603
- }
604
- };