diff --git a/0 b/0
new file mode 100644
index 0000000..e69de29
diff --git a/README.md b/README.md
index 59455b2..537f7bb 100755
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
简介
----
-WindChat 是一款开源免费私有IM聊天软件,原身是Akaxin即时通讯开源软件,由原开发者SAM2O2O个人维护,主要面向企业定制IM,全端开源,免费。
+WindChat 是一款开源免费私有IM聊天软件,由核心开发者SAM2O2O等维护,主要面向企业定制IM,开源、免费。
特性:
@@ -85,13 +85,10 @@ WindChat Team版本 命令:
**2. 下载客户端**
Android 客户端:
-> * [Android 源码地址GitHub](https://github.com/WindChat/wind-android.git)
-> * GitHube地址 : https://github.com/WindChat/wind-android.git
-> * [Android 源码地址Gitee](https://gitee.com/wind-chat/wind-android.git)
-> * Gitee地址 :(https://gitee.com/wind-chat/wind-android.git)
+> Android 端暂未开源,敬请期待
iOS 客户端:
-> iOS 暂未开源,预计2020-06-14 开源
+> iOS 端暂未开源,敬请期待
**3. 访问站点**
@@ -120,6 +117,7 @@ iOS 客户端:
WindChat 具有灵活、强大的扩展机制 `(“管理平台” 就是一个扩展)`。通过嵌入WEB页面,与后端的扩展API进行交互, 可以很轻松的构建丰富的业务功能,如:
* 附近交友
+* 线上打卡
* 店铺点评
* 在线游戏
* 等等等等
diff --git a/pom.xml b/pom.xml
index 284d1fe..b8d769f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
2.8.21.2.311.7.25
- 23.6-jre
+ 29.0-jre3.21.0.18.0.16
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/OpenzalyAdminApplication.java b/windchat-admin/src/main/java/com/windchat/im/web/OpenzalyAdminApplication.java
index 659d005..b716c79 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/OpenzalyAdminApplication.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/OpenzalyAdminApplication.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/AbstractController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/AbstractController.java
index d059d84..e9331f0 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/AbstractController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/AbstractController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/CommomController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/CommomController.java
index 0adccd6..e683992 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/CommomController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/CommomController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/ConfigManageController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/ConfigManageController.java
index 95ca925..8b80261 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/ConfigManageController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/ConfigManageController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/GroupManageController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/GroupManageController.java
index adc5b69..d3d2844 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/GroupManageController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/GroupManageController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/PluginManageController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/PluginManageController.java
index 0b2291b..83c4a93 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/PluginManageController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/PluginManageController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UICManageController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UICManageController.java
index b6eafe0..fd5a8d8 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UICManageController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UICManageController.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UserManageController.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UserManageController.java
index 6afc4c4..0e60cb0 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UserManageController.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/controller/UserManageController.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/ConfigManageService.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/ConfigManageService.java
index 4e6a077..4e15710 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/ConfigManageService.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/ConfigManageService.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/GroupManageService.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/GroupManageService.java
index d82754b..bc3f561 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/GroupManageService.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/GroupManageService.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/PluginManageService.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/PluginManageService.java
index f5b16e3..9863cb9 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/PluginManageService.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/PluginManageService.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UICManageService.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UICManageService.java
index f899ab8..5fad33d 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UICManageService.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UICManageService.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UserManageService.java b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UserManageService.java
index 16a8782..713adce 100755
--- a/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UserManageService.java
+++ b/windchat-admin/src/main/java/com/windchat/im/web/admin/service/impl/UserManageService.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-boot/openzaly-server.config b/windchat-boot/openzaly-server.config
deleted file mode 100755
index f11bfcf..0000000
--- a/windchat-boot/openzaly-server.config
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# Copyright 2018-2028 Akaxin Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-########################################################
-### ***************Akaxin ***************
-### openzaly-server
-########################################################
-
-
-
-## personal/PERSONAL edition : use sqlite database
-## team/TEAM edition : use mysql database,support one master with several slaves
-## enterprise/ENTERPRISE edition : use mysql + redis database ,support im server distribution
-## ultimate edition : team or enterprise customization
-openzaly.edition=PERSONAL
-
-
-# openzaly version
-openzaly.version=1.0.7
-
-##### site tcp address,clients connect to site.address
-site.address=0.0.0.0
-# site tcp port default 2021
-site.port=2021
-
-# pluginapi server address
-pluginapi.address=0.0.0.0
-# pluginapi server port
-pluginapi.port=8280
-
-# default back-stage management address
-site.admin.address=127.0.0.1
-# default back-stage management port
-site.admin.port=8288
-
-# first user login site,use this user invite code(UIC)
-site.uic=000000
-
-# deposit pictures,audio,db default current path
-# site.baseDir=${pwd}
-# goup max members count = 100
-# group.members.count=100
-
-## if openzaly.edition = personal/PERSONAL
-openzaly.sqlite.url=openzalyDB.sqlite3
-
-
-## if openzaly.edition = team/TEAM
-openzaly.mysql.host=localhost
-openzaly.mysql.port=3306
-openzaly.mysql.database=openzaly
-
-openzaly.mysql.username=root
-openzaly.mysql.password=1234567890
-openzaly.mysql.initial-size=10
-openzaly.mysql.max-size=100
-openzaly.mysql.max-idle=60
-
-openzaly.mysql.useUnicode=true
-openzaly.mysql.characterEncoding=utf-8
-openzaly.mysql.verifyServerCertificate=false
-openzaly.mysql.useSSL=true
-
-
-## if openzaly.edition = enterprise/ENTERPRISE
-#### support support im server distribution
-
-## if openzaly.edition = ultimate edition
-#### openzaly support customed for team or enterprise
\ No newline at end of file
diff --git a/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigHelper.java b/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigHelper.java
index b595e1f..e5447d9 100755
--- a/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigHelper.java
+++ b/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigKey.java b/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigKey.java
index f752682..669d152 100755
--- a/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigKey.java
+++ b/windchat-boot/src/main/java/com/windchat/im/boot/config/ConfigKey.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-boot/src/main/java/com/windchat/im/boot/config/SiteDefaultIcon.java b/windchat-boot/src/main/java/com/windchat/im/boot/config/SiteDefaultIcon.java
index 13217a1..b0f06ca 100755
--- a/windchat-boot/src/main/java/com/windchat/im/boot/config/SiteDefaultIcon.java
+++ b/windchat-boot/src/main/java/com/windchat/im/boot/config/SiteDefaultIcon.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-boot/src/main/java/com/windchat/im/boot/main/Bootstrap.java b/windchat-boot/src/main/java/com/windchat/im/boot/main/Bootstrap.java
index d4e8384..c262ea6 100755
--- a/windchat-boot/src/main/java/com/windchat/im/boot/main/Bootstrap.java
+++ b/windchat-boot/src/main/java/com/windchat/im/boot/main/Bootstrap.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-boot/src/main/java/com/windchat/im/boot/utils/PropertiesUtils.java b/windchat-boot/src/main/java/com/windchat/im/boot/utils/PropertiesUtils.java
index e744f69..42c21d6 100755
--- a/windchat-boot/src/main/java/com/windchat/im/boot/utils/PropertiesUtils.java
+++ b/windchat-boot/src/main/java/com/windchat/im/boot/utils/PropertiesUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-boot/src/main/resources/openzaly-server.config b/windchat-boot/src/main/resources/openzaly-server.config
index d17724f..2b309b7 100755
--- a/windchat-boot/src/main/resources/openzaly-server.config
+++ b/windchat-boot/src/main/resources/openzaly-server.config
@@ -1,5 +1,5 @@
#
-# Copyright 2018-2028 Akaxin Group
+# Copyright 2018-2028 WindChat Group
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/bean/ApiActions.java b/windchat-business/src/main/java/com/windchat/im/business/bean/ApiActions.java
new file mode 100644
index 0000000..e2bf6ac
--- /dev/null
+++ b/windchat-business/src/main/java/com/windchat/im/business/bean/ApiActions.java
@@ -0,0 +1,19 @@
+package com.windchat.im.business.bean;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * customized annotation
+ *
+ * @author Librena
+ * @since 2020-10-20
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface ApiActions {
+
+ String action();
+
+}
diff --git a/windchat-business/src/main/java/com/windchat/im/business/constant/NoticeText.java b/windchat-business/src/main/java/com/windchat/im/business/constant/NoticeText.java
index 7ec52a7..d54d33e 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/constant/NoticeText.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/constant/NoticeText.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,9 +22,9 @@ package com.windchat.im.business.constant;
* @since 2017-12-28 14:38:15
*/
public interface NoticeText {
- public String USER_ADD_FRIEND = "我通过了你的好友验证,现在可以开始聊天了";
- public String USER_ADD_GROUP = " 加入了群聊";
+ String USER_ADD_FRIEND = "我通过了你的好友验证,现在可以开始聊天了";
+ String USER_ADD_GROUP = " 加入了群聊";
- public String USER_ADD_GROUP_QR_CODE = " 通过群组二维码加入群聊";
+ String USER_ADD_GROUP_QR_CODE = " 通过群组二维码加入群聊";
}
\ No newline at end of file
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/ExpireTokenDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/ExpireTokenDao.java
index a9d1a3c..503b54e 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/ExpireTokenDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/ExpireTokenDao.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteConfigDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteConfigDao.java
index ef187ba..ae3c58e 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteConfigDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteConfigDao.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteLoginDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteLoginDao.java
index 3b14314..672519e 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteLoginDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteLoginDao.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/SitePluginDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/SitePluginDao.java
index f21bd09..db801f5 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/SitePluginDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/SitePluginDao.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteUicDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteUicDao.java
index 894d3f3..5ff4b18 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/SiteUicDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/SiteUicDao.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/UserFriendDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/UserFriendDao.java
index 9710d49..f780468 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/UserFriendDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/UserFriendDao.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-business/src/main/java/com/windchat/im/business/dao/UserProfileDao.java b/windchat-business/src/main/java/com/windchat/im/business/dao/UserProfileDao.java
index 70d74c2..ed1b987 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/dao/UserProfileDao.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/dao/UserProfileDao.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,20 +15,12 @@
*/
package com.windchat.im.business.impl.tai;
-import java.security.PublicKey;
-import java.security.Signature;
-import java.util.Base64;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import com.windchat.im.business.bean.PlatformPhoneBean;
-import com.windchat.im.business.dao.*;
-import com.windchat.im.business.impl.AbstractRequest;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import com.akaxin.proto.core.ConfigProto;
+import com.akaxin.proto.core.CoreProto;
+import com.akaxin.proto.core.UserProto;
+import com.akaxin.proto.site.ApiSiteConfigProto;
+import com.akaxin.proto.site.ApiSiteLoginProto;
+import com.akaxin.proto.site.ApiSiteRegisterProto;
import com.windchat.common.command.Command;
import com.windchat.common.command.CommandResponse;
import com.windchat.common.constant.CommandConst;
@@ -40,12 +32,7 @@ import com.windchat.common.exceptions.ZalyException2;
import com.windchat.common.logs.LogUtils;
import com.windchat.common.utils.StringHelper;
import com.windchat.common.utils.UserIdUtils;
-import com.akaxin.proto.core.ConfigProto;
-import com.akaxin.proto.core.CoreProto;
-import com.akaxin.proto.core.UserProto;
-import com.akaxin.proto.site.ApiSiteConfigProto;
-import com.akaxin.proto.site.ApiSiteLoginProto;
-import com.akaxin.proto.site.ApiSiteRegisterProto;
+import com.windchat.im.business.bean.ApiActions;
import com.windchat.im.business.bean.PlatformPhoneBean;
import com.windchat.im.business.dao.SiteConfigDao;
import com.windchat.im.business.dao.SiteLoginDao;
@@ -64,422 +51,439 @@ import com.windchat.im.storage.bean.UserDeviceBean;
import com.windchat.im.storage.bean.UserProfileBean;
import com.windchat.im.storage.bean.UserSessionBean;
import com.windchat.im.storage.service.DeviceDaoService;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.security.PublicKey;
+import java.security.Signature;
+import java.util.Base64;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
/**
- * 获取站点信息
+ * 获取站点信息
* 执行注册&&登陆
*
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2017-10-17 18:14:10
*/
+@ApiActions(action = "api.site")
public class ApiSiteService extends AbstractRequest {
- private static final Logger logger = LoggerFactory.getLogger(ApiSiteService.class);
- private static final int DEFAULT_PORT = 2021;
- private IUserDeviceDao userDeviceDao = new DeviceDaoService();
+ private static final Logger logger = LoggerFactory.getLogger(ApiSiteService.class);
+ private static final int DEFAULT_PORT = 2021;
+ private IUserDeviceDao userDeviceDao = new DeviceDaoService();
- /**
- *
- * api.site.config
- * 获取站点配置信息
- *
- *
- * @param command
- * @return
- */
- public CommandResponse config(Command command) {
- CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
- ErrorCode2 errCode = ErrorCode2.ERROR;
- try {
- Map configMap = SiteConfig.getConfigMap();
- LogUtils.requestDebugLog(logger, command, "");
+ /**
+ * 获取站点配置信息
+ *
+ * @param command
+ * @return
+ */
+ @ApiActions(action = ".config")
+ public CommandResponse config(Command command) {
+ CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
+ ErrorCode2 errCode = ErrorCode2.ERROR;
+ try {
+ Map configMap = SiteConfig.getConfigMap();
+ LogUtils.requestDebugLog(logger, command, "");
- if (configMap != null) {
- ConfigProto.SiteConfig.Builder configBuilder = ConfigProto.SiteConfig.newBuilder();
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE))) {
- configBuilder.setSiteAddress(configMap.get(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE));
- }
- if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.SITE_PORT_VALUE))) {
- configBuilder.setSitePort(Integer.valueOf(configMap.get(ConfigProto.ConfigKey.SITE_PORT_VALUE)));
- }
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_NAME_VALUE))) {
- configBuilder.setSiteName(configMap.get(ConfigProto.ConfigKey.SITE_NAME_VALUE));
- }
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_LOGO_VALUE))) {
- configBuilder.setSiteLogo(configMap.get(ConfigProto.ConfigKey.SITE_LOGO_VALUE));
- }
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_VERSION_VALUE))) {
- configBuilder.setSiteVersion(configMap.get(ConfigProto.ConfigKey.SITE_VERSION_VALUE));
- }
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_INTRODUCTION_VALUE))) {
- configBuilder.setSiteIntroduction(configMap.get(ConfigProto.ConfigKey.SITE_INTRODUCTION_VALUE));
- }
- if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.PIC_SIZE_VALUE))) {
- configBuilder.setPicSize(configMap.get(ConfigProto.ConfigKey.PIC_SIZE_VALUE));
- }
- if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.REALNAME_STATUS_VALUE))) {
- configBuilder.setRealNameConfigValue(
- Integer.valueOf(configMap.get(ConfigProto.ConfigKey.REALNAME_STATUS_VALUE)));
- }
- if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE))) {
- configBuilder.setInviteCodeConfigValue(
- Integer.valueOf(configMap.get(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE)));
- }
- ApiSiteConfigProto.ApiSiteConfigResponse response = ApiSiteConfigProto.ApiSiteConfigResponse
- .newBuilder().setSiteConfig(configBuilder.build()).build();
- commandResponse.setParams(response.toByteArray());
- errCode = ErrorCode2.SUCCESS;
- }
+ if (configMap != null) {
+ ConfigProto.SiteConfig.Builder configBuilder = ConfigProto.SiteConfig.newBuilder();
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE))) {
+ configBuilder.setSiteAddress(configMap.get(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE));
+ }
+ if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.SITE_PORT_VALUE))) {
+ configBuilder.setSitePort(Integer.valueOf(configMap.get(ConfigProto.ConfigKey.SITE_PORT_VALUE)));
+ }
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_NAME_VALUE))) {
+ configBuilder.setSiteName(configMap.get(ConfigProto.ConfigKey.SITE_NAME_VALUE));
+ }
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_LOGO_VALUE))) {
+ configBuilder.setSiteLogo(configMap.get(ConfigProto.ConfigKey.SITE_LOGO_VALUE));
+ }
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_VERSION_VALUE))) {
+ configBuilder.setSiteVersion(configMap.get(ConfigProto.ConfigKey.SITE_VERSION_VALUE));
+ }
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.SITE_INTRODUCTION_VALUE))) {
+ configBuilder.setSiteIntroduction(configMap.get(ConfigProto.ConfigKey.SITE_INTRODUCTION_VALUE));
+ }
+ if (StringUtils.isNotBlank(configMap.get(ConfigProto.ConfigKey.PIC_SIZE_VALUE))) {
+ configBuilder.setPicSize(configMap.get(ConfigProto.ConfigKey.PIC_SIZE_VALUE));
+ }
+ if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.REALNAME_STATUS_VALUE))) {
+ configBuilder.setRealNameConfigValue(
+ Integer.valueOf(configMap.get(ConfigProto.ConfigKey.REALNAME_STATUS_VALUE)));
+ }
+ if (StringUtils.isNumeric(configMap.get(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE))) {
+ configBuilder.setInviteCodeConfigValue(
+ Integer.valueOf(configMap.get(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE)));
+ }
+ ApiSiteConfigProto.ApiSiteConfigResponse response = ApiSiteConfigProto.ApiSiteConfigResponse
+ .newBuilder().setSiteConfig(configBuilder.build()).build();
+ commandResponse.setParams(response.toByteArray());
+ errCode = ErrorCode2.SUCCESS;
+ }
- } catch (Exception e) {
- errCode = ErrorCode2.ERROR_SYSTEMERROR;
- LogUtils.requestErrorLog(logger, command, e);
- }
- return commandResponse.setErrCode2(errCode);
- }
+ } catch (Exception e) {
+ errCode = ErrorCode2.ERROR_SYSTEMERROR;
+ LogUtils.requestErrorLog(logger, command, e);
+ }
+ return commandResponse.setErrCode2(errCode);
+ }
- public CommandResponse register(Command command) {
- CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
- IErrorCode errCode = ErrorCode2.ERROR;
- try {
- ApiSiteRegisterProto.ApiSiteRegisterRequest request = ApiSiteRegisterProto.ApiSiteRegisterRequest
- .parseFrom(command.getParams());
- String userIdPubk = request.getUserIdPubk();
- String userName = request.getUserName();
- String userPhoto = request.getUserPhoto();
- String userUic = request.getUserUic();
- String applyInfo = request.getApplyInfo();
- String phoneToken = request.getPhoneToken();
- String fullPhoneId = null;// 通过phoneToken 查询的 counrtyCode:phoneId
- String siteUserId = UUID.randomUUID().toString();// siteUserId保证各站不同
- String siteLoginId = request.getSiteLoginId();// 站点账号
+ /**
+ * 注册站点账户
+ *
+ * @param command
+ * @return
+ */
+ @ApiActions(action = ".register")
+ public CommandResponse register(Command command) {
+ CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
+ IErrorCode errCode = ErrorCode2.ERROR;
+ try {
+ ApiSiteRegisterProto.ApiSiteRegisterRequest request = ApiSiteRegisterProto.ApiSiteRegisterRequest
+ .parseFrom(command.getParams());
+ String userIdPubk = request.getUserIdPubk();
+ String userName = request.getUserName();
+ String userPhoto = request.getUserPhoto();
+ String userUic = request.getUserUic();
+ String applyInfo = request.getApplyInfo();
+ String phoneToken = request.getPhoneToken();
+ String fullPhoneId = null;// 通过phoneToken 查询的 counrtyCode:phoneId
+ String siteUserId = UUID.randomUUID().toString();// siteUserId保证各站不同
+ String siteLoginId = request.getSiteLoginId();// 站点账号
- LogUtils.requestDebugLog(logger, command, request.toString());
+ LogUtils.requestDebugLog(logger, command, request.toString());
- if (StringUtils.isAnyEmpty(userIdPubk, userName)) {
- throw new ZalyException2(ErrorCode2.ERROR_PARAMETER);
- }
+ if (StringUtils.isAnyEmpty(userIdPubk, userName)) {
+ throw new ZalyException2(ErrorCode2.ERROR_PARAMETER);
+ }
- if (userName.length() > 16) {
- throw new ZalyException2(ErrorCode2.ERROR_PARAMETER_NICKNAME);
- }
+ if (userName.length() > 16) {
+ throw new ZalyException2(ErrorCode2.ERROR_PARAMETER_NICKNAME);
+ }
- // 是否开启实名
- ConfigProto.RealNameConfig realNameConfig = SiteConfig.getRealNameConfig();
- switch (realNameConfig) {
- case REALNAME_YES:
- if (StringUtils.isNotBlank(phoneToken)) {
- PlatformPhoneBean bean = PlatformUserPhone.getInstance().getPhoneIdFromPlatform(phoneToken);
- fullPhoneId = bean.getFullPhoneId();
- logger.debug("user realname register,get phoneid from platform:{}", fullPhoneId);
+ // 是否开启实名
+ ConfigProto.RealNameConfig realNameConfig = SiteConfig.getRealNameConfig();
+ switch (realNameConfig) {
+ case REALNAME_YES:
+ if (StringUtils.isNotBlank(phoneToken)) {
+ PlatformPhoneBean bean = PlatformUserPhone.getInstance().getPhoneIdFromPlatform(phoneToken);
+ fullPhoneId = bean.getFullPhoneId();
+ logger.debug("user realname register,get phoneid from platform:{}", fullPhoneId);
- if (StringUtils.isEmpty(fullPhoneId)) {
- throw new ZalyException2(ErrorCode2.ERROR_REGISTER_PHONEID);
- }
- } else {
- throw new ZalyException2(ErrorCode2.ERROR_REGISTER_PHONETOKEN);
- }
- break;
- default:
- break;
- }
+ if (StringUtils.isEmpty(fullPhoneId)) {
+ throw new ZalyException2(ErrorCode2.ERROR_REGISTER_PHONEID);
+ }
+ } else {
+ throw new ZalyException2(ErrorCode2.ERROR_REGISTER_PHONETOKEN);
+ }
+ break;
+ default:
+ break;
+ }
- // 是否开启邀请码
- ConfigProto.InviteCodeConfig uicConfig = SiteConfig.getUICConfig();
- switch (uicConfig) {
- case UIC_YES:
- logger.debug("注册方式:邀请码注册");
- if (!UserUic.getInstance().checkUic(userUic, siteUserId)) {
- throw new ZalyException2(ErrorCode2.ERROR_REGISTER_UIC);
- }
- break;
- default:
- break;
- }
+ // 是否开启邀请码
+ ConfigProto.InviteCodeConfig uicConfig = SiteConfig.getUICConfig();
+ switch (uicConfig) {
+ case UIC_YES:
+ logger.debug("注册方式:邀请码注册");
+ if (!UserUic.getInstance().checkUic(userUic, siteUserId)) {
+ throw new ZalyException2(ErrorCode2.ERROR_REGISTER_UIC);
+ }
+ break;
+ default:
+ break;
+ }
- UserProfileBean regBean = new UserProfileBean();
- regBean.setSiteUserId(siteUserId);
- regBean.setUserIdPubk(userIdPubk);
- regBean.setUserName(userName);
- regBean.setUserNameInLatin(StringHelper.toLatinPinYin(userName));
- regBean.setApplyInfo(applyInfo);
- regBean.setUserPhoto(userPhoto);
- regBean.setPhoneId(fullPhoneId);
- regBean.setUserStatus(UserProto.UserStatus.NORMAL_VALUE);
- regBean.setRegisterTime(System.currentTimeMillis());
+ UserProfileBean regBean = new UserProfileBean();
+ regBean.setSiteUserId(siteUserId);
+ regBean.setUserIdPubk(userIdPubk);
+ regBean.setUserName(userName);
+ regBean.setUserNameInLatin(StringHelper.toLatinPinYin(userName));
+ regBean.setApplyInfo(applyInfo);
+ regBean.setUserPhoto(userPhoto);
+ regBean.setPhoneId(fullPhoneId);
+ regBean.setUserStatus(UserProto.UserStatus.NORMAL_VALUE);
+ regBean.setRegisterTime(System.currentTimeMillis());
- if (SiteLoginDao.getInstance().registerUser(regBean)) {
- ApiSiteRegisterProto.ApiSiteRegisterResponse response = ApiSiteRegisterProto.ApiSiteRegisterResponse
- .newBuilder().setSiteUserId(siteUserId).build();
- commandResponse.setParams(response.toByteArray());
- errCode = ErrorCode2.SUCCESS;
- } else {
- errCode = ErrorCode2.ERROR_REGISTER_USERID_UNIQUE;
- }
+ if (SiteLoginDao.getInstance().registerUser(regBean)) {
+ ApiSiteRegisterProto.ApiSiteRegisterResponse response = ApiSiteRegisterProto.ApiSiteRegisterResponse
+ .newBuilder().setSiteUserId(siteUserId).build();
+ commandResponse.setParams(response.toByteArray());
+ errCode = ErrorCode2.SUCCESS;
+ } else {
+ errCode = ErrorCode2.ERROR_REGISTER_USERID_UNIQUE;
+ }
- if (ErrorCode2.SUCCESS == errCode) {
- addUserDefaultFriendsAndGroups(siteUserId);
- // 注册成功,需要做一个管理员身份验证
- justForAdminUser(siteUserId, command.getHeader());
- }
- } catch (Exception e) {
- errCode = ErrorCode2.ERROR_SYSTEMERROR;
- LogUtils.requestErrorLog(logger, command, e);
- } catch (ZalyException2 e) {
- errCode = e.getErrCode();
- LogUtils.requestErrorLog(logger, command, e);
- }
- return commandResponse.setErrCode(errCode);
- }
+ if (ErrorCode2.SUCCESS == errCode) {
+ addUserDefaultFriendsAndGroups(siteUserId);
+ // 注册成功,需要做一个管理员身份验证
+ justForAdminUser(siteUserId, command.getHeader());
+ }
+ } catch (Exception e) {
+ errCode = ErrorCode2.ERROR_SYSTEMERROR;
+ LogUtils.requestErrorLog(logger, command, e);
+ } catch (ZalyException2 e) {
+ errCode = e.getErrCode();
+ LogUtils.requestErrorLog(logger, command, e);
+ }
+ return commandResponse.setErrCode(errCode);
+ }
- // 增加默认好友以及群组
- private void addUserDefaultFriendsAndGroups(String siteUserId) {
- try {
- Set defaultFriends = SiteConfig.getUserDefaultFriends();
- if (defaultFriends != null && defaultFriends.size() > 0) {
- for (String siteFriendId : defaultFriends) {
- UserFriendDao.getInstance().saveFriendApply(siteFriendId, siteUserId, "我已成为你的好友,给我发消息试试吧");
- UserFriendDao.getInstance().agreeApply(siteUserId, siteFriendId, true);
- ApplyFriendBean applyBean = UserFriendDao.getInstance().agreeApplyWithClear(siteUserId,
- siteFriendId, true);
- new User2Notice().addFriendTextMessage(applyBean);
- }
- }
- logger.debug("{} add default friends={}", siteUserId, defaultFriends);
- } catch (Exception e) {
- logger.error("add default friends error", e);
- }
+ // 增加默认好友以及群组
+ private void addUserDefaultFriendsAndGroups(String siteUserId) {
+ try {
+ Set defaultFriends = SiteConfig.getUserDefaultFriends();
+ if (defaultFriends != null && defaultFriends.size() > 0) {
+ for (String siteFriendId : defaultFriends) {
+ UserFriendDao.getInstance().saveFriendApply(siteFriendId, siteUserId, "我已成为你的好友,给我发消息试试吧");
+ UserFriendDao.getInstance().agreeApply(siteUserId, siteFriendId, true);
+ ApplyFriendBean applyBean = UserFriendDao.getInstance().agreeApplyWithClear(siteUserId,
+ siteFriendId, true);
+ new User2Notice().addFriendTextMessage(applyBean);
+ }
+ }
+ logger.debug("{} add default friends={}", siteUserId, defaultFriends);
+ } catch (Exception e) {
+ logger.error("add default friends error", e);
+ }
- try {
- Set defaultGroups = SiteConfig.getUserDefaultGroups();
- if (defaultGroups != null && defaultGroups.size() > 0) {
- for (String groupId : defaultGroups) {
- UserGroupDao.getInstance().addDefaultGroupMember(groupId, siteUserId);
- }
- }
- logger.debug("{} add default groups={}", siteUserId, defaultGroups);
- } catch (Exception e) {
- logger.error("add user default groups error", e);
- }
+ try {
+ Set defaultGroups = SiteConfig.getUserDefaultGroups();
+ if (defaultGroups != null && defaultGroups.size() > 0) {
+ for (String groupId : defaultGroups) {
+ UserGroupDao.getInstance().addDefaultGroupMember(groupId, siteUserId);
+ }
+ }
+ logger.debug("{} add default groups={}", siteUserId, defaultGroups);
+ } catch (Exception e) {
+ logger.error("add user default groups error", e);
+ }
- }
+ }
- private void justForAdminUser(String siteUserId, Map header) {
- try {
- // 如果站点没有管理员
- if (SiteConfig.hasNoAdminUser()) {
- logger.debug("user first time to register site server ,set it as admin:{} map:{}", siteUserId, header);
- SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_ADMIN_VALUE, siteUserId);
- if (header != null) {
- String host = header.get(CoreProto.HeaderKey.CLIENT_REQUEST_SERVER_HOST_VALUE);
- if (StringUtils.isNotEmpty(host)) {
- SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE, host);
- SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_NAME_VALUE, host);
- }
- String port = header.get(CoreProto.HeaderKey.CLIENT_REQUEST_SERVER_HOST_VALUE);
- if (StringUtils.isNotBlank(port)) {
- port = "" + DEFAULT_PORT;
- SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_PORT_VALUE, port);
- }
- // 修改邀请码注册方式
- SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE,
- ConfigProto.InviteCodeConfig.UIC_NO_VALUE + "");
- }
- SiteConfig.updateConfig();
- }
- } catch (Exception e) {
- logger.error("set site admin error", e);
- }
- }
+ private void justForAdminUser(String siteUserId, Map header) {
+ try {
+ // 如果站点没有管理员
+ if (SiteConfig.hasNoAdminUser()) {
+ logger.debug("user first time to register site server ,set it as admin:{} map:{}", siteUserId, header);
+ SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_ADMIN_VALUE, siteUserId);
+ if (header != null) {
+ String host = header.get(CoreProto.HeaderKey.CLIENT_REQUEST_SERVER_HOST_VALUE);
+ if (StringUtils.isNotEmpty(host)) {
+ SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_ADDRESS_VALUE, host);
+ SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_NAME_VALUE, host);
+ }
+ String port = header.get(CoreProto.HeaderKey.CLIENT_REQUEST_SERVER_HOST_VALUE);
+ if (StringUtils.isNotBlank(port)) {
+ port = "" + DEFAULT_PORT;
+ SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.SITE_PORT_VALUE, port);
+ }
+ // 修改邀请码注册方式
+ SiteConfigDao.getInstance().updateSiteConfig(ConfigProto.ConfigKey.INVITE_CODE_STATUS_VALUE,
+ ConfigProto.InviteCodeConfig.UIC_NO_VALUE + "");
+ }
+ SiteConfig.updateConfig();
+ }
+ } catch (Exception e) {
+ logger.error("set site admin error", e);
+ }
+ }
- /**
- * 执行用户登陆站点行为
- *
- * @param command
- * @return
- */
- public CommandResponse login(Command command) {
- CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
- IErrorCode errCode = ErrorCode2.ERROR;
- try {
- ApiSiteLoginProto.ApiSiteLoginRequest loginRequest = ApiSiteLoginProto.ApiSiteLoginRequest
- .parseFrom(command.getParams());
- String userIdPubk = loginRequest.getUserIdPubk();
- String userIdSignBase64 = loginRequest.getUserIdSignBase64();
- String userDeviceIdPubk = loginRequest.getUserDeviceIdPubk();
- String userDeviceIdSignBase64 = loginRequest.getUserDeviceIdSignBase64();
- String userDeviceName = loginRequest.getUserDeviceName();
- String userToken = loginRequest.getUserToken();
- String phoneToken = loginRequest.getPhoneToken();
- LogUtils.requestDebugLog(logger, command, loginRequest.toString());
+ /**
+ * 执行用户登录站点行为
+ *
+ * @param command
+ * @return
+ */
+ @ApiActions(action = ".login")
+ public CommandResponse login(Command command) {
+ CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
+ IErrorCode errCode = ErrorCode2.ERROR;
+ try {
+ ApiSiteLoginProto.ApiSiteLoginRequest loginRequest = ApiSiteLoginProto.ApiSiteLoginRequest
+ .parseFrom(command.getParams());
+ String userIdPubk = loginRequest.getUserIdPubk();
+ String userIdSignBase64 = loginRequest.getUserIdSignBase64();
+ String userDeviceIdPubk = loginRequest.getUserDeviceIdPubk();
+ String userDeviceIdSignBase64 = loginRequest.getUserDeviceIdSignBase64();
+ String userDeviceName = loginRequest.getUserDeviceName();
+ String userToken = loginRequest.getUserToken();
+ String phoneToken = loginRequest.getPhoneToken();
+ LogUtils.requestDebugLog(logger, command, loginRequest.toString());
- if (StringUtils.isAnyEmpty(userIdPubk, userIdSignBase64)) {
- throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_USERID_EMPTY);
- }
+ if (StringUtils.isAnyEmpty(userIdPubk, userIdSignBase64)) {
+ throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_USERID_EMPTY);
+ }
- if (StringUtils.isAnyEmpty(userDeviceIdPubk, userDeviceIdSignBase64)) {
- throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_DEVICEID_EMPTY);
- }
+ if (StringUtils.isAnyEmpty(userDeviceIdPubk, userDeviceIdSignBase64)) {
+ throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_DEVICEID_EMPTY);
+ }
- // if (StringUtils.isEmpty(userToken)) {
- // throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_USERTOKEN_EMPTY);
- // }
+ // if (StringUtils.isEmpty(userToken)) {
+ // throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_USERTOKEN_EMPTY);
+ // }
- PublicKey userPubKey = RSACrypto.getRSAPubKeyFromPem(userIdPubk);// 个人身份公钥,解密Sign签名,解密Key
- Signature userSign = Signature.getInstance("SHA512withRSA");
- userSign.initVerify(userPubKey);
- userSign.update(userIdPubk.getBytes());// 原文
- boolean userSignResult = userSign.verify(Base64.getDecoder().decode(userIdSignBase64));
- logger.debug("userSignResult={}", userSignResult);
+ PublicKey userPubKey = RSACrypto.getRSAPubKeyFromPem(userIdPubk);// 个人身份公钥,解密Sign签名,解密Key
+ Signature userSign = Signature.getInstance("SHA512withRSA");
+ userSign.initVerify(userPubKey);
+ userSign.update(userIdPubk.getBytes());// 原文
+ boolean userSignResult = userSign.verify(Base64.getDecoder().decode(userIdSignBase64));
+ logger.debug("userSignResult={}", userSignResult);
- if (userSignResult) {
- Signature userDeviceSign = Signature.getInstance("SHA512withRSA");
- userDeviceSign.initVerify(userPubKey);
- userDeviceSign.update(userDeviceIdPubk.getBytes());// 原文
- userSignResult = userDeviceSign.verify(Base64.getDecoder().decode(userDeviceIdSignBase64));
- }
- logger.debug("deviceSignResult={}", userSignResult);
+ if (userSignResult) {
+ Signature userDeviceSign = Signature.getInstance("SHA512withRSA");
+ userDeviceSign.initVerify(userPubKey);
+ userDeviceSign.update(userDeviceIdPubk.getBytes());// 原文
+ userSignResult = userDeviceSign.verify(Base64.getDecoder().decode(userDeviceIdSignBase64));
+ }
+ logger.debug("deviceSignResult={}", userSignResult);
- // 用户身份校验成功,方可执行登陆操作
- if (!userSignResult) {
- throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_ERRORSIGN);
- }
+ // 用户身份校验成功,方可执行登陆操作
+ if (!userSignResult) {
+ throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_ERRORSIGN);
+ }
- // 登陆去平台实名机制校验
- String globalUserId = verifyPlatformPhoneAndGetGlobalUserId(userIdPubk, phoneToken);
+ // 登陆去平台实名机制校验
+ String globalUserId = verifyPlatformPhoneAndGetGlobalUserId(userIdPubk, phoneToken);
- // 判断用户,是否已经注册,从主库中查找
- SimpleUserBean subean = UserProfileDao.getInstance().getSimpleProfileByGlobalUserId(globalUserId, true);
- if (subean == null || StringUtils.isEmpty(subean.getUserId())) {
- logger.info("login site: new user need to register before login site");
- errCode = ErrorCode2.ERROR2_LOGGIN_NOREGISTER;// 未注册,告知用户执行注册行为
- return commandResponse.setErrCode(errCode);
- }
+ // 判断用户,是否已经注册,从主库中查找
+ SimpleUserBean subean = UserProfileDao.getInstance().getSimpleProfileByGlobalUserId(globalUserId, true);
+ if (subean == null || StringUtils.isEmpty(subean.getUserId())) {
+ logger.info("login site: new user need to register before login site");
+ errCode = ErrorCode2.ERROR2_LOGGIN_NOREGISTER;// 未注册,告知用户执行注册行为
+ return commandResponse.setErrCode(errCode);
+ }
- if (subean.getUserStatus() == UserProto.UserStatus.SEALUP_VALUE) {
- logger.info("login site: user no permision as sealed up");
- errCode = ErrorCode2.ERROR2_LOGGIN_SEALUPUSER;// 禁封用户禁止登陆
- return commandResponse.setErrCode(errCode);
- }
+ if (subean.getUserStatus() == UserProto.UserStatus.SEALUP_VALUE) {
+ logger.info("login site: user no permision as sealed up");
+ errCode = ErrorCode2.ERROR2_LOGGIN_SEALUPUSER;// 禁封用户禁止登陆
+ return commandResponse.setErrCode(errCode);
+ }
- String siteUserId = subean.getUserId();
- String deviceId = HashCrypto.MD5(userDeviceIdPubk);
+ String siteUserId = subean.getUserId();
+ String deviceId = HashCrypto.MD5(userDeviceIdPubk);
- // 保存设备信息
- UserDeviceBean deviceBean = new UserDeviceBean();
- deviceBean.setDeviceId(deviceId);
- deviceBean.setDeviceName(userDeviceName);
- deviceBean.setSiteUserId(siteUserId);
- deviceBean.setUserDevicePubk(userDeviceIdPubk);
- deviceBean.setUserToken(userToken);
- deviceBean.setActiveTime(System.currentTimeMillis());
- deviceBean.setAddTime(System.currentTimeMillis());
+ // 保存设备信息
+ UserDeviceBean deviceBean = new UserDeviceBean();
+ deviceBean.setDeviceId(deviceId);
+ deviceBean.setDeviceName(userDeviceName);
+ deviceBean.setSiteUserId(siteUserId);
+ deviceBean.setUserDevicePubk(userDeviceIdPubk);
+ deviceBean.setUserToken(userToken);
+ deviceBean.setActiveTime(System.currentTimeMillis());
+ deviceBean.setAddTime(System.currentTimeMillis());
- boolean loginResult = SiteLoginDao.getInstance().updateUserDevice(deviceBean);
+ boolean loginResult = SiteLoginDao.getInstance().updateUserDevice(deviceBean);
- if (!loginResult) {// 更新失败,则重新保存数据
- loginResult = SiteLoginDao.getInstance().saveUserDevice(deviceBean);
- // 在新增设备情况下,控制设备数量
- limitUserDevice(siteUserId);
- }
+ if (!loginResult) {// 更新失败,则重新保存数据
+ loginResult = SiteLoginDao.getInstance().saveUserDevice(deviceBean);
+ // 在新增设备情况下,控制设备数量
+ limitUserDevice(siteUserId);
+ }
- logger.debug("login site: save device result={} deviceBean={}", loginResult, deviceBean.toString());
+ logger.debug("login site: save device result={} deviceBean={}", loginResult, deviceBean.toString());
- if (!loginResult) {
- // 身份校验失败
- throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_UPDATE_DEVICE);
- }
+ if (!loginResult) {
+ // 身份校验失败
+ throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_UPDATE_DEVICE);
+ }
- // 生成session
- String sessionId = UUID.randomUUID().toString();
+ // 生成session
+ String sessionId = UUID.randomUUID().toString();
- UserSessionBean sessionBean = new UserSessionBean();
- sessionBean.setLoginTime(System.currentTimeMillis());
- sessionBean.setSiteUserId(siteUserId);
- sessionBean.setOnline(true);
- sessionBean.setSessionId(sessionId);
- sessionBean.setDeviceId(deviceId);
- sessionBean.setLoginTime(System.currentTimeMillis());// 上次登陆(auth)时间
+ UserSessionBean sessionBean = new UserSessionBean();
+ sessionBean.setLoginTime(System.currentTimeMillis());
+ sessionBean.setSiteUserId(siteUserId);
+ sessionBean.setOnline(true);
+ sessionBean.setSessionId(sessionId);
+ sessionBean.setDeviceId(deviceId);
+ sessionBean.setLoginTime(System.currentTimeMillis());// 上次登陆(auth)时间
- loginResult = loginResult && SiteLoginDao.getInstance().saveUserSession(sessionBean);
+ loginResult = loginResult && SiteLoginDao.getInstance().saveUserSession(sessionBean);
- if (loginResult) {
- ApiSiteLoginProto.ApiSiteLoginResponse response = ApiSiteLoginProto.ApiSiteLoginResponse.newBuilder()
- .setSiteUserId(siteUserId).setUserSessionId(sessionId).build();
- commandResponse.setParams(response.toByteArray());
- errCode = ErrorCode2.SUCCESS;
- } else {
- errCode = ErrorCode2.ERROR2_LOGGIN_UPDATE_SESSION;
- }
- } catch (ZalyException2 e) {
- errCode = e.getErrCode();
- LogUtils.requestErrorLog(logger, command, e);
- } catch (Exception e) {
- errCode = ErrorCode2.ERROR_SYSTEMERROR;
- LogUtils.requestErrorLog(logger, command, e);
- }
- return commandResponse.setErrCode(errCode);
- }
+ if (loginResult) {
+ ApiSiteLoginProto.ApiSiteLoginResponse response = ApiSiteLoginProto.ApiSiteLoginResponse.newBuilder()
+ .setSiteUserId(siteUserId).setUserSessionId(sessionId).build();
+ commandResponse.setParams(response.toByteArray());
+ errCode = ErrorCode2.SUCCESS;
+ } else {
+ errCode = ErrorCode2.ERROR2_LOGGIN_UPDATE_SESSION;
+ }
+ } catch (ZalyException2 e) {
+ errCode = e.getErrCode();
+ LogUtils.requestErrorLog(logger, command, e);
+ } catch (Exception e) {
+ errCode = ErrorCode2.ERROR_SYSTEMERROR;
+ LogUtils.requestErrorLog(logger, command, e);
+ }
+ return commandResponse.setErrCode(errCode);
+ }
- private String verifyPlatformPhoneAndGetGlobalUserId(String userIdPubk, String phoneToken) throws ZalyException2 {
- phoneToken = null;
- if (StringUtils.isEmpty(phoneToken)) {
- logger.debug("api.site.login with phoneToken={}", phoneToken);
- return UserIdUtils.getV1GlobalUserId(userIdPubk);
- }
+ private String verifyPlatformPhoneAndGetGlobalUserId(String userIdPubk, String phoneToken) throws ZalyException2 {
+ phoneToken = null;
+ if (StringUtils.isEmpty(phoneToken)) {
+ logger.debug("api.site.login with phoneToken={}", phoneToken);
+ return UserIdUtils.getV1GlobalUserId(userIdPubk);
+ }
- // 登陆去平台校验实名机制
- ConfigProto.RealNameConfig realNameConfig = SiteConfig.getRealNameConfig();
+ // 登陆去平台校验实名机制
+ ConfigProto.RealNameConfig realNameConfig = SiteConfig.getRealNameConfig();
- if (ConfigProto.RealNameConfig.REALNAME_YES == realNameConfig) {
- PlatformPhoneBean bean = PlatformUserPhone.getInstance().getPhoneIdFromPlatform(phoneToken);
- String fullPhoneId = bean.getFullPhoneId();
- String platformUserIdPubk = bean.getUserIdPubk();
- logger.debug("get platform realname phone info bean={}", bean);
+ if (ConfigProto.RealNameConfig.REALNAME_YES == realNameConfig) {
+ PlatformPhoneBean bean = PlatformUserPhone.getInstance().getPhoneIdFromPlatform(phoneToken);
+ String fullPhoneId = bean.getFullPhoneId();
+ String platformUserIdPubk = bean.getUserIdPubk();
+ logger.debug("get platform realname phone info bean={}", bean);
- if (StringUtils.isEmpty(fullPhoneId)) {
- return UserIdUtils.getV1GlobalUserId(userIdPubk);
- }
+ if (StringUtils.isEmpty(fullPhoneId)) {
+ return UserIdUtils.getV1GlobalUserId(userIdPubk);
+ }
- if (!userIdPubk.equals(platformUserIdPubk)) {
- logger.error("api.site.login equals={} userIdPubk={} platformUserIdPubk={}", false, userIdPubk,
- platformUserIdPubk);
- return UserIdUtils.getV1GlobalUserId(userIdPubk);
- }
+ if (!userIdPubk.equals(platformUserIdPubk)) {
+ logger.error("api.site.login equals={} userIdPubk={} platformUserIdPubk={}", false, userIdPubk,
+ platformUserIdPubk);
+ return UserIdUtils.getV1GlobalUserId(userIdPubk);
+ }
- // 手机号查询用户身份
- UserProfileBean profile = UserProfileDao.getInstance().getUserProfileByFullPhoneId(fullPhoneId);
+ // 手机号查询用户身份
+ UserProfileBean profile = UserProfileDao.getInstance().getUserProfileByFullPhoneId(fullPhoneId);
- if (profile != null && StringUtils.isNoneEmpty(platformUserIdPubk, profile.getUserIdPubk())) {
+ if (profile != null && StringUtils.isNoneEmpty(platformUserIdPubk, profile.getUserIdPubk())) {
- if (platformUserIdPubk.equals(profile.getUserIdPubk())) {
- logger.debug("new site realname login verifyPlatformPhone success");
- return UserIdUtils.getV1GlobalUserId(platformUserIdPubk);
- } else {
- // 更新数据
- String globalUserId = UserIdUtils.getV1GlobalUserId(platformUserIdPubk);
- boolean updateRes = UserProfileDao.getInstance().updateUserIdPubk(profile.getSiteUserId(),
- globalUserId, userIdPubk);
+ if (platformUserIdPubk.equals(profile.getUserIdPubk())) {
+ logger.debug("new site realname login verifyPlatformPhone success");
+ return UserIdUtils.getV1GlobalUserId(platformUserIdPubk);
+ } else {
+ // 更新数据
+ String globalUserId = UserIdUtils.getV1GlobalUserId(platformUserIdPubk);
+ boolean updateRes = UserProfileDao.getInstance().updateUserIdPubk(profile.getSiteUserId(),
+ globalUserId, userIdPubk);
- if (!updateRes) {
- throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_UPDATENEWPUBK);
- }
- }
+ if (!updateRes) {
+ throw new ZalyException2(ErrorCode2.ERROR2_LOGGIN_UPDATENEWPUBK);
+ }
+ }
- }
+ }
- }
+ }
- return UserIdUtils.getV1GlobalUserId(userIdPubk);
- }
+ return UserIdUtils.getV1GlobalUserId(userIdPubk);
+ }
- // 控制用户的设备数量
- private void limitUserDevice(String siteUserId) {
- try {
- int limitNumber = 4;
- userDeviceDao.limitDeviceNum(siteUserId, limitNumber);
- } catch (Exception e) {
- logger.error(StringHelper.format("limit siteUserId={} device num error", siteUserId), e);
- }
- }
+ // 控制用户的设备数量
+ private void limitUserDevice(String siteUserId) {
+ try {
+ int limitNumber = 4;
+ userDeviceDao.limitDeviceNum(siteUserId, limitNumber);
+ } catch (Exception e) {
+ logger.error(StringHelper.format("limit siteUserId={} device num error", siteUserId), e);
+ }
+ }
}
diff --git a/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiUserService.java b/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiUserService.java
index 85f916e..2cb9818 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiUserService.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiUserService.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,16 +15,12 @@
*/
package com.windchat.im.business.impl.tai;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.windchat.im.business.dao.UserFriendDao;
-import com.windchat.im.business.dao.UserProfileDao;
-import com.windchat.im.business.impl.AbstractRequest;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import com.akaxin.proto.core.UserProto;
+import com.akaxin.proto.site.ApiUserMuteProto;
+import com.akaxin.proto.site.ApiUserProfileProto;
+import com.akaxin.proto.site.ApiUserSearchProto;
+import com.akaxin.proto.site.ApiUserUpdateMuteProto;
+import com.akaxin.proto.site.ApiUserUpdateProfileProto;
import com.windchat.common.command.Command;
import com.windchat.common.command.CommandResponse;
import com.windchat.common.constant.CommandConst;
@@ -34,17 +30,18 @@ import com.windchat.common.exceptions.ZalyException2;
import com.windchat.common.logs.LogUtils;
import com.windchat.common.utils.StringHelper;
import com.windchat.common.utils.ValidatorPattern;
-import com.akaxin.proto.core.UserProto;
-import com.akaxin.proto.site.ApiUserMuteProto;
-import com.akaxin.proto.site.ApiUserProfileProto;
-import com.akaxin.proto.site.ApiUserSearchProto;
-import com.akaxin.proto.site.ApiUserUpdateMuteProto;
-import com.akaxin.proto.site.ApiUserUpdateProfileProto;
+import com.windchat.im.business.bean.ApiActions;
import com.windchat.im.business.dao.UserFriendDao;
import com.windchat.im.business.dao.UserProfileDao;
import com.windchat.im.business.impl.AbstractRequest;
import com.windchat.im.storage.bean.UserFriendBean;
import com.windchat.im.storage.bean.UserProfileBean;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* 用户个人自身资料相关功能
@@ -52,6 +49,7 @@ import com.windchat.im.storage.bean.UserProfileBean;
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2017.11.25 15:10:36
*/
+@ApiActions(action = "api.user")
public class ApiUserService extends AbstractRequest {
private static final Logger logger = LoggerFactory.getLogger(ApiUserService.class);
@@ -61,6 +59,7 @@ public class ApiUserService extends AbstractRequest {
* @param command
* @return
*/
+ @ApiActions(action = ".search")
public CommandResponse search(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
IErrorCode errCode = ErrorCode2.ERROR;
@@ -150,6 +149,7 @@ public class ApiUserService extends AbstractRequest {
* @param command
* @return
*/
+ @ApiActions(action = ".profile")
public CommandResponse profile(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
ErrorCode2 errorCode = ErrorCode2.ERROR;
@@ -206,6 +206,7 @@ public class ApiUserService extends AbstractRequest {
* @param command
* @return
*/
+ @ApiActions(action = ".updateProfile")
public CommandResponse updateProfile(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
IErrorCode errCode = ErrorCode2.ERROR;
@@ -271,6 +272,13 @@ public class ApiUserService extends AbstractRequest {
return commandResponse.setErrCode(errCode);
}
+ /**
+ * 获取消息免打扰状态
+ *
+ * @param command
+ * @return
+ */
+ @ApiActions(action = ".mute")
public CommandResponse mute(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
ErrorCode2 errCode = ErrorCode2.ERROR;
@@ -290,6 +298,13 @@ public class ApiUserService extends AbstractRequest {
return commandResponse.setErrCode2(errCode);
}
+ /**
+ * 设置消息免打扰状态
+ *
+ * @param command
+ * @return
+ */
+ @ApiActions(action = ".updateMute")
public CommandResponse updateMute(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
ErrorCode2 errCode = ErrorCode2.ERROR;
diff --git a/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiWebService.java b/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiWebService.java
index 4922ff0..e64c420 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiWebService.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/impl/tai/ApiWebService.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,11 +15,7 @@
*/
package com.windchat.im.business.impl.tai;
-import com.windchat.im.business.impl.AbstractRequest;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import com.akaxin.proto.site.ApiWebAuthProto;
import com.windchat.common.command.Command;
import com.windchat.common.command.CommandResponse;
import com.windchat.common.constant.CommandConst;
@@ -27,9 +23,12 @@ import com.windchat.common.constant.ErrorCode2;
import com.windchat.common.constant.IErrorCode;
import com.windchat.common.exceptions.ZalyException;
import com.windchat.common.logs.LogUtils;
-import com.akaxin.proto.site.ApiWebAuthProto;
+import com.windchat.im.business.bean.ApiActions;
import com.windchat.im.business.cache.WebSessionCache;
import com.windchat.im.business.impl.AbstractRequest;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* webim服务
@@ -37,9 +36,11 @@ import com.windchat.im.business.impl.AbstractRequest;
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2017.11.25 15:10:36
*/
+@ApiActions(action = "api.web")
public class ApiWebService extends AbstractRequest {
private static final Logger logger = LoggerFactory.getLogger(ApiWebService.class);
+ @ApiActions(action = ".auth")
public CommandResponse auth(Command command) {
CommandResponse commandResponse = new CommandResponse().setAction(CommandConst.ACTION_RES);
IErrorCode errCode = ErrorCode2.ERROR;
diff --git a/windchat-business/src/main/java/com/windchat/im/business/service/ApiRequestService.java b/windchat-business/src/main/java/com/windchat/im/business/service/ApiRequestService.java
index d41cb47..25dd42a 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/service/ApiRequestService.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/service/ApiRequestService.java
@@ -1,5 +1,5 @@
-/**
- * Copyright 2018-2028 Akaxin Group
+/**
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,39 +11,37 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License.
*/
package com.windchat.im.business.service;
-import com.windchat.im.business.api.IRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.windchat.common.command.Command;
import com.windchat.common.command.CommandResponse;
import com.windchat.common.constant.CommandConst;
import com.windchat.common.constant.ErrorCode2;
import com.windchat.common.utils.StringHelper;
import com.windchat.im.business.api.IRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* API处理业务逻辑
- *
+ *
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2017.10.16
- *
*/
public class ApiRequestService implements IRequest {
- private static final Logger logger = LoggerFactory.getLogger(ApiRequestService.class);
+ private static final Logger logger = LoggerFactory.getLogger(ApiRequestService.class);
- public CommandResponse process(Command command) {
- try {
- return ApiServiceFactory.getService(command.getService()).execute(command);
- } catch (Exception e) {
- logger.error(StringHelper.format("api request service error.command={}", command), e);
- }
- return new CommandResponse().setVersion(CommandConst.PROTOCOL_VERSION).setAction(CommandConst.ACTION_RES)
- .setErrCode2(ErrorCode2.ERROR);
- }
+ public CommandResponse process(Command command) {
+ try {
+ String action = command.getRety() + "." + command.getService();
+ return ApiServiceFactory.getService(action).execute(command);
+ } catch (Exception e) {
+ logger.error(StringHelper.format("api request service error.command={}", command), e);
+ }
+ return new CommandResponse().setVersion(CommandConst.PROTOCOL_VERSION).setAction(CommandConst.ACTION_RES)
+ .setErrCode2(ErrorCode2.ERROR);
+ }
}
diff --git a/windchat-business/src/main/java/com/windchat/im/business/service/ApiServiceFactory.java b/windchat-business/src/main/java/com/windchat/im/business/service/ApiServiceFactory.java
index a2f9acd..5ee22f5 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/service/ApiServiceFactory.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/service/ApiServiceFactory.java
@@ -1,5 +1,5 @@
-/**
- * Copyright 2018-2028 Akaxin Group
+/**
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,14 +11,11 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License.
*/
package com.windchat.im.business.service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.windchat.common.constant.RequestAction;
+import com.windchat.im.business.bean.ApiActions;
import com.windchat.im.business.impl.IRequestService;
import com.windchat.im.business.impl.tai.ApiDeviceService;
import com.windchat.im.business.impl.tai.ApiFileService;
@@ -28,40 +25,50 @@ import com.windchat.im.business.impl.tai.ApiPluginService;
import com.windchat.im.business.impl.tai.ApiSecretChatService;
import com.windchat.im.business.impl.tai.ApiSiteService;
import com.windchat.im.business.impl.tai.ApiUserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
/**
* API业务请求,分发工厂
- *
+ *
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2017.10.24 18:25:31
*/
public class ApiServiceFactory {
- private static final Logger logger = LoggerFactory.getLogger(ApiServiceFactory.class);
+ private static final Logger logger = LoggerFactory.getLogger(ApiServiceFactory.class);
- public static IRequestService getService(String serviceName) {
- RequestAction nameEnum = RequestAction.getAction(serviceName);
- switch (nameEnum) {
- case SITE:
- return new ApiSiteService();
- case API_USER:
- return new ApiUserService();
- case API_FRIEND:
- return new ApiFriendService();
- case API_GROUP:
- return new ApiGroupService();
- case API_SECRETCHAT:
- return new ApiSecretChatService();
- case API_FILE:
- return new ApiFileService();
- case API_DEVICE:
- return new ApiDeviceService();
- case API_PLUGIN:
- return new ApiPluginService();
- default:
- logger.error("api business service error.service={}", nameEnum.getName());
- break;
- }
- return null;
- }
+ private static Map serviceMap = new LinkedHashMap();
+ private static List serviceList = new LinkedList();
+
+ static {
+ serviceList.add(new ApiSiteService());
+ serviceList.add(new ApiUserService());
+ serviceList.add(new ApiFriendService());
+ serviceList.add(new ApiGroupService());
+ serviceList.add(new ApiSecretChatService());
+ serviceList.add(new ApiFileService());
+ serviceList.add(new ApiDeviceService());
+ serviceList.add(new ApiPluginService());
+
+ init();
+ }
+
+ private static void init() {
+ for (IRequestService requestService : serviceList) {
+ ApiActions serviceApiAction = requestService.getClass().getDeclaredAnnotation(ApiActions.class);
+ if (serviceApiAction != null) {
+ serviceMap.put(serviceApiAction.action(), requestService);
+ }
+ }
+ }
+
+ public static IRequestService getService(String serviceAction) {
+ return serviceMap.get(serviceAction);
+ }
}
diff --git a/windchat-business/src/main/java/com/windchat/im/business/service/HttpRequestService.java b/windchat-business/src/main/java/com/windchat/im/business/service/HttpRequestService.java
index bef10a0..bfe5c39 100755
--- a/windchat-business/src/main/java/com/windchat/im/business/service/HttpRequestService.java
+++ b/windchat-business/src/main/java/com/windchat/im/business/service/HttpRequestService.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,10 +15,6 @@
*/
package com.windchat.im.business.service;
-import com.windchat.im.business.api.IRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.windchat.common.command.Command;
import com.windchat.common.command.CommandResponse;
import com.windchat.common.constant.CommandConst;
@@ -32,6 +28,8 @@ import com.windchat.im.business.impl.hai.HttpPushService;
import com.windchat.im.business.impl.hai.HttpSessionService;
import com.windchat.im.business.impl.hai.HttpSiteService;
import com.windchat.im.business.impl.hai.HttpUserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Http请求服务分发
diff --git a/windchat-common/src/main/java/com/windchat/common/channel/ChannelManager.java b/windchat-common/src/main/java/com/windchat/common/channel/ChannelManager.java
index 73222fe..dca292c 100755
--- a/windchat-common/src/main/java/com/windchat/common/channel/ChannelManager.java
+++ b/windchat-common/src/main/java/com/windchat/common/channel/ChannelManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/channel/ChannelSession.java b/windchat-common/src/main/java/com/windchat/common/channel/ChannelSession.java
index 2fe992c..f0655f1 100755
--- a/windchat-common/src/main/java/com/windchat/common/channel/ChannelSession.java
+++ b/windchat-common/src/main/java/com/windchat/common/channel/ChannelSession.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/channel/ChannelWriter.java b/windchat-common/src/main/java/com/windchat/common/channel/ChannelWriter.java
index 2da4de6..27c38e7 100755
--- a/windchat-common/src/main/java/com/windchat/common/channel/ChannelWriter.java
+++ b/windchat-common/src/main/java/com/windchat/common/channel/ChannelWriter.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/command/Command.java b/windchat-common/src/main/java/com/windchat/common/command/Command.java
index 87028bf..8661c51 100755
--- a/windchat-common/src/main/java/com/windchat/common/command/Command.java
+++ b/windchat-common/src/main/java/com/windchat/common/command/Command.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,18 +15,14 @@
*/
package com.windchat.common.command;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.windchat.common.channel.ChannelSession;
-import com.windchat.common.utils.StringHelper;
-import org.apache.commons.lang3.StringUtils;
-
import com.windchat.common.channel.ChannelSession;
import com.windchat.common.constant.CommandConst;
import com.windchat.common.utils.StringHelper;
-
import io.netty.channel.ChannelHandlerContext;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* 处理完成后的消息载体
diff --git a/windchat-common/src/main/java/com/windchat/common/command/CommandResponse.java b/windchat-common/src/main/java/com/windchat/common/command/CommandResponse.java
index a40ac1b..6022a0d 100755
--- a/windchat-common/src/main/java/com/windchat/common/command/CommandResponse.java
+++ b/windchat-common/src/main/java/com/windchat/common/command/CommandResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/command/RedisCommand.java b/windchat-common/src/main/java/com/windchat/common/command/RedisCommand.java
index f5aba45..c664163 100755
--- a/windchat-common/src/main/java/com/windchat/common/command/RedisCommand.java
+++ b/windchat-common/src/main/java/com/windchat/common/command/RedisCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/constant/IErrorCode.java b/windchat-common/src/main/java/com/windchat/common/constant/IErrorCode.java
index ee60502..eb02e12 100755
--- a/windchat-common/src/main/java/com/windchat/common/constant/IErrorCode.java
+++ b/windchat-common/src/main/java/com/windchat/common/constant/IErrorCode.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,11 @@
package com.windchat.common.constant;
public interface IErrorCode {
- public String getCode();
+ String getCode();
- public String getInfo();
+ String getInfo();
- public boolean isSuccess();
+ boolean isSuccess();
- public String toString();
+ String toString();
}
diff --git a/windchat-common/src/main/java/com/windchat/common/crypto/HashCrypto.java b/windchat-common/src/main/java/com/windchat/common/crypto/HashCrypto.java
index 23500cc..3d90c31 100755
--- a/windchat-common/src/main/java/com/windchat/common/crypto/HashCrypto.java
+++ b/windchat-common/src/main/java/com/windchat/common/crypto/HashCrypto.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/crypto/RSACrypto.java b/windchat-common/src/main/java/com/windchat/common/crypto/RSACrypto.java
index 043efec..6b0a74b 100755
--- a/windchat-common/src/main/java/com/windchat/common/crypto/RSACrypto.java
+++ b/windchat-common/src/main/java/com/windchat/common/crypto/RSACrypto.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/exceptions/ZalyWarning.java b/windchat-common/src/main/java/com/windchat/common/exceptions/ZalyWarning.java
new file mode 100755
index 0000000..08859cd
--- /dev/null
+++ b/windchat-common/src/main/java/com/windchat/common/exceptions/ZalyWarning.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018-2028 WindChat Group
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.windchat.common.exceptions;
+
+import com.windchat.common.constant.IErrorCode;
+
+/**
+ * 自定义API请求过程中产生的特殊异常
+ *
+ * @author Sam{@link an.guoyue254@gmail.com}
+ * @since 2018-04-09 12:32:08
+ */
+public class ZalyWarning extends Exception {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private IErrorCode errCode;
+
+ public ZalyWarning(IErrorCode errCode) {
+ super(errCode.toString());
+ this.errCode = errCode;
+ }
+
+ public IErrorCode getErrCode() {
+ return this.errCode;
+ }
+}
diff --git a/windchat-common/src/main/java/com/windchat/common/executor/chain/handler/MethodReflectHandler.java b/windchat-common/src/main/java/com/windchat/common/executor/chain/handler/MethodReflectHandler.java
index 3f9f0b9..9355695 100755
--- a/windchat-common/src/main/java/com/windchat/common/executor/chain/handler/MethodReflectHandler.java
+++ b/windchat-common/src/main/java/com/windchat/common/executor/chain/handler/MethodReflectHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/http/ZalyHttpClient.java b/windchat-common/src/main/java/com/windchat/common/http/ZalyHttpClient.java
index 4989c72..c2ddfbe 100755
--- a/windchat-common/src/main/java/com/windchat/common/http/ZalyHttpClient.java
+++ b/windchat-common/src/main/java/com/windchat/common/http/ZalyHttpClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/logs/AkxLog4jManager.java b/windchat-common/src/main/java/com/windchat/common/logs/AkxLog4jManager.java
index 1eaea5e..11d588c 100755
--- a/windchat-common/src/main/java/com/windchat/common/logs/AkxLog4jManager.java
+++ b/windchat-common/src/main/java/com/windchat/common/logs/AkxLog4jManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/logs/LogUtils.java b/windchat-common/src/main/java/com/windchat/common/logs/LogUtils.java
index b949739..92b8bb6 100755
--- a/windchat-common/src/main/java/com/windchat/common/logs/LogUtils.java
+++ b/windchat-common/src/main/java/com/windchat/common/logs/LogUtils.java
@@ -1,5 +1,5 @@
-/**
- * Copyright 2018-2028 Akaxin Group
+/**
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License.
*/
package com.windchat.common.logs;
@@ -22,65 +22,68 @@ import org.slf4j.Logger;
import org.slf4j.helpers.FormattingTuple;
import org.slf4j.helpers.MessageFormatter;
-import com.windchat.common.command.Command;
-import com.windchat.common.command.CommandResponse;
-import com.windchat.common.utils.StringHelper;
-
/**
* 封装log,针对网络日志以及数据库操作日志
- *
+ *
* @author Sam{@link an.guoyue254@gmail.com}
* @since 2018-01-25 16:13:00
*/
public class LogUtils extends LogCreater {
- public static void requestInfoLog(Logger logger, Command command, String messagePattern, Object... objects) {
- FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
- logger.info("client={} siteUserId={} action={} msg={}", command.getClientIp(), command.getSiteUserId(),
- command.getAction(), command.toString(), format.getMessage());
- return;
- }
+ public static void requestInfoLog(Logger logger, Command command, String messagePattern, Object... objects) {
+ FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
+ logger.info("client={} siteUserId={} action={} msg={}", command.getClientIp(), command.getSiteUserId(),
+ command.getAction(), command.toString(), format.getMessage());
+ return;
+ }
- public static void requestDebugLog(Logger logger, Command command, String requestStr) {
- logger.debug("client={} siteUserId={} action={} command={} request={}", command.getClientIp(),
- command.getSiteUserId(), command.getAction(), command.toString(), requestStr);
- }
+ public static void requestWarnLog(Logger logger, Command command, String messagePattern, Object... objects) {
+ FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
+ logger.warn("client={} siteUserId={} action={} msg={}", command.getClientIp(), command.getSiteUserId(),
+ command.getAction(), command.toString(), format.getMessage());
+ return;
+ }
- public static void requestErrorLog(Logger logger, Command command, Throwable t) {
- logger.error(StringHelper.format("client={} siteUserId={} action={} uri={} error", command.getClientIp(),
- command.getSiteUserId(), command.getAction(), command.getUri()), t);
- }
+ public static void requestDebugLog(Logger logger, Command command, String requestStr) {
+ logger.debug("client={} siteUserId={} action={} command={} request={}", command.getClientIp(),
+ command.getSiteUserId(), command.getAction(), command.toString(), requestStr);
+ }
- public static void requestErrorLog(Logger logger, Command command, Class> clazz, Throwable t) {
- logger.error(StringHelper.format("client={} siteUserId={} action={} uri={} {} error", command.getClientIp(),
- command.getSiteUserId(), command.getAction(), command.getUri(), clazz.getClass().getName()), t);
- }
+ public static void requestErrorLog(Logger logger, Command command, Throwable t) {
+ logger.error(StringHelper.format("client={} siteUserId={} action={} uri={} error", command.getClientIp(),
+ command.getSiteUserId(), command.getAction(), command.getUri()), t);
+ }
- public static void requestResultLog(Logger logger, Command command, CommandResponse response) {
- try {
- logger.info("client={} clientVersion={} siteUserId={} action={} uri={} cost={}ms result=[{}]",
- command.getClientIp(), command.getClientVersion(), command.getSiteUserId(), command.getAction(),
- command.getUri(), System.currentTimeMillis() - command.getStartTime(), response.getErrorCodeInfo());
- } catch (Exception e) {
- logger.error(StringHelper.format("request result log error command={} response={}", command, response), e);
- }
- }
+ public static void requestErrorLog(Logger logger, Command command, Class> clazz, Throwable t) {
+ logger.error(StringHelper.format("client={} siteUserId={} action={} uri={} {} error", command.getClientIp(),
+ command.getSiteUserId(), command.getAction(), command.getUri(), clazz.getClass().getName()), t);
+ }
- public static void dbDebugLog(Logger logger, long startTime, Object result, String sql, Object... objects) {
- String messagePattern = sql.replace("?", "{}");
- FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
- logger.debug("[windchat-db] cost:{}ms result:{} sql:{}", System.currentTimeMillis() - startTime, result,
- format.getMessage());
- }
+ public static void requestResultLog(Logger logger, Command command, CommandResponse response) {
+ try {
+ logger.info("client={} clientVersion={} siteUserId={} action={} uri={} cost={}ms result=[{}]",
+ command.getClientIp(), command.getClientVersion(), command.getSiteUserId(), command.getAction(),
+ command.getUri(), System.currentTimeMillis() - command.getStartTime(), response.getErrorCodeInfo());
+ } catch (Exception e) {
+ logger.error(StringHelper.format("request result log error command={} response={}", command, response), e);
+ }
+ }
- public static void info(org.apache.log4j.Logger logger, String messagePattern, Object object) {
- FormattingTuple format = MessageFormatter.format(messagePattern, object);
- logger.info(format.getMessage());
- }
+ public static void dbDebugLog(Logger logger, long startTime, Object result, String sql, Object... objects) {
+ String messagePattern = sql.replace("?", "{}");
+ FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
+ logger.debug("[windchat-db] cost:{}ms result:{} sql:{}", System.currentTimeMillis() - startTime, result,
+ format.getMessage());
+ }
- public static void info(org.apache.log4j.Logger logger, String messagePattern, Object... objects) {
- FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
- logger.info(format.getMessage());
- }
+ public static void info(org.apache.log4j.Logger logger, String messagePattern, Object object) {
+ FormattingTuple format = MessageFormatter.format(messagePattern, object);
+ logger.info(format.getMessage());
+ }
+
+ public static void info(org.apache.log4j.Logger logger, String messagePattern, Object... objects) {
+ FormattingTuple format = MessageFormatter.arrayFormat(messagePattern, objects);
+ logger.info(format.getMessage());
+ }
}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/IRedisCommandResponse.java b/windchat-common/src/main/java/com/windchat/common/netty/IRedisCommandResponse.java
index 00dbb7a..5c881c1 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/IRedisCommandResponse.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/IRedisCommandResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
*/
package com.windchat.common.netty;
-import com.windchat.common.command.RedisCommand;
import com.windchat.common.command.RedisCommand;
/**
@@ -26,10 +25,10 @@ import com.windchat.common.command.RedisCommand;
*/
public interface IRedisCommandResponse {
- public RedisCommand getRedisCommand();
+ RedisCommand getRedisCommand();
- public boolean isSuccess();
+ boolean isSuccess();
- public String getErrInfo();
+ String getErrInfo();
}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/NettyClient2.java b/windchat-common/src/main/java/com/windchat/common/netty/NettyClient2.java
index 3655865..774b3b2 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/NettyClient2.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/NettyClient2.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,17 +15,9 @@
*/
package com.windchat.common.netty;
-import java.util.concurrent.TimeUnit;
-
-import com.windchat.common.command.RedisCommand;
-import com.windchat.common.netty.codec.MessageDecoder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.windchat.common.command.RedisCommand;
import com.windchat.common.netty.codec.MessageDecoder;
import com.windchat.common.netty.codec.MessageEncoder;
-
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
@@ -44,6 +36,10 @@ import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.GlobalEventExecutor;
import io.netty.util.concurrent.Promise;
import io.netty.util.concurrent.SucceededFuture;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.concurrent.TimeUnit;
/**
* @author Sam{@link an.guoyue254@gmail.com}
@@ -93,7 +89,7 @@ public class NettyClient2 {
this.channelPromise = connectFuture.channel().newPromise();
} catch (Exception e) {
- logger.error("connect to akaxin platform error.", e);
+ logger.error("connect to WindChat platform error.", e);
}
}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/NettyClientHandler.java b/windchat-common/src/main/java/com/windchat/common/netty/NettyClientHandler.java
index 9f920ec..bd5c61c 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/NettyClientHandler.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/NettyClientHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,17 +15,13 @@
*/
package com.windchat.common.netty;
-import com.windchat.common.command.Command;
-import com.windchat.common.command.RedisCommand;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.windchat.common.command.Command;
-import com.windchat.common.command.RedisCommand;
import com.akaxin.proto.core.CoreProto;
-
+import com.windchat.common.command.Command;
+import com.windchat.common.command.RedisCommand;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author Sam{@link an.guoyue254@gmail.com}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/PlatformClientHandler.java b/windchat-common/src/main/java/com/windchat/common/netty/PlatformClientHandler.java
index 2ce65f0..04547e1 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/PlatformClientHandler.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/PlatformClientHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,17 +15,13 @@
*/
package com.windchat.common.netty;
-import com.windchat.common.command.Command;
-import com.windchat.common.command.RedisCommand;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.windchat.common.command.Command;
-import com.windchat.common.command.RedisCommand;
import com.akaxin.proto.core.CoreProto;
-
+import com.windchat.common.command.Command;
+import com.windchat.common.command.RedisCommand;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author Sam{@link an.guoyue254@gmail.com}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/PlatformSSLClient.java b/windchat-common/src/main/java/com/windchat/common/netty/PlatformSSLClient.java
index 90e2b26..f419deb 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/PlatformSSLClient.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/PlatformSSLClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,21 +15,10 @@
*/
package com.windchat.common.netty;
-import java.util.concurrent.TimeUnit;
-
-import javax.net.ssl.SSLEngine;
-
-import com.windchat.common.command.RedisCommand;
-import com.windchat.common.netty.codec.MessageDecoder;
-import com.windchat.common.ssl.ZalySSLContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.windchat.common.command.RedisCommand;
import com.windchat.common.netty.codec.MessageDecoder;
import com.windchat.common.netty.codec.MessageEncoder;
import com.windchat.common.ssl.ZalySSLContext;
-
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
@@ -50,6 +39,11 @@ import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.GlobalEventExecutor;
import io.netty.util.concurrent.Promise;
import io.netty.util.concurrent.SucceededFuture;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.SSLEngine;
+import java.util.concurrent.TimeUnit;
/**
* @author Sam{@link an.guoyue254@gmail.com}
@@ -110,7 +104,7 @@ public class PlatformSSLClient {
this.channelPromise = connectFuture.channel().newPromise();
} catch (Exception e) {
- logger.error("connect to akaxin platform error.", e);
+ logger.error("connect to WindChat platform error.", e);
}
}
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageDecoder.java b/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageDecoder.java
index b2b4d3c..e1cd95a 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageDecoder.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageDecoder.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageEncoder.java b/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageEncoder.java
index b839f71..be7a9c4 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageEncoder.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/codec/MessageEncoder.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,20 +15,17 @@
*/
package com.windchat.common.netty.codec;
-import java.nio.ByteBuffer;
-
import com.windchat.common.command.RedisCommand;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.windchat.common.command.RedisCommand;
-
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelPromise;
import io.netty.handler.codec.MessageToByteEncoder;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.nio.ByteBuffer;
/**
* 编码器
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/codec/ProtocolParser.java b/windchat-common/src/main/java/com/windchat/common/netty/codec/ProtocolParser.java
index 47f0f72..907d4c0 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/codec/ProtocolParser.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/codec/ProtocolParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/netty/codec/ReplaySignal.java b/windchat-common/src/main/java/com/windchat/common/netty/codec/ReplaySignal.java
index 79b6c3e..991a74a 100755
--- a/windchat-common/src/main/java/com/windchat/common/netty/codec/ReplaySignal.java
+++ b/windchat-common/src/main/java/com/windchat/common/netty/codec/ReplaySignal.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/utils/ServerAddress.java b/windchat-common/src/main/java/com/windchat/common/utils/ServerAddress.java
index ddf9d6d..3bf26b9 100755
--- a/windchat-common/src/main/java/com/windchat/common/utils/ServerAddress.java
+++ b/windchat-common/src/main/java/com/windchat/common/utils/ServerAddress.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/utils/ServerAddressUtils.java b/windchat-common/src/main/java/com/windchat/common/utils/ServerAddressUtils.java
index ea2e678..6ed8012 100755
--- a/windchat-common/src/main/java/com/windchat/common/utils/ServerAddressUtils.java
+++ b/windchat-common/src/main/java/com/windchat/common/utils/ServerAddressUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/utils/TimeFormats.java b/windchat-common/src/main/java/com/windchat/common/utils/TimeFormats.java
index 67139f1..f7bf85c 100755
--- a/windchat-common/src/main/java/com/windchat/common/utils/TimeFormats.java
+++ b/windchat-common/src/main/java/com/windchat/common/utils/TimeFormats.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018-2028 Akaxin Group
- *
+ * Copyright 2018-2028 WindChat Group
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/windchat-common/src/main/java/com/windchat/common/utils/URLRegexUtils.java b/windchat-common/src/main/java/com/windchat/common/utils/URLRegexUtils.java
index 43a0db1..65e44b1 100755
--- a/windchat-common/src/main/java/com/windchat/common/utils/URLRegexUtils.java
+++ b/windchat-common/src/main/java/com/windchat/common/utils/URLRegexUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-common/src/main/java/com/windchat/common/utils/UserIdUtils.java b/windchat-common/src/main/java/com/windchat/common/utils/UserIdUtils.java
index d2fe2d7..fdeda3f 100755
--- a/windchat-common/src/main/java/com/windchat/common/utils/UserIdUtils.java
+++ b/windchat-common/src/main/java/com/windchat/common/utils/UserIdUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/windchat-connector/src/main/java/com/windchat/im/connector/codec/parser/IProtocolParser.java b/windchat-connector/src/main/java/com/windchat/im/connector/codec/parser/IProtocolParser.java
index 4e32d98..cc3dce7 100755
--- a/windchat-connector/src/main/java/com/windchat/im/connector/codec/parser/IProtocolParser.java
+++ b/windchat-connector/src/main/java/com/windchat/im/connector/codec/parser/IProtocolParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2018-2028 Akaxin Group
+ * Copyright 2018-2028 WindChat Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,6 +30,6 @@ import io.netty.channel.Channel;
*/
public interface IProtocolParser {
- public void readAndOut(Channel ch, ByteBuf inByte, List