Sfoglia il codice sorgente

修正启动脚本

zhourui 5 anni fa
parent
commit
5a9465c35c
100 ha cambiato i file con 38 aggiunte e 9725 eliminazioni
  1. 3 1
      o2server/start_aix.sh
  2. 3 1
      o2server/start_aix_debug.sh
  3. 3 1
      o2server/start_arm.sh
  4. 3 1
      o2server/start_arm_debug.sh
  5. 3 1
      o2server/start_linux.sh
  6. 3 1
      o2server/start_linux_debug.sh
  7. 3 1
      o2server/start_macos.sh
  8. 3 1
      o2server/start_macos_debug.sh
  9. 4 2
      o2server/start_raspberrypi.sh
  10. 4 2
      o2server/start_raspberrypi_debug.sh
  11. 3 1
      o2server/start_risc.sh
  12. 3 1
      o2server/start_risc_debug.sh
  13. 0 4244
      o2server/x_organization_assemble_personal/src/main/webapp/describe/describe.json
  14. 0 25
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/AbstractFactory.java
  15. 0 33
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/ApplicationServletContextListener.java
  16. 0 126
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/Business.java
  17. 0 29
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/ThisApplication.java
  18. 0 237
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/GroupFactory.java
  19. 0 130
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/IdentityFactory.java
  20. 0 107
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/PersonAttributeFactory.java
  21. 0 292
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/PersonFactory.java
  22. 0 107
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/RoleFactory.java
  23. 0 107
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitAttributeFactory.java
  24. 0 107
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitDutyFactory.java
  25. 0 287
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitFactory.java
  26. 0 35
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ActionApplication.java
  27. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/CustomJaxrsFilter.java
  28. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/DefinitionJaxrsFilter.java
  29. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/EmpowerJaxrsFilter.java
  30. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/EmpowerLogJaxrsFilter.java
  31. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ExmailJaxrsFilter.java
  32. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/IconJaxrsFilter.java
  33. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/PasswordJaxrsFilter.java
  34. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/PersonJaxrsFilter.java
  35. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/RegistJaxrsFilter.java
  36. 0 10
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ResetJaxrsFilter.java
  37. 0 36
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionDelete.java
  38. 0 42
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionEdit.java
  39. 0 26
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionGet.java
  40. 0 51
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionManagerEdit.java
  41. 0 33
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/BaseAction.java
  42. 0 102
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/CustomAction.java
  43. 0 36
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionDelete.java
  44. 0 43
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionEdit.java
  45. 0 36
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionGet.java
  46. 0 12
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/BaseAction.java
  47. 0 87
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/DefinitionAction.java
  48. 0 67
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionCreate.java
  49. 0 40
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionDelete.java
  50. 0 42
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionDisable.java
  51. 0 72
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionEdit.java
  52. 0 42
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionEnable.java
  53. 0 36
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionGet.java
  54. 0 45
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListNext.java
  55. 0 44
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListPrev.java
  56. 0 45
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListTo.java
  57. 0 45
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListToEnable.java
  58. 0 45
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithCurrentPerson.java
  59. 0 42
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithCurrentPersonEnable.java
  60. 0 60
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithPerson.java
  61. 0 109
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionManagerListPaging.java
  62. 0 125
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/BaseAction.java
  63. 0 289
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/EmpowerAction.java
  64. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionEmptyFromIdentity.java
  65. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionEmptyToIdentity.java
  66. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionPersonNotExistWithIdentity.java
  67. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeAllExist.java
  68. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeApplicationExist.java
  69. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeFilter.java
  70. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeProcessExist.java
  71. 0 40
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionDelete.java
  72. 0 45
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListNext.java
  73. 0 44
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListPrev.java
  74. 0 76
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListToCurrentPersonPaging.java
  75. 0 75
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListWithCurrentPersonPaging.java
  76. 0 125
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionManagerListPaging.java
  77. 0 7
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/BaseAction.java
  78. 0 148
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/EmpowerLogAction.java
  79. 0 41
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionGet.java
  80. 0 50
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionListTitlePassive.java
  81. 0 54
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionNewCount.java
  82. 0 54
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionNewCountPassive.java
  83. 0 140
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionPost.java
  84. 0 65
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionSso.java
  85. 0 46
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/AesException.java
  86. 0 7
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/BaseAction.java
  87. 0 26
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ByteGroup.java
  88. 0 12
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExceptionExmailDisable.java
  89. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExceptionNewCount.java
  90. 0 132
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExmailAction.java
  91. 0 67
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/PKCS7Encoder.java
  92. 0 61
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/SHA1.java
  93. 0 294
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/WXBizMsgCrypt.java
  94. 0 96
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/XMLParse.java
  95. 0 74
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/ActionGetWithPerson.java
  96. 0 7
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/BaseAction.java
  97. 0 59
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/IconAction.java
  98. 0 7
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ActionBase.java
  99. 0 124
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ActionChangePassword.java
  100. 0 13
      o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ConfirmPasswordEmptyException.java

+ 3 - 1
o2server/start_aix.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_aix_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_arm.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_arm_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_linux.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_linux_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_macos.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 sudo date
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then

+ 3 - 1
o2server/start_macos_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 sudo date
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then

+ 4 - 2
o2server/start_raspberrypi.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	sudo mkdir ${current_dir}/commons
@@ -146,4 +148,4 @@ if [ -d ${current_dir}/local/update ]; then
 		sudo rm -Rf ${current_dir}/local/update
 	fi
 fi
-sudo setsid ${current_dir}/jvm/raspberrypi/bin/java -server -Xms2g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar ${current_dir}/console.jar
+sudo setsid ${current_dir}/jvm/raspberrypi/bin/java -server -Xms1g -Xmx1g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar ${current_dir}/console.jar

+ 4 - 2
o2server/start_raspberrypi_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	sudo mkdir ${current_dir}/commons
@@ -146,4 +148,4 @@ if [ -d ${current_dir}/local/update ]; then
 		sudo rm -Rf ${current_dir}/local/update
 	fi
 fi
-sudo setsid ${current_dir}/jvm/raspberrypi/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Djava.awt.headless=true -Xms2g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar ${current_dir}/console.jar
+sudo setsid ${current_dir}/jvm/raspberrypi/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Djava.awt.headless=true -Xms1g -Xmx1g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar ${current_dir}/console.jar

+ 3 - 1
o2server/start_risc.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 3 - 1
o2server/start_risc_debug.sh

@@ -1,4 +1,6 @@
-current_dir=$(cd "$(dirname "$0")"; pwd);
+#!/bin/bash
+# Copyright (c) http://www.o2oa.net/
+current_dir="$(cd "$(dirname "$0")"; pwd)"
 if [ -d ${current_dir}/local/update ]; then
 	if [ ! -d ${current_dir}/commons ]; then
 	mkdir ${current_dir}/commons

+ 0 - 4244
o2server/x_organization_assemble_personal/src/main/webapp/describe/describe.json

@@ -1,4244 +0,0 @@
-{
-  "jaxrs": [
-    {
-      "name": "CacheAction",
-      "className": "com.x.base.core.project.jaxrs.cache.CacheAction",
-      "description": "缓存操作",
-      "methods": [
-        {
-          "name": "configFlush",
-          "className": "com.x.base.core.project.jaxrs.cache.ActionConfigFlush",
-          "description": "接收config flush 信号.",
-          "type": "GET",
-          "path": "jaxrs/cache/config/flush",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "receive",
-          "className": "com.x.base.core.project.jaxrs.cache.ActionReceive",
-          "description": "接收Cache刷新信息.",
-          "type": "PUT",
-          "path": "jaxrs/cache",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "nodeName",
-              "type": "String",
-              "isCollection": false,
-              "description": "节点名",
-              "isBaseType": true
-            },
-            {
-              "name": "className",
-              "type": "String",
-              "isCollection": false,
-              "description": "类名",
-              "isBaseType": true
-            },
-            {
-              "name": "keys",
-              "type": "List\u003cObject\u003e",
-              "isCollection": true,
-              "description": "关键字",
-              "isBaseType": false
-            }
-          ],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "CustomAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.custom.CustomAction",
-      "description": "个性化数据",
-      "methods": [
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.personal.jaxrs.custom.ActionDelete",
-          "description": "删除指定名称的Custom。",
-          "type": "DELETE",
-          "path": "jaxrs/custom/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.personal.jaxrs.custom.ActionGet",
-          "description": "根据当前的访问用户获取Custom。",
-          "type": "GET",
-          "path": "jaxrs/custom/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "managerUpdate",
-          "className": "com.x.organization.assemble.personal.jaxrs.custom.ActionManagerEdit",
-          "description": "管理员更新指定用户指定名称的Custom.",
-          "type": "PUT",
-          "path": "jaxrs/custom/manager/person/{person}/name/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "person",
-              "type": "String",
-              "description": "用户"
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "description": "定义名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "update",
-          "className": "com.x.organization.assemble.personal.jaxrs.custom.ActionEdit",
-          "description": "更新指定名称的Custom.",
-          "type": "PUT",
-          "path": "jaxrs/custom/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "DefinitionAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.definition.DefinitionAction",
-      "description": "定制",
-      "methods": [
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.personal.jaxrs.definition.ActionDelete",
-          "description": "删除指定名称的Definition.",
-          "type": "DELETE",
-          "path": "jaxrs/definition/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.personal.jaxrs.definition.ActionGet",
-          "description": "获取Definition.",
-          "type": "GET",
-          "path": "jaxrs/definition/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "update",
-          "className": "com.x.organization.assemble.personal.jaxrs.definition.ActionEdit",
-          "description": "更新指定名称的Definition.",
-          "type": "PUT",
-          "path": "jaxrs/definition/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "EchoAction",
-      "className": "com.x.base.core.project.jaxrs.echo.EchoAction",
-      "description": "响应",
-      "methods": [
-        {
-          "name": "get",
-          "className": "com.x.base.core.project.jaxrs.echo.ActionGet",
-          "description": "获取应答.",
-          "type": "GET",
-          "path": "jaxrs/echo",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "servletContextName",
-              "type": "String",
-              "isCollection": false,
-              "description": "上下文根"
-            },
-            {
-              "name": "serverTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "服务器时间"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "EmpowerAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.empower.EmpowerAction",
-      "description": "授权操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionCreate",
-          "description": "创建授权",
-          "type": "POST",
-          "path": "jaxrs/empower",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份.",
-              "isBaseType": true
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份.",
-              "isBaseType": true
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用.",
-              "isBaseType": true
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称.",
-              "isBaseType": true
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本.",
-              "isBaseType": true
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称.",
-              "isBaseType": true
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件.",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter.",
-              "isBaseType": true
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionDelete",
-          "description": "删除授权",
-          "type": "DELETE",
-          "path": "jaxrs/empower/{id}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "disable",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionDisable",
-          "description": "禁用授权",
-          "type": "GET",
-          "path": "jaxrs/empower/{id}/disable",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionEdit",
-          "description": "更新授权",
-          "type": "PUT",
-          "path": "jaxrs/empower/{id}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份.",
-              "isBaseType": true
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份.",
-              "isBaseType": true
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用.",
-              "isBaseType": true
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称.",
-              "isBaseType": true
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本.",
-              "isBaseType": true
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称.",
-              "isBaseType": true
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件.",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter.",
-              "isBaseType": true
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "enable",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionEnable",
-          "description": "启用授权",
-          "type": "GET",
-          "path": "jaxrs/empower/{id}/enable",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionGet",
-          "description": "获取授权对象.",
-          "type": "GET",
-          "path": "jaxrs/empower/{id}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListNext",
-          "description": "管理员列示授权对象,下一页.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/{id}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListPrev",
-          "description": "管理员列示授权对象,上一页.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/{id}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listTo",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListTo",
-          "description": "获取当前人员的被授权.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/to",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listToEnable",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListToEnable",
-          "description": "获取当前人员的生效的被授权.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/to/enable",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithCurrentPerson",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListWithCurrentPerson",
-          "description": "获取当前人员的授权.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/currentperson",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithCurrentPersonEnable",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListWithCurrentPersonEnable",
-          "description": "获取当前人员生效的授权.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/currentperson/enable",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithPerson",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionListWithPerson",
-          "description": "查询指定人员的授权授权.",
-          "type": "GET",
-          "path": "jaxrs/empower/list/person/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "managerlistPaging",
-          "className": "com.x.organization.assemble.personal.jaxrs.empower.ActionManagerListPaging",
-          "description": "管理员根据条件查询授权记录.",
-          "type": "POST",
-          "path": "jaxrs/empower/manager/list/paging/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "分页"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权人",
-              "isBaseType": true
-            },
-            {
-              "name": "startTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "(授权创建时间)开始时间yyyy-MM-dd HH:mm:ss",
-              "isBaseType": true
-            },
-            {
-              "name": "endTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "(授权创建时间)结束时间yyyy-MM-dd HH:mm:ss",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "edition",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程版本."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "filterListData",
-              "type": "String",
-              "isCollection": false,
-              "description": "过滤条件."
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权类型:all,application,process,filter."
-            },
-            {
-              "name": "startTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权开始时间."
-            },
-            {
-              "name": "completedTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "授权结束时间."
-            },
-            {
-              "name": "enable",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否启用."
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "EmpowerLogAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.EmpowerLogAction",
-      "description": "委托日志操作",
-      "methods": [
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionDelete",
-          "description": "删除委托日志.",
-          "type": "DELETE",
-          "path": "jaxrs/empowerlog",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionListNext",
-          "description": "管理员列示委托日志对象,下一页.",
-          "type": "GET",
-          "path": "jaxrs/empowerlog/list/{id}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "job",
-              "type": "String",
-              "isCollection": false,
-              "description": "任务标识."
-            },
-            {
-              "name": "work",
-              "type": "String",
-              "isCollection": false,
-              "description": "work标识."
-            },
-            {
-              "name": "empowerTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "委托时间."
-            },
-            {
-              "name": "title",
-              "type": "String",
-              "isCollection": false,
-              "description": "标题."
-            },
-            {
-              "name": "activity",
-              "type": "String",
-              "isCollection": false,
-              "description": "当前活动ID"
-            },
-            {
-              "name": "activityName",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动名称"
-            },
-            {
-              "name": "activityAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动别名"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionListPrev",
-          "description": "管理员列示委托日志对象,上一页.",
-          "type": "GET",
-          "path": "jaxrs/empowerlog/list/{id}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "id",
-              "type": "String",
-              "description": "标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "job",
-              "type": "String",
-              "isCollection": false,
-              "description": "任务标识."
-            },
-            {
-              "name": "work",
-              "type": "String",
-              "isCollection": false,
-              "description": "work标识."
-            },
-            {
-              "name": "empowerTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "委托时间."
-            },
-            {
-              "name": "title",
-              "type": "String",
-              "isCollection": false,
-              "description": "标题."
-            },
-            {
-              "name": "activity",
-              "type": "String",
-              "isCollection": false,
-              "description": "当前活动ID"
-            },
-            {
-              "name": "activityName",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动名称"
-            },
-            {
-              "name": "activityAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动别名"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listToCurrentPersonPaging",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionListToCurrentPersonPaging",
-          "description": "获取当前人员的被委托日志.",
-          "type": "POST",
-          "path": "jaxrs/empowerlog/list/to/currentperson/paging/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "分页"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "匹配关键字",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "job",
-              "type": "String",
-              "isCollection": false,
-              "description": "任务标识."
-            },
-            {
-              "name": "work",
-              "type": "String",
-              "isCollection": false,
-              "description": "work标识."
-            },
-            {
-              "name": "empowerTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "委托时间."
-            },
-            {
-              "name": "title",
-              "type": "String",
-              "isCollection": false,
-              "description": "标题."
-            },
-            {
-              "name": "activity",
-              "type": "String",
-              "isCollection": false,
-              "description": "当前活动ID"
-            },
-            {
-              "name": "activityName",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动名称"
-            },
-            {
-              "name": "activityAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动别名"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithCurrentPersonPaging",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionListWithCurrentPersonPaging",
-          "description": "获取当前人员的委托日志.",
-          "type": "POST",
-          "path": "jaxrs/empowerlog/list/currentperson/paging/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "分页"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "匹配关键字",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "job",
-              "type": "String",
-              "isCollection": false,
-              "description": "任务标识."
-            },
-            {
-              "name": "work",
-              "type": "String",
-              "isCollection": false,
-              "description": "work标识."
-            },
-            {
-              "name": "empowerTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "委托时间."
-            },
-            {
-              "name": "title",
-              "type": "String",
-              "isCollection": false,
-              "description": "标题."
-            },
-            {
-              "name": "activity",
-              "type": "String",
-              "isCollection": false,
-              "description": "当前活动ID"
-            },
-            {
-              "name": "activityName",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动名称"
-            },
-            {
-              "name": "activityAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动别名"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "managerlistPaging",
-          "className": "com.x.organization.assemble.personal.jaxrs.empowerlog.ActionManagerListPaging",
-          "description": "管理员根据条件查询委托日志.",
-          "type": "POST",
-          "path": "jaxrs/empowerlog/manager/list/paging/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "分页"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "授权人",
-              "isBaseType": true
-            },
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "匹配关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "startTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "(授权创建时间)开始时间yyyy-MM-dd HH:mm:ss",
-              "isBaseType": true
-            },
-            {
-              "name": "endTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "(授权创建时间)结束时间yyyy-MM-dd HH:mm:ss",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "fromPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "人员."
-            },
-            {
-              "name": "fromIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份."
-            },
-            {
-              "name": "toPerson",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托人员."
-            },
-            {
-              "name": "toIdentity",
-              "type": "String",
-              "isCollection": false,
-              "description": "委托身份."
-            },
-            {
-              "name": "application",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用."
-            },
-            {
-              "name": "applicationName",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用名称."
-            },
-            {
-              "name": "applicationAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "应用别名."
-            },
-            {
-              "name": "process",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程ID."
-            },
-            {
-              "name": "processName",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程名称."
-            },
-            {
-              "name": "processAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "流程别名."
-            },
-            {
-              "name": "job",
-              "type": "String",
-              "isCollection": false,
-              "description": "任务标识."
-            },
-            {
-              "name": "work",
-              "type": "String",
-              "isCollection": false,
-              "description": "work标识."
-            },
-            {
-              "name": "empowerTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "委托时间."
-            },
-            {
-              "name": "title",
-              "type": "String",
-              "isCollection": false,
-              "description": "标题."
-            },
-            {
-              "name": "activity",
-              "type": "String",
-              "isCollection": false,
-              "description": "当前活动ID"
-            },
-            {
-              "name": "activityName",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动名称"
-            },
-            {
-              "name": "activityAlias",
-              "type": "String",
-              "isCollection": false,
-              "description": "活动别名"
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "ExmailAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.exmail.ExmailAction",
-      "description": "腾讯企业邮",
-      "methods": [
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionGet",
-          "description": "接收腾讯企业邮回调Get方法.",
-          "type": "GET",
-          "path": "jaxrs/exmail",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [
-            {
-              "name": "msg_signature",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "timestamp",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "nonce",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "echostr",
-              "type": "String",
-              "description": ""
-            }
-          ],
-          "ins": [],
-          "outs": [
-            {
-              "name": "text",
-              "type": "String",
-              "isCollection": false,
-              "description": "text"
-            }
-          ]
-        },
-        {
-          "name": "listTitlePassive",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionListTitlePassive",
-          "description": "列示当前用户腾讯企业邮标题,通过回调写入PersonAttribute",
-          "type": "GET",
-          "path": "jaxrs/exmail/list/title/passive",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        },
-        {
-          "name": "newCount",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionNewCount",
-          "description": "获取当前用户的exmail邮件数量.",
-          "type": "GET",
-          "path": "jaxrs/exmail/new/count",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "count",
-              "type": "Long",
-              "isCollection": false,
-              "description": "数量"
-            }
-          ]
-        },
-        {
-          "name": "newCountPassive",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionNewCountPassive",
-          "description": "获取当前用户的exmail邮件数量,通过回调写入PersonAttribute",
-          "type": "GET",
-          "path": "jaxrs/exmail/new/count/passive",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "count",
-              "type": "Long",
-              "isCollection": false,
-              "description": "数量"
-            }
-          ]
-        },
-        {
-          "name": "post",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionPost",
-          "description": "接收腾讯企业邮回调Post方法.",
-          "type": "POST",
-          "path": "jaxrs/exmail",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [
-            {
-              "name": "msg_signature",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "timestamp",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "nonce",
-              "type": "String",
-              "description": ""
-            }
-          ],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "sso",
-          "className": "com.x.organization.assemble.personal.jaxrs.exmail.ActionSso",
-          "description": "获取当前用户邮件单点登录地址.",
-          "type": "GET",
-          "path": "jaxrs/exmail/sso",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        }
-      ]
-    },
-    {
-      "name": "FireScheduleAction",
-      "className": "com.x.base.core.project.jaxrs.fireschedule.FireScheduleAction",
-      "description": "触发任务",
-      "methods": [
-        {
-          "name": "execute",
-          "className": "com.x.base.core.project.jaxrs.fireschedule.ActionExecute",
-          "description": "接受x_program_center发送过来的运行schedule.",
-          "type": "GET",
-          "path": "jaxrs/fireschedule/classname/{className}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "className",
-              "type": "String",
-              "description": "运行类"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "IconAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.icon.IconAction",
-      "description": "头像",
-      "methods": [
-        {
-          "name": "getIcon",
-          "className": "com.x.organization.assemble.personal.jaxrs.icon.ActionGetWithPerson",
-          "description": "获取个人头像.",
-          "type": "GET",
-          "path": "jaxrs/icon/{person}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "person",
-              "type": "String",
-              "description": "应用标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "LoggerAction",
-      "className": "com.x.base.core.project.jaxrs.logger.LoggerAction",
-      "description": "日志操作",
-      "methods": [
-        {
-          "name": "debug",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionDebug",
-          "description": "设置日志级别为DEBUG.",
-          "type": "GET",
-          "path": "jaxrs/logger/debug",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionGet",
-          "description": "获取当前日志级别.",
-          "type": "GET",
-          "path": "jaxrs/logger",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        },
-        {
-          "name": "info",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionInfo",
-          "description": "设置日志级别为INFO",
-          "type": "GET",
-          "path": "jaxrs/logger/info",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "trace",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionTrace",
-          "description": "设置日志级别为TRACE.",
-          "type": "GET",
-          "path": "jaxrs/logger/trace",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "warn",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionWarn",
-          "description": "设置日志级别为WARN",
-          "type": "GET",
-          "path": "jaxrs/logger/warn",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PasswordAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.password.PasswordAction",
-      "description": "密码",
-      "methods": [
-        {
-          "name": "changePassword",
-          "className": "com.x.organization.assemble.personal.jaxrs.password.ActionChangePassword",
-          "description": "修改密码.",
-          "type": "PUT",
-          "path": "jaxrs/password",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "oldPassword",
-              "type": "String",
-              "isCollection": false,
-              "description": "原密码",
-              "isBaseType": true
-            },
-            {
-              "name": "newPassword",
-              "type": "String",
-              "isCollection": false,
-              "description": "新密码",
-              "isBaseType": true
-            },
-            {
-              "name": "confirmPassword",
-              "type": "String",
-              "isCollection": false,
-              "description": "确认新密码",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PersonAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.person.PersonAction",
-      "description": "个人操作",
-      "methods": [
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionEdit",
-          "description": "更新个人的信息,不更新superior和controllerList",
-          "type": "PUT",
-          "path": "jaxrs/person",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d",
-              "isBaseType": false
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址.",
-              "isBaseType": true
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号.",
-              "isBaseType": true
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号.",
-              "isBaseType": true
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话.",
-              "isBaseType": true
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日.",
-              "isBaseType": true
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1.",
-              "isBaseType": true
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2.",
-              "isBaseType": true
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3.",
-              "isBaseType": true
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4.",
-              "isBaseType": true
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数",
-              "isBaseType": true
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionGet",
-          "description": "获取个人可以自己的内容",
-          "type": "GET",
-          "path": "jaxrs/person",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "身份对象"
-            },
-            {
-              "name": "woRoleList",
-              "type": "List\u003cWoRole\u003e",
-              "isCollection": true,
-              "description": "角色对象"
-            },
-            {
-              "name": "woGroupList",
-              "type": "List\u003cWoGroup\u003e",
-              "isCollection": true,
-              "description": "群组对象"
-            },
-            {
-              "name": "woPersonAttributeList",
-              "type": "List\u003cWoPersonAttribute\u003e",
-              "isCollection": true,
-              "description": "个人属性对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "getIcon",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionGetIcon",
-          "description": "获取个人头像.",
-          "type": "GET",
-          "path": "jaxrs/person/icon",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "setIcon",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionSetIcon",
-          "description": "设置个人的头像.",
-          "type": "PUT",
-          "path": "jaxrs/person/icon",
-          "contentType": "multipart/form-data",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [],
-          "formParameters": [
-            {
-              "name": "file",
-              "type": "File",
-              "description": "头像文件"
-            }
-          ],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "setPassword",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionSetPassword",
-          "description": "更新指定个人的密码.",
-          "type": "PUT",
-          "path": "jaxrs/person/password",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "uploadPostOctetStream",
-          "className": "com.x.organization.assemble.personal.jaxrs.person.ActionSetIconOctetStream",
-          "description": "设置头像.为了兼容前台增加的POST方法.",
-          "type": "POST",
-          "path": "jaxrs/person/icon",
-          "contentType": "application/octet-stream",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "RegistAction",
-      "className": "com.x.organization.assemble.personal.jaxrs.regist.RegistAction",
-      "description": "注册",
-      "methods": [
-        {
-          "name": "captcha",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCaptcha",
-          "description": "生成一个captcha",
-          "type": "GET",
-          "path": "jaxrs/regist/captcha/width/{width}/height/{height}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "width",
-              "type": "Integer",
-              "description": "图像宽度"
-            },
-            {
-              "name": "height",
-              "type": "Integer",
-              "description": "图像高度"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id."
-            },
-            {
-              "name": "image",
-              "type": "String",
-              "isCollection": false,
-              "description": "base64图片值."
-            }
-          ]
-        },
-        {
-          "name": "checkMobile",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCheckMobile",
-          "description": "校验mobile是否已经存在",
-          "type": "GET",
-          "path": "jaxrs/regist/check/mobile/{mobile}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "mobile",
-              "type": "String",
-              "description": "电话号码"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "checkName",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCheckName",
-          "description": "校验name是否已经存在",
-          "type": "GET",
-          "path": "jaxrs/regist/check/name/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "用户名"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "checkPassword",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCheckPassword",
-          "description": "校验password密码等级.",
-          "type": "GET",
-          "path": "jaxrs/regist/check/password/{password}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "password",
-              "type": "String",
-              "description": "密码"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        },
-        {
-          "name": "code",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCode",
-          "description": "生成一个code",
-          "type": "GET",
-          "path": "jaxrs/regist/code/mobile/{mobile}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "mobile",
-              "type": "String",
-              "description": "电话号码"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionCreate",
-          "description": "注册人员",
-          "type": "POST",
-          "path": "jaxrs/regist",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "mode",
-          "className": "com.x.organization.assemble.personal.jaxrs.regist.ActionMode",
-          "description": "当前允许的注册模式,disable,captcha,code",
-          "type": "GET",
-          "path": "jaxrs/regist/mode",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "SysResourceAction",
-      "className": "com.x.base.core.project.jaxrs.sysresource.SysResourceAction",
-      "description": "系统资源",
-      "methods": [
-        {
-          "name": "listResource",
-          "className": "com.x.base.core.project.jaxrs.sysresource.ActionListResource",
-          "description": "获取静态资源信息.",
-          "type": "GET",
-          "path": "jaxrs/sysresource/filePath/{filePath}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "filePath",
-              "type": "String",
-              "description": "查找路径(根路径:(0))"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "uploadResource",
-          "className": "com.x.base.core.project.jaxrs.sysresource.ActionUploadResource",
-          "description": "上传静态资源(仅上传到当前服务器)",
-          "type": "POST",
-          "path": "jaxrs/sysresource/upload/resource/as/new/{asNew}",
-          "contentType": "multipart/form-data",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "asNew",
-              "type": "Boolean",
-              "description": "覆盖类型:true删除原文件然后上传,false覆盖原文件"
-            }
-          ],
-          "formParameters": [
-            {
-              "name": "file",
-              "type": "File",
-              "description": "上传文件"
-            },
-            {
-              "name": "fileName",
-              "type": "String",
-              "description": "附件名称"
-            },
-            {
-              "name": "filePath",
-              "type": "String",
-              "description": "附件存放目录(可以为空)"
-            }
-          ],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}

+ 0 - 25
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/AbstractFactory.java

@@ -1,25 +0,0 @@
-package com.x.organization.assemble.personal;
-
-import com.x.base.core.container.EntityManagerContainer;
-
-public abstract class AbstractFactory {
-
-	protected Business business;
-
-	public AbstractFactory(Business business) throws Exception {
-		try {
-			if (null == business) {
-				throw new Exception("business can not be null.");
-			}
-			this.business = business;
-
-		} catch (Exception e) {
-			throw new Exception("can not instantiating factory.");
-		}
-	}
-
-	public EntityManagerContainer entityManagerContainer() throws Exception {
-		return this.business.entityManagerContainer();
-	}
-
-}

+ 0 - 33
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/ApplicationServletContextListener.java

@@ -1,33 +0,0 @@
-package com.x.organization.assemble.personal;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import com.x.base.core.project.Context;
-
-@WebListener
-public class ApplicationServletContextListener implements ServletContextListener {
-
-	@Override
-	public void contextInitialized(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.context = Context.concrete(servletContextEvent);
-			ThisApplication.init();
-			ThisApplication.context().regist();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void contextDestroyed(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.destroy();
-			ThisApplication.context.destrory(servletContextEvent);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 126
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/Business.java

@@ -1,126 +0,0 @@
-package com.x.organization.assemble.personal;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.instrument.Instrument;
-import com.x.organization.assemble.personal.factory.GroupFactory;
-import com.x.organization.assemble.personal.factory.IdentityFactory;
-import com.x.organization.assemble.personal.factory.PersonAttributeFactory;
-import com.x.organization.assemble.personal.factory.PersonFactory;
-import com.x.organization.assemble.personal.factory.RoleFactory;
-import com.x.organization.assemble.personal.factory.UnitAttributeFactory;
-import com.x.organization.assemble.personal.factory.UnitDutyFactory;
-import com.x.organization.assemble.personal.factory.UnitFactory;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.PersonAttribute;
-import com.x.organization.core.entity.Role;
-import com.x.organization.core.entity.Unit;
-import com.x.organization.core.entity.UnitAttribute;
-import com.x.organization.core.entity.UnitDuty;
-
-import net.sf.ehcache.Ehcache;
-
-public class Business {
-
-	private EntityManagerContainer emc;
-
-	private Ehcache cache;
-
-	public Business(EntityManagerContainer emc) throws Exception {
-		this.emc = emc;
-		this.cache = ApplicationCache.instance().getCache(Group.class, Role.class, Person.class, PersonAttribute.class,
-				Unit.class, UnitDuty.class, UnitAttribute.class, Identity.class);
-	}
-
-	public EntityManagerContainer entityManagerContainer() {
-		return this.emc;
-	}
-
-	private PersonFactory person;
-
-	public PersonFactory person() throws Exception {
-		if (null == this.person) {
-			this.person = new PersonFactory(this);
-		}
-		return person;
-	}
-
-	private PersonAttributeFactory personAttribute;
-
-	public PersonAttributeFactory personAttribute() throws Exception {
-		if (null == this.personAttribute) {
-			this.personAttribute = new PersonAttributeFactory(this);
-		}
-		return personAttribute;
-	}
-
-	private IdentityFactory identity;
-
-	public IdentityFactory identity() throws Exception {
-		if (null == this.identity) {
-			this.identity = new IdentityFactory(this);
-		}
-		return identity;
-	}
-
-	private GroupFactory group;
-
-	public GroupFactory group() throws Exception {
-		if (null == this.group) {
-			this.group = new GroupFactory(this);
-		}
-		return group;
-	}
-
-	private RoleFactory role;
-
-	public RoleFactory role() throws Exception {
-		if (null == this.role) {
-			this.role = new RoleFactory(this);
-		}
-		return role;
-	}
-
-	private UnitFactory unit;
-
-	public UnitFactory unit() throws Exception {
-		if (null == this.unit) {
-			this.unit = new UnitFactory(this);
-		}
-		return unit;
-	}
-
-	private UnitAttributeFactory unitAttribute;
-
-	public UnitAttributeFactory unitAttribute() throws Exception {
-		if (null == this.unitAttribute) {
-			this.unitAttribute = new UnitAttributeFactory(this);
-		}
-		return unitAttribute;
-	}
-
-	private UnitDutyFactory unitDuty;
-
-	public UnitDutyFactory unitDuty() throws Exception {
-		if (null == this.unitDuty) {
-			this.unitDuty = new UnitDutyFactory(this);
-		}
-		return unitDuty;
-	}
-
-	private Instrument instrument;
-
-	public Instrument instrument() throws Exception {
-		if (null == this.instrument) {
-			this.instrument = new Instrument();
-		}
-		return instrument;
-	}
-
-	public Ehcache cache() {
-		return cache;
-	}
-
-}

+ 0 - 29
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/ThisApplication.java

@@ -1,29 +0,0 @@
-package com.x.organization.assemble.personal;
-
-import com.x.base.core.project.Context;
-import com.x.organization.assemble.personal.schedule.DisableExpiredEmpower;
-
-public class ThisApplication {
-
-	protected static Context context;
-
-	public static Context context() {
-		return context;
-	}
-
-	public static void init() {
-		try {
-			context.schedule(DisableExpiredEmpower.class, "0 0/20 * * * ?");
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static void destroy() {
-		try {
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 237
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/GroupFactory.java

@@ -1,237 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.collections4.set.ListOrderedSet;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Person;
-
-import net.sf.ehcache.Element;
-
-public class GroupFactory extends AbstractFactory {
-
-	public GroupFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public Group pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Group o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Group) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	public List<Group> pick(List<String> flags) throws Exception {
-		List<Group> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Group) element.getObjectValue());
-				}
-			} else {
-				Group o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	private Group pickObject(String flag) throws Exception {
-		Group o = this.entityManagerContainer().flag(flag, Group.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Group.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Group.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Group.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Group.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Group.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-				Root<Group> root = cq.from(Group.class);
-				Predicate p = cb.equal(root.get(Group_.name), name);
-				List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public <T extends Group> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(Group::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Group::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	public List<Group> listSupDirectObject(Group group) throws Exception {
-		List<String> ids = this.listSupDirect(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定指定群组所在的群组.")
-	public List<String> listSupDirect(String id) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.isMember(id, root.get(Group_.groupList));
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	// @MethodDescribe("获取指定指定群组所在的群组,并递归其上级群组.")
-	public List<String> listSupNested(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<>();
-		this.supNested(id, set);
-		return set.asList();
-	}
-
-	public List<Group> listSupNestedObject(Group group) throws Exception {
-		List<String> ids = this.listSupNested(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("上级群组循环递归.")
-	private void supNested(String id, ListOrderedSet<String> set) throws Exception {
-		List<String> list = new ArrayList<String>();
-		for (String str : this.listSupDirect(id)) {
-			if (!set.contains(str)) {
-				list.add(str);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.supNested(str, set);
-			}
-		}
-	}
-
-	public List<Group> listSupDirectWithPersonObject(Person person) throws Exception {
-		List<String> ids = this.listSupDirectWithPerson(person.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定个人直接所在的群组.")
-	public List<String> listSupDirectWithPerson(String id) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.isMember(id, root.get(Group_.personList));
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	public List<Group> listSupNestedWithPersonObject(Person person) throws Exception {
-		List<String> ids = this.listSupNestedWithPerson(person.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定个人所在的群组,并递归其上级群组.")
-	public List<String> listSupNestedWithPerson(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<>();
-		List<String> list = new ArrayList<>();
-		for (String o : this.listSupDirectWithPerson(id)) {
-			if (!set.contains(o)) {
-				list.add(o);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.supNested(str, set);
-			}
-		}
-		return set.asList();
-	}
-
-	public List<Group> listSubDirectObject(Group group) throws Exception {
-		List<String> ids = this.listSubDirect(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	public List<Group> listSubNestedObject(Group group) throws Exception {
-		List<String> ids = this.listSubNested(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("查找群组的直接群组成员.")
-	public List<String> listSubDirect(String id) throws Exception {
-		Group group = this.entityManagerContainer().find(id, Group.class, ExceptionWhen.none);
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = root.get(Group_.id).in(group.getGroupList());
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	// @MethodDescribe("查找群组的全部群组成员,包括嵌套的群组成员.")
-	public List<String> listSubNested(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<String>();
-		this.subNested(id, set);
-		return set.asList();
-	}
-
-	// @MethodDescribe("递归循环调用群组查找。.")
-	private void subNested(String id, ListOrderedSet<String> set) throws Exception {
-		List<String> list = new ArrayList<String>();
-		for (String str : this.listSubDirect(id)) {
-			if (!set.contains(str)) {
-				list.add(str);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.subNested(str, set);
-			}
-		}
-	}
-
-}

+ 0 - 130
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/IdentityFactory.java

@@ -1,130 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Identity_;
-import com.x.organization.core.entity.PersistenceProperties;
-
-import net.sf.ehcache.Element;
-
-public class IdentityFactory extends AbstractFactory {
-
-	public IdentityFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public Identity pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Identity o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Identity) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Identity pickObject(String flag) throws Exception {
-		Identity o = this.entityManagerContainer().flag(flag, Identity.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Identity.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Identity.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Identity.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Identity.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Identity.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
-				Root<Identity> root = cq.from(Identity.class);
-				Predicate p = cb.equal(root.get(Identity_.name), name);
-				List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Identity> pick(List<String> flags) throws Exception {
-		List<Identity> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Identity) element.getObjectValue());
-				}
-			} else {
-				Identity o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Identity> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(Identity::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(Identity::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	// public List<Identity> listWithPersonObject(Person person) throws
-	// Exception {
-	// EntityManager em = this.entityManagerContainer().get(Identity.class);
-	// CriteriaBuilder cb = em.getCriteriaBuilder();
-	// CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
-	// Root<Identity> root = cq.from(Identity.class);
-	// Predicate p = cb.equal(root.get(Identity_.person), person.getId());
-	// cq.select(root).where(p);
-	// return em.createQuery(cq).getResultList();
-	// }
-
-	// @MethodDescribe("根据指定的Person获取所有的Identity.")
-	// public List<String> listWithPerson(String id) throws Exception {
-	// EntityManager em = this.entityManagerContainer().get(Identity.class);
-	// CriteriaBuilder cb = em.getCriteriaBuilder();
-	// CriteriaQuery<String> cq = cb.createQuery(String.class);
-	// Root<Identity> root = cq.from(Identity.class);
-	// Predicate p = cb.equal(root.get(Identity_.person), id);
-	// cq.select(root.get(Identity_.id)).where(p);
-	// return em.createQuery(cq).getResultList();
-	// }
-
-}

+ 0 - 107
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/PersonAttributeFactory.java

@@ -1,107 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.PersonAttribute;
-import com.x.organization.core.entity.PersonAttribute_;
-
-import net.sf.ehcache.Element;
-
-public class PersonAttributeFactory extends AbstractFactory {
-
-	public PersonAttributeFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public PersonAttribute pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		PersonAttribute o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (PersonAttribute) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private PersonAttribute pickObject(String flag) throws Exception {
-		PersonAttribute o = this.entityManagerContainer().flag(flag, PersonAttribute.class);
-		if (o != null) {
-			this.entityManagerContainer().get(PersonAttribute.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.PersonAttribute.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, PersonAttribute.class);
-				if (null != o) {
-					this.entityManagerContainer().get(PersonAttribute.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(PersonAttribute.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
-				Root<PersonAttribute> root = cq.from(PersonAttribute.class);
-				Predicate p = cb.equal(root.get(PersonAttribute_.name), name);
-				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<PersonAttribute> pick(List<String> flags) throws Exception {
-		List<PersonAttribute> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((PersonAttribute) element.getObjectValue());
-				}
-			} else {
-				PersonAttribute o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends PersonAttribute> List<T> sort(List<T> list) {
-		list = list.stream().sorted(Comparator
-				.comparing(PersonAttribute::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-				.thenComparing(Comparator.comparing(PersonAttribute::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-}

+ 0 - 292
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/PersonFactory.java

@@ -1,292 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.tools.JpaObjectTools;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.tools.Crypto;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.Person_;
-
-import net.sf.ehcache.Element;
-
-public class PersonFactory extends AbstractFactory {
-
-	public PersonFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public Person pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Person o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Person) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Person pickObject(String flag) throws Exception {
-		Person o = this.entityManagerContainer().flag(flag, Person.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Person.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Person.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Person.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Person.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Person.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-				Root<Person> root = cq.from(Person.class);
-				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Person> pick(List<String> flags) throws Exception {
-		List<Person> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Person) element.getObjectValue());
-				}
-			} else {
-				Person o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Person> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(Person::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Person::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	public Person getWithCredential(String value) throws Exception {
-		Person person = this.pick(value);
-		if (null == person) {
-			EntityManager em = this.entityManagerContainer().get(Person.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-			Root<Person> root = cq.from(Person.class);
-			Predicate p = cb.equal(root.get(Person_.mobile), value);
-			p = cb.or(p, cb.equal(root.get(Person_.qq), value));
-			p = cb.or(p, cb.equal(root.get(Person_.mail), value));
-			p = cb.or(p, cb.equal(root.get(Person_.weixin), value));
-			List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-			if (os.size() == 1) {
-				person = os.get(0);
-			}
-		}
-		return person;
-	}
-
-	public String getWithName(String name, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(name) || (!JpaObjectTools.withinDefinedLength(name, Person.class, "name"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.name), name);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithMobile(String mobile, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(mobile) || (!JpaObjectTools.withinDefinedLength(mobile, Person.class, "mobile"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.mobile), mobile);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithEmployee(String employee, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(employee)
-				|| (!JpaObjectTools.withinDefinedLength(employee, Person.class, "employee"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.employee), employee);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithUnique(String unique, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(unique) || (!JpaObjectTools.withinDefinedLength(unique, Person.class, "unique"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.unique), unique);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithQq(String qq, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(qq) || (!JpaObjectTools.withinDefinedLength(qq, Person.class, "qq"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.qq), qq);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithMail(String mail, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(mail) || (!JpaObjectTools.withinDefinedLength(mail, Person.class, "mail"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.mail), mail);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithWeixin(String weixin, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(weixin) || (!JpaObjectTools.withinDefinedLength(weixin, Person.class, "weixin"))) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.equal(root.get(Person_.weixin), weixin);
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-		}
-		cq.select(root.get(Person_.id)).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
-		return this.returnNotDuplicateId(list);
-	}
-
-	// public String getWithDisplay(String display, String excludeId) throws
-	// Exception {
-	// if (StringUtils.isEmpty(display) ||
-	// (!JpaObjectTools.withinDefinedLength(display, Person.class, "display")))
-	// {
-	// return null;
-	// }
-	// EntityManager em = this.entityManagerContainer().get(Person.class);
-	// CriteriaBuilder cb = em.getCriteriaBuilder();
-	// CriteriaQuery<String> cq = cb.createQuery(String.class);
-	// Root<Person> root = cq.from(Person.class);
-	// Predicate p = cb.equal(root.get(Person_.display), display);
-	// if (StringUtils.isNotEmpty(excludeId)) {
-	// p = cb.and(p, cb.notEqual(root.get(Person_.id), excludeId));
-	// }
-	// cq.select(root.get(Person_.id)).where(p);
-	// List<String> list = em.createQuery(cq).getResultList();
-	// return this.returnNotDuplicateId(list);
-	// }
-
-	private String returnNotDuplicateId(List<String> list) throws Exception {
-		if (list.isEmpty()) {
-			return null;
-		} else if (list.size() == 1) {
-			return list.get(0);
-		}
-		throw new Exception("find duplicate value{" + StringUtils.join(list, ",") + "}");
-	}
-
-	public void setPassword(Person person, String password) throws Exception {
-		Calendar cal = Calendar.getInstance();
-		person.setChangePasswordTime(cal.getTime());
-		person.setPassword(Crypto.encrypt(password, Config.token().getKey()));
-		Integer passwordPeriod = Config.person().getPasswordPeriod();
-		if (passwordPeriod == null || passwordPeriod <= 0) {
-			person.setPasswordExpiredTime(null);
-		} else {
-			cal.add(Calendar.DATE, passwordPeriod);
-			person.setPasswordExpiredTime(cal.getTime());
-		}
-	}
-
-}

+ 0 - 107
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/RoleFactory.java

@@ -1,107 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Role;
-import com.x.organization.core.entity.Role_;
-
-import net.sf.ehcache.Element;
-
-public class RoleFactory extends AbstractFactory {
-
-	public RoleFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public Role pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Role o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Role) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Role pickObject(String flag) throws Exception {
-		Role o = this.entityManagerContainer().flag(flag, Role.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Role.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Role.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Role.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Role.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Role.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Role> cq = cb.createQuery(Role.class);
-				Root<Role> root = cq.from(Role.class);
-				Predicate p = cb.equal(root.get(Role_.name), name);
-				List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Role> pick(List<String> flags) throws Exception {
-		List<Role> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Role) element.getObjectValue());
-				}
-			} else {
-				Role o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Role> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(Role::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Role::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-}

+ 0 - 107
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitAttributeFactory.java

@@ -1,107 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.UnitAttribute;
-import com.x.organization.core.entity.UnitAttribute_;
-
-import net.sf.ehcache.Element;
-
-public class UnitAttributeFactory extends AbstractFactory {
-
-	public UnitAttributeFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public UnitAttribute pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		UnitAttribute o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (UnitAttribute) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private UnitAttribute pickObject(String flag) throws Exception {
-		UnitAttribute o = this.entityManagerContainer().flag(flag, UnitAttribute.class);
-		if (o != null) {
-			this.entityManagerContainer().get(UnitAttribute.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.UnitAttribute.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, UnitAttribute.class);
-				if (null != o) {
-					this.entityManagerContainer().get(UnitAttribute.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(UnitAttribute.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
-				Root<UnitAttribute> root = cq.from(UnitAttribute.class);
-				Predicate p = cb.equal(root.get(UnitAttribute_.name), name);
-				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<UnitAttribute> pick(List<String> flags) throws Exception {
-		List<UnitAttribute> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((UnitAttribute) element.getObjectValue());
-				}
-			} else {
-				UnitAttribute o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends UnitAttribute> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(UnitAttribute::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(UnitAttribute::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-}

+ 0 - 107
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitDutyFactory.java

@@ -1,107 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.UnitDuty;
-import com.x.organization.core.entity.UnitDuty_;
-
-import net.sf.ehcache.Element;
-
-public class UnitDutyFactory extends AbstractFactory {
-
-	public UnitDutyFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public UnitDuty pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		UnitDuty o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (UnitDuty) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private UnitDuty pickObject(String flag) throws Exception {
-		UnitDuty o = this.entityManagerContainer().flag(flag, UnitDuty.class);
-		if (o != null) {
-			this.entityManagerContainer().get(UnitDuty.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.UnitDuty.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, UnitDuty.class);
-				if (null != o) {
-					this.entityManagerContainer().get(UnitDuty.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(UnitDuty.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
-				Root<UnitDuty> root = cq.from(UnitDuty.class);
-				Predicate p = cb.equal(root.get(UnitDuty_.name), name);
-				List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<UnitDuty> pick(List<String> flags) throws Exception {
-		List<UnitDuty> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((UnitDuty) element.getObjectValue());
-				}
-			} else {
-				UnitDuty o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends UnitDuty> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(UnitDuty::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(UnitDuty::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-}

+ 0 - 287
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/factory/UnitFactory.java

@@ -1,287 +0,0 @@
-package com.x.organization.assemble.personal.factory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.personal.AbstractFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Unit;
-import com.x.organization.core.entity.Unit_;
-
-import net.sf.ehcache.Element;
-
-public class UnitFactory extends AbstractFactory {
-
-	public UnitFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	public Unit pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Unit o = null;
-		Element element = this.business.cache().get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Unit) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			this.business.cache().put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Unit pickObject(String flag) throws Exception {
-		Unit o = this.entityManagerContainer().flag(flag, Unit.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Unit.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Unit.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Unit.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Unit.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Unit.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-				Root<Unit> root = cq.from(Unit.class);
-				Predicate p = cb.equal(root.get(Unit_.name), name);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-			if (null == o && StringUtils.contains(flag, PersistenceProperties.Unit.levelNameSplit)) {
-				List<String> names = Arrays.asList(StringUtils.split(flag, PersistenceProperties.Unit.levelNameSplit));
-				EntityManager em = this.entityManagerContainer().get(Unit.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-				Root<Unit> root = cq.from(Unit.class);
-				Predicate p = root.get(Unit_.name).in(names);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				os = os.stream().sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo)))
-						.collect(Collectors.toList());
-				List<String> values = ListTools.extractProperty(os, "name", String.class, false, false);
-				if (StringUtils.equals(flag, StringUtils.join(values, PersistenceProperties.Unit.levelNameSplit))) {
-					o = os.get(os.size() - 1);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Unit> pick(List<String> flags) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = this.business.cache().get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Unit) element.getObjectValue());
-				}
-			} else {
-				Unit o = this.pickObject(str);
-				this.business.cache().put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Unit> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(Unit::getOrderNumber, Comparator.nullsLast(Integer::compareTo)))
-						.thenComparing(Comparator.comparing(Unit::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	public String getSupDirect(String id) throws Exception {
-		if (StringUtils.isEmpty(id)) {
-			return null;
-		}
-		Unit unit = this.pick(id);
-		if (null == unit) {
-			return null;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return null;
-		}
-		Unit superior = this.pick(unit.getSuperior());
-		if (null == superior) {
-			return null;
-		}
-		return superior.getId();
-	}
-
-	/** 递归的上级组织,从底层到顶层 */
-	public List<String> listSupNested(String id) throws Exception {
-		List<String> list = new ArrayList<>();
-		this.supNested(id, list);
-		return list;
-	}
-
-	private void supNested(String id, List<String> list) throws Exception {
-		String superiorId = this.getSupDirect(id);
-		if (StringUtils.isNotEmpty(superiorId) && (!list.contains(superiorId))) {
-			list.add(superiorId);
-			this.supNested(superiorId, list);
-		}
-	}
-
-	public Unit getSupDirectObject(Unit unit) throws Exception {
-		if (null == unit) {
-			return null;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.id), unit.getSuperior());
-		List<Unit> list = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-		if (!list.isEmpty()) {
-			return list.get(0);
-		} else {
-			return null;
-		}
-	}
-
-	/** 递归的上级组织,从底层到顶层 */
-	public List<Unit> listSupNestedObject(Unit unit) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		if (unit == null) {
-			return list;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return list;
-		}
-		this.supNestedObject(unit, list);
-		list = list.stream().sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo)))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	private void supNestedObject(Unit unit, List<Unit> list) throws Exception {
-		Unit superior = this.getSupDirectObject(unit);
-		if ((null != superior) && (!list.contains(superior))) {
-			list.add(superior);
-			this.supNestedObject(superior, list);
-		}
-	}
-
-	public void adjustInherit(Unit unit) throws Exception {
-		List<Unit> os = new ArrayList<>();
-		os.add(unit);
-		os.addAll(this.listSubNestedObject(unit));
-		for (Unit o : os) {
-			List<Unit> list = this.listSupNestedObject(o);
-			/** 级别从1开始 */
-			o.setLevel(list.size() + 1);
-			List<String> names = ListTools.extractProperty(list, "name", String.class, false, false);
-			// Collections.reverse(names);
-			names.add(o.getName());
-			o.setLevelName(StringUtils.join(names, PersistenceProperties.Unit.levelNameSplit));
-			List<String> inheritControllerList = new ArrayList<>();
-			for (Unit u : list) {
-				inheritControllerList.addAll(u.getControllerList());
-			}
-			o.setInheritedControllerList(ListTools.trim(inheritControllerList, true, true));
-		}
-	}
-
-	public List<String> listSubNested(String id) throws Exception {
-		List<String> list = new ArrayList<>();
-		this.subNested(id, list);
-		return list;
-	}
-
-	private void subNested(String id, List<String> list) throws Exception {
-		List<String> os = new ArrayList<>();
-		for (String o : this.listSubDirect(id)) {
-			if (!list.contains(o)) {
-				os.add(o);
-			}
-		}
-		if (!os.isEmpty()) {
-			list.addAll(os);
-			for (String o : os) {
-				this.subNested(o, list);
-			}
-		}
-	}
-
-	public List<String> listSubDirect(String id) throws Exception {
-		if (StringUtils.isEmpty(id)) {
-			return new ArrayList<String>();
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.superior), id);
-		return em.createQuery(cq.select(root.get(Unit_.id)).where(p)).getResultList();
-	}
-
-	public List<Unit> listSubNestedObject(Unit unit) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		this.subNestedObject(unit, list);
-		return list;
-	}
-
-	private void subNestedObject(Unit unit, List<Unit> list) throws Exception {
-		List<Unit> os = new ArrayList<>();
-		for (Unit o : this.listSubDirectObject(unit)) {
-			if (!list.contains(o)) {
-				os.add(o);
-			}
-		}
-		if (!os.isEmpty()) {
-			list.addAll(os);
-			for (Unit o : os) {
-				this.subNestedObject(o, list);
-			}
-		}
-	}
-
-	public List<Unit> listSubDirectObject(Unit unit) throws Exception {
-		if (null == unit) {
-			return new ArrayList<Unit>();
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.superior), unit.getId());
-		return em.createQuery(cq.select(root).where(p)).getResultList();
-	}
-}

+ 0 - 35
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ActionApplication.java

@@ -1,35 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import java.util.Set;
-
-import javax.ws.rs.ApplicationPath;
-
-import com.x.base.core.project.jaxrs.AbstractActionApplication;
-import com.x.organization.assemble.personal.jaxrs.custom.CustomAction;
-import com.x.organization.assemble.personal.jaxrs.definition.DefinitionAction;
-import com.x.organization.assemble.personal.jaxrs.empower.EmpowerAction;
-import com.x.organization.assemble.personal.jaxrs.empowerlog.EmpowerLogAction;
-import com.x.organization.assemble.personal.jaxrs.exmail.ExmailAction;
-import com.x.organization.assemble.personal.jaxrs.icon.IconAction;
-import com.x.organization.assemble.personal.jaxrs.password.PasswordAction;
-import com.x.organization.assemble.personal.jaxrs.person.PersonAction;
-import com.x.organization.assemble.personal.jaxrs.regist.RegistAction;
-import com.x.organization.assemble.personal.jaxrs.reset.ResetAction;
-
-@ApplicationPath("jaxrs")
-public class ActionApplication extends AbstractActionApplication {
-
-	public Set<Class<?>> getClasses() {
-		classes.add(PersonAction.class);
-		classes.add(PasswordAction.class);
-		classes.add(ResetAction.class);
-		classes.add(RegistAction.class);
-		classes.add(IconAction.class);
-		classes.add(DefinitionAction.class);
-		classes.add(CustomAction.class);
-		classes.add(EmpowerAction.class);
-		classes.add(EmpowerLogAction.class);
-		classes.add(ExmailAction.class);
-		return classes;
-	}
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/CustomJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = { "/jaxrs/custom/*" }, asyncSupported = true)
-public class CustomJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/DefinitionJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = { "/jaxrs/definition/*" }, asyncSupported = true)
-public class DefinitionJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/EmpowerJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/empower/*", asyncSupported = true)
-public class EmpowerJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/EmpowerLogJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/empowerlog/*", asyncSupported = true)
-public class EmpowerLogJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ExmailJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/exmail/*", asyncSupported = true)
-public class ExmailJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/IconJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/icon/*", asyncSupported = true)
-public class IconJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/PasswordJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/password/*", asyncSupported = true)
-public class PasswordJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/PersonJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/person/*", asyncSupported = true)
-public class PersonJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/RegistJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/regist/*", asyncSupported = true)
-public class RegistJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/ResetJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/reset/*", asyncSupported = true)
-public class ResetJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 36
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionDelete.java

@@ -1,36 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Custom;
-
-class ActionDelete extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionDelete.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String name) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Wo wo = new Wo();
-			Custom o = this.getWithName(emc, effectivePerson.getDistinguishedName(), name);
-			if (null != o) {
-				emc.beginTransaction(Custom.class);
-				emc.remove(o);
-				emc.commit();
-				wo.setId(o.getId());
-				ApplicationCache.notify(Custom.class, effectivePerson.getDistinguishedName());
-			}
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-	}
-}

+ 0 - 42
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionEdit.java

@@ -1,42 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Custom;
-
-class ActionEdit extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionEdit.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String name, String wi) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Wo wo = new Wo();
-			Custom custom = this.getWithName(emc, effectivePerson.getDistinguishedName(), name);
-			emc.beginTransaction(Custom.class);
-			if (null != custom) {
-				custom.setData(wi);
-				emc.check(custom, CheckPersistType.all);
-			} else {
-				custom = new Custom();
-				custom.setPerson(effectivePerson.getDistinguishedName());
-				custom.setName(name);
-				custom.setData(wi);
-				emc.persist(custom, CheckPersistType.all);
-			}
-			emc.commit();
-			wo.setId(custom.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-	}
-}

+ 0 - 26
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionGet.java

@@ -1,26 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Custom;
-
-class ActionGet extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	ActionResult<String> execute(EffectivePerson effectivePerson, String name) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<String> result = new ActionResult<>();
-			String wo = "";
-			Custom o = this.getWithName(emc, effectivePerson.getDistinguishedName(), name);
-			if (null != o) {
-				result.setData(o.getData());
-			}
-			return result;
-		}
-	}
-}

+ 0 - 51
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/ActionManagerEdit.java

@@ -1,51 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Custom;
-import com.x.organization.core.entity.Person;
-import org.apache.commons.lang3.StringUtils;
-
-class ActionManagerEdit extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionManagerEdit.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String person, String name, String wi) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<Wo> result = new ActionResult<>();
-			Wo wo = new Wo();
-			if (effectivePerson.isManager() && StringUtils.isNotEmpty(person)) {
-				Person p = business.person().pick(person);
-				if(p!=null) {
-					Custom custom = this.getWithName(emc, p.getDistinguishedName(), name);
-					emc.beginTransaction(Custom.class);
-					if (null != custom) {
-						custom.setData(wi);
-						emc.check(custom, CheckPersistType.all);
-					} else {
-						custom = new Custom();
-						custom.setPerson(p.getDistinguishedName());
-						custom.setName(name);
-						custom.setData(wi);
-						emc.persist(custom, CheckPersistType.all);
-					}
-					emc.commit();
-					wo.setId(custom.getId());
-				}
-			}
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-	}
-}

+ 0 - 33
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/BaseAction.java

@@ -1,33 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.organization.core.entity.Custom;
-import com.x.organization.core.entity.Custom_;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-//	@MethodDescribe("根据Person查找Custom")
-	Custom getWithName(EntityManagerContainer emc, String person, String name) throws Exception {
-		EntityManager em = emc.get(Custom.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Custom> cq = cb.createQuery(Custom.class);
-		Root<Custom> root = cq.from(Custom.class);
-		Predicate p = cb.equal(root.get(Custom_.person), person);
-		p = cb.and(p, cb.equal(root.get(Custom_.name), name));
-		List<Custom> list = em.createQuery(cq.where(p)).setMaxResults(1).getResultList();
-		if (list.isEmpty()) {
-			return null;
-		} else {
-			return list.get(0);
-		}
-	}
-}

+ 0 - 102
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/custom/CustomAction.java

@@ -1,102 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.custom;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.*;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("custom")
-@JaxrsDescribe("个性化数据")
-public class CustomAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(CustomAction.class);
-
-	@JaxrsMethodDescribe(value = "根据当前的访问用户获取Custom。", action = ActionGet.class)
-	@GET
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
-		ActionResult<String> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionGet().execute(effectivePerson, name);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "更新指定名称的Custom.", action = ActionEdit.class)
-	@PUT
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void update(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name, String wi) {
-		ActionResult<ActionEdit.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionEdit().execute(effectivePerson, name, wi);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员更新指定用户指定名称的Custom.", action = ActionManagerEdit.class)
-	@PUT
-	@Path("manager/person/{person}/name/{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void managerUpdate(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-							  @JaxrsParameterDescribe("用户") @PathParam("person") String person,
-							  @JaxrsParameterDescribe("定义名称") @PathParam("name") String name, String wi) {
-		ActionResult<ActionManagerEdit.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionManagerEdit().execute(effectivePerson, person, name, wi);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "删除指定名称的Custom。", action = ActionDelete.class)
-	@DELETE
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionDelete().execute(effectivePerson, name);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-}

+ 0 - 36
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionDelete.java

@@ -1,36 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.definition;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Definition;
-
-class ActionDelete extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionDelete.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String name) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Definition o = emc.flag(name, Definition.class);
-			Wo wo = new Wo();
-			if (null != o) {
-				emc.beginTransaction(Definition.class);
-				emc.remove(o);
-				emc.commit();
-				wo.setId(o.getId());
-				ApplicationCache.notify(Definition.class);
-			}
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-	}
-}

+ 0 - 43
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionEdit.java

@@ -1,43 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.definition;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Definition;
-
-class ActionEdit extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionEdit.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String name, String wi) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Definition definition = emc.flag(name, Definition.class);
-			emc.beginTransaction(Definition.class);
-			if (null != definition) {
-				definition.setData(wi);
-				emc.check(definition, CheckPersistType.all);
-			} else {
-				definition = new Definition();
-				definition.setData(wi);
-				definition.setName(name);
-				emc.persist(definition, CheckPersistType.all);
-			}
-			emc.commit();
-			ApplicationCache.notify(Definition.class);
-			Wo wo = new Wo();
-			wo.setId(definition.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-	}
-}

+ 0 - 36
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/ActionGet.java

@@ -1,36 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.definition;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.Definition;
-
-import net.sf.ehcache.Element;
-
-class ActionGet extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	ActionResult<String> execute(EffectivePerson effectivePerson, String name) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<String> result = new ActionResult<>();
-			String cacheKey = name;
-			Element element = cache.get(cacheKey);
-			String wo = "";
-			if (null != element) {
-				wo = (String) element.getObjectValue();
-			} else {
-				Definition o = emc.flag(name, Definition.class);
-				if (null != o) {
-					wo = o.getData();
-					cache.put(new Element(cacheKey, wo));
-				}
-			}
-			result.setData(wo);
-			return result;
-		}
-	}
-}

+ 0 - 12
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/BaseAction.java

@@ -1,12 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.definition;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.organization.core.entity.Definition;
-
-import net.sf.ehcache.Ehcache;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-	protected Ehcache cache = ApplicationCache.instance().getCache(Definition.class);
-}

+ 0 - 87
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/definition/DefinitionAction.java

@@ -1,87 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.definition;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("definition")
-@JaxrsDescribe("定制")
-public class DefinitionAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(DefinitionAction.class);
-
-	@JaxrsMethodDescribe(value = "获取Definition.", action = ActionGet.class)
-	@GET
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
-		ActionResult<String> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionGet().execute(effectivePerson, name);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "更新指定名称的Definition.", action = ActionEdit.class)
-	@PUT
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void update(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name, String wi) {
-		ActionResult<ActionEdit.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionEdit().execute(effectivePerson, name, wi);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "删除指定名称的Definition.", action = ActionDelete.class)
-	@DELETE
-	@Path("{name}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionDelete().execute(effectivePerson, name);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-}

+ 0 - 67
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionCreate.java

@@ -1,67 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionCreate extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionCreate.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			Empower empower = Wi.copier.copy(wi);
-			this.check(business, empower);
-			String fromPerson = this.getPersonDNWithIdentityDN(business, empower.getFromIdentity());
-			if (StringUtils.isEmpty(fromPerson)) {
-				throw new ExceptionPersonNotExistWithIdentity(empower.getFromIdentity());
-			} else {
-				empower.setFromPerson(fromPerson);
-			}
-			String toPerson = this.getPersonDNWithIdentityDN(business, empower.getToIdentity());
-			if (StringUtils.isEmpty(toPerson)) {
-				throw new ExceptionPersonNotExistWithIdentity(empower.getToIdentity());
-			} else {
-				empower.setToPerson(toPerson);
-			}
-			emc.beginTransaction(Empower.class);
-			emc.persist(empower, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Empower.class);
-			Wo wo = new Wo();
-			wo.setId(empower.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Empower {
-
-		private static final long serialVersionUID = 1571810726944802231L;
-
-		static WrapCopier<Wi, Empower> copier = WrapCopierFactory.wi(Wi.class, Empower.class, null,
-				JpaObject.FieldsUnmodify);
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 40
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionDelete.java

@@ -1,40 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckRemoveType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapBoolean;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionDelete extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Empower empower = emc.find(id, Empower.class);
-			if (null == empower) {
-				throw new ExceptionEntityNotExist(id, Empower.class);
-			}
-			if (effectivePerson.isNotManager() && effectivePerson.isNotPerson(empower.getFromPerson())) {
-				throw new ExceptionAccessDenied(effectivePerson, empower);
-			}
-			emc.beginTransaction(Empower.class);
-			emc.remove(empower, CheckRemoveType.all);
-			emc.commit();
-			ApplicationCache.notify(Empower.class);
-			Wo wo = new Wo();
-			wo.setValue(true);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WrapBoolean {
-
-	}
-}

+ 0 - 42
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionDisable.java

@@ -1,42 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionDisable extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionDisable.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Empower empower = emc.find(id, Empower.class);
-			if (null == empower) {
-				throw new ExceptionEntityNotExist(id, Empower.class);
-			}
-			emc.beginTransaction(Empower.class);
-			empower.setEnable(false);
-			emc.check(empower, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Empower.class);
-			Wo wo = new Wo();
-			wo.setId(empower.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 72
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionEdit.java

@@ -1,72 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionEdit extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionEdit.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			Empower empower = emc.find(id, Empower.class);
-			if (null == empower) {
-				throw new ExceptionEntityNotExist(id, Empower.class);
-			}
-			Wi.copier.copy(wi, empower);
-			this.check(business, empower);
-			String fromPerson = this.getPersonDNWithIdentityDN(business, empower.getFromIdentity());
-			if (StringUtils.isEmpty(fromPerson)) {
-				throw new ExceptionPersonNotExistWithIdentity(empower.getFromIdentity());
-			} else {
-				empower.setFromPerson(fromPerson);
-			}
-			String toPerson = this.getPersonDNWithIdentityDN(business, empower.getToIdentity());
-			if (StringUtils.isEmpty(toPerson)) {
-				throw new ExceptionPersonNotExistWithIdentity(empower.getToIdentity());
-			} else {
-				empower.setToPerson(toPerson);
-			}
-			emc.beginTransaction(Empower.class);
-			emc.check(empower, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Empower.class);
-			Wo wo = new Wo();
-			wo.setId(empower.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Empower {
-
-		private static final long serialVersionUID = 1571810726944802231L;
-
-		static WrapCopier<Wi, Empower> copier = WrapCopierFactory.wi(Wi.class, Empower.class, null,
-				JpaObject.FieldsUnmodify);
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 42
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionEnable.java

@@ -1,42 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionEnable extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionEnable.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Empower empower = emc.find(id, Empower.class);
-			if (null == empower) {
-				throw new ExceptionEntityNotExist(id, Empower.class);
-			}
-			emc.beginTransaction(Empower.class);
-			empower.setEnable(true);
-			emc.check(empower, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Empower.class);
-			Wo wo = new Wo();
-			wo.setId(empower.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 36
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionGet.java

@@ -1,36 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionGet extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Empower empower = emc.find(id, Empower.class);
-			if (null == empower) {
-				throw new ExceptionEntityNotExist(id, Empower.class);
-			}
-			Wo wo = Wo.copier.copy(empower);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = -7495725325510376323L;
-
-		public static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wo(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-}

+ 0 - 45
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListNext.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionListNext extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String id, Integer count) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		if (effectivePerson.isNotManager()) {
-			throw new ExceptionAccessDenied(effectivePerson);
-		}
-		result = this.standardListNext(Wo.copier, id, count, JpaObject.sequence_FIELDNAME, null, null, null, null, null,
-				null, null, null, true, DESC);
-		return result;
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = -7495725325510376323L;
-
-		public static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wo(Empower.class, Wo.class,
-				JpaObject.singularAttributeField(Empower.class, true, true), null);
-
-		@FieldDescribe("排序号")
-		private Long rank;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 44
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListPrev.java

@@ -1,44 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionListPrev extends BaseAction {
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String id, Integer count) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		if (effectivePerson.isNotManager()) {
-			throw new ExceptionAccessDenied(effectivePerson);
-		}
-		result = this.standardListPrev(Wo.copier, id, count, JpaObject.sequence_FIELDNAME, null, null, null, null, null,
-				null, null, null, true, DESC);
-		return result;
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4663181401822986160L;
-
-		public static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wo(Empower.class, Wo.class,
-				JpaObject.singularAttributeField(Empower.class, true, true), null);
-
-		@FieldDescribe("排序号")
-		private Long rank;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 45
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListTo.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-import net.sf.ehcache.Element;
-
-class ActionListTo extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			List<Wo> wos = this.list(business, effectivePerson);
-			result.setData(wos);
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, EffectivePerson effectivePerson) throws Exception {
-		List<Empower> os = business.entityManagerContainer().listEqual(Empower.class, Empower.toPerson_FIELDNAME,
-				effectivePerson.getDistinguishedName());
-		return Wo.copier.copy(os);
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 45
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListToEnable.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-import net.sf.ehcache.Element;
-
-class ActionListToEnable extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			List<Wo> wos = this.list(business, effectivePerson);
-			result.setData(wos);
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, EffectivePerson effectivePerson) throws Exception {
-		List<Empower> os = business.entityManagerContainer().listEqualAndEqual(Empower.class,
-				Empower.toPerson_FIELDNAME, effectivePerson.getDistinguishedName(), Empower.enable_FIELDNAME, true);
-		return Wo.copier.copy(os);
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 45
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithCurrentPerson.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-import net.sf.ehcache.Element;
-
-class ActionListWithCurrentPerson extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			List<Wo> wos = this.list(business, effectivePerson);
-			result.setData(wos);
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, EffectivePerson effectivePerson) throws Exception {
-		List<Empower> os = business.entityManagerContainer().listEqual(Empower.class, Empower.fromPerson_FIELDNAME,
-				effectivePerson.getDistinguishedName());
-		return Wo.copier.copy(os);
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 42
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithCurrentPersonEnable.java

@@ -1,42 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-
-class ActionListWithCurrentPersonEnable extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			List<Wo> wos = this.list(business, effectivePerson);
-			result.setData(wos);
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, EffectivePerson effectivePerson) throws Exception {
-		List<Empower> os = business.entityManagerContainer().listEqualAndEqual(Empower.class,
-				Empower.fromPerson_FIELDNAME, effectivePerson.getDistinguishedName(), Empower.enable_FIELDNAME, true);
-		return Wo.copier.copy(os);
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 60
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionListWithPerson.java

@@ -1,60 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.accredit.Empower;
-
-import net.sf.ehcache.Element;
-
-class ActionListWithPerson extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String flag) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Person person = business.person().pick(flag);
-			if (null == person) {
-				throw new ExceptionEntityNotExist(flag);
-			}
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), person.getDistinguishedName());
-			Element element = cache.get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, person.getDistinguishedName());
-				cache.put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String distinguishedName) throws Exception {
-
-		List<Empower> os = business.entityManagerContainer().listEqual(Empower.class, Empower.fromPerson_FIELDNAME,
-				distinguishedName);
-		return Wo.copier.copy(os);
-
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 109
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ActionManagerListPaging.java

@@ -1,109 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.DateTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.accredit.Empower;
-import com.x.organization.core.entity.accredit.Empower_;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import java.util.List;
-
-class ActionManagerListPaging extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size, JsonElement jsonElement)
-			throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			EntityManager em = emc.get(Empower.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-			Root<Empower> root = cq.from(Empower.class);
-			Predicate p = cb.conjunction();
-			if(effectivePerson.isManager()) {
-				if (StringUtils.isNotEmpty(wi.getFromPerson())) {
-					String key = "%" + StringTools.escapeSqlLikeKey(wi.getFromPerson()) + "%";
-					p = cb.and(p, cb.like(root.get(Empower_.fromPerson), key, StringTools.SQL_ESCAPE_CHAR));
-				}
-			}else{
-				p = cb.and(p, cb.equal(root.get(Empower_.fromPerson), effectivePerson.getDistinguishedName()));
-			}
-			if(DateTools.isDateTimeOrDate(wi.getStartTime())){
-				p = cb.and(p, cb.greaterThan(root.get(Empower_.createTime), DateTools.parse(wi.getStartTime())));
-			}
-			if(DateTools.isDateTimeOrDate(wi.getEndTime())){
-				p = cb.and(p, cb.lessThan(root.get(Empower_.createTime), DateTools.parse(wi.getEndTime())));
-			}
-
-			List<Wo> wos = emc.fetchDescPaging(Empower.class, Wo.copier, p, page, size,
-					Empower.createTime_FIELDNAME);
-			result.setData(wos);
-			result.setCount(emc.count(Empower.class, p));
-			return result;
-		}
-	}
-
-	public static class Wo extends Empower {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<Empower, Wo> copier = WrapCopierFactory.wi(Empower.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-	public class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("授权人")
-		private String fromPerson;
-
-		@FieldDescribe("(授权创建时间)开始时间yyyy-MM-dd HH:mm:ss")
-		private String startTime;
-
-		@FieldDescribe("(授权创建时间)结束时间yyyy-MM-dd HH:mm:ss")
-		private String endTime;
-
-		public String getFromPerson() {
-			return fromPerson;
-		}
-
-		public void setFromPerson(String fromPerson) {
-			this.fromPerson = fromPerson;
-		}
-
-		public String getStartTime() {
-			return startTime;
-		}
-
-		public void setStartTime(String startTime) {
-			this.startTime = startTime;
-		}
-
-		public String getEndTime() {
-			return endTime;
-		}
-
-		public void setEndTime(String endTime) {
-			this.endTime = endTime;
-		}
-
-	}
-
-}

+ 0 - 125
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/BaseAction.java

@@ -1,125 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.Objects;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionEntityFieldEmpty;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.accredit.Empower;
-import com.x.organization.core.entity.accredit.Empower_;
-
-import net.sf.ehcache.Ehcache;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-	protected static Ehcache cache = ApplicationCache.instance().getCache(Empower.class);
-
-	protected void check(Business business, Empower empower) throws Exception {
-		if (StringUtils.isEmpty(empower.getFromIdentity())) {
-			throw new ExceptionEmptyFromIdentity();
-		}
-		if (StringUtils.isEmpty(empower.getToIdentity())) {
-			throw new ExceptionEmptyToIdentity();
-		}
-		switch (Objects.toString(empower.getType())) {
-		case Empower.TYPE_ALL:
-			if (this.typeAllExist(business, empower)) {
-				throw new ExceptionTypeAllExist(empower.getFromIdentity());
-			}
-			break;
-		case Empower.TYPE_APPLICATION:
-			if (this.typeApplicationExist(business, empower)) {
-				throw new ExceptionTypeApplicationExist(empower.getFromIdentity(), empower.getApplication());
-			}
-			break;
-		case Empower.TYPE_PROCESS:
-			if (this.typeProcessExist(business, empower)) {
-				throw new ExceptionTypeProcessExist(empower.getFromIdentity(), empower.getProcess());
-			}
-			break;
-		case Empower.TYPE_FILTER:
-			if (StringUtils.isEmpty(empower.getProcess()) || StringUtils.isEmpty(empower.getFilterListData())) {
-				throw new ExceptionTypeFilter(empower.getFromIdentity(), empower.getProcess(),
-						empower.getFilterListData());
-			}
-			break;
-		default:
-			throw new ExceptionEntityFieldEmpty(Empower.class, Empower.type_FIELDNAME);
-		}
-	}
-
-	private boolean typeAllExist(Business business, Empower empower) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Empower.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<Empower> root = cq.from(Empower.class);
-		Predicate p = cb.equal(root.get(Empower_.fromIdentity), empower.getFromIdentity());
-		p = cb.and(p, cb.equal(root.get(Empower_.type), Empower.TYPE_ALL));
-		p = cb.and(p, cb.notEqual(root.get(Empower_.id), empower.getId()));
-		Long count = em.createQuery(cq.select(cb.count(root)).where(p)).getSingleResult();
-		if (count > 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-
-	private boolean typeApplicationExist(Business business, Empower empower) throws Exception {
-		if (StringUtils.isEmpty(empower.getApplication())) {
-			throw new ExceptionEntityFieldEmpty(Empower.class, Empower.application_FIELDNAME);
-		}
-		EntityManager em = business.entityManagerContainer().get(Empower.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<Empower> root = cq.from(Empower.class);
-		Predicate p = cb.equal(root.get(Empower_.fromIdentity), empower.getFromIdentity());
-		p = cb.and(p, cb.equal(root.get(Empower_.type), Empower.TYPE_APPLICATION));
-		p = cb.and(p, cb.equal(root.get(Empower_.application), empower.getApplication()));
-		p = cb.and(p, cb.notEqual(root.get(Empower_.id), empower.getId()));
-		Long count = em.createQuery(cq.select(cb.count(root)).where(p)).getSingleResult();
-		if (count > 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-
-	private boolean typeProcessExist(Business business, Empower empower) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Empower.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<Empower> root = cq.from(Empower.class);
-		Predicate p = cb.equal(root.get(Empower_.fromIdentity), empower.getFromIdentity());
-		p = cb.and(p, cb.equal(root.get(Empower_.type), Empower.TYPE_PROCESS));
-		p = cb.and(p, cb.equal(root.get(Empower_.process), empower.getProcess()));
-		p = cb.and(p, cb.notEqual(root.get(Empower_.id), empower.getId()));
-		Long count = em.createQuery(cq.select(cb.count(root)).where(p)).getSingleResult();
-		if (count > 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-
-	protected String getPersonDNWithIdentityDN(Business business, String dn) throws Exception {
-		Identity identity = business.identity().pick(dn);
-		if (null != identity) {
-			Person person = business.person().pick(identity.getPerson());
-			if (null != person) {
-				return person.getDistinguishedName();
-			}
-		}
-		return null;
-	}
-}

+ 0 - 289
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/EmpowerAction.java

@@ -1,289 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("empower")
-@JaxrsDescribe("授权操作")
-public class EmpowerAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(EmpowerAction.class);
-
-	@JaxrsMethodDescribe(value = "获取授权对象.", action = ActionGet.class)
-	@GET
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
-		ActionResult<ActionGet.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionGet().execute(effectivePerson, id);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员列示授权对象,下一页.", action = ActionListNext.class)
-	@GET
-	@Path("list/{id}/next/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listNext(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id,
-			@JaxrsParameterDescribe("数量") @PathParam("count") Integer count) {
-		ActionResult<List<ActionListNext.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListNext().execute(effectivePerson, id, count);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员列示授权对象,上一页.", action = ActionListPrev.class)
-	@GET
-	@Path("list/{id}/prev/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listPrev(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id,
-			@JaxrsParameterDescribe("数量") @PathParam("count") Integer count) {
-		ActionResult<List<ActionListPrev.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListPrev().execute(effectivePerson, id, count);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员的授权.", action = ActionListWithCurrentPerson.class)
-	@GET
-	@Path("list/currentperson")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listWithCurrentPerson(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request) {
-		ActionResult<List<ActionListWithCurrentPerson.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListWithCurrentPerson().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员生效的授权.", action = ActionListWithCurrentPersonEnable.class)
-	@GET
-	@Path("list/currentperson/enable")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listWithCurrentPersonEnable(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request) {
-		ActionResult<List<ActionListWithCurrentPersonEnable.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListWithCurrentPersonEnable().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "查询指定人员的授权授权.", action = ActionListWithPerson.class)
-	@GET
-	@Path("list/person/{flag}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listWithPerson(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("人员") @PathParam("flag") String flag) {
-		ActionResult<List<ActionListWithPerson.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListWithPerson().execute(effectivePerson, flag);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员的被授权.", action = ActionListTo.class)
-	@GET
-	@Path("list/to")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listTo(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<List<ActionListTo.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListTo().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员的生效的被授权.", action = ActionListToEnable.class)
-	@GET
-	@Path("list/to/enable")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listToEnable(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<List<ActionListToEnable.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListToEnable().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "创建授权", action = ActionCreate.class)
-	@POST
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void create(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			JsonElement jsonElement) {
-		ActionResult<ActionCreate.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionCreate().execute(effectivePerson, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "更新授权", action = ActionEdit.class)
-	@PUT
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void edit(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id, JsonElement jsonElement) {
-		ActionResult<ActionEdit.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionEdit().execute(effectivePerson, id, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "删除授权", action = ActionDelete.class)
-	@DELETE
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionDelete().execute(effectivePerson, id);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "启用授权", action = ActionEnable.class)
-	@GET
-	@Path("{id}/enable")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void enable(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
-		ActionResult<ActionEnable.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionEnable().execute(effectivePerson, id);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "禁用授权", action = ActionDisable.class)
-	@GET
-	@Path("{id}/disable")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void disable(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
-		ActionResult<ActionDisable.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionDisable().execute(effectivePerson, id);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员根据条件查询授权记录.", action = ActionManagerListPaging.class)
-	@POST
-	@Path("manager/list/paging/{page}/size/{size}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void managerlistPaging(@Suspended final AsyncResponse asyncResponse,
-								  @Context HttpServletRequest request, @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
-								  @JaxrsParameterDescribe("数量") @PathParam("size") Integer size, JsonElement jsonElement) {
-		ActionResult<List<ActionManagerListPaging.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionManagerListPaging().execute(effectivePerson, page, size, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionEmptyFromIdentity.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionEmptyFromIdentity extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionEmptyFromIdentity() {
-		super("委托身份为空.");
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionEmptyToIdentity.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionEmptyToIdentity extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionEmptyToIdentity() {
-		super("被委托身份为空.");
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionPersonNotExistWithIdentity.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionPersonNotExistWithIdentity extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionPersonNotExistWithIdentity(String identity) {
-		super("无法定位 {} 的人员.", identity);
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeAllExist.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionTypeAllExist extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionTypeAllExist(String identity) {
-		super("身份 {} 的全局设置已经存在.", identity);
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeApplicationExist.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionTypeApplicationExist extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionTypeApplicationExist(String identity, String application) {
-		super("身份 {} 在指定应用 {} 的授权已经存在.", identity, application);
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeFilter.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionTypeFilter extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionTypeFilter(String identity, String process, String filter) {
-		super("身份 {} 在指定的过滤条件授权错误.", identity, process, filter);
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empower/ExceptionTypeProcessExist.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empower;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionTypeProcessExist extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionTypeProcessExist(String identity, String process) {
-		super("身份 {} 在指定的流程 {} 的授权已经存在.", identity, process);
-	}
-
-}

+ 0 - 40
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionDelete.java

@@ -1,40 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckRemoveType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapBoolean;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-
-class ActionDelete extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			EmpowerLog empowerLog = emc.find(id, EmpowerLog.class);
-			if (null == empowerLog) {
-				throw new ExceptionEntityNotExist(id, EmpowerLog.class);
-			}
-			if (effectivePerson.isNotManager()) {
-				throw new ExceptionAccessDenied(effectivePerson, empowerLog);
-			}
-			emc.beginTransaction(EmpowerLog.class);
-			emc.remove(empowerLog, CheckRemoveType.all);
-			emc.commit();
-			ApplicationCache.notify(EmpowerLog.class);
-			Wo wo = new Wo();
-			wo.setValue(true);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WrapBoolean {
-
-	}
-}

+ 0 - 45
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListNext.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import java.util.List;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-
-class ActionListNext extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String id, Integer count) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		if (effectivePerson.isNotManager()) {
-			throw new ExceptionAccessDenied(effectivePerson);
-		}
-		result = this.standardListNext(Wo.copier, id, count, JpaObject.sequence_FIELDNAME, null, null, null, null, null,
-				null, null, null, true, DESC);
-		return result;
-	}
-
-	public static class Wo extends EmpowerLog {
-
-		private static final long serialVersionUID = -7495725325510376323L;
-
-		public static WrapCopier<EmpowerLog, Wo> copier = WrapCopierFactory.wo(EmpowerLog.class, Wo.class,
-				JpaObject.singularAttributeField(EmpowerLog.class, true, true), null);
-
-		@FieldDescribe("排序号")
-		private Long rank;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 44
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListPrev.java

@@ -1,44 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import java.util.List;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-
-class ActionListPrev extends BaseAction {
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String id, Integer count) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		if (effectivePerson.isNotManager()) {
-			throw new ExceptionAccessDenied(effectivePerson);
-		}
-		result = this.standardListPrev(Wo.copier, id, count, JpaObject.sequence_FIELDNAME, null, null, null, null, null,
-				null, null, null, true, DESC);
-		return result;
-	}
-
-	public static class Wo extends EmpowerLog {
-
-		private static final long serialVersionUID = 4663181401822986160L;
-
-		public static WrapCopier<EmpowerLog, Wo> copier = WrapCopierFactory.wo(EmpowerLog.class, Wo.class,
-				JpaObject.singularAttributeField(EmpowerLog.class, true, true), null);
-
-		@FieldDescribe("排序号")
-		private Long rank;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 76
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListToCurrentPersonPaging.java

@@ -1,76 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-import com.x.organization.core.entity.accredit.EmpowerLog_;
-
-class ActionListToCurrentPersonPaging extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size, JsonElement jsonElement)
-			throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			EntityManager em = emc.get(EmpowerLog.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-			Root<EmpowerLog> root = cq.from(EmpowerLog.class);
-			Predicate p = cb.equal(root.get(EmpowerLog_.toPerson), effectivePerson.getDistinguishedName());
-			if (StringUtils.isNotEmpty(wi.getKey())) {
-				String key = "%" + StringTools.escapeSqlLikeKey(wi.getKey()) + "%";
-				p = cb.and(p, cb.like(root.get(EmpowerLog_.title), key, StringTools.SQL_ESCAPE_CHAR));
-			}
-			List<Wo> wos = emc.fetchDescPaging(EmpowerLog.class, Wo.copier, p, page, size,
-					EmpowerLog.createTime_FIELDNAME);
-			result.setData(wos);
-			result.setCount(emc.count(EmpowerLog.class, p));
-			return result;
-		}
-	}
-
-	public static class Wo extends EmpowerLog {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<EmpowerLog, Wo> copier = WrapCopierFactory.wo(EmpowerLog.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-	public class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("匹配关键字")
-		private String key;
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-	}
-
-}

+ 0 - 75
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionListWithCurrentPersonPaging.java

@@ -1,75 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-import com.x.organization.core.entity.accredit.EmpowerLog_;
-
-class ActionListWithCurrentPersonPaging extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size, JsonElement jsonElement)
-			throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			EntityManager em = emc.get(EmpowerLog.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-			Root<EmpowerLog> root = cq.from(EmpowerLog.class);
-			Predicate p = cb.equal(root.get(EmpowerLog_.fromPerson), effectivePerson.getDistinguishedName());
-			if (StringUtils.isNotEmpty(wi.getKey())) {
-				String key = "%" + StringTools.escapeSqlLikeKey(wi.getKey()) + "%";
-				p = cb.and(p, cb.like(root.get(EmpowerLog_.title), key, StringTools.SQL_ESCAPE_CHAR));
-			}
-			List<Wo> wos = emc.fetchDescPaging(EmpowerLog.class, Wo.copier, p, page, size,
-					EmpowerLog.createTime_FIELDNAME);
-			result.setData(wos);
-			result.setCount(emc.count(EmpowerLog.class, p));
-			return result;
-		}
-	}
-
-	public static class Wo extends EmpowerLog {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<EmpowerLog, Wo> copier = WrapCopierFactory.wo(EmpowerLog.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-	public class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("匹配关键字")
-		private String key;
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-	}
-}

+ 0 - 125
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/ActionManagerListPaging.java

@@ -1,125 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.DateTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.accredit.EmpowerLog;
-import com.x.organization.core.entity.accredit.EmpowerLog_;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import java.util.List;
-
-class ActionManagerListPaging extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size, JsonElement jsonElement)
-			throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			EntityManager em = emc.get(EmpowerLog.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-			Root<EmpowerLog> root = cq.from(EmpowerLog.class);
-			Predicate p = cb.conjunction();
-			if(effectivePerson.isManager()) {
-				if (StringUtils.isNotEmpty(wi.getFromPerson())) {
-					String key = "%" + StringTools.escapeSqlLikeKey(wi.getFromPerson()) + "%";
-					p = cb.and(p, cb.like(root.get(EmpowerLog_.fromPerson), key, StringTools.SQL_ESCAPE_CHAR));
-				}
-			}else{
-				p = cb.and(p, cb.equal(root.get(EmpowerLog_.fromPerson), effectivePerson.getDistinguishedName()));
-			}
-			if(DateTools.isDateTimeOrDate(wi.getStartTime())){
-				p = cb.and(p, cb.greaterThan(root.get(EmpowerLog_.createTime), DateTools.parse(wi.getStartTime())));
-			}
-			if(DateTools.isDateTimeOrDate(wi.getEndTime())){
-				p = cb.and(p, cb.lessThan(root.get(EmpowerLog_.createTime), DateTools.parse(wi.getEndTime())));
-			}
-			if (StringUtils.isNotEmpty(wi.getKey())) {
-				String key = "%" + StringTools.escapeSqlLikeKey(wi.getKey()) + "%";
-				p = cb.and(p, cb.like(root.get(EmpowerLog_.title), key, StringTools.SQL_ESCAPE_CHAR));
-			}
-			List<Wo> wos = emc.fetchDescPaging(EmpowerLog.class, Wo.copier, p, page, size,
-					EmpowerLog.createTime_FIELDNAME);
-			result.setData(wos);
-			result.setCount(emc.count(EmpowerLog.class, p));
-			return result;
-		}
-	}
-
-	public static class Wo extends EmpowerLog {
-
-		private static final long serialVersionUID = 4279205128463146835L;
-
-		static WrapCopier<EmpowerLog, Wo> copier = WrapCopierFactory.wi(EmpowerLog.class, Wo.class,
-				JpaObject.singularAttributeField(EmpowerLog.class, true, true), null);
-
-	}
-
-	public class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("授权人")
-		private String fromPerson;
-
-		@FieldDescribe("匹配关键字")
-		private String key;
-
-		@FieldDescribe("(授权创建时间)开始时间yyyy-MM-dd HH:mm:ss")
-		private String startTime;
-
-		@FieldDescribe("(授权创建时间)结束时间yyyy-MM-dd HH:mm:ss")
-		private String endTime;
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-		public String getFromPerson() {
-			return fromPerson;
-		}
-
-		public void setFromPerson(String fromPerson) {
-			this.fromPerson = fromPerson;
-		}
-
-		public String getStartTime() {
-			return startTime;
-		}
-
-		public void setStartTime(String startTime) {
-			this.startTime = startTime;
-		}
-
-		public String getEndTime() {
-			return endTime;
-		}
-
-		public void setEndTime(String endTime) {
-			this.endTime = endTime;
-		}
-
-	}
-
-}

+ 0 - 7
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/BaseAction.java

@@ -1,7 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-}

+ 0 - 148
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/empowerlog/EmpowerLogAction.java

@@ -1,148 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.empowerlog;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("empowerlog")
-@JaxrsDescribe("委托日志操作")
-public class EmpowerLogAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(EmpowerLogAction.class);
-
-	@JaxrsMethodDescribe(value = "管理员列示委托日志对象,下一页.", action = ActionListNext.class)
-	@GET
-	@Path("list/{id}/next/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listNext(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id,
-			@JaxrsParameterDescribe("数量") @PathParam("count") Integer count) {
-		ActionResult<List<ActionListNext.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListNext().execute(effectivePerson, id, count);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员列示委托日志对象,上一页.", action = ActionListPrev.class)
-	@GET
-	@Path("list/{id}/prev/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listPrev(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id,
-			@JaxrsParameterDescribe("数量") @PathParam("count") Integer count) {
-		ActionResult<List<ActionListPrev.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListPrev().execute(effectivePerson, id, count);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员的委托日志.", action = ActionListWithCurrentPersonPaging.class)
-	@POST
-	@Path("list/currentperson/paging/{page}/size/{size}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listWithCurrentPersonPaging(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request, @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
-			@JaxrsParameterDescribe("数量") @PathParam("size") Integer size, JsonElement jsonElement) {
-		ActionResult<List<ActionListWithCurrentPersonPaging.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListWithCurrentPersonPaging().execute(effectivePerson, page, size, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前人员的被委托日志.", action = ActionListToCurrentPersonPaging.class)
-	@POST
-	@Path("list/to/currentperson/paging/{page}/size/{size}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listToCurrentPersonPaging(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request, @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
-			@JaxrsParameterDescribe("数量") @PathParam("size") Integer size, JsonElement jsonElement) {
-		ActionResult<List<ActionListToCurrentPersonPaging.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListToCurrentPersonPaging().execute(effectivePerson, page, size, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "删除委托日志.", action = ActionDelete.class)
-	@DELETE
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionDelete().execute(effectivePerson, id);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "管理员根据条件查询委托日志.", action = ActionManagerListPaging.class)
-	@POST
-	@Path("manager/list/paging/{page}/size/{size}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void managerlistPaging(@Suspended final AsyncResponse asyncResponse,
-											@Context HttpServletRequest request, @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
-											@JaxrsParameterDescribe("数量") @PathParam("size") Integer size, JsonElement jsonElement) {
-		ActionResult<List<ActionManagerListPaging.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionManagerListPaging().execute(effectivePerson, page, size, jsonElement);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, jsonElement);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-}

+ 0 - 41
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionGet.java

@@ -1,41 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoText;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-/**
- * 专门用于腾讯企业邮第一次开通API接口时用于认证.
- * 开通的认证端口必须是80,443或者8080,腾讯不会访问其他端口.
- * 
- * @author zhour
- *
- */
-class ActionGet extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String msg_signature, String timestamp, String nonce,
-			String echostr) throws Exception {
-		logger.debug("腾讯企业邮收到,msg_signature:{}, timestamp:{}, nonce:{}, echostr:{}.", msg_signature, timestamp, nonce,
-				echostr);
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		ActionResult<Wo> result = new ActionResult<>();
-		Wo wo = new Wo();
-		WXBizMsgCrypt crypt = new WXBizMsgCrypt(Config.exmail().getToken(), Config.exmail().getEncodingAesKey(),
-				Config.exmail().getCorpId());
-		String value = crypt.VerifyURL(msg_signature, timestamp, nonce, echostr);
-		wo.setText(value);
-		result.setData(wo);
-		return result;
-	}
-
-	public static class Wo extends WoText {
-	}
-
-}

+ 0 - 50
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionListTitlePassive.java

@@ -1,50 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapString;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.PersonAttribute;
-
-class ActionListTitlePassive extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson) throws Exception {
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			List<Wo> wos = this.list(business, effectivePerson);
-			result.setData(wos);
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, EffectivePerson effectivePerson) throws Exception {
-		List<Wo> wos = new ArrayList<>();
-		Person person = business.person().pick(effectivePerson.getDistinguishedName());
-		PersonAttribute attribute = business.entityManagerContainer().firstEqualAndEqual(PersonAttribute.class,
-				PersonAttribute.name_FIELDNAME, Config.exmail().getPersonAttributeTitleName(),
-				PersonAttribute.person_FIELDNAME, person.getId());
-		if (null != attribute) {
-			for (String str : attribute.getAttributeList()) {
-				Wo wo = new Wo();
-				wo.setValue(str);
-				wos.add(wo);
-			}
-		}
-		return wos;
-	}
-
-	public static class Wo extends WrapString {
-	}
-
-}

+ 0 - 54
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionNewCount.java

@@ -1,54 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.connection.HttpConnection;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapCount;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-
-class ActionNewCount extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wo wo = this.get(business, effectivePerson);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private Wo get(Business business, EffectivePerson effectivePerson) throws Exception {
-		Wo wo = new Wo();
-		wo.setCount(0L);
-		Person person = business.person().pick(effectivePerson.getDistinguishedName());
-		String mail = person.getMail();
-		String address = Config.exmail().getNewCountAddress() + "?access_token="
-				+ Config.exmail().newRemindAccessToken() + "&userid=" + mail;
-		Resp resp = HttpConnection.getAsObject(address, null, Resp.class);
-		if (resp.errcode == null || resp.errcode != 0) {
-			throw new ExceptionNewCount(gson.toJson(resp));
-		}
-		wo.setCount(resp.count);
-		return wo;
-	}
-
-	public static class Resp {
-
-		private Integer errcode;
-		private String errmsg;
-		private Long count;
-
-	}
-
-	public static class Wo extends WrapCount {
-	}
-
-}

+ 0 - 54
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionNewCountPassive.java

@@ -1,54 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.util.List;
-
-import org.apache.commons.lang3.math.NumberUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapCount;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.PersonAttribute;
-
-class ActionNewCountPassive extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wo wo = this.get(business, effectivePerson);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private Wo get(Business business, EffectivePerson effectivePerson) throws Exception {
-		Wo wo = new Wo();
-		wo.setCount(0L);
-		Person person = business.person().pick(effectivePerson.getDistinguishedName());
-		PersonAttribute attribute = business.entityManagerContainer().firstEqualAndEqual(PersonAttribute.class,
-				PersonAttribute.name_FIELDNAME, Config.exmail().getPersonAttributeNewCountName(),
-				PersonAttribute.person_FIELDNAME, person.getId());
-		if (null != attribute) {
-			List<String> list = attribute.getAttributeList();
-			if (ListTools.isNotEmpty(list)) {
-				if (NumberUtils.isCreatable(list.get(0))) {
-					wo.setCount(NumberUtils.toLong(list.get(0)));
-				}
-			}
-		}
-		return wo;
-	}
-
-	public static class Wo extends WrapCount {
-	}
-
-}

+ 0 - 140
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionPost.java

@@ -1,140 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.apache.commons.lang3.StringUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.exception.ExceptionEntityNotExist;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapBoolean;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.DateTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.PersonAttribute;
-
-class ActionPost extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionPost.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String msg_signature, String timestamp, String nonce,
-			String body) throws Exception {
-
-		logger.debug("腾讯企业邮收到,msg_signature:{}, timestamp:{}, nonce:{}, body:{}.", msg_signature, timestamp, nonce,
-				body);
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wo wo = new Wo();
-			wo.setValue(false);
-
-			WXBizMsgCrypt crypt = new WXBizMsgCrypt(Config.exmail().getToken(), Config.exmail().getEncodingAesKey(),
-					Config.exmail().getCorpId());
-			String msg = crypt.DecryptMsg(msg_signature, timestamp, nonce, body);
-			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-			DocumentBuilder db = dbf.newDocumentBuilder();
-			StringReader sr = new StringReader(msg);
-			InputSource is = new InputSource(sr);
-			Document document = db.parse(is);
-			Element root = document.getDocumentElement();
-
-			NodeList userIDNodeList = root.getElementsByTagName("UserID");
-			NodeList toUserIDNodeList = root.getElementsByTagName("ToUserID");
-
-			if (userIDNodeList.getLength() != 0) {
-				/* 未读邮件提醒 */
-				String mail = userIDNodeList.item(0).getTextContent();
-				Person person = emc.firstEqual(Person.class, Person.mail_FIELDNAME, mail);
-				if (null == person) {
-					throw new ExceptionEntityNotExist(mail, Person.class);
-				}
-				emc.beginTransaction(PersonAttribute.class);
-				String unReadCount = root.getElementsByTagName("UnReadCount").item(0).getTextContent();
-				this.updateNewCount(business, person, unReadCount);
-				emc.commit();
-			} else if (toUserIDNodeList.getLength() != 0) {
-				/* 新邮件提醒 */
-				String mail = toUserIDNodeList.item(0).getTextContent();
-				Person person = emc.firstEqual(Person.class, Person.mail_FIELDNAME, mail);
-				if (null == person) {
-					throw new ExceptionEntityNotExist(mail, Person.class);
-				}
-				emc.beginTransaction(PersonAttribute.class);
-				String fromUser = root.getElementsByTagName("FromUser").item(0).getTextContent();
-				String title = root.getElementsByTagName("Title").item(0).getTextContent();
-				String time = root.getElementsByTagName("Time").item(0).getTextContent();
-				String newCount = root.getElementsByTagName("NewCount").item(0).getTextContent();
-				this.updateNewCount(business, person, newCount);
-				this.updateTitle(business, person, time, title, fromUser);
-				emc.commit();
-				wo.setValue(true);
-			}
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private void updateNewCount(Business business, Person person, String newCount) throws Exception {
-		PersonAttribute attribute = business.entityManagerContainer().firstEqualAndEqual(PersonAttribute.class,
-				PersonAttribute.name_FIELDNAME, Config.exmail().getPersonAttributeNewCountName(),
-				PersonAttribute.person_FIELDNAME, person.getId());
-		if (null == attribute) {
-			attribute = new PersonAttribute();
-			attribute.setPerson(person.getId());
-			attribute.setName(Config.exmail().getPersonAttributeNewCountName());
-			attribute.setAttributeList(new ArrayList<String>());
-			business.entityManagerContainer().persist(attribute, CheckPersistType.all);
-		}
-		attribute.getAttributeList().clear();
-		attribute.getAttributeList().add(newCount);
-	}
-
-	private void updateTitle(Business business, Person person, String time, String title, String fromUser)
-			throws Exception {
-		Date date = new Date();
-		date.setTime(Long.parseLong(time) * 1000);
-		String text = DateTools.format(date, "MM-dd HH:mm") + " " + (StringUtils.isBlank(title) ? "..." : title) + " "
-				+ fromUser;
-		text = StringTools.utf8SubString(text, JpaObject.length_255B);
-		PersonAttribute attribute = business.entityManagerContainer().firstEqualAndEqual(PersonAttribute.class,
-				PersonAttribute.name_FIELDNAME, Config.exmail().getPersonAttributeTitleName(),
-				PersonAttribute.person_FIELDNAME, person.getId());
-		if (null == attribute) {
-			attribute = new PersonAttribute();
-			attribute.setPerson(person.getId());
-			attribute.setName(Config.exmail().getPersonAttributeTitleName());
-			attribute.setAttributeList(new ArrayList<String>());
-			business.entityManagerContainer().persist(attribute, CheckPersistType.all);
-		}
-		List<String> list = attribute.getAttributeList();
-		list.add(text);
-		for (int i = list.size() - 1; i >= 20; i--) {
-			list.remove(i);
-		}
-	}
-
-	public static class Wo extends WrapBoolean {
-	}
-
-}

+ 0 - 65
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ActionSso.java

@@ -1,65 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.connection.HttpConnection;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-
-class ActionSso extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
-		if (!Config.exmail().getEnable()) {
-			throw new ExceptionExmailDisable();
-		}
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wo wo = this.get(business, effectivePerson);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private Wo get(Business business, EffectivePerson effectivePerson) throws Exception {
-		Wo wo = new Wo();
-		Person person = business.person().pick(effectivePerson.getDistinguishedName());
-		String mail = person.getMail();
-		String address = Config.exmail().getSsoAddress() + "?access_token=" + Config.exmail().ssoAccessToken()
-				+ "&userid=" + mail;
-		Resp resp = HttpConnection.getAsObject(address, null, Resp.class);
-		if (resp.errcode == null || resp.errcode != 0) {
-			throw new ExceptionNewCount(gson.toJson(resp));
-		}
-		wo.setUrl(resp.login_url);
-		return wo;
-	}
-
-	public static class Resp {
-
-		private Integer errcode;
-		private String errmsg;
-		private String login_url;
-		private Integer expires_in;
-
-	}
-
-	public static class Wo extends GsonPropertyObject {
-
-		private String url;
-
-		public String getUrl() {
-			return url;
-		}
-
-		public void setUrl(String url) {
-			this.url = url;
-		}
-
-	}
-
-}

+ 0 - 46
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/AesException.java

@@ -1,46 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-public class AesException extends Exception {
-	public final static int OK = 0;
-	public final static int ValidateSignatureError = -40001;
-	public final static int ParseXmlError = -40002;
-	public final static int ComputeSignatureError = -40003;
-	public final static int IllegalAesKey = -40004;
-	public final static int ValidateCorpidError = -40005;
-	public final static int EncryptAESError = -40006;
-	public final static int DecryptAESError = -40007;
-	public final static int IllegalBuffer = -40008;
-	private int code;
-
-	private static String getMessage(int code) {
-		switch (code) {
-		case ValidateSignatureError:
-			return "签名验证错误";
-		case ParseXmlError:
-			return "xml解析失败";
-		case ComputeSignatureError:
-			return "sha加密生成签名失败";
-		case IllegalAesKey:
-			return "SymmetricKey非法";
-		case ValidateCorpidError:
-			return "corpid校验失败";
-		case EncryptAESError:
-			return "aes加密失败";
-		case DecryptAESError:
-			return "aes解密失败";
-		case IllegalBuffer:
-			return "解密后得到的buffer非法";
-		default:
-			return null;
-		}
-	}
-
-	public int getCode() {
-		return code;
-	}
-
-	AesException(int code) {
-		super(getMessage(code));
-		this.code = code;
-	}
-}

+ 0 - 7
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/BaseAction.java

@@ -1,7 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-}

+ 0 - 26
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ByteGroup.java

@@ -1,26 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.util.ArrayList;
-
-class ByteGroup {
-	ArrayList<Byte> byteContainer = new ArrayList<Byte>();
-
-	public byte[] toBytes() {
-		byte[] bytes = new byte[byteContainer.size()];
-		for (int i = 0; i < byteContainer.size(); i++) {
-			bytes[i] = byteContainer.get(i);
-		}
-		return bytes;
-	}
-
-	public ByteGroup addBytes(byte[] bytes) {
-		for (byte b : bytes) {
-			byteContainer.add(b);
-		}
-		return this;
-	}
-
-	public int size() {
-		return byteContainer.size();
-	}
-}

+ 0 - 12
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExceptionExmailDisable.java

@@ -1,12 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionExmailDisable extends PromptException {
-
-	private static final long serialVersionUID = -3439770681867963457L;
-
-	ExceptionExmailDisable() {
-		super("没有启用腾讯企业邮.");
-	}
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExceptionNewCount.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionNewCount extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ExceptionNewCount(String msg) {
-		super("获取新邮件数量失败:{}.", msg);
-	}
-
-}

+ 0 - 132
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/ExmailAction.java

@@ -1,132 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("exmail")
-@JaxrsDescribe("腾讯企业邮")
-public class ExmailAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ExmailAction.class);
-
-	@JaxrsMethodDescribe(value = "获取当前用户的exmail邮件数量.", action = ActionNewCount.class)
-	@GET
-	@Path("new/count")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void newCount(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<ActionNewCount.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionNewCount().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前用户的exmail邮件数量,通过回调写入PersonAttribute", action = ActionNewCountPassive.class)
-	@GET
-	@Path("new/count/passive")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void newCountPassive(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<ActionNewCountPassive.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionNewCountPassive().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "列示当前用户腾讯企业邮标题,通过回调写入PersonAttribute", action = ActionListTitlePassive.class)
-	@GET
-	@Path("list/title/passive")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listTitlePassive(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<List<ActionListTitlePassive.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionListTitlePassive().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取当前用户邮件单点登录地址.", action = ActionSso.class)
-	@GET
-	@Path("sso")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void sso(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
-		ActionResult<ActionSso.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionSso().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "接收腾讯企业邮回调Get方法.", action = ActionGet.class)
-	@GET
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@QueryParam("msg_signature") String msg_signature, @QueryParam("timestamp") String timestamp,
-			@QueryParam("nonce") String nonce, @QueryParam("echostr") String echostr) {
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		ActionResult<ActionGet.Wo> result = new ActionResult<>();
-		try {
-			result = new ActionGet().execute(effectivePerson, msg_signature, timestamp, nonce, echostr);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "接收腾讯企业邮回调Post方法.", action = ActionPost.class)
-	@POST
-	public void post(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@QueryParam("msg_signature") String msg_signature, @QueryParam("timestamp") String timestamp,
-			@QueryParam("nonce") String nonce, String body) {
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		ActionResult<ActionPost.Wo> result = new ActionResult<>();
-		try {
-			result = new ActionPost().execute(effectivePerson, msg_signature, timestamp, nonce, body);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 67
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/PKCS7Encoder.java

@@ -1,67 +0,0 @@
-/**
- * 对公众平台发送给公众账号的消息加解密示例代码.
- * 
- * @copyright Copyright (c) 1998-2014 Tencent Inc.
- */
-
-// ------------------------------------------------------------------------
-
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.nio.charset.Charset;
-import java.util.Arrays;
-
-/**
- * 提供基于PKCS7算法的加解密接口.
- */
-class PKCS7Encoder {
-	static Charset CHARSET = Charset.forName("utf-8");
-	static int BLOCK_SIZE = 32;
-
-	/**
-	 * 获得对明文进行补位填充的字节.
-	 * 
-	 * @param count 需要进行填充补位操作的明文字节个数
-	 * @return 补齐用的字节数组
-	 */
-	static byte[] encode(int count) {
-		// 计算需要填充的位数
-		int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE);
-		if (amountToPad == 0) {
-			amountToPad = BLOCK_SIZE;
-		}
-		// 获得补位所用的字符
-		char padChr = chr(amountToPad);
-		String tmp = new String();
-		for (int index = 0; index < amountToPad; index++) {
-			tmp += padChr;
-		}
-		return tmp.getBytes(CHARSET);
-	}
-
-	/**
-	 * 删除解密后明文的补位字符
-	 * 
-	 * @param decrypted 解密后的明文
-	 * @return 删除补位字符后的明文
-	 */
-	static byte[] decode(byte[] decrypted) {
-		int pad = (int) decrypted[decrypted.length - 1];
-		if (pad < 1 || pad > 32) {
-			pad = 0;
-		}
-		return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad);
-	}
-
-	/**
-	 * 将数字转化成ASCII码对应的字符,用于对明文进行补码
-	 * 
-	 * @param a 需要转化的数字
-	 * @return 转化得到的字符
-	 */
-	static char chr(int a) {
-		byte target = (byte) (a & 0xFF);
-		return (char) target;
-	}
-
-}

+ 0 - 61
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/SHA1.java

@@ -1,61 +0,0 @@
-/**
- * 对公众平台发送给公众账号的消息加解密示例代码.
- * 
- * @copyright Copyright (c) 1998-2014 Tencent Inc.
- */
-
-// ------------------------------------------------------------------------
-
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.security.MessageDigest;
-import java.util.Arrays;
-
-/**
- * SHA1 class
- *
- * 计算公众平台的消息签名接口.
- */
-class SHA1 {
-
-	/**
-	 * 用SHA1算法生成安全签名
-	 * @param token 票据
-	 * @param timestamp 时间戳
-	 * @param nonce 随机字符串
-	 * @param encrypt 密文
-	 * @return 安全签名
-	 * @throws AesException 
-	 */
-	public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws AesException
-			  {
-		try {
-			String[] array = new String[] { token, timestamp, nonce, encrypt };
-			StringBuffer sb = new StringBuffer();
-			// 字符串排序
-			Arrays.sort(array);
-			for (int i = 0; i < 4; i++) {
-				sb.append(array[i]);
-			}
-			String str = sb.toString();
-			// SHA1签名生成
-			MessageDigest md = MessageDigest.getInstance("SHA-1");
-			md.update(str.getBytes());
-			byte[] digest = md.digest();
-
-			StringBuffer hexstr = new StringBuffer();
-			String shaHex = "";
-			for (int i = 0; i < digest.length; i++) {
-				shaHex = Integer.toHexString(digest[i] & 0xFF);
-				if (shaHex.length() < 2) {
-					hexstr.append(0);
-				}
-				hexstr.append(shaHex);
-			}
-			return hexstr.toString();
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new AesException(AesException.ComputeSignatureError);
-		}
-	}
-}

+ 0 - 294
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/WXBizMsgCrypt.java

@@ -1,294 +0,0 @@
-/**
- * 对公众平台发送给公众账号的消息加解密示例代码.
- * 
- * @copyright Copyright (c) 1998-2014 Tencent Inc.
- */
-
-// ------------------------------------------------------------------------
-
-/**
- * 针对org.apache.commons.codec.binary.Base64,
- * 需要导入架包commons-codec-1.9(或commons-codec-1.8等其他版本)
- * 官方下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
- */
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.Random;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.apache.commons.codec.binary.Base64;
-
-/**
- * 提供接收和推送给公众平台消息的加解密接口(UTF8编码的字符串).
- * <ol>
- * <li>第三方回复加密消息给公众平台</li>
- * <li>第三方收到公众平台发送的消息,验证消息的安全性,并对消息进行解密。</li>
- * </ol>
- * 说明:异常java.security.InvalidKeyException:illegal Key Size的解决方案
- * <ol>
- * <li>在官方网站下载JCE无限制权限策略文件(JDK7的下载地址:
- * http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html</li>
- * <li>下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt</li>
- * <li>如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件</li>
- * <li>如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件</li>
- * </ol>
- */
-public class WXBizMsgCrypt {
-	static Charset CHARSET = Charset.forName("utf-8");
-	Base64 base64 = new Base64();
-	byte[] aesKey;
-	String token;
-	String corpId;
-
-	/**
-	 * 构造函数
-	 * 
-	 * @param token          公众平台上,开发者设置的token
-	 * @param encodingAesKey 公众平台上,开发者设置的EncodingAESKey
-	 * @param corpId         企业的corpid
-	 * 
-	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
-	 */
-	public WXBizMsgCrypt(String token, String encodingAesKey, String corpId) throws AesException {
-		if (encodingAesKey.length() != 43) {
-			throw new AesException(AesException.IllegalAesKey);
-		}
-
-		this.token = token;
-		this.corpId = corpId;
-		// aesKey = Base64.decodeBase64(encodingAesKey + "=");
-		/**
-		 * 默认的方法 aesKey = Base64.decodeBase64(encodingAesKey + "=");
-		 * 实际运行有报错
-		 */
-		java.util.Base64.Decoder decoder = java.util.Base64.getDecoder();
-		aesKey = decoder.decode(encodingAesKey);
-	}
-
-	// 生成4个字节的网络字节序
-	byte[] getNetworkBytesOrder(int sourceNumber) {
-		byte[] orderBytes = new byte[4];
-		orderBytes[3] = (byte) (sourceNumber & 0xFF);
-		orderBytes[2] = (byte) (sourceNumber >> 8 & 0xFF);
-		orderBytes[1] = (byte) (sourceNumber >> 16 & 0xFF);
-		orderBytes[0] = (byte) (sourceNumber >> 24 & 0xFF);
-		return orderBytes;
-	}
-
-	// 还原4个字节的网络字节序
-	int recoverNetworkBytesOrder(byte[] orderBytes) {
-		int sourceNumber = 0;
-		for (int i = 0; i < 4; i++) {
-			sourceNumber <<= 8;
-			sourceNumber |= orderBytes[i] & 0xff;
-		}
-		return sourceNumber;
-	}
-
-	// 随机生成16位字符串
-	String getRandomStr() {
-		String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-		Random random = new Random();
-		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < 16; i++) {
-			int number = random.nextInt(base.length());
-			sb.append(base.charAt(number));
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * 对明文进行加密.
-	 * 
-	 * @param text 需要加密的明文
-	 * @return 加密后base64编码的字符串
-	 * @throws AesException aes加密失败
-	 */
-	String encrypt(String randomStr, String text) throws AesException {
-		ByteGroup byteCollector = new ByteGroup();
-		byte[] randomStrBytes = randomStr.getBytes(CHARSET);
-		byte[] textBytes = text.getBytes(CHARSET);
-		byte[] networkBytesOrder = getNetworkBytesOrder(textBytes.length);
-		byte[] corpidBytes = corpId.getBytes(CHARSET);
-
-		// randomStr + networkBytesOrder + text + corpid
-		byteCollector.addBytes(randomStrBytes);
-		byteCollector.addBytes(networkBytesOrder);
-		byteCollector.addBytes(textBytes);
-		byteCollector.addBytes(corpidBytes);
-
-		// ... + pad: 使用自定义的填充方式对明文进行补位填充
-		byte[] padBytes = PKCS7Encoder.encode(byteCollector.size());
-		byteCollector.addBytes(padBytes);
-
-		// 获得最终的字节流, 未加密
-		byte[] unencrypted = byteCollector.toBytes();
-
-		try {
-			// 设置加密模式为AES的CBC模式
-			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
-			SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
-			IvParameterSpec iv = new IvParameterSpec(aesKey, 0, 16);
-			cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
-
-			// 加密
-			byte[] encrypted = cipher.doFinal(unencrypted);
-
-			// 使用BASE64对加密后的字符串进行编码
-			String base64Encrypted = base64.encodeToString(encrypted);
-
-			return base64Encrypted;
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new AesException(AesException.EncryptAESError);
-		}
-	}
-
-	/**
-	 * 对密文进行解密.
-	 * 
-	 * @param text 需要解密的密文
-	 * @return 解密得到的明文
-	 * @throws AesException aes解密失败
-	 */
-	String decrypt(String text) throws AesException {
-		byte[] original;
-		try {
-			// 设置解密模式为AES的CBC模式
-			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
-			SecretKeySpec key_spec = new SecretKeySpec(aesKey, "AES");
-			IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16));
-			cipher.init(Cipher.DECRYPT_MODE, key_spec, iv);
-
-			// 使用BASE64对密文进行解码
-			byte[] encrypted = Base64.decodeBase64(text);
-
-			// 解密
-			original = cipher.doFinal(encrypted);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new AesException(AesException.DecryptAESError);
-		}
-
-		String xmlContent, from_corpid;
-		try {
-			// 去除补位字符
-			byte[] bytes = PKCS7Encoder.decode(original);
-
-			// 分离16位随机字符串,网络字节序和corpId
-			byte[] networkOrder = Arrays.copyOfRange(bytes, 16, 20);
-
-			int xmlLength = recoverNetworkBytesOrder(networkOrder);
-
-			xmlContent = new String(Arrays.copyOfRange(bytes, 20, 20 + xmlLength), CHARSET);
-			from_corpid = new String(Arrays.copyOfRange(bytes, 20 + xmlLength, bytes.length), CHARSET);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new AesException(AesException.IllegalBuffer);
-		}
-
-		// corpid不相同的情况
-		if (!from_corpid.equals(corpId)) {
-			throw new AesException(AesException.ValidateCorpidError);
-		}
-		return xmlContent;
-
-	}
-
-	/**
-	 * 将公众平台回复用户的消息加密打包.
-	 * <ol>
-	 * <li>对要发送的消息进行AES-CBC加密</li>
-	 * <li>生成安全签名</li>
-	 * <li>将消息密文和安全签名打包成xml格式</li>
-	 * </ol>
-	 * 
-	 * @param replyMsg  公众平台待回复用户的消息,xml格式的字符串
-	 * @param timeStamp 时间戳,可以自己生成,也可以用URL参数的timestamp
-	 * @param nonce     随机串,可以自己生成,也可以用URL参数的nonce
-	 * 
-	 * @return 加密后的可以直接回复用户的密文,包括msg_signature, timestamp, nonce, encrypt的xml格式的字符串
-	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
-	 */
-	public String EncryptMsg(String replyMsg, String timeStamp, String nonce) throws AesException {
-		// 加密
-		String encrypt = encrypt(getRandomStr(), replyMsg);
-
-		// 生成安全签名
-		if (timeStamp == "") {
-			timeStamp = Long.toString(System.currentTimeMillis());
-		}
-
-		String signature = SHA1.getSHA1(token, timeStamp, nonce, encrypt);
-
-		// System.out.println("发送给平台的签名是: " + signature[1].toString());
-		// 生成发送的xml
-		String result = XMLParse.generate(encrypt, signature, timeStamp, nonce);
-		return result;
-	}
-
-	/**
-	 * 检验消息的真实性,并且获取解密后的明文.
-	 * <ol>
-	 * <li>利用收到的密文生成安全签名,进行签名验证</li>
-	 * <li>若验证通过,则提取xml中的加密消息</li>
-	 * <li>对消息进行解密</li>
-	 * </ol>
-	 * 
-	 * @param msgSignature 签名串,对应URL参数的msg_signature
-	 * @param timeStamp    时间戳,对应URL参数的timestamp
-	 * @param nonce        随机串,对应URL参数的nonce
-	 * @param postData     密文,对应POST请求的数据
-	 * 
-	 * @return 解密后的原文
-	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
-	 */
-	public String DecryptMsg(String msgSignature, String timeStamp, String nonce, String postData) throws AesException {
-
-		// 密钥,公众账号的app secret
-		// 提取密文
-		Object[] encrypt = XMLParse.extract(postData);
-
-		// 验证安全签名
-		String signature = SHA1.getSHA1(token, timeStamp, nonce, encrypt[1].toString());
-
-		// 和URL中的签名比较是否相等
-		// System.out.println("第三方收到URL中的签名:" + msg_sign);
-		// System.out.println("第三方校验签名:" + signature);
-		if (!signature.equals(msgSignature)) {
-			throw new AesException(AesException.ValidateSignatureError);
-		}
-
-		// 解密
-		String result = decrypt(encrypt[1].toString());
-		return result;
-	}
-
-	/**
-	 * 验证URL
-	 * 
-	 * @param msgSignature 签名串,对应URL参数的msg_signature
-	 * @param timeStamp    时间戳,对应URL参数的timestamp
-	 * @param nonce        随机串,对应URL参数的nonce
-	 * @param echoStr      随机串,对应URL参数的echostr
-	 * 
-	 * @return 解密之后的echostr
-	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
-	 */
-	public String VerifyURL(String msgSignature, String timeStamp, String nonce, String echoStr) throws AesException {
-		String signature = SHA1.getSHA1(token, timeStamp, nonce, echoStr);
-
-		if (!signature.equals(msgSignature)) {
-			throw new AesException(AesException.ValidateSignatureError);
-		}
-
-		String result = decrypt(echoStr);
-		return result;
-	}
-
-}

+ 0 - 96
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/exmail/XMLParse.java

@@ -1,96 +0,0 @@
-/**
- * 对公众平台发送给公众账号的消息加解密示例代码.
- * 
- * @copyright Copyright (c) 1998-2014 Tencent Inc.
- */
-
-// ------------------------------------------------------------------------
-
-package com.x.organization.assemble.personal.jaxrs.exmail;
-
-import java.io.StringReader;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-
-/**
- * XMLParse class
- *
- * 提供提取消息格式中的密文及生成回复消息格式的接口.
- */
-class XMLParse {
-
-//	/**
-//	 * 提取出xml数据包中的加密消息
-//	 * @param xmltext 待提取的xml字符串
-//	 * @return 提取出的加密消息字符串
-//	 * @throws AesException 
-//	 */
-//	public static Object[] extract(String xmltext) throws AesException     {
-//		Object[] result = new Object[3];
-//		try {
-//			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-//			DocumentBuilder db = dbf.newDocumentBuilder();
-//			StringReader sr = new StringReader(xmltext);
-//			InputSource is = new InputSource(sr);
-//			Document document = db.parse(is);
-//
-//			Element root = document.getDocumentElement();
-//			NodeList nodelist1 = root.getElementsByTagName("Encrypt");
-//			NodeList nodelist2 = root.getElementsByTagName("ToUserName");
-//			result[0] = 0;
-//			result[1] = nodelist1.item(0).getTextContent();
-//			result[2] = nodelist2.item(0).getTextContent();
-//			return result;
-//		} catch (Exception e) {
-//			e.printStackTrace();
-//			throw new AesException(AesException.ParseXmlError);
-//		}
-//	}
-
-	/**
-	 * 修改过的extract类,result[2]是不存在的.
-	 */
-	public static Object[] extract(String xmltext) throws AesException {
-		Object[] result = new Object[2];
-		try {
-			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-			DocumentBuilder db = dbf.newDocumentBuilder();
-			StringReader sr = new StringReader(xmltext);
-			InputSource is = new InputSource(sr);
-			Document document = db.parse(is);
-
-			Element root = document.getDocumentElement();
-			NodeList nodelist1 = root.getElementsByTagName("Encrypt");
-			result[0] = 0;
-			result[1] = nodelist1.item(0).getTextContent();
-			return result;
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new AesException(AesException.ParseXmlError);
-		}
-	}
-
-	/**
-	 * 生成xml消息
-	 * 
-	 * @param encrypt   加密后的消息密文
-	 * @param signature 安全签名
-	 * @param timestamp 时间戳
-	 * @param nonce     随机字符串
-	 * @return 生成的xml字符串
-	 */
-	public static String generate(String encrypt, String signature, String timestamp, String nonce) {
-
-		String format = "<xml>\n" + "<Encrypt><![CDATA[%1$s]]></Encrypt>\n"
-				+ "<MsgSignature><![CDATA[%2$s]]></MsgSignature>\n" + "<TimeStamp>%3$s</TimeStamp>\n"
-				+ "<Nonce><![CDATA[%4$s]]></Nonce>\n" + "</xml>";
-		return String.format(format, encrypt, signature, timestamp, nonce);
-
-	}
-}

+ 0 - 74
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/ActionGetWithPerson.java

@@ -1,74 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.icon;
-
-import java.util.Objects;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.type.GenderType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoFile;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-
-import net.sf.ehcache.Element;
-
-class ActionGetWithPerson extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<Wo> result = new ActionResult<>();
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), flag);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((Wo) element.getObjectValue());
-			} else {
-				Wo wo = this.get(business, flag);
-				business.cache().put(new Element(cacheKey, wo));
-				result.setData(wo);
-			}
-			return result;
-		}
-	}
-
-	private Wo get(Business business, String flag) throws Exception {
-		String base64;
-		if (Config.token().isInitialManager(flag)) {
-			/* 如果是xadmin单独处理 */
-			base64 = com.x.base.core.project.config.Person.ICON_MANAGER;
-		} else {
-			Person person = business.person().pick(flag);
-			if (null == person) {
-				base64 = com.x.base.core.project.config.Person.ICON_UNKOWN;
-			} else {
-				base64 = person.getIcon();
-				if (StringUtils.isEmpty(base64)) {
-					if (Objects.equals(GenderType.m, person.getGenderType())) {
-						base64 = com.x.base.core.project.config.Person.ICON_MALE;
-					} else if (Objects.equals(GenderType.f, person.getGenderType())) {
-						base64 = com.x.base.core.project.config.Person.ICON_FEMALE;
-					} else {
-						base64 = com.x.base.core.project.config.Person.ICON_UNKOWN;
-					}
-				}
-			}
-		}
-		byte[] bs = Base64.decodeBase64(base64);
-		Wo wo = new Wo(bs, this.contentType(false, "icon.png"), this.contentDisposition(false, "icon.png"));
-		return wo;
-	}
-
-	public static class Wo extends WoFile {
-
-		public Wo(byte[] bytes, String contentType, String contentDisposition) {
-			super(bytes, contentType, contentDisposition);
-		}
-
-	}
-}

+ 0 - 7
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/BaseAction.java

@@ -1,7 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.icon;
-
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-}

+ 0 - 59
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/icon/IconAction.java

@@ -1,59 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.icon;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-import org.glassfish.jersey.media.multipart.FormDataParam;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("icon")
-@JaxrsDescribe("头像")
-/**
- * 用于无权限取得指定用户头像
- **/
-public class IconAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(IconAction.class);
-
-	@JaxrsMethodDescribe(value = "获取个人头像.", action = ActionGetWithPerson.class)
-	@GET
-	@Path("{person}")
-	/**
-	 多个适配外部取头像,比如阿里
-	 * */
-	@Consumes({ MediaType.APPLICATION_JSON, MediaType.TEXT_HTML })
-	public void getIcon(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("应用标识") @PathParam("person") String person) {
-		ActionResult<ActionGetWithPerson.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionGetWithPerson().execute(effectivePerson, person);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-}

+ 0 - 7
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ActionBase.java

@@ -1,7 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.password;
-
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-abstract class ActionBase extends StandardJaxrsAction {
-
-}

+ 0 - 124
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ActionChangePassword.java

@@ -1,124 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.password;
-
-import java.util.Date;
-
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapBoolean;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.Crypto;
-import com.x.organization.assemble.personal.Business;
-import com.x.organization.core.entity.Person;
-
-import com.x.base.core.project.annotation.FieldDescribe;
-
-class ActionChangePassword extends ActionBase {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionChangePassword.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		/* 管理员不可以修改密码 */
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			if (Config.token().isInitialManager(effectivePerson.getDistinguishedName())) {
-				throw new ExceptionEditInitialManagerDeny();
-			}
-			Person person = business.person().pick(effectivePerson.getDistinguishedName());
-			person = emc.find(person.getId(), Person.class);
-			if (null == person) {
-				throw new ExceptionPersonNotExisted(effectivePerson.getDistinguishedName());
-			}
-			if (StringUtils.isEmpty(wi.getOldPassword())) {
-				throw new ExceptionOldPasswordEmpty();
-			}
-			if (StringUtils.isEmpty(wi.getNewPassword())) {
-				throw new ExceptionNewPasswordEmpty();
-			}
-			if (StringUtils.isEmpty(wi.getConfirmPassword())) {
-				throw new ConfirmPasswordEmptyException();
-			}
-			if (!StringUtils.equals(wi.getNewPassword(), wi.getConfirmPassword())) {
-				throw new ExceptionTwicePasswordNotMatch();
-			}
-			if (StringUtils.equals(wi.getNewPassword(), wi.getOldPassword())) {
-				throw new ExceptionNewPasswordSameAsOldPassword();
-			}
-			if (BooleanUtils.isTrue(Config.person().getSuperPermission())
-					&& StringUtils.equals(Config.token().getPassword(), wi.getOldPassword())) {
-				logger.info("user{name:" + person.getName() + "} use superPermission.");
-			} else {
-				if (!StringUtils.equals(Crypto.encrypt(wi.getOldPassword(), Config.token().getKey()),
-						person.getPassword())) {
-					throw new ExceptionOldPasswordNotMatch();
-				}
-				if (!wi.getNewPassword().matches(Config.person().getPasswordRegex())) {
-					throw new ExceptionInvalidPassword(Config.person().getPasswordRegexHint());
-				}
-
-//				if (PasswordTools.checkPasswordStrength(wi.getNewPassword()) < 4) {
-//					throw new ExceptionInvalidPassword();
-//				}
-			}
-			emc.beginTransaction(Person.class);
-			person.setPassword(Crypto.encrypt(wi.getNewPassword(), Config.token().getKey()));
-			person.setChangePasswordTime(new Date());
-			emc.commit();
-			Wo wo = new Wo();
-			wo.setValue(true);
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wo extends WrapBoolean {
-	}
-
-	public static class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("原密码")
-		private String oldPassword;
-
-		@FieldDescribe("新密码")
-		private String newPassword;
-
-		@FieldDescribe("确认新密码")
-		private String confirmPassword;
-
-		public String getOldPassword() {
-			return oldPassword;
-		}
-
-		public void setOldPassword(String oldPassword) {
-			this.oldPassword = oldPassword;
-		}
-
-		public String getConfirmPassword() {
-			return confirmPassword;
-		}
-
-		public void setConfirmPassword(String confirmPassword) {
-			this.confirmPassword = confirmPassword;
-		}
-
-		public String getNewPassword() {
-			return newPassword;
-		}
-
-		public void setNewPassword(String newPassword) {
-			this.newPassword = newPassword;
-		}
-
-	}
-
-}

+ 0 - 13
o2server/x_organization_assemble_personal/src/main/webapp/describe/sources/com/x/organization/assemble/personal/jaxrs/password/ConfirmPasswordEmptyException.java

@@ -1,13 +0,0 @@
-package com.x.organization.assemble.personal.jaxrs.password;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ConfirmPasswordEmptyException extends PromptException {
-
-	private static final long serialVersionUID = -3885997486474873786L;
-
-	ConfirmPasswordEmptyException() {
-		super("确认密码不能为空.");
-	}
-
-}

Some files were not shown because too many files changed in this diff