mm_os 2.8.0 → 2.8.2

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 (286) hide show
  1. package/core/com/param/drive.js +5 -4
  2. package/demo/app/dev/README.md +1 -0
  3. package/demo/app/dev/app.js +149 -0
  4. package/demo/app/dev/app.json +12 -0
  5. package/demo/app/dev/event_api/client/event.json +11 -0
  6. package/demo/app/dev/event_api/client/main.js +19 -0
  7. package/demo/app/dev/event_api/manage/event.json +19 -0
  8. package/demo/app/dev/event_api/manage/main.js +26 -0
  9. package/demo/app/dev/plugin/doc/static/api_list.html +144 -0
  10. package/demo/app/dev/plugin/doc/static/api_view.html +692 -0
  11. package/demo/app/dev/plugin/doc/static/index.html +138 -0
  12. package/demo/app/dev/plugin/doc/static/request_test.html +311 -0
  13. package/demo/app/dev/plugin/main/api_dev_client/api/api.json +11 -0
  14. package/demo/app/dev/plugin/main/api_dev_client/api/index.js +54 -0
  15. package/demo/app/dev/plugin/main/api_dev_client/api/param.json +31 -0
  16. package/demo/app/dev/plugin/main/api_dev_client/app/api.json +13 -0
  17. package/demo/app/dev/plugin/main/api_dev_client/app/index.js +13 -0
  18. package/demo/app/dev/plugin/main/api_dev_client/app/param.json +147 -0
  19. package/demo/app/dev/plugin/main/api_dev_client/app/sql.json +28 -0
  20. package/demo/app/dev/plugin/main/api_dev_client/auto/api.json +37 -0
  21. package/demo/app/dev/plugin/main/api_dev_client/auto/auto_db.js +70 -0
  22. package/demo/app/dev/plugin/main/api_dev_client/auto/auto_file.js +32 -0
  23. package/demo/app/dev/plugin/main/api_dev_client/auto/index.js +51 -0
  24. package/demo/app/dev/plugin/main/api_dev_client/auto/param.json +51 -0
  25. package/demo/app/dev/plugin/main/api_dev_client/com.js +349 -0
  26. package/demo/app/dev/plugin/main/api_dev_client/db/api.json +10 -0
  27. package/demo/app/dev/plugin/main/api_dev_client/db/index.js +71 -0
  28. package/demo/app/dev/plugin/main/api_dev_client/db/param.json +31 -0
  29. package/demo/app/dev/plugin/main/api_dev_client/dict/api.json +10 -0
  30. package/demo/app/dev/plugin/main/api_dev_client/dict/index.js +49 -0
  31. package/demo/app/dev/plugin/main/api_dev_client/dict/param.json +29 -0
  32. package/demo/app/dev/plugin/main/api_dev_client/event/api.json +10 -0
  33. package/demo/app/dev/plugin/main/api_dev_client/event/index.js +31 -0
  34. package/demo/app/dev/plugin/main/api_dev_client/event/param.json +31 -0
  35. package/demo/app/dev/plugin/main/api_dev_client/help/api.json +10 -0
  36. package/demo/app/dev/plugin/main/api_dev_client/help/index.js +14 -0
  37. package/demo/app/dev/plugin/main/api_dev_client/help/param.json +31 -0
  38. package/demo/app/dev/plugin/main/api_dev_client/nav/api.json +10 -0
  39. package/demo/app/dev/plugin/main/api_dev_client/nav/index.js +36 -0
  40. package/demo/app/dev/plugin/main/api_dev_client/nav/param.json +36 -0
  41. package/demo/app/dev/plugin/main/api_dev_client/plugin/api.json +10 -0
  42. package/demo/app/dev/plugin/main/api_dev_client/plugin/index.js +13 -0
  43. package/demo/app/dev/plugin/main/api_dev_client/plugin/param.json +31 -0
  44. package/demo/app/dev/plugin/main/api_dev_client/source/api.json +10 -0
  45. package/demo/app/dev/plugin/main/api_dev_client/source/index.js +14 -0
  46. package/demo/app/dev/plugin/main/api_dev_client/source/param.json +31 -0
  47. package/demo/app/dev/plugin/main/api_dev_client/sql/api.json +10 -0
  48. package/demo/app/dev/plugin/main/api_dev_client/sql/index.js +13 -0
  49. package/demo/app/dev/plugin/main/api_dev_client/sql/param.json +31 -0
  50. package/demo/app/dev/plugin/main/api_dev_client/task/api.json +16 -0
  51. package/demo/app/dev/plugin/main/api_dev_client/task/index.js +13 -0
  52. package/demo/app/dev/plugin/main/api_dev_client/task/param.json +31 -0
  53. package/demo/app/dev/plugin/main/api_dev_client/translate/api.json +39 -0
  54. package/demo/app/dev/plugin/main/api_dev_client/translate/index.js +43 -0
  55. package/demo/app/dev/plugin/main/api_dev_client/translate/param.json +130 -0
  56. package/demo/app/dev/plugin/main/api_dev_client/translate/sql.json +62 -0
  57. package/demo/app/dev/plugin/main/api_dev_client/ui/api.json +10 -0
  58. package/demo/app/dev/plugin/main/api_dev_client/ui/index.js +146 -0
  59. package/demo/app/dev/plugin/main/api_dev_client/ui/param.json +31 -0
  60. package/demo/app/dev/plugin/main/api_dev_client/view/api.json +10 -0
  61. package/demo/app/dev/plugin/main/api_dev_client/view/index.js +100 -0
  62. package/demo/app/dev/plugin/main/api_dev_client/view/param.json +29 -0
  63. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/nav.vue +12 -0
  64. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/obj.vue +12 -0
  65. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/post.vue +12 -0
  66. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/query.vue +12 -0
  67. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/edit.vue +39 -0
  68. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/list.vue +12 -0
  69. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/search.vue +12 -0
  70. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/table.vue +12 -0
  71. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/type.vue +12 -0
  72. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/view.vue +56 -0
  73. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/view.json +48 -0
  74. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/api.json +37 -0
  75. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/auto_db.js +120 -0
  76. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy.js +101 -0
  77. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy_framework.js +118 -0
  78. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy_template.js +78 -0
  79. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy_file.js +97 -0
  80. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/common.js +198 -0
  81. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/django_server.js +104 -0
  82. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/helper.js +161 -0
  83. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/koa_art_server.js +102 -0
  84. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/mini_app_home.js +415 -0
  85. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/razor.js +0 -0
  86. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/springboot.js +0 -0
  87. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/thinkphp.js +0 -0
  88. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/uni_app_home.js +418 -0
  89. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/vue_cli_admin.js +78 -0
  90. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/vue_cli_home.js +112 -0
  91. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create_file.js +97 -0
  92. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/add_data.js +221 -0
  93. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/create_table.js +162 -0
  94. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/set_auth_table.js +86 -0
  95. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/index.js +524 -0
  96. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/param.json +37 -0
  97. package/demo/app/route/app.js +131 -0
  98. package/demo/app/route/app.json +11 -0
  99. package/demo/app/route/event_api/client/event.json +10 -0
  100. package/demo/app/route/event_api/client/main.js +19 -0
  101. package/demo/app/route/event_api/manage/event.json +18 -0
  102. package/demo/app/route/event_api/manage/main.js +70 -0
  103. package/demo/app/route/plugin/main/api_route_client/pass/api.json +37 -0
  104. package/demo/app/route/plugin/main/api_route_client/pass/index.js +33 -0
  105. package/demo/app/route/plugin/main/api_route_client/pass/param.json +50 -0
  106. package/demo/app/route/plugin/main/index.js +144 -0
  107. package/demo/app/route/plugin/main/plugin.json +20 -0
  108. package/demo/app/sys/app.js +169 -0
  109. package/demo/app/sys/app.json +11 -0
  110. package/demo/app/sys/event_api/api/before.js +80 -0
  111. package/demo/app/sys/event_api/api/check.js +103 -0
  112. package/demo/app/sys/event_api/api/event.json +31 -0
  113. package/demo/app/sys/event_api/api/main.js +19 -0
  114. package/demo/app/sys/event_api/apis/before.js +80 -0
  115. package/demo/app/sys/event_api/apis/event.json +21 -0
  116. package/demo/app/sys/event_api/apis/main.js +19 -0
  117. package/demo/app/sys/event_api/client/event.json +10 -0
  118. package/demo/app/sys/event_api/client/main.js +17 -0
  119. package/demo/app/sys/event_api/doc/event.json +18 -0
  120. package/demo/app/sys/event_api/doc/main.js +67 -0
  121. package/demo/app/sys/event_api/img/event.json +11 -0
  122. package/demo/app/sys/event_api/img/main.js +90 -0
  123. package/demo/app/sys/event_api/manage/event.json +10 -0
  124. package/demo/app/sys/event_api/manage/main.js +19 -0
  125. package/demo/app/sys/event_api/upload/event.json +10 -0
  126. package/demo/app/sys/event_api/upload/main.js +17 -0
  127. package/demo/app/sys/plugin/app_admin/index.js +127 -0
  128. package/demo/app/sys/plugin/app_admin/plugin.json +20 -0
  129. package/demo/app/sys/plugin/main/api_client/config/api.json +39 -0
  130. package/demo/app/sys/plugin/main/api_client/config/index.js +37 -0
  131. package/demo/app/sys/plugin/main/api_client/config/param.json +27 -0
  132. package/demo/app/sys/plugin/main/api_client/config/sql.json +70 -0
  133. package/demo/app/sys/plugin/main/api_client/lang/api.json +37 -0
  134. package/demo/app/sys/plugin/main/api_client/lang/index.js +27 -0
  135. package/demo/app/sys/plugin/main/api_client/lang/param.json +22 -0
  136. package/demo/app/sys/plugin/main/api_client/nav/api.json +15 -0
  137. package/demo/app/sys/plugin/main/api_client/nav/index.js +39 -0
  138. package/demo/app/sys/plugin/main/api_client/nav/param.json +87 -0
  139. package/demo/app/sys/plugin/main/api_client/query/api.json +35 -0
  140. package/demo/app/sys/plugin/main/api_client/query/index.js +48 -0
  141. package/demo/app/sys/plugin/main/api_client/theme/api.json +37 -0
  142. package/demo/app/sys/plugin/main/api_client/theme/index.js +30 -0
  143. package/demo/app/sys/plugin/main/api_client/theme/param.json +31 -0
  144. package/demo/app/sys/plugin/main/api_client/translate/api.json +39 -0
  145. package/demo/app/sys/plugin/main/api_client/translate/index.js +21 -0
  146. package/demo/app/sys/plugin/main/api_client/translate/param.json +130 -0
  147. package/demo/app/sys/plugin/main/api_client/translate/sql.json +62 -0
  148. package/demo/app/sys/plugin/main/api_upload/image/api.json +15 -0
  149. package/demo/app/sys/plugin/main/api_upload/image/index.js +62 -0
  150. package/demo/app/sys/plugin/main/api_upload/image/param.json +9 -0
  151. package/demo/app/sys/plugin/main/task/task_demo/index.js +37 -0
  152. package/demo/app/sys/plugin/main/task/task_demo/task.json +24 -0
  153. package/demo/app/sys/plugin/user/index.js +127 -0
  154. package/demo/app/sys/plugin/user/plugin.json +20 -0
  155. package/demo/app/sys/plugin/user/static/img/logo.png +0 -0
  156. package/demo/app/sys/static/img/avatar_1674484608066.png +0 -0
  157. package/demo/app/sys/static/img/avatar_1674633778171.jpeg +0 -0
  158. package/demo/app/sys/static/img/avatar_1674962702334.jpeg +0 -0
  159. package/demo/app/sys/static/img/avatar_1675075431736.jpeg +0 -0
  160. package/demo/app/sys/static/img/avatar_1675497065533.jpeg +0 -0
  161. package/demo/app/sys/static/img/avatar_1685352550990.jpeg +0 -0
  162. package/demo/app/sys/static/img/avatar_1685353685992.jpeg +0 -0
  163. package/demo/app/sys/static/img/avatar_1685353956587.jpeg +0 -0
  164. package/demo/app/sys/static/img/avatar_1685353971148.jpeg +0 -0
  165. package/demo/app/sys/static/img/avatar_1685353983723.jpeg +0 -0
  166. package/demo/app/sys/static/img/avatar_1685354014745.jpeg +0 -0
  167. package/demo/app/sys/static/img/avatar_1685354122355.jpeg +0 -0
  168. package/demo/app/sys/static/img/avatar_1685357983520.jpeg +0 -0
  169. package/demo/app/sys/static/img/avatar_1685358453383.jpeg +0 -0
  170. package/demo/app/sys/static/img/avatar_1685416570438.jpeg +0 -0
  171. package/demo/app/sys/static/img/avatar_1685512675830.png +0 -0
  172. package/demo/app/sys/static/img/avatar_1685939425608.jpeg +0 -0
  173. package/demo/app/sys/static/img/avatar_1685939886560.jpeg +0 -0
  174. package/demo/app/sys/static/img/avatar_1686106313194.png +0 -0
  175. package/demo/app/sys/static/img/avatar_1686371876175.png +0 -0
  176. package/demo/app/sys/static/img/avatar_1686372033596.png +0 -0
  177. package/demo/app/sys/static/img/avatar_1688215220669.png +0 -0
  178. package/demo/app/sys/static/img/avatar_1688531184690.png +0 -0
  179. package/demo/app/sys/static/img/avatar_1688531233080.png +0 -0
  180. package/demo/app/sys/static/img/avatar_1688548526909.png +0 -0
  181. package/demo/app/sys/static/img/avatar_1688549213411.png +0 -0
  182. package/demo/app/sys/static/img/avatar_1688549511977.png +0 -0
  183. package/demo/app/sys/static/img/avatar_1688549685464.png +0 -0
  184. package/demo/app/sys/static/img/avatar_1688608623049.png +0 -0
  185. package/demo/app/sys/static/img/avatar_1688638500476.png +0 -0
  186. package/demo/app/sys/static/img/avatar_1688638515195.png +0 -0
  187. package/demo/app/sys/static/img/avatar_1688638539928.png +0 -0
  188. package/demo/app/sys/static/img/avatar_1688638557960.png +0 -0
  189. package/demo/app/sys/static/img/avatar_1688638761798.png +0 -0
  190. package/demo/app/sys/static/img/avatar_1688638943140.png +0 -0
  191. package/demo/app/sys/static/img/avatar_1688639068330.png +0 -0
  192. package/demo/app/sys/static/img/image_1685357101273.jpeg +0 -0
  193. package/demo/app/sys/static/img/logo.png +0 -0
  194. package/demo/app/user/app.js +148 -0
  195. package/demo/app/user/app.json +11 -0
  196. package/demo/app/user/event_api/client/event.json +10 -0
  197. package/demo/app/user/event_api/client/main.js +18 -0
  198. package/demo/app/user/event_api/manage/event.json +10 -0
  199. package/demo/app/user/event_api/manage/main.js +19 -0
  200. package/demo/app/user/plugin/main/api_user_client/account/api.json +39 -0
  201. package/demo/app/user/plugin/main/api_user_client/account/index.js +53 -0
  202. package/demo/app/user/plugin/main/api_user_client/account/param.json +130 -0
  203. package/demo/app/user/plugin/main/api_user_client/base/api.json +27 -0
  204. package/demo/app/user/plugin/main/api_user_client/base/index.js +84 -0
  205. package/demo/app/user/plugin/main/api_user_client/base/param.json +130 -0
  206. package/demo/app/user/plugin/main/api_user_client/core/api.json +20 -0
  207. package/demo/app/user/plugin/main/api_user_client/core/forgot.js +14 -0
  208. package/demo/app/user/plugin/main/api_user_client/core/password.js +14 -0
  209. package/demo/app/user/plugin/main/api_user_client/core/sign_out.js +26 -0
  210. package/demo/app/user/plugin/main/api_user_client/core/state.js +21 -0
  211. package/demo/app/user/plugin/main/api_user_client/count/api.json +27 -0
  212. package/demo/app/user/plugin/main/api_user_client/count/chongzhi.js +103 -0
  213. package/demo/app/user/plugin/main/api_user_client/count/index.js +40 -0
  214. package/demo/app/user/plugin/main/api_user_client/count/param.json +40 -0
  215. package/demo/app/user/plugin/main/api_user_client/forgot/api.json +37 -0
  216. package/demo/app/user/plugin/main/api_user_client/forgot/index - /345/211/257/346/234/254.jsbat" +41 -0
  217. package/demo/app/user/plugin/main/api_user_client/forgot/index.js +36 -0
  218. package/demo/app/user/plugin/main/api_user_client/forgot/param.json +56 -0
  219. package/demo/app/user/plugin/main/api_user_client/oauth/WXBizDataCrypt.js +33 -0
  220. package/demo/app/user/plugin/main/api_user_client/oauth/api.json +31 -0
  221. package/demo/app/user/plugin/main/api_user_client/oauth/index.js +16 -0
  222. package/demo/app/user/plugin/main/api_user_client/oauth/oauth.js +270 -0
  223. package/demo/app/user/plugin/main/api_user_client/oauth/oauth.json +88 -0
  224. package/demo/app/user/plugin/main/api_user_client/oauth/param.json +111 -0
  225. package/demo/app/user/plugin/main/api_user_client/password/api.json +21 -0
  226. package/demo/app/user/plugin/main/api_user_client/password/index.js +56 -0
  227. package/demo/app/user/plugin/main/api_user_client/password/param.json +44 -0
  228. package/demo/app/user/plugin/main/api_user_client/phone_code/aliyun.js +230 -0
  229. package/demo/app/user/plugin/main/api_user_client/phone_code/api.json +37 -0
  230. package/demo/app/user/plugin/main/api_user_client/phone_code/index.js +18 -0
  231. package/demo/app/user/plugin/main/api_user_client/phone_code/index.js_ +230 -0
  232. package/demo/app/user/plugin/main/api_user_client/phone_code/param.json +58 -0
  233. package/demo/app/user/plugin/main/api_user_client/phone_code/phone_code.js +278 -0
  234. package/demo/app/user/plugin/main/api_user_client/realname/api.json +21 -0
  235. package/demo/app/user/plugin/main/api_user_client/realname/index.js +48 -0
  236. package/demo/app/user/plugin/main/api_user_client/realname/param.json +74 -0
  237. package/demo/app/user/plugin/main/api_user_client/servicer/api.json +29 -0
  238. package/demo/app/user/plugin/main/api_user_client/servicer/index.js +19 -0
  239. package/demo/app/user/plugin/main/api_user_client/servicer/param.json +41 -0
  240. package/demo/app/user/plugin/main/api_user_client/servicer/sql.json +113 -0
  241. package/demo/app/user/plugin/main/api_user_client/set_address/api.json +37 -0
  242. package/demo/app/user/plugin/main/api_user_client/set_address/index.js +101 -0
  243. package/demo/app/user/plugin/main/api_user_client/set_address/param.json +165 -0
  244. package/demo/app/user/plugin/main/api_user_client/set_avatar/api.json +35 -0
  245. package/demo/app/user/plugin/main/api_user_client/set_avatar/index.js +77 -0
  246. package/demo/app/user/plugin/main/api_user_client/set_info/api.json +35 -0
  247. package/demo/app/user/plugin/main/api_user_client/set_info/index.js +47 -0
  248. package/demo/app/user/plugin/main/api_user_client/set_nickname/api.json +35 -0
  249. package/demo/app/user/plugin/main/api_user_client/set_nickname/index.js +49 -0
  250. package/demo/app/user/plugin/main/api_user_client/set_pay_password/api.json +21 -0
  251. package/demo/app/user/plugin/main/api_user_client/set_pay_password/index.js +67 -0
  252. package/demo/app/user/plugin/main/api_user_client/sign_in/api.json +11 -0
  253. package/demo/app/user/plugin/main/api_user_client/sign_in/index.js +275 -0
  254. package/demo/app/user/plugin/main/api_user_client/sign_in/param.json +125 -0
  255. package/demo/app/user/plugin/main/api_user_client/sign_in/state.js +37 -0
  256. package/demo/app/user/plugin/main/api_user_client/sign_up/api.json +12 -0
  257. package/demo/app/user/plugin/main/api_user_client/sign_up/index.js +110 -0
  258. package/demo/app/user/plugin/main/api_user_client/sign_up/param.json +65 -0
  259. package/demo/app/user/plugin/main/api_user_client/sign_up_in/api.json +37 -0
  260. package/demo/app/user/plugin/main/api_user_client/sign_up_in/index.js +110 -0
  261. package/demo/app/user/plugin/main/api_user_client/sign_up_in/param.json +34 -0
  262. package/demo/app/user/plugin/main/api_user_client/token/api.json +25 -0
  263. package/demo/app/user/plugin/main/api_user_client/token/index.js +20 -0
  264. package/demo/app/user/plugin/main/api_user_client/token/param.json +16 -0
  265. package/demo/app/user/plugin/main/api_user_manage/account_base/api.json +37 -0
  266. package/demo/app/user/plugin/main/api_user_manage/account_base/index.js +40 -0
  267. package/demo/app/user/plugin/main/api_user_manage/account_base/param.json +130 -0
  268. package/demo/app/user/plugin/main/api_user_manage/invitation_code/api.json +37 -0
  269. package/demo/app/user/plugin/main/api_user_manage/invitation_code/index.js +106 -0
  270. package/demo/app/user/plugin/main/api_user_manage/invitation_code/param.json +130 -0
  271. package/demo/app/user/plugin/main/api_user_manage/update_team/api.json +35 -0
  272. package/demo/app/user/plugin/main/api_user_manage/update_team/index.js +218 -0
  273. package/demo/app/user/plugin/main/api_user_manage/update_team/param.json +130 -0
  274. package/demo/app/user/static/img/logo.png +0 -0
  275. package/demo/app/ws/app.js +122 -0
  276. package/demo/app/ws/app.json +11 -0
  277. package/demo/app/ws/event_api/client/event.json +10 -0
  278. package/demo/app/ws/event_api/client/main.js +17 -0
  279. package/demo/app/ws/socket/ws/index.js +43 -0
  280. package/demo/app/ws/socket/ws/socket.json +14 -0
  281. package/demo/config/development.json +95 -0
  282. package/demo/config/face.sql +3824 -0
  283. package/demo/config/local.json +80 -0
  284. package/demo/index.js +19 -0
  285. package/package.json +59 -58
  286. package/cache/test/main/config.json +0 -7
@@ -0,0 +1,275 @@
1
+ /**
2
+ * 账户缓存
3
+ */
4
+ async function state_cache(ctx, db, user) {
5
+ if (!user) {
6
+ return $.ret.error(10000, '账号不存在');
7
+ }
8
+ var login_ip = ctx.ip.replace('::ffff:', '');
9
+ var user_id = user.user_id;
10
+ // 记录当前登录所用的IP地址
11
+ await db.set({
12
+ user_id
13
+ }, {
14
+ login_ip
15
+ });
16
+
17
+ ctx.session.user = user;
18
+ var token = ctx.session.uuid;
19
+ db.table = "user_state";
20
+ db.key = "user_id";
21
+ var obj = await db.getObj({
22
+ user_id
23
+ });
24
+
25
+ if (obj) {
26
+ obj.token = token;
27
+ } else {
28
+ await db.add({
29
+ user_id,
30
+ token
31
+ });
32
+ }
33
+ user.token = token;
34
+ var u = Object.assign({}, user);
35
+ u.password_pay = u.password_pay ? "******" : "";
36
+ u.password = u.password ? "******" : "";
37
+ delete u.salt;
38
+ delete u.time_create;
39
+
40
+ // 7200秒 = 2小时 ; 604800秒 = 7天
41
+ $.cache.set("ofName_" + user.nickname, token, 604800);
42
+ $.cache.set("ofToken_" + token, user.nickname, 604800);
43
+
44
+ // 自动生成的uuid是通过IP和浏览器信息加密而成,如果需要解密确认其身份,可再加上user_id加密,自行生成uuid
45
+ var body = $.ret.body(user);
46
+ return body
47
+ }
48
+
49
+ /**
50
+ * 账户登录
51
+ */
52
+ async function account_sign_in(ctx, db, account, password) {
53
+ // 如果登陆方式为1,则使用第三方社交账号和本站密码进行登录
54
+ if (!password) {
55
+ return $.ret.error(30002, "密码(password)不能为空");
56
+ }
57
+ db.table = "user_account";
58
+ db.key = "user_id";
59
+ // 使用用户名登录
60
+ var users = await db.getSql(`phone='${account}' || username='${account}' || email='${account}'`);
61
+ if (users.length <= 0) {
62
+ return $.ret.error(60001, "用户不存在");
63
+ }
64
+ var user = users[0];
65
+ var pass = (password + user.salt).md5();
66
+ if (pass !== user.password) {
67
+ return $.ret.error(30003, "密码(password)错误");
68
+ }
69
+ return await state_cache(ctx, db, user);
70
+ }
71
+
72
+ /**
73
+ * 快捷注册并登录
74
+ */
75
+ async function fast_sign_in(db, params, user) {
76
+ var info = params.info;
77
+ if (info) {
78
+ var json_info = JSON.parse(info);
79
+ user.nickname = json_info.nickName;
80
+ user.avatar = json_info.avatarUrl;
81
+ $.bind_account(db, params, user);
82
+ }
83
+ }
84
+
85
+ /**
86
+ * 手机号码登录
87
+ */
88
+ async function phone_sign_in() {
89
+ // 使用手机号+验证码登录
90
+ db.table = "user_account";
91
+ db.key = "user_id";
92
+ var code = params['code']
93
+ var phone = account;
94
+ if (!code) {
95
+ return $.ret.error(10000, "验证码(code)不能为空!");
96
+ }
97
+ // 短信验证码判断
98
+ var key = "code_sign_" + phone;
99
+ var value = await $.cache.get(key);
100
+ if (!value) {
101
+ return $.ret.error(10000, '请先发送验证码!');
102
+ }
103
+ var json = value.toJson();
104
+ if (code !== json.code) {
105
+ return $.ret.error(30000, '验证码不正确!');
106
+ }
107
+ var user = await db.getObj({
108
+ phone
109
+ });
110
+ if (!user) {
111
+ var username = phone;
112
+ //没有账号,去注册
113
+ var invite_code = await $.getCode(db, username, password);
114
+ var index = await db.add({
115
+ username,
116
+ phone,
117
+ invite_code
118
+ });
119
+ if (index > 0) {
120
+ var user = await db.getObj({
121
+ username
122
+ });
123
+ if (user) {
124
+ var user_id = user.user_id;
125
+ db.table = "user_count";
126
+ await db.add({
127
+ user_id
128
+ });
129
+ }
130
+ }
131
+ }
132
+ return await state_cache(ctx, db, user);
133
+ }
134
+
135
+ /**
136
+ * 社交账号登录
137
+ */
138
+ async function sns_sign_in() {
139
+ // 如果登陆方式为1,则使用第三方社交账号和本站密码进行登录
140
+ if (!password) {
141
+ return $.ret.error(30002, "密码(password)不能为空");
142
+ }
143
+ db.table = "user_sns";
144
+ var mm = params["mm"];
145
+ var arr = [];
146
+ if (mm) {
147
+ // 使用超级美眉账号登录
148
+ arr = await db.get({
149
+ mm
150
+ });
151
+ } else {
152
+ var qq = params["qq"];
153
+ if (qq) {
154
+ // 使用QQ账号登录
155
+ arr = await db.get({
156
+ qq
157
+ });
158
+ } else {
159
+ var baidu = params["baidu"];
160
+ if (baidu) {
161
+ // 使用百度账号登录
162
+ arr = await db.get({
163
+ baidu
164
+ });
165
+ } else {
166
+ var taotao = params["taotao"];
167
+ if (taotao) {
168
+ // 使用淘宝账号登录
169
+ arr = await db.get({
170
+ taotao
171
+ });
172
+ } else {
173
+ var wechat = params["wechat"];
174
+ if (wechat) {
175
+ // 使用微信账号登录
176
+ arr = await db.get({
177
+ wechat
178
+ });
179
+ } else {
180
+ return $.ret.error(30000, '不支持的SNS账号');
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ if (arr.length > 0) {
187
+ var o = arr[0];
188
+ db.table = "user_sns";
189
+ user = await db.getObj({
190
+ user_id: o.user_id
191
+ });
192
+ }
193
+ return await state_cache(ctx, db, user);
194
+ }
195
+
196
+ /**
197
+ * 关联创建
198
+ */
199
+ async function sns_sign_in() {
200
+
201
+ }
202
+
203
+
204
+ $.bind_account = async function(db, body, user) {
205
+ var open_id = body.open_id;
206
+ var user_id = user.user_id;
207
+ if (open_id) {
208
+ var way = body.way || "wechat";
209
+ db.table = way + "_info";
210
+ var info = await db.getObj({
211
+ open_id
212
+ });
213
+ if (info) {
214
+ var obj = {
215
+ user_id,
216
+ open_id,
217
+ info: body.info
218
+ }
219
+ db.set({
220
+ open_id
221
+ }, obj);
222
+ } else {
223
+ db.add({
224
+ user_id,
225
+ open_id,
226
+ info: body.info
227
+ });
228
+ }
229
+ return user;
230
+ }
231
+ }
232
+
233
+ /**
234
+ * 获取用户登录态
235
+ * @param {String} token 临时访问牌
236
+ * @retrun {Object} 返回临时访问牌
237
+ */
238
+ $.user_state = async function(token) {
239
+ return await $.cache.get($.dict.session_id + '_' + token);
240
+ }
241
+
242
+
243
+ /**
244
+ * @description 接口主函数
245
+ * @param {Object} ctx HTTP上下文
246
+ * @param {Object} db 数据管理器,如: { next: async function{}, ret: {} }
247
+ * @return {Object} 执行结果
248
+ */
249
+ async function main(ctx, db) {
250
+ var params = {};
251
+ if (ctx.method === "POST") {
252
+ params = ctx.request.body;
253
+ } else {
254
+ params = ctx.request.query;
255
+ }
256
+ if (ctx.session.user) {
257
+ ctx.session.user = null;
258
+ }
259
+ var password = params['password'];
260
+ var account = params["account"];
261
+
262
+ var user;
263
+ // 获取登录方式
264
+ var method = params["method"];
265
+ // $.log.debug('登录方式', method);
266
+ if (!method) {
267
+ return await account_sign_in(ctx, db, account, password);
268
+ } else if (method === 'phone') {
269
+ return await phone_sign_in(ctx, db, account, password);
270
+ } else if (method === "sns") {
271
+ return await sns_sign_in(ctx, db, account, password);
272
+ }
273
+ };
274
+
275
+ exports.main = main;
@@ -0,0 +1,125 @@
1
+ {
2
+ "title": "用户登录验证模型",
3
+ "name": "user_sign_in",
4
+ "filter": true,
5
+ "file": "",
6
+ "get": {
7
+ "query": ["account", "qq", "wechat", "mm", "baidu", "taobao", "code"],
8
+ "query_required": []
9
+ },
10
+ "post": {
11
+ "body": ["account", "qq", "wechat", "mm", "baidu", "taobao", "code"],
12
+ "body_required": []
13
+ },
14
+ "list": [
15
+ {
16
+ "name": "phone",
17
+ "title": "手机号码",
18
+ "type": "string",
19
+ // 字符串类型时设置
20
+ "string": {
21
+ "format": "phone",
22
+ // 传值范围,字符串时为限制字符长度
23
+ "range": [11, 11]
24
+ }
25
+ },
26
+ {
27
+ "name": "code",
28
+ "title": "短信验证码",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "method",
33
+ "title": "登录方式",
34
+ "description": "如果为sns则表示使用社交账号登录",
35
+ "type": "string"
36
+ }, {
37
+ "name": "account",
38
+ "title": "账号",
39
+ "type": "string",
40
+ "string": {
41
+ "min": 5,
42
+ "max": 16,
43
+ "format": "username"
44
+ }
45
+ },
46
+ {
47
+ "name": "password",
48
+ "title": "密码",
49
+ "description": "由注册密码进行md5加密后获得",
50
+ "type": "string",
51
+ "string": {
52
+ "min": 32,
53
+ "max": 32,
54
+ "format": "password",
55
+ "different": "username"
56
+ }
57
+ },
58
+ {
59
+ "name": "qq",
60
+ "title": "QQ号",
61
+ "description": "",
62
+ "type": "string",
63
+ "dataType": "varchar",
64
+ "string": {
65
+ "range": [
66
+ 5,
67
+ 12
68
+ ]
69
+ }
70
+ },
71
+ {
72
+ "name": "wechat",
73
+ "title": "微信号",
74
+ "description": "",
75
+ "type": "string",
76
+ "dataType": "varchar",
77
+ "string": {
78
+ "range": [
79
+ 5,
80
+ 16
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ "name": "mm",
86
+ "title": "MM号",
87
+ "description": "",
88
+ "type": "string",
89
+ "dataType": "varchar",
90
+ "string": {
91
+ "range": [
92
+ 5,
93
+ 16
94
+ ]
95
+ }
96
+ },
97
+ {
98
+ "name": "baidu",
99
+ "title": "百度账号",
100
+ "description": "",
101
+ "type": "string",
102
+ "dataType": "varchar",
103
+ "string": {
104
+ "range": [
105
+ 5,
106
+ 14
107
+ ]
108
+ }
109
+ },
110
+ {
111
+ "name": "taobao",
112
+ "title": "淘宝账号",
113
+ "description": "",
114
+ "type": "string",
115
+ "dataType": "varchar",
116
+ "string": {
117
+ "range": [
118
+ 5,
119
+ 10
120
+ ]
121
+ }
122
+ }
123
+
124
+ ]
125
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @description 接口主函数
3
+ * @param {Object} ctx HTTP上下文
4
+ * @param {Object} db 数据管理器,如: { next: async function{}, ret: {} }
5
+ * @return {Object} 执行结果
6
+ */
7
+ async function main(ctx, db) {
8
+ // 获取请求参数
9
+ if (ctx.session.user) {
10
+ var user = Object.assign({}, ctx.session.user);
11
+ // delete user.user_id;
12
+ return $.ret.body(user);
13
+ } else {
14
+ var token = ctx.headers[$.dict.token];
15
+ if (token) {
16
+ var u = await $.cache.get($.dict.session_id + '_' + token);
17
+ if (u) {
18
+ var type = typeof(u);
19
+ if (type === "string") {
20
+ var o = u.toJson();
21
+ // delete o.user.user_id;
22
+ return $.ret.body(o.user);
23
+ } else if (type === "object") {
24
+ if (Object.keys(u).length > 0) {
25
+ var o = Object.assign({}, u);
26
+ // delete o.user.user_id;
27
+ return $.ret.body(o.user);
28
+ }
29
+ }
30
+ }
31
+ return $.ret.error(50000, '非法访问');
32
+ }
33
+ return $.ret.error(40000, '用户未登录');
34
+ }
35
+ };
36
+
37
+ exports.main = main;
@@ -0,0 +1,12 @@
1
+ {
2
+ "path": "/api/user/sign_up",
3
+ "type": "api",
4
+ "name": "user_sign_up",
5
+ "title": "账户注册",
6
+ "description": "用来注册账户",
7
+ "func_file": "./index.js",
8
+ "method": "POST",
9
+ "cache": 0,
10
+ "client_cache": false,
11
+ "param_path": "./param.json"
12
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * 新建邀请码
3
+ * @param {Object} 数据库管理器
4
+ * @param {String} username
5
+ * @param {String} password
6
+ */
7
+ $.newInviteCode = async function(db, username, password) {
8
+ var date = new Date();
9
+ var str = (date.toISOString() + username + password).md5();
10
+
11
+ var code = "";
12
+ for (var i = 0; i < 20; i++) {
13
+ var invite_code = str.substring(0, 8);
14
+ var count = await db.count({
15
+ invite_code
16
+ });
17
+ if (count === 0) {
18
+ code = invite_code;
19
+ break;
20
+ }
21
+ }
22
+
23
+ return code.toLocaleLowerCase();
24
+ };
25
+
26
+ /**
27
+ * @description 接口主函数
28
+ * @param {Object} ctx HTTP上下文
29
+ * @param {Object} db 数据管理器,如: { next: async function{}, ret: {} }
30
+ * @return {Object} 执行结果
31
+ */
32
+ async function main(ctx, db) {
33
+ var by = ctx.request.body;
34
+ var {
35
+ account,
36
+ password,
37
+ nickname,
38
+ code,
39
+ invite_code
40
+ } = by;
41
+ var phone = account;
42
+ var username = account;
43
+
44
+ // 判断用户是否已存在
45
+ db.table = "user_account";
46
+ var count = await db.count({
47
+ phone
48
+ });
49
+
50
+ if (count > 0) {
51
+ return $.ret.error(10007, '注册失败,用户名已存在!');
52
+ }
53
+
54
+ var code_check = await $.getCode("sign_up", phone);
55
+ if (!code_check) {
56
+ return $.ret.error(30001, '请先获取验证码!');
57
+ }
58
+ if (code !== code_check) {
59
+ return $.ret.error(30007, '验证码错误!');
60
+ }
61
+
62
+ // 添加邀请码
63
+ var referee_id = 0;
64
+ if (invite_code) {
65
+ var inviter = await db.getObj({
66
+ invite_code
67
+ });
68
+ if (inviter) {
69
+ referee_id = inviter.user_id;
70
+ } else {
71
+ return $.ret.bl(false, '邀请人不存在!');
72
+ }
73
+ }
74
+
75
+ var salt = password.substring(0, 6);
76
+ var pass = (password + salt).md5();
77
+
78
+ // 生成邀请码
79
+ var icode = await $.newInviteCode(db, username, pass);
80
+
81
+ var index = await db.add({
82
+ username,
83
+ salt,
84
+ phone,
85
+ nickname,
86
+ referee_id,
87
+ password: pass,
88
+ invite_code: icode
89
+ });
90
+
91
+ if (index > 0) {
92
+ var user = await db.getObj({
93
+ phone
94
+ });
95
+
96
+ if (user) {
97
+ var user_id = user.user_id;
98
+ db.table = "user_count";
99
+ await db.add({
100
+ user_id
101
+ });
102
+ }
103
+
104
+ return $.ret.bl(true, '注册成功');
105
+ } else {
106
+ return $.ret.error(10000, '数据库业务逻辑错误。 ' + JSON.stringify(db.error, true));
107
+ }
108
+ };
109
+
110
+ exports.main = main;
@@ -0,0 +1,65 @@
1
+ {
2
+ "title": "用户注册验证模型",
3
+ "name": "user_sign_up",
4
+ "filter": true,
5
+ "file": "",
6
+ "post": {
7
+ "body": ["invite_code"],
8
+ "body_required": ["account", "password", "nickname", "confirm_password", "code"]
9
+ },
10
+ "list": [
11
+ {
12
+ "name": "account",
13
+ "title": "账号",
14
+ "type": "string",
15
+ "string": {
16
+ "min": 5,
17
+ "max": 16,
18
+ "format": "username"
19
+ }
20
+ },
21
+ // {
22
+ // "name": "nickname",
23
+ // "title": "账户昵称",
24
+ // "type": "string",
25
+ // "string": {
26
+ // "min": 5,
27
+ // "max": 16
28
+ // }
29
+ // },
30
+ {
31
+ "name": "password",
32
+ "title": "密码",
33
+ "type": "string",
34
+ "string": {
35
+ "min": 32,
36
+ "max": 32,
37
+ "format": "password",
38
+ "different": "username"
39
+ }
40
+ },
41
+ {
42
+ "name": "confirm_password",
43
+ "title": "确认密码",
44
+ "type": "string",
45
+ "string": {
46
+ "format": "password",
47
+ "identical": "password"
48
+ }
49
+ },
50
+ {
51
+ "name": "code",
52
+ "title": "短信验证码",
53
+ "type": "string",
54
+ "string": {
55
+ "min": 4,
56
+ "max": 8
57
+ }
58
+ },
59
+ {
60
+ "name": "invite_code",
61
+ "title": "邀请码",
62
+ "type": "string"
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ // 路由路径
3
+ "path": "/api/user/sign_up_in",
4
+ // 名称, 用于动态增删改API配置
5
+ "name": "user_sign_up_in",
6
+ // 标题, 用于开发文档显示
7
+ "title": "注册并登录",
8
+ // 描述, 用于介绍该路由的作用
9
+ "description": "用于注册和登录",
10
+ // 函数文件, 用于驱动脚本, 实现业务
11
+ "func_file": "./index.js",
12
+ // 请求方法, 选填 GET, POST, ALL。 ALL指同时支持GET/POST
13
+ "method": "ALL",
14
+ // 开放域, 如果域未开放, 则只有特定的协议头才能访问该API, 同时API文档不接见
15
+ "scope": true,
16
+ // 缓存时长, 单位: 分钟。使用缓存后, 二次访问API直接从缓存读取, 不重复执行业务脚本
17
+ "cache": 0,
18
+ // 是否客户端缓存, 使用客户端则不再访问服务器, 直接从浏览器中拿; 使用服务端缓存则会访问服务器
19
+ "client_cache": false,
20
+ // 参数配置路径, 用于校验API请求参数是否正确, 同时显示在API文档中
21
+ "param_path": "./param.json",
22
+ /* 授权协议 */
23
+ "oauth": {
24
+ // 是否需要登录, true表示需要登录才能访问该接口
25
+ "signIn": false,
26
+ // 会员权限级别, 如果小于该值, 则无法访问, 0为不限制
27
+ "vip": 0,
28
+ // 管理员权限级别, 如果小于该值, 则无法访问, 0为不限制
29
+ "gm": 0,
30
+ // 商户/第三方权限级别, 如果小于该值, 则无法访问, 0为不限制
31
+ "mc": 0,
32
+ // 用户组, 允许访问该接口的普通用户群体, 传ID数组,例如: [1,5]
33
+ "user_group": [],
34
+ // 管理组, 允许访问该接口的管理员群体, 传ID数组,例如: [1,5]
35
+ "user_admin": []
36
+ }
37
+ }