diff --git a/clients/java/wechat-ferry-mvn/CHANGELOG.md b/clients/java/wechat-ferry-mvn/CHANGELOG.md
index 16889ee..cf6c553 100644
--- a/clients/java/wechat-ferry-mvn/CHANGELOG.md
+++ b/clients/java/wechat-ferry-mvn/CHANGELOG.md
@@ -1,10 +1,43 @@
## v39.3.3
+### 功能列表
+
+| 接口名 | 地址 | 是否支持 | 备注 |
+|----------------|-------------------|------|-------------------|
+| 查询登录状态 | /loginStatus | √ | 已测试 |
+| 获取登录微信内部识别号UID | /loginWeChatUid | √ | 已测试 |
+| 获取登录微信信息 | /loginWeChatInfo | √ | 已测试 |
+| 获取消息类型列表 | /list/msgType | √ | 已测试 |
+| 获取联系人列表 | /list/contacts | √ | 已测试 |
+| 获取数据库表名称列表 | /list/dbTableName | √ | 已测试 |
+| 获取指定数据库中的表列表 | /list/dbTable | √ | 已测试 |
+| 执行数据库查询SQL | /exec/dbQuerySql | √ | 已测试 |
+| 查询群成员 | /list/groupMember | √ | 已测试 |
+| 发送消息汇总入口 | /send/msgMaster | x | 预留 |
+| 发送文本消息 | /send/textMsg | x | 该版本不支持 |
+| 发送富文本消息 | /send/richTextMsg | x | 缩略图参数需要为空,否则会发送失败 |
+| 发送XML消息 | /send/xmlMsg | ? | 待测试 |
+| 发送图片消息 | /send/imageMsg | √ | 已测试 |
+| 发送表情消息 | /send/emojiMsg | x | 该版本不支持 |
+| 发送文件消息 | /send/fileMsg | x | 该版本不支持 |
+| 拍一拍群友 | /patOnePat | √ | 已测试 |
+
### 已知BUG
- 1.发送表情微信客户端闪退 - `待修复`
- 2.发送富文本包含thumbnailUrl参数会导致消息发送不出去 - `待修复`
+### 2024-12-24
+
+#### ⛰️ Features
+
+- 执行数据库查询SQL请求接口API地址修改
+- 业务代码迁移至业务类中,并补充日志信息
+- 联系人特殊类型支持配置文件自定义
+- 接口入参新增为空校验
+- 说明文档更新
+- 配置文件有更新
+
### 2024-12-23
#### ⛰️ Features
diff --git a/clients/java/wechat-ferry-mvn/pom.xml b/clients/java/wechat-ferry-mvn/pom.xml
index 0ef4844..2b2e584 100644
--- a/clients/java/wechat-ferry-mvn/pom.xml
+++ b/clients/java/wechat-ferry-mvn/pom.xml
@@ -53,6 +53,11 @@
1.18.30
provided
+
+
+ javax.validation
+ validation-api
+
io.springfox
diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatConfiguration.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatConfiguration.java
index b2bf852..2e9b673 100644
--- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatConfiguration.java
+++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatConfiguration.java
@@ -48,7 +48,7 @@ public class WeChatConfiguration {
// client.printContacts(client.getContacts());
// 获取数据库
- log.info("dbs: {}", wechatSocketClient.getDbNames());
+ // log.info("dbs: {}", wechatSocketClient.getDbNames());
// 获取数据库下的表
String db = "MicroMsg.db";
diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatFerryProperties.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatFerryProperties.java
index 32e0578..46893a9 100644
--- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatFerryProperties.java
+++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/config/WeChatFerryProperties.java
@@ -29,6 +29,18 @@ public class WeChatFerryProperties {
*/
private Integer socketPort;
+ /**
+ * 联系人类型-官方杂号,禁止与其他分类重复(格式:代码|名称)
+ * 使用时记得需要提取代码或者名称匹配
+ */
+ private List contactsTypeMixed;
+
+ /**
+ * 联系人类型-公众号,禁止与其他分类重复(格式:代码|名称)
+ * 使用时记得需要提取代码或者名称匹配
+ */
+ private List contactsTypeOfficial;
+
/**
* 需要开启消息处理的群
*/
diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/controller/WeChatDllController.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/controller/WeChatDllController.java
index c52f92a..e52f160 100644
--- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/controller/WeChatDllController.java
+++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/controller/WeChatDllController.java
@@ -22,6 +22,7 @@ import com.wechat.ferry.entity.vo.request.WxPpWcfSendTextMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendXmlMsgReq;
import com.wechat.ferry.entity.vo.response.WxPpWcfContactsResp;
import com.wechat.ferry.entity.vo.response.WxPpWcfDatabaseRowResp;
+import com.wechat.ferry.entity.vo.response.WxPpWcfDatabaseTableResp;
import com.wechat.ferry.entity.vo.response.WxPpWcfGroupMemberResp;
import com.wechat.ferry.entity.vo.response.WxPpWcfLoginInfoResp;
import com.wechat.ferry.entity.vo.response.WxPpWcfMsgTypeResp;
@@ -79,46 +80,40 @@ public class WeChatDllController {
return TResponse.ok(ResponseCodeEnum.SUCCESS, resp);
}
- @ApiOperation(value = "获取消息类型", notes = "queryMsgTypeList")
+ @ApiOperation(value = "获取消息类型列表", notes = "queryMsgTypeList")
@PostMapping(value = "/list/msgType")
public TResponse> queryMsgTypeList() {
List list = weChatDllService.queryMsgTypeList();
return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
}
- @ApiOperation(value = "获取联系人", notes = "queryContactsList")
+ @ApiOperation(value = "获取联系人列表", notes = "queryContactsList")
@PostMapping(value = "/list/contacts")
public TResponse> queryContactsList() {
List list = weChatDllService.queryContactsList();
return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
}
- @ApiOperation(value = "获取数据库所有表名称", notes = "queryDatabaseAllTableName")
+ @ApiOperation(value = "获取数据库表名称列表", notes = "queryDbTableNameList")
@PostMapping(value = "/list/dbTableName")
- public TResponse> queryDatabaseAllTableName() {
- List list = weChatDllService.queryDatabaseAllTableName();
+ public TResponse> queryDbTableNameList() {
+ List list = weChatDllService.queryDbTableNameList();
return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
}
- @ApiOperation(value = "获取可查询数据库", notes = "queryDatabaseSql")
- @PostMapping(value = "/list/dbSql")
- public TResponse> queryDatabaseSql(@Validated @RequestBody WxPpWcfDatabaseSqlReq request) {
- List list = weChatDllService.queryDatabaseSql(request);
- return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
- }
-
- @ApiOperation(value = "获取指定数据库中的表", notes = "queryDatabaseTable")
+ @ApiOperation(value = "获取指定数据库中的表列表", notes = "queryDbTableList")
@PostMapping(value = "/list/dbTable")
- public TResponse> queryDatabaseTable(@Validated @RequestBody WxPpWcfDatabaseTableReq request) {
- List list = weChatDllService.queryDatabaseTable(request);
+ public TResponse> queryDbTableList(@Validated @RequestBody WxPpWcfDatabaseTableReq request) {
+ List list = weChatDllService.queryDbTableList(request);
return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
}
- // @ApiOperation(value = "获取语音消息", notes = "queryMsgTypeList")
- // @PostMapping(value = "/list/voiceMsg")
- // public TResponse