owl-cli 6.214.0 → 7.1.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 (192) hide show
  1. package/bin/owl-init.js +26 -5
  2. package/examples/models/owlsys/backendSession.json +52 -0
  3. package/examples/models/owlsys/orgBatch/org_admin_batch_import/api/src/eventhandlers/afterAdd.jsx +10 -0
  4. package/examples/models/owlsys/orgBatch/org_admin_batch_import/api/src/tasks/batchImport.jsx +318 -0
  5. package/examples/models/owlsys/orgBatch/org_admin_batch_import.json +75 -0
  6. package/examples/models/owlsys/orgBatch/org_batch_export/api/src/eventhandlers/batchExport.jsx +24 -0
  7. package/examples/models/owlsys/orgBatch/org_batch_export/api/src/tasks/batchExport.jsx +375 -0
  8. package/examples/models/owlsys/orgBatch/org_batch_export.json +102 -0
  9. package/examples/models/owlsys/orgBatch/org_batch_import/api/src/eventhandlers/batchImport.jsx +24 -0
  10. package/examples/models/owlsys/orgBatch/org_batch_import/api/src/plugins/downTemplate.jsx +79 -0
  11. package/examples/models/owlsys/orgBatch/org_batch_import/api/src/tasks/batchImport.jsx +424 -0
  12. package/examples/models/owlsys/orgBatch/org_batch_import.json +82 -0
  13. package/examples/models/owlsys/orgBatch/org_batch_repair_parentid/api/src/eventhandlers/batchUpdate.jsx +24 -0
  14. package/examples/models/owlsys/orgBatch/org_batch_repair_parentid/api/src/plugins/downTemplate.jsx +54 -0
  15. package/examples/models/owlsys/orgBatch/org_batch_repair_parentid/api/src/tasks/batchUpdate.jsx +924 -0
  16. package/examples/models/owlsys/orgBatch/org_batch_repair_parentid.json +82 -0
  17. package/examples/models/owlsys/orgBatch/org_batch_update/api/src/eventhandlers/batchUpdate.jsx +24 -0
  18. package/examples/models/owlsys/orgBatch/org_batch_update/api/src/plugins/downTemplate.jsx +79 -0
  19. package/examples/models/owlsys/orgBatch/org_batch_update/api/src/tasks/batchUpdate.jsx +472 -0
  20. package/examples/models/owlsys/orgBatch/org_batch_update.json +81 -0
  21. package/examples/models/owlsys/orgBatch/org_batch_update_parentid/api/src/eventhandlers/batchUpdate.jsx +24 -0
  22. package/examples/models/owlsys/orgBatch/org_batch_update_parentid/api/src/plugins/downTemplate.jsx +54 -0
  23. package/examples/models/owlsys/orgBatch/org_batch_update_parentid/api/src/tasks/batchUpdate.jsx +509 -0
  24. package/examples/models/owlsys/orgBatch/org_batch_update_parentid.json +82 -0
  25. package/examples/models/owlsys/orgBatch/org_batch_update_state/api/src/eventhandlers/batchUpdate.jsx +24 -0
  26. package/examples/models/owlsys/orgBatch/org_batch_update_state/api/src/plugins/downTemplate.jsx +61 -0
  27. package/examples/models/owlsys/orgBatch/org_batch_update_state/api/src/tasks/doUpdateTask.jsx +299 -0
  28. package/examples/models/owlsys/orgBatch/org_batch_update_state.json +81 -0
  29. package/examples/models/owlsys/orgBatch/orguser_batch_import/api/src/eventhandlers/batchImport.jsx +24 -0
  30. package/examples/models/owlsys/orgBatch/orguser_batch_import/api/src/plugins/downTemplate.jsx +52 -0
  31. package/examples/models/owlsys/orgBatch/orguser_batch_import/api/src/tasks/batchImport.jsx +297 -0
  32. package/examples/models/owlsys/orgBatch/orguser_batch_import.json +82 -0
  33. package/examples/models/owlsys/orgBatch/orguser_batch_update/api/src/eventhandlers/batchImport.jsx +24 -0
  34. package/examples/models/owlsys/orgBatch/orguser_batch_update/api/src/plugins/downTemplate.jsx +58 -0
  35. package/examples/models/owlsys/orgBatch/orguser_batch_update/api/src/tasks/batchUpdate.jsx +345 -0
  36. package/examples/models/owlsys/orgBatch/orguser_batch_update.json +82 -0
  37. package/examples/models/owlsys/organization/business_circle.json +144 -0
  38. package/examples/models/owlsys/organization/business_circle_application.json +50 -0
  39. package/examples/models/owlsys/organization/createSiteOrder.json +50 -0
  40. package/examples/models/owlsys/organization/entity.json +64 -0
  41. package/examples/models/owlsys/organization/merchant_apply/api/src/plugins/doCertifyToNotPass.jsx +68 -0
  42. package/examples/models/owlsys/organization/merchant_apply/api/src/plugins/doCertifyToPass.jsx +135 -0
  43. package/examples/models/owlsys/organization/merchant_apply.json +561 -0
  44. package/examples/models/owlsys/organization/merchant_user.json +55 -0
  45. package/examples/models/owlsys/organization/orgAdminGroups.json +179 -0
  46. package/examples/models/owlsys/organization/org_admin_groups/api/src/plugins/addUserToGroup.jsx +65 -0
  47. package/examples/models/owlsys/organization/org_admin_groups/api/src/plugins/createNewUser.jsx +9 -0
  48. package/examples/models/owlsys/organization/org_certify_log/api/src/plugins/doCertifyToNotPass.jsx +66 -0
  49. package/examples/models/owlsys/organization/org_certify_log/api/src/plugins/doCertifyToPass.jsx +94 -0
  50. package/examples/models/owlsys/organization/org_certify_log.json +78 -0
  51. package/examples/models/owlsys/organization/org_entity.json +60 -0
  52. package/examples/models/owlsys/organization/org_modules.json +117 -0
  53. package/examples/models/owlsys/organization/org_source.json +30 -0
  54. package/examples/models/owlsys/organization/org_user.json +81 -0
  55. package/examples/models/owlsys/organization/orgs/api/src/eventHandlers/doCheckBeforeAddOrUpdate.jsx +32 -0
  56. package/examples/models/owlsys/organization/orgs/api/src/eventHandlers/doCheckBeforeDelete.jsx +19 -0
  57. package/examples/models/owlsys/organization/orgs/api/src/eventHandlers/setIdByOrgType.jsx +47 -0
  58. package/examples/models/owlsys/organization/orgs/api/src/plugins/toOrg.jsx +48 -0
  59. package/examples/models/owlsys/organization/orgs.json +671 -0
  60. package/examples/models/owlsys/organization/platformAdminGroups.json +78 -0
  61. package/examples/models/owlsys/organization/website/api/src/plugins/syncToOrg.jsx +27 -0
  62. package/examples/models/owlsys/organization/website.json +104 -0
  63. package/examples/models/owlsys/permissions/permission.json +165 -0
  64. package/examples/models/owlsys/permissions/roles.json +48 -0
  65. package/examples/models/owlsys/permissions/tablelevelpermission.json +42 -0
  66. package/examples/models/owlsys/server_token.json +38 -0
  67. package/examples/models/owlsys/session.json +57 -0
  68. package/examples/models/owlsys/tasks/process_job.json +94 -0
  69. package/examples/models/owlsys/tasks/process_job_checklog.json +66 -0
  70. package/examples/models/owlsys/tasks/process_job_log.json +34 -0
  71. package/examples/models/owlsys/user/address.json +52 -0
  72. package/examples/models/owlsys/user/mall_u/api/src/plugins/changePassword.jsx +133 -0
  73. package/examples/models/owlsys/user/mall_u_category/api/src/eventHandlers/autoSetFullPath_addAfter.jsx +25 -0
  74. package/examples/models/owlsys/user/mall_u_category/api/src/eventHandlers/autoSetFullPath_updateBefore.jsx +23 -0
  75. package/examples/models/owlsys/user/mall_user_logout/api/src/eventhandlers/updateUserState.jsx +25 -0
  76. package/examples/models/owlsys/user/org_user_address.json +46 -0
  77. package/examples/models/owlsys/user/org_user_address_default.json +48 -0
  78. package/examples/models/owlsys/user/org_user_invoice.json +56 -0
  79. package/examples/models/owlsys/user/user.json +458 -0
  80. package/examples/models/owlsys/user/user_address.json +46 -0
  81. package/examples/models/owlsys/user/user_address_default.json +48 -0
  82. package/examples/models/owlsys/user/user_batch_base_export/api/src/eventhandlers/batchExport.jsx +24 -0
  83. package/examples/models/owlsys/user/user_batch_base_export/api/src/tasks/batchExport.jsx +240 -0
  84. package/examples/models/owlsys/user/user_batch_base_export.json +97 -0
  85. package/examples/models/owlsys/user/user_batch_export_bigmember_info/api/src/eventhandlers/batchExport.jsx +24 -0
  86. package/examples/models/owlsys/user/user_batch_export_bigmember_info/api/src/plugins/downTemplate.jsx +47 -0
  87. package/examples/models/owlsys/user/user_batch_export_bigmember_info/api/src/tasks/batchExportTask.jsx +208 -0
  88. package/examples/models/owlsys/user/user_batch_export_bigmember_info.json +83 -0
  89. package/examples/models/owlsys/user/user_batch_export_by_userid/api/src/eventhandlers/batchExport.jsx +24 -0
  90. package/examples/models/owlsys/user/user_batch_export_by_userid/api/src/plugins/downTemplate.jsx +44 -0
  91. package/examples/models/owlsys/user/user_batch_export_by_userid/api/src/tasks/batchExportTask.jsx +262 -0
  92. package/examples/models/owlsys/user/user_batch_export_by_userid.json +83 -0
  93. package/examples/models/owlsys/user/user_batch_import/api/src/eventhandlers/batchImport.jsx +24 -0
  94. package/examples/models/owlsys/user/user_batch_import/api/src/tasks/doAddUserTask.jsx +250 -0
  95. package/examples/models/owlsys/user/user_batch_import.json +76 -0
  96. package/examples/models/owlsys/user/user_batch_update_category/api/src/eventhandlers/batchUpdate.jsx +24 -0
  97. package/examples/models/owlsys/user/user_batch_update_category/api/src/tasks/doUpdateUserTask.jsx +191 -0
  98. package/examples/models/owlsys/user/user_batch_update_category.json +77 -0
  99. package/examples/models/owlsys/user/user_batch_update_password/api/src/eventhandlers/batchUpdate.jsx +24 -0
  100. package/examples/models/owlsys/user/user_batch_update_password/api/src/plugins/downTemplate.jsx +48 -0
  101. package/examples/models/owlsys/user/user_batch_update_password/api/src/tasks/doUpdateUserTask.jsx +140 -0
  102. package/examples/models/owlsys/user/user_batch_update_password.json +82 -0
  103. package/examples/models/owlsys/user/user_batch_update_state/api/src/eventhandlers/batchUpdate.jsx +24 -0
  104. package/examples/models/owlsys/user/user_batch_update_state/api/src/tasks/doUpdateUserTask.jsx +140 -0
  105. package/examples/models/owlsys/user/user_batch_update_state.json +75 -0
  106. package/examples/models/owlsys/user/user_category.json +96 -0
  107. package/examples/models/owlsys/user/user_education.json +56 -0
  108. package/examples/models/owlsys/user/user_income.json +56 -0
  109. package/examples/models/owlsys/user/user_industry.json +56 -0
  110. package/examples/models/owlsys/user/user_invoice.json +88 -0
  111. package/examples/models/owlsys/user/user_logout.json +65 -0
  112. package/examples/models/owlsys/user/user_purchased_merchant.json +41 -0
  113. package/examples/models/owlsys/user/user_source.json +57 -0
  114. package/examples/models/owlsys/user/user_third_openid.json +64 -0
  115. package/examples/models/owlsys/user/user_third_openid_source.json +55 -0
  116. package/examples/models/owlsys/user/user_update_log.json +69 -0
  117. package/examples/models/owlsys/user_logs/app_logs.json +48 -0
  118. package/examples/models/owlsys/user_logs/history_p.json +77 -0
  119. package/examples/models/owlsys/user_logs/recent_apps.json +37 -0
  120. package/examples/models/owlsys/user_logs/user_login_error_log.json +65 -0
  121. package/examples/models/owlsys/user_logs/user_login_log.json +64 -0
  122. package/examples/owlsysApps/commonService/build.xml +29 -0
  123. package/examples/owlsysApps/commonService/src/meta.json +10 -0
  124. package/examples/owlsysApps/commonService/src/services/BackendSessionUtil.jsx +84 -0
  125. package/examples/owlsysApps/commonService/src/services/CommonUtil.jsx +165 -0
  126. package/examples/owlsysApps/commonService/src/services/LoginUtil.jsx +44 -0
  127. package/examples/owlsysApps/commonService/src/services/PasswordUtil.jsx +62 -0
  128. package/examples/owlsysApps/commonService/src/services/SessionUtil.jsx +87 -0
  129. package/examples/owlsysApps/owlPermission/build.xml +29 -0
  130. package/examples/owlsysApps/owlPermission/src/icon.png +0 -0
  131. package/examples/owlsysApps/owlPermission/src/meta.json +9 -0
  132. package/examples/owlsysApps/owlPermission/src/services/RolesService.jsx +173 -0
  133. package/examples/owlsysApps/owlPermission/src/services/permissionService.jsx +93 -0
  134. package/examples/owlsysApps/owlShell/build.xml +28 -0
  135. package/examples/owlsysApps/owlShell/package-lock.json +3 -0
  136. package/examples/owlsysApps/owlShell/src/consts.jsx +36 -0
  137. package/examples/owlsysApps/owlShell/src/handlers/add_app_log.jsx +31 -0
  138. package/examples/owlsysApps/owlShell/src/handlers/changePassword.jsx +54 -0
  139. package/examples/owlsysApps/owlShell/src/handlers/getCurrentOrg.jsx +45 -0
  140. package/examples/owlsysApps/owlShell/src/handlers/getCurrentUser.jsx +168 -0
  141. package/examples/owlsysApps/owlShell/src/handlers/getPermissions.jsx +39 -0
  142. package/examples/owlsysApps/owlShell/src/handlers/getRoles.jsx +10 -0
  143. package/examples/owlsysApps/owlShell/src/handlers/getSpec.jsx +65 -0
  144. package/examples/owlsysApps/owlShell/src/handlers/getViewTemplate.jsx +53 -0
  145. package/examples/owlsysApps/owlShell/src/handlers/get_recent_apps.jsx +45 -0
  146. package/examples/owlsysApps/owlShell/src/handlers/leftMenuHandler.jsx +360 -0
  147. package/examples/owlsysApps/owlShell/src/handlers/loadSettings.jsx +32 -0
  148. package/examples/owlsysApps/owlShell/src/handlers/login.jsx +400 -0
  149. package/examples/owlsysApps/owlShell/src/handlers/logout.jsx +27 -0
  150. package/examples/owlsysApps/owlShell/src/handlers/meanLogin.jsx +231 -0
  151. package/examples/owlsysApps/owlShell/src/handlers/organization/create_site.jsx +52 -0
  152. package/examples/owlsysApps/owlShell/src/handlers/organization/getSiteOrder.jsx +32 -0
  153. package/examples/owlsysApps/owlShell/src/handlers/organization/getUserSites.jsx +29 -0
  154. package/examples/owlsysApps/owlShell/src/handlers/organization/getWebSite.jsx +49 -0
  155. package/examples/owlsysApps/owlShell/src/handlers/organization/saveSite.jsx +42 -0
  156. package/examples/owlsysApps/owlShell/src/handlers/refreshApps.jsx +533 -0
  157. package/examples/owlsysApps/owlShell/src/handlers/set_recent_apps.jsx +44 -0
  158. package/examples/owlsysApps/owlShell/src/handlers/switchOrgs.jsx +99 -0
  159. package/examples/owlsysApps/owlShell/src/handlers/switchRole.jsx +64 -0
  160. package/examples/owlsysApps/owlShell/src/icon.png +0 -0
  161. package/examples/owlsysApps/owlShell/src/include/checklogin.jsx +108 -0
  162. package/examples/owlsysApps/owlShell/src/jobs/create_site_jobs.jsx +172 -0
  163. package/examples/owlsysApps/owlShell/src/jobs/refresh_apps_jobs.jsx +628 -0
  164. package/examples/owlsysApps/owlShell/src/meta.json +16 -0
  165. package/examples/owlsysApps/owlShell/src/pages/addHistory.jsx +35 -0
  166. package/examples/owlsysApps/owlShell/src/pages/common/include_head.jsx +8 -0
  167. package/examples/owlsysApps/owlShell/src/pages/common/include_head.jsxp +4 -0
  168. package/examples/owlsysApps/owlShell/src/pages/home.html +0 -0
  169. package/examples/owlsysApps/owlShell/src/pages/index.jsx +39 -0
  170. package/examples/owlsysApps/owlShell/src/pages/index.jsxp +16 -0
  171. package/examples/owlsysApps/owlShell/src/pages/leftMenu.jsx +204 -0
  172. package/examples/owlsysApps/owlShell/src/pages/leftMenu.jsxp +84 -0
  173. package/examples/owlsysApps/owlShell/src/pages/logOut.jsx +35 -0
  174. package/examples/owlsysApps/owlShell/src/pages/login/checkShopAdmin.jsx +69 -0
  175. package/examples/owlsysApps/owlShell/src/pages/login/checkWarehouseAdmin.jsx +66 -0
  176. package/examples/owlsysApps/owlShell/src/pages/login/shopLogin.jsx +14 -0
  177. package/examples/owlsysApps/owlShell/src/pages/login/shopLogin.jsxp +99 -0
  178. package/examples/owlsysApps/owlShell/src/pages/login/shopLoginOk.jsx +85 -0
  179. package/examples/owlsysApps/owlShell/src/pages/login/warehouseLogin.jsx +13 -0
  180. package/examples/owlsysApps/owlShell/src/pages/login/warehouseLogin.jsxp +100 -0
  181. package/examples/owlsysApps/owlShell/src/pages/login/warehouseLoginOk.jsx +72 -0
  182. package/examples/owlsysApps/owlShell/src/pages/main.jsx +34 -0
  183. package/examples/owlsysApps/owlShell/src/pages/main.jsxp +84 -0
  184. package/examples/owlsysApps/owlShell/src/pages/subMain.jsx +23 -0
  185. package/examples/owlsysApps/owlShell/src/pages/subMain.jsxp +38 -0
  186. package/examples/owlsysApps/owlShell/src/pages/test.jsx +1 -0
  187. package/examples/owlsysApps/owlShell/src/pages/updatePassword.jsx +18 -0
  188. package/examples/owlsysApps/owlShell/src/pages/viewHistory.jsx +120 -0
  189. package/examples/owlsysApps/owlShell/src/utils/PermissionUtil.jsx +47 -0
  190. package/examples/owlsysApps/owlShell/src/utils/RolesUtils.jsx +152 -0
  191. package/examples/owlsysApps/owlShell/src/utils/verifyAdminUtil.jsx +40 -0
  192. package/package.json +1 -1
@@ -0,0 +1,250 @@
1
+ //#import Util.js
2
+ //#import DigestUtil.js
3
+ //#import excel.js
4
+ //#import $owl_mall_u:services/modelService.jsx
5
+ //#import $owl_user_batch_import:services/modelService.jsx
6
+ //#import $owlService:services/common/CommonUtil.jsx
7
+ //#import $commonService:services/UserChoiseUtil.jsx
8
+
9
+ ;(function () {
10
+
11
+ var jBatchImport = owl_user_batch_importService.get(batchId);
12
+
13
+ var logMsg = "";
14
+ var total = 0;
15
+ var totalSuccess = 0;
16
+ var totalFailed = 0;
17
+ var beginTime = (new Date()).getTime();
18
+ try {
19
+
20
+ var jFile = jBatchImport.file;
21
+ if (!jFile || jFile.length == 0 || !jFile[0].url) {
22
+ logMsg = appendLog(logMsg, "缺少Excel文件");
23
+ return;
24
+ }
25
+ var filePath = jFile[0].url;
26
+
27
+ var jData = Excel.parse(filePath);
28
+ if (!jData) {
29
+ logMsg = appendLog(logMsg, "读取Excel文件失败");
30
+ return;
31
+ }
32
+ if (!jData.sheets || jData.sheets.length == 0) {
33
+ logMsg = appendLog(logMsg, "Excel中的sheet为空");
34
+ return;
35
+ }
36
+
37
+ var isCheckLoginId = jBatchImport.isCheckNullLoginId == "n";
38
+ var isCheckEmail = jBatchImport.isCheckNullEmail == "n";
39
+ var isCheckMobile = jBatchImport.isCheckNullMobile == "n";
40
+
41
+ var sheet = jData.sheets[0];
42
+ var rows = sheet.rows;
43
+
44
+ for (var j = 1; j < rows.length; j++) {
45
+ try {
46
+ total++;
47
+
48
+ var row = rows[j];
49
+ var cells = row.cells;
50
+ var loginId = getCellValue(cells, 0);
51
+ var email = getCellValue(cells, 1);
52
+ var mobile = getCellValue(cells, 2);
53
+ var password = getCellValue(cells, 3);
54
+ var realName = getCellValue(cells, 4);
55
+ var nickName = getCellValue(cells, 5);
56
+ var source = getCellValue(cells, 6);
57
+ var parentId = getCellValue(cells, 7);
58
+
59
+ if (loginId == "" && email == "" && mobile == "" && password == "" && realName == "" && nickName == ""
60
+ && source == "") {
61
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:当前行为空行");
62
+ totalFailed++;
63
+ continue;
64
+ }
65
+
66
+ if (loginId == "" && email == "" && mobile == "") {
67
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:登陆ID、邮箱、手机号码不能同时为空");
68
+ totalFailed++;
69
+ continue;
70
+ }
71
+
72
+ if (!source) {
73
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:会员来源不能为空");
74
+ totalFailed++;
75
+ continue;
76
+ }
77
+
78
+
79
+ var jSource = UserChoiseUtil.getSourceByName(source);
80
+ if (!jSource) {
81
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:来源【" + source + "】尚未定义");
82
+ continue;
83
+ }
84
+
85
+ var jUser = null;
86
+ if (loginId) {
87
+ jUser = owl_mall_uService.getUniqueObj("loginId", loginId);
88
+ if (jUser) {
89
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:登录ID为【" + loginId + "】的用户已经存在");
90
+ totalFailed++;
91
+ continue;
92
+ }
93
+ } else {
94
+ if (isCheckLoginId) {
95
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:在不允许登录ID为空的情况下,登录ID为空");
96
+ totalFailed++;
97
+ continue;
98
+ }
99
+ }
100
+
101
+ if (mobile) {
102
+ if (!CommonUtil.checkMobile(mobile)) {
103
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:手机号码【" + mobile + "】格式不正确");
104
+ totalFailed++;
105
+ continue;
106
+ }
107
+
108
+ jUser = owl_mall_uService.getUniqueObj("mobile", mobile);
109
+ if (jUser) {
110
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:手机号码为【" + mobile + "】的用户已经存在");
111
+ totalFailed++;
112
+ continue;
113
+ }
114
+ } else {
115
+ if (isCheckMobile) {
116
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:在不允许手机号码为空的情况下,手机号码为空");
117
+ totalFailed++;
118
+ continue;
119
+ }
120
+ }
121
+
122
+ if (email) {
123
+ jUser = owl_mall_uService.getUniqueObj("email", email);
124
+ if (jUser) {
125
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:邮箱为【" + email + "】的用户已经存在");
126
+ totalFailed++;
127
+ continue;
128
+ }
129
+ } else {
130
+ if (isCheckEmail) {
131
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:在不允许电子邮箱为空的情况下,电子邮箱为空");
132
+ totalFailed++;
133
+ continue;
134
+ }
135
+ }
136
+
137
+
138
+ var jParentUser = null;
139
+ if (parentId) {
140
+ if (parentId.indexOf("owl_mall_u_") > -1) {
141
+ jParentUser = owl_mall_uService.get(parentId);
142
+ } else {
143
+ jParentUser = owl_mall_uService.getUniqueObj("mobile", parentId);
144
+ if (!jParentUser) {
145
+ jParentUser = owl_mall_uService.getUniqueObj("loginId", parentId);
146
+ }
147
+ }
148
+ if (!jParentUser) {
149
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:推荐人【" + parentId + "】不存在");
150
+ totalFailed++;
151
+ continue;
152
+ }
153
+ }
154
+
155
+ jUser = {};
156
+ jUser.loginId = loginId;
157
+ jUser.email = email;
158
+ jUser.mobile = mobile;
159
+ jUser.password = password;
160
+ jUser.realName = realName;
161
+ jUser.nickName = nickName;
162
+ jUser.source_isOnline = jSource.is_online;
163
+ jUser.source_id = jSource.id;
164
+ jUser.source_name = jSource.name;
165
+ if (jParentUser) {
166
+ jUser.recommendedUserId = jParentUser.id;
167
+ }
168
+ if(password) {
169
+ var random = Math.random();
170
+ jUser.passwordhash = DigestUtil.sha1(password + random);
171
+ jUser.random = random;
172
+ }
173
+
174
+ jUser = owl_mall_uService.add(jUser);
175
+
176
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入成功");
177
+ totalSuccess++;
178
+
179
+ } catch (e) {
180
+ totalFailed++;
181
+ logMsg = appendLog(logMsg, "第[" + j + "]行 导入失败,失败原因:" + e);
182
+ }
183
+ }
184
+
185
+ } catch (e) {
186
+ $.log("\nuser_batch_import....doAddUserTask.jsx....error=" + e);
187
+ logMsg = appendLog(logMsg, "导入出现异常,异常信息为:" + e);
188
+ } finally {
189
+ var endTime = (new Date()).getTime();
190
+ var logInfo = "总耗时=" + (endTime - beginTime) + "毫秒";
191
+ logInfo += "。总行数=" + total;
192
+ logInfo += "。共成功导入数量=" + totalSuccess;
193
+ logInfo += "; 未导入总数量=" + totalFailed;
194
+
195
+ logMsg = appendLog(logMsg, "");
196
+ logMsg = appendLog(logMsg, logInfo);
197
+
198
+ jBatchImport.msg = logMsg;
199
+ owl_user_batch_importService.update(jBatchImport);
200
+ }
201
+
202
+ })();
203
+
204
+ function getGenderValue(gender) {
205
+ if (gender && gender != "") {
206
+ if (gender == "男") {
207
+ return "0"
208
+ } else if (gender == "女") {
209
+ return "1"
210
+ } else if (gender == "保密") {
211
+ return "2"
212
+ } else {
213
+ throw "性别为【" + gender + "】格式不正确,必须为:男、女、保密";
214
+ }
215
+ }
216
+ return "";
217
+ }
218
+
219
+ function getMarriageValue(marriage) {
220
+ if (marriage && marriage != "") {
221
+ if (marriage == "已婚") {
222
+ return "1"
223
+ } else if (marriage == "未婚") {
224
+ return "0"
225
+ } else {
226
+ throw "婚姻状态为【" + marriage + "】格式不正确,必须为:已婚、未婚";
227
+ }
228
+ }
229
+ return "";
230
+ }
231
+
232
+
233
+ function appendLog(logInfo, s) {
234
+ if (logInfo) {
235
+ return logInfo += "\n" + s;
236
+ }
237
+ return s;
238
+ }
239
+
240
+ function getCellValue(cells, index) {
241
+ for (var i = 0; i < cells.length; i++) {
242
+ var jCell = cells[i];
243
+ if (jCell.columnIndex == index) {
244
+ if (jCell.value) {
245
+ return jCell.value;
246
+ }
247
+ }
248
+ }
249
+ return "";
250
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "base_info": {
3
+ "#meta": {
4
+ "fieldLabel": "基本信息",
5
+ "showTitle": "no",
6
+ "includeKey": "no",
7
+ "position": "card",
8
+ "span": 3
9
+ },
10
+ "id": "string(128),formSize:2,listSize:12,searchable:true,disabled:true;内部ID",
11
+ "isCheckNullMobile":"choice,formSize:1,listSize:10,values:y_是/n_否,defaultValue:n,searchable:true;是否允许手机号码为空",
12
+ "isCheckNullLoginId":"choice,formSize:1,listSize:10,values:y_是/n_否,defaultValue:n,searchable:true;是否允许登录ID为空",
13
+ "isCheckNullEmail":"choice,formSize:1,listSize:10,values:y_是/n_否,defaultValue:y,searchable:true;是否允许电子邮箱为空",
14
+ "blank3": "space,formSize:3;空白",
15
+ "file": "file,size:5M,exts:xlsx#xls,maxFileCount:1,formSize:8;Excel文件",
16
+ "msg": "string(128),formSize:8,multiline:T,showList:false;处理结果"
17
+ },
18
+ "other_info": {
19
+ "#meta": {
20
+ "fieldLabel": "其他信息",
21
+ "showTitle": "no",
22
+ "includeKey": "no",
23
+ "position": "card",
24
+ "span": 1
25
+ },
26
+ "owl_createTime": "date,formSize:8,disabled:true,listSize:10;操作时间",
27
+ "owl_createUserId": "string(18),formSize:8,listSize:8,disabled:true;操作人"
28
+ },
29
+
30
+ "_t": "user_batch_import",
31
+ "#meta": {
32
+ "rem": "批量导入会员",
33
+ "projectName": "批量导入会员",
34
+ "parent": [
35
+ "platform"
36
+ ],
37
+ "visitType": [
38
+ "platform"
39
+ ],
40
+ "exLists": [
41
+ {
42
+ "name": "默认列表",
43
+ "code": "defaultList",
44
+ "buttons":{
45
+ "showAdd": true,
46
+ "showDel": false,
47
+ "showRecycle": false
48
+ },
49
+ "expandIconColumnIndex":1,
50
+ "list": ["id","isCheckNullMobile","isCheckNullLoginId","isCheckNullEmail","owl_createTime","owl_createUserId"]
51
+ }
52
+ ],
53
+ "pos": 1,
54
+ "group": {
55
+ "id": "mall_user",
56
+ "name": "会员管理",
57
+ "icon": "user",
58
+ "pos": 6,
59
+ "level2": {
60
+ "id": "user_batch_update",
61
+ "name": "会员批量管理",
62
+ "icon": "outline",
63
+ "pos": 16
64
+ }
65
+ },
66
+ "eventHandlers": [
67
+ {
68
+ "handlerId":"user_batch_import_eventHandlers_batchImport",
69
+ "pageId":"eventhandlers/batchImport.jsx",
70
+ "throwException":true,
71
+ "eventName": "user_batch_import_add_after",
72
+ "description":"新增后,自动导入"
73
+ }
74
+ ]
75
+ }
76
+ }
@@ -0,0 +1,24 @@
1
+ //#import Util.js
2
+ //#import jobs.js
3
+ ;
4
+ (function () {
5
+ var data = ctx.get("data");
6
+
7
+ var when = new Date().getTime();
8
+ var postData = {batchId: data.id};
9
+ JobsService.submitTask("owl_user_batch_update_category", "tasks/doUpdateUserTask.jsx", postData, when);
10
+ })();
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
@@ -0,0 +1,191 @@
1
+ //#import Util.js
2
+ //#import DateUtil.js
3
+ //#import excel.js
4
+ //#import $owl_mall_u:services/modelService.jsx
5
+ //#import $owl_mall_u_category:services/modelService.jsx
6
+ //#import $owl_user_batch_update_category:services/modelService.jsx
7
+
8
+ ;(function () {
9
+
10
+ var jBatchImport = owl_user_batch_update_categoryService.get(batchId);
11
+
12
+ var logMsg = "";
13
+ var total = 0;
14
+ var totalAdd = 0;
15
+ var totalRemove = 0;
16
+ var totalSkip = 0;
17
+ var totalError = 0;
18
+ var beginTime = (new Date()).getTime();
19
+ try {
20
+
21
+ var jFile = jBatchImport.file;
22
+ if (!jFile || jFile.length == 0 || !jFile[0].url) {
23
+ logMsg = appendLog(logMsg, "缺少Excel文件");
24
+ return;
25
+ }
26
+ var filePath = jFile[0].url;
27
+
28
+ var jData = Excel.parse(filePath);
29
+ if (!jData) {
30
+ logMsg = appendLog(logMsg, "读取Excel文件失败");
31
+ return;
32
+ }
33
+ if (!jData.sheets || jData.sheets.length == 0) {
34
+ logMsg = appendLog(logMsg, "Excel中的sheet为空");
35
+ return;
36
+ }
37
+
38
+ var actionType = jBatchImport.actionType;
39
+ var toUserGroupId = jBatchImport.categoryId;
40
+
41
+ var jUserCategory = owl_mall_u_categoryService.get(toUserGroupId);
42
+ if (!jUserCategory) {
43
+ logMsg = appendLog(logMsg, "目标会员组不存在");
44
+ return;
45
+ }
46
+
47
+ var sheet = jData.sheets[0];
48
+ var rows = sheet.rows;
49
+
50
+ for (var j = 1; j < rows.length; j++) {
51
+ try {
52
+ total++;
53
+
54
+ var row = rows[j];
55
+ var cells = row.cells;
56
+ var uid = getCellValue(cells, 0);
57
+ var groupBeginTime = getCellValue(cells, 1);
58
+ var groupEndTime = getCellValue(cells, 2);
59
+
60
+ if (uid == "") {
61
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:关键的userId为空");
62
+ totalSkip++;
63
+ continue;
64
+ }
65
+
66
+ var jUser = owl_mall_uService.get(uid);
67
+ if (!jUser) {
68
+ logMsg = appendLog(logMsg, "第[" + j + "]行 " + "导入终止,原因是:ID为【" + uid + "】的用户不存在");
69
+ totalSkip++;
70
+ continue;
71
+ }
72
+ uid = jUser.id;
73
+
74
+ if (actionType == "add") {
75
+ var longGroupBeginTime = "";
76
+ if (groupBeginTime) {
77
+ longGroupBeginTime = DateUtil.getLongTime(groupBeginTime)
78
+ }
79
+ var longGroupEndTime = "";
80
+ if (groupEndTime) {
81
+ longGroupEndTime = DateUtil.getLongTime(groupEndTime);
82
+ }
83
+
84
+ //todo:判断用户是否已经在这个组里面
85
+
86
+ addUserToGroup(jUser, jUserCategory, longGroupBeginTime, longGroupEndTime);
87
+ owl_mall_uService.update(jUser);
88
+ totalAdd++;
89
+
90
+ logInfo = "第" + (j + 1) + "行 添加到会员组【" + toUserGroupId + "】成功";
91
+ logMsg = appendLog(logMsg, logInfo);
92
+ } else if (actionType == "remove") {
93
+ var isUpdated = removeUserGroup(jUser, jUserCategory);
94
+ if (isUpdated) {
95
+ owl_mall_uService.update(jUser);
96
+ }
97
+ totalRemove++;
98
+
99
+ logInfo = "第" + (j + 1) + "行 从目标会员组【" + toUserGroupId + "】中删除成功";
100
+ logMsg = appendLog(logMsg, logInfo);
101
+ } else {
102
+ totalSkip++;
103
+ }
104
+
105
+ } catch (e) {
106
+ totalError++;
107
+ logMsg = appendLog(logMsg, "第[" + j + "]行 导入失败,失败原因:" + e);
108
+ }
109
+ }
110
+
111
+ } catch (e) {
112
+ $.log("\nuser_batch_update_category....doUpdateUserTask.jsx....error=" + e);
113
+ logMsg = appendLog(logMsg, "导入出现异常,异常信息为:" + e);
114
+ } finally {
115
+ var endTime = (new Date()).getTime();
116
+ var logInfo = "总耗时=" + (endTime - beginTime) + "毫秒";
117
+ logInfo += "。总处理数量=" + total;
118
+ logInfo += ",成功添加到目标会员组总数量=" + totalAdd;
119
+ logInfo += ",从目标会员组中删除总数量=" + totalRemove;
120
+ logInfo += ",忽略跳过总数量=" + totalSkip;
121
+ logInfo += ",修改出现异常总数量=" + totalError;
122
+
123
+ logMsg = appendLog(logMsg, "");
124
+ logMsg = appendLog(logMsg, logInfo);
125
+
126
+ jBatchImport.msg = logMsg;
127
+ owl_user_batch_update_categoryService.update(jBatchImport);
128
+ }
129
+
130
+ })();
131
+
132
+ function appendLog(logInfo, s) {
133
+ if (logInfo) {
134
+ return logInfo += "\n" + s;
135
+ }
136
+ return s;
137
+ }
138
+
139
+ function getCellValue(cells, index) {
140
+ for (var i = 0; i < cells.length; i++) {
141
+ var jCell = cells[i];
142
+ if (jCell.columnIndex == index) {
143
+ if (jCell.value) {
144
+ return jCell.value;
145
+ }
146
+ }
147
+ }
148
+ return "";
149
+ }
150
+
151
+ function addUserToGroup(jUser, jUserCategory, beginTime, endTime) {
152
+ var user_categories = jUser.user_categories;
153
+ if (!user_categories) {
154
+ user_categories = [];
155
+ jUser.user_categories = user_categories;
156
+ }
157
+
158
+ var jCategory = {
159
+ "id": jUserCategory.id,
160
+ "name": jUserCategory.name
161
+ };
162
+ if (beginTime) {
163
+ jCategory.beginTime = beginTime;
164
+ }
165
+ if (endTime) {
166
+ jCategory.endTime = endTime;
167
+ }
168
+ user_categories.push(jCategory);
169
+ }
170
+
171
+
172
+ function removeUserGroup(jUser, jUserCategory) {
173
+ var user_categories = jUser.user_categories;
174
+ if (user_categories && user_categories.length > 0) {
175
+ var newList = [];
176
+ var isUpdated = false;
177
+ for (var i = 0; i < user_categories.length; i++) {
178
+ var jCat = user_categories[i];
179
+ if (jCat.id == jUserCategory.id) {
180
+ isUpdated = true;
181
+ continue;
182
+ }
183
+ newList.push(jCat);
184
+ }
185
+ if (isUpdated) {
186
+ jUser.user_categories = newList;
187
+ return true;
188
+ }
189
+ }
190
+ return false;
191
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "base_info": {
3
+ "#meta": {
4
+ "fieldLabel": "基本信息",
5
+ "showTitle": "no",
6
+ "includeKey": "no",
7
+ "position": "card",
8
+ "span": 3
9
+ },
10
+ "id": "string(128),formSize:2,listSize:8,searchable:true,disabled:true;内部ID",
11
+ "blank1": "space,formSize:6;空白",
12
+ "categoryId": "string(16),isId:true,searchable:true,formSize:2,hidden:true;目标会员组ID",
13
+ "categoryPath": "linkId,formSize:2,listSize:8,datasource:mall_u_category,displayField:category_path,fields:id/category_path,toFields:categoryId/categoryPath,require:true;目标会员组",
14
+ "actionType":"choice,formSize:1,values:add_添加到目标会员组/remove_从目标会员组中删除,defaultValue:add,searchable:true,require:true;操作类型",
15
+ "blank3": "space,formSize:5;空白",
16
+ "file": "file,size:5M,exts:xlsx#xls,maxFileCount:1,formSize:8,require:true;Excel文件",
17
+ "msg": "string(128),formSize:8,multiline:T,showList:false;处理结果"
18
+ },
19
+ "other_info": {
20
+ "#meta": {
21
+ "fieldLabel": "其他信息",
22
+ "showTitle": "no",
23
+ "includeKey": "no",
24
+ "position": "card",
25
+ "span": 1
26
+ },
27
+ "owl_createTime": "date,formSize:8,disabled:true,listSize:10;操作时间",
28
+ "owl_createUserId": "string(18),formSize:8,listSize:8,disabled:true;操作人"
29
+ },
30
+
31
+ "_t": "user_batch_update_category",
32
+ "#meta": {
33
+ "rem": "批量修改会员分类",
34
+ "projectName": "批量修改会员分类",
35
+ "parent": [
36
+ "platform"
37
+ ],
38
+ "visitType": [
39
+ "platform"
40
+ ],
41
+ "exLists": [
42
+ {
43
+ "name": "默认列表",
44
+ "code": "defaultList",
45
+ "buttons":{
46
+ "showAdd": true,
47
+ "showDel": false,
48
+ "showRecycle": false
49
+ },
50
+ "expandIconColumnIndex":1,
51
+ "list": ["id","categoryPath","actionType","owl_createTime","owl_createUserId"]
52
+ }
53
+ ],
54
+ "pos": 1,
55
+ "group": {
56
+ "id": "mall_user",
57
+ "name": "会员管理",
58
+ "icon": "user",
59
+ "pos": 6,
60
+ "level2": {
61
+ "id": "user_batch_update",
62
+ "name": "会员批量管理",
63
+ "icon": "outline",
64
+ "pos": 16
65
+ }
66
+ },
67
+ "eventHandlers": [
68
+ {
69
+ "handlerId":"user_batch_update_category_eventHandlers_batchUpdate",
70
+ "pageId":"eventhandlers/batchUpdate.jsx",
71
+ "throwException":true,
72
+ "eventName": "user_batch_update_category_add_after",
73
+ "description":"新增后,自动导入"
74
+ }
75
+ ]
76
+ }
77
+ }
@@ -0,0 +1,24 @@
1
+ //#import Util.js
2
+ //#import jobs.js
3
+ ;
4
+ (function () {
5
+ var data = ctx.get("data");
6
+
7
+ var when = new Date().getTime();
8
+ var postData = {batchId: data.id};
9
+ JobsService.submitTask("owl_user_batch_update_password", "tasks/doUpdateUserTask.jsx", postData, when);
10
+ })();
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
@@ -0,0 +1,48 @@
1
+ //#import excel.js
2
+ //#import $owl_download_template:services/modelService.jsx
3
+
4
+ function main() {
5
+ var params = JSON.parse($body);
6
+
7
+ var id = "owl_download_template_user_batch_update_password_v0";
8
+ var jDownloadTemplate = owl_download_templateService.get(id);
9
+ var fileUrl = "";
10
+ if (!jDownloadTemplate) {
11
+ var index = 0;
12
+ var titles = [
13
+ {"index": index++, "columnWidth": "20", "field": "userId", "title": "会员ID"},
14
+ {"index": index++, "columnWidth": "20", "field": "mobile", "title": "手机号"},
15
+ {"index": index++, "columnWidth": "20", "field": "loginId", "title": "登录账号"},
16
+ {"index": index++, "columnWidth": "20", "field": "password", "title": "新密码"}
17
+ ];
18
+ var recordList = [
19
+ {
20
+ userId: "owl_mall_u_50000",
21
+ password: "123456"
22
+ }
23
+ ];
24
+
25
+ var file_type_name = "批量修改会员登录密码模板";
26
+
27
+ fileUrl = Excel.createExcelList(file_type_name, titles, recordList);
28
+
29
+ jDownloadTemplate = {};
30
+ jDownloadTemplate.file_type_id = "user_batch_update_password";
31
+ jDownloadTemplate.file_type_name = file_type_name;
32
+ jDownloadTemplate.file = {url: fileUrl, name: file_type_name};
33
+ owl_download_templateService.add(jDownloadTemplate);
34
+ } else {
35
+ fileUrl = jDownloadTemplate.file.url;
36
+ }
37
+
38
+ var ret = {
39
+ state: 'ok',
40
+ action: 'navigate',
41
+ target: "_blank",
42
+ url: fileUrl
43
+ }
44
+ out.print(JSON.stringify(ret));
45
+
46
+ }
47
+
48
+ main();