feat(0): [java]-[mvn]-1.新增刷新朋友圈接口

2.新增撤回消息接口
This commit is contained in:
chandler 2024-12-25 12:16:42 +08:00
parent 8194076dd3
commit 70f1319137
6 changed files with 98 additions and 16 deletions

View File

@ -20,11 +20,13 @@
| 发送表情消息 | /send/emojiMsg | x | 该版本不支持 |
| 发送文件消息 | /send/fileMsg | x | 该版本不支持 |
| 拍一拍群友 | /patOnePat | √ | 已测试 |
| 撤回消息 | /revokeMsg | ? | 待测试 |
| 通过好友申请 | /passFriendApply | ? | 待测试 |
| 添加群成员为微信好友 | /addFriend/groupMember | ? | 待测试 |
| 查询群成员 | /groupMember/list | √ | 已测试 |
| 邀请群成员 | /groupMember/invite | ? | 待测试 |
| 删除群成员 | /groupMember/delete | ? | 待测试 |
| 查询朋友圈 | /friendCircle | ? | 待测试 |
### 已知BUG

View File

@ -18,6 +18,7 @@ import com.wechat.ferry.entity.vo.request.WxPpWcfGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfInviteGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPassFriendApplyReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPatOnePatMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfRevokeMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendEmojiMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendFileMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendImageMsgReq;
@ -181,12 +182,12 @@ public class WeChatDllController {
// return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
// }
// @ApiOperation(value = "撤回消息", notes = "queryMsgTypeList")
// @PostMapping(value = "/list/msgType")
// public TResponse<Object> queryMsgTypeList() {
// return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
// }
//
@ApiOperation(value = "撤回消息", notes = "revokeMsg")
@PostMapping(value = "/revokeMsg")
public TResponse<Object> revokeMsg(@Validated @RequestBody WxPpWcfRevokeMsgReq request) {
return TResponse.ok(ResponseCodeEnum.SUCCESS);
}
// @ApiOperation(value = "转发消息", notes = "queryMsgTypeList")
// @PostMapping(value = "/list/msgType")
// public TResponse<Object> queryMsgTypeList() {
@ -215,7 +216,7 @@ public class WeChatDllController {
@ApiOperation(value = "添加群成员为微信好友", notes = "addFriendGroupMember")
@PostMapping(value = "/addFriend/groupMember")
public TResponse<Object> addFriendGroupMember(WxPpWcfAddFriendGroupMemberReq request) {
public TResponse<Object> addFriendGroupMember(@Validated @RequestBody WxPpWcfAddFriendGroupMemberReq request) {
weChatDllService.addFriendGroupMember(request);
return TResponse.ok(ResponseCodeEnum.SUCCESS);
}
@ -229,24 +230,25 @@ public class WeChatDllController {
@ApiOperation(value = "邀请群成员", notes = "inviteGroupMember")
@PostMapping(value = "/groupMember/invite")
public TResponse<Object> inviteGroupMember(WxPpWcfInviteGroupMemberReq request) {
public TResponse<Object> inviteGroupMember(@Validated @RequestBody WxPpWcfInviteGroupMemberReq request) {
weChatDllService.inviteGroupMember(request);
return TResponse.ok(ResponseCodeEnum.SUCCESS);
}
@ApiOperation(value = "删除群成员", notes = "deleteGroupMember")
@PostMapping(value = "/groupMember/delete")
public TResponse<Object> deleteGroupMember(WxPpWcfDeleteGroupMemberReq request) {
public TResponse<Object> deleteGroupMember(@Validated @RequestBody WxPpWcfDeleteGroupMemberReq request) {
weChatDllService.deleteGroupMember(request);
return TResponse.ok(ResponseCodeEnum.SUCCESS);
}
// @ApiOperation(value = "获取朋友圈消息", notes = "queryMsgTypeList")
// @PostMapping(value = "/list/msgType")
// public TResponse<Object> queryMsgTypeList() {
// return TResponse.ok(ResponseCodeEnum.SUCCESS, list);
// }
//
@ApiOperation(value = "查询朋友圈", notes = "queryFriendCircle")
@PostMapping(value = "/friendCircle")
public TResponse<Object> queryFriendCircle() {
weChatDllService.queryFriendCircle();
return TResponse.ok(ResponseCodeEnum.SUCCESS);
}
// @ApiOperation(value = "下载图片、视频、文件", notes = "queryMsgTypeList")
// @PostMapping(value = "/list/msgType")
// public TResponse<Object> queryMsgTypeList() {

View File

@ -19,6 +19,7 @@ public class WxPpWcfPassFriendApplyReq {
/**
* 申请人
* v3 xml.attrib["encryptusername"]
* 加密用户名 (好友申请消息里 v3 开头的字符串)
*/
@NotBlank(message = "申请人不能为空")
@ApiModelProperty(value = "申请人")
@ -27,6 +28,7 @@ public class WxPpWcfPassFriendApplyReq {
/**
* 审核人
* v4 xml.attrib["ticket"]
* Ticket (好友申请消息里 v4 开头的字符串)
* 一般指自己别人申请添加自己审核是否通过
*/
@NotBlank(message = "审核人不能为空")
@ -35,6 +37,7 @@ public class WxPpWcfPassFriendApplyReq {
/**
* 场景
* 申请方式 (好友申请消息里的 scene); 为了兼容旧接口默认为扫码添加 (30)
*/
@ApiModelProperty(value = "场景")
private String scene;

View File

@ -0,0 +1,25 @@
package com.wechat.ferry.entity.vo.request;
import javax.validation.constraints.NotBlank;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 请求入参-撤回消息
*
* @author chandler
* @date 2024-12-25 12:00
*/
@Data
@ApiModel(value = "wxPpWcfRevokeMsgReq", description = "个微WCF撤回消息请求入参")
public class WxPpWcfRevokeMsgReq {
/**
* 消息编号
*/
@ApiModelProperty(value = "场景")
private String msgId;
}

View File

@ -10,6 +10,7 @@ import com.wechat.ferry.entity.vo.request.WxPpWcfGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfInviteGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPassFriendApplyReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPatOnePatMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfRevokeMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendEmojiMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendFileMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendImageMsgReq;
@ -200,6 +201,16 @@ public interface WeChatDllService {
*/
WxPpWcfSendPatOnePatMsgResp patOnePat(WxPpWcfPatOnePatMsgReq request);
/**
* 撤回消息
*
* @return 结果状态
*
* @author chandler
* @date 2024-12-25 11:59
*/
String revokeMsg(WxPpWcfRevokeMsgReq request);
/**
* 通过好友申请
*
@ -255,4 +266,14 @@ public interface WeChatDllService {
*/
String deleteGroupMember(WxPpWcfDeleteGroupMemberReq request);
/**
* 查询朋友圈
*
* @return 结果状态
*
* @author chandler
* @date 2024-12-25 11:11
*/
String queryFriendCircle();
}

View File

@ -29,6 +29,7 @@ import com.wechat.ferry.entity.vo.request.WxPpWcfGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfInviteGroupMemberReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPassFriendApplyReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfPatOnePatMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfRevokeMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendEmojiMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendFileMsgReq;
import com.wechat.ferry.entity.vo.request.WxPpWcfSendImageMsgReq;
@ -425,6 +426,22 @@ public class WeChatDllServiceImpl implements WeChatDllService {
return null;
}
@Override
public String revokeMsg(WxPpWcfRevokeMsgReq request) {
long startTime = System.currentTimeMillis();
log.info("[撤回消息]-[消息撤回]-入参打印:{}", request);
long msgId = Long.parseLong(request.getMsgId());
Wcf.Request wcfReq = Wcf.Request.newBuilder().setFuncValue(Wcf.Functions.FUNC_REVOKE_MSG_VALUE).setUi64(msgId).build();
Wcf.Response rsp = wechatSocketClient.sendCmd(wcfReq);
int state = judgeWcfCmdState(rsp);
// 回调处理
String stringJson = JSON.toJSONString(request);
sendMsgCallback(stringJson, state);
long endTime = System.currentTimeMillis();
log.info("[撤回消息]-[消息撤回]-处理结束,耗时:{}ms", (endTime - startTime));
return "";
}
@Override
public String passFriendApply(WxPpWcfPassFriendApplyReq request) {
long startTime = System.currentTimeMillis();
@ -562,6 +579,18 @@ public class WeChatDllServiceImpl implements WeChatDllService {
return "";
}
@Override
public String queryFriendCircle() {
long startTime = System.currentTimeMillis();
log.info("[查询]-[刷新朋友圈]-开始");
Wcf.Request req = Wcf.Request.newBuilder().setFuncValue(Wcf.Functions.FUNC_REFRESH_PYQ_VALUE).build();
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
int state = judgeWcfCmdState(rsp);
long endTime = System.currentTimeMillis();
log.info("[查询]-[刷新朋友圈]-处理结束,耗时:{}ms", (endTime - startTime));
return "";
}
/**
* 获取SQL类型
*
@ -597,7 +626,7 @@ public class WeChatDllServiceImpl implements WeChatDllService {
if (converter != null) {
return converter.apply(content.toByteArray());
} else {
log.warn("未知的SQL类型: {}", type);
log.warn("[SQL转换类型]-未知的SQL类型: {}", type);
return content.toByteArray();
}
}