feat(0): [java]-[mvn]-消息回调配置文件参数名称修改
This commit is contained in:
parent
0174c97faf
commit
e9e2015520
@ -47,24 +47,24 @@ public class WeChatFerryProperties {
|
||||
private List<String> openMsgGroups;
|
||||
|
||||
/**
|
||||
* 接收消息转发开关
|
||||
* 接收消息回调开关
|
||||
*/
|
||||
private Boolean receiveMsgFwdSwitch = false;
|
||||
private Boolean receiveMsgCallbackSwitch = false;
|
||||
|
||||
/**
|
||||
* 接收消息转发URL
|
||||
* 接收消息回调地址
|
||||
*/
|
||||
private List<String> receiveMsgFwdUrls;
|
||||
private List<String> receiveMsgCallbackUrls;
|
||||
|
||||
/**
|
||||
* 发送消息转发标识 1-关闭 2-全转发 3-发送成功才转发
|
||||
* 发送消息回调标识 1-关闭 2-全部回调 3-发送成功才回调
|
||||
*/
|
||||
private String sendMsgFwdFlag = "1";
|
||||
private String sendMsgCallbackFlag = "1";
|
||||
|
||||
/**
|
||||
* 发送消息转发URL
|
||||
* 发送消息回调地址
|
||||
*/
|
||||
private List<String> sendMsgFwdUrls;
|
||||
private List<String> sendMsgCallbackUrls;
|
||||
|
||||
/**
|
||||
* 调用第三方服务客户端成功状态码
|
||||
|
@ -8,15 +8,15 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 枚举-消息转发开关
|
||||
* 1-关闭 2-全转发 3-发送成功才转发
|
||||
* 枚举-消息回调开关
|
||||
* 1-关闭 2-全部回调 3-发送成功才回调
|
||||
*
|
||||
* @author chandler
|
||||
* @date 2024/10/01 15:42
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum MsgFwdTypeEnum {
|
||||
public enum MsgCallbackTypeEnum {
|
||||
|
||||
/**
|
||||
* 1-关闭
|
||||
@ -24,14 +24,14 @@ public enum MsgFwdTypeEnum {
|
||||
CLOSE("1", "关闭"),
|
||||
|
||||
/**
|
||||
* 2-全转发
|
||||
* 2-全部回调
|
||||
*/
|
||||
ALL("2", "全转发"),
|
||||
ALL("2", "全部回调"),
|
||||
|
||||
/**
|
||||
* 3-发送成功才转发
|
||||
* 3-发送成功才回调
|
||||
*/
|
||||
SUCCESS("3", "发送成功才转发"),
|
||||
SUCCESS("3", "发送成功才回调"),
|
||||
|
||||
/**
|
||||
* 未匹配上
|
||||
@ -47,12 +47,13 @@ public enum MsgFwdTypeEnum {
|
||||
/**
|
||||
* map集合 key:code val:枚举
|
||||
*/
|
||||
public static final Map<String, MsgFwdTypeEnum> codeMap = Arrays.stream(values()).collect(Collectors.toMap(MsgFwdTypeEnum::getCode, v -> v));
|
||||
public static final Map<String, MsgCallbackTypeEnum> codeMap =
|
||||
Arrays.stream(values()).collect(Collectors.toMap(MsgCallbackTypeEnum::getCode, v -> v));
|
||||
|
||||
/**
|
||||
* 根据code获取枚举
|
||||
*/
|
||||
public static MsgFwdTypeEnum getCodeMap(String code) {
|
||||
public static MsgCallbackTypeEnum getCodeMap(String code) {
|
||||
return codeMap.getOrDefault(code, UN_MATCH);
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ import com.wechat.ferry.entity.vo.response.WxPpWcfSendRichTextMsgResp;
|
||||
import com.wechat.ferry.entity.vo.response.WxPpWcfSendTextMsgResp;
|
||||
import com.wechat.ferry.entity.vo.response.WxPpWcfSendXmlMsgResp;
|
||||
import com.wechat.ferry.enums.DatabaseNameEnum;
|
||||
import com.wechat.ferry.enums.MsgFwdTypeEnum;
|
||||
import com.wechat.ferry.enums.MsgCallbackTypeEnum;
|
||||
import com.wechat.ferry.enums.SexEnum;
|
||||
import com.wechat.ferry.enums.WxContactsMixedEnum;
|
||||
import com.wechat.ferry.enums.WxContactsOfficialEnum;
|
||||
@ -306,9 +306,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
// 0 为成功,其他失败
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[文本消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -325,9 +325,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
log.debug("sendRichText: {}", wechatSocketClient.bytesToHex(req.toByteArray()));
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[富文本消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -348,9 +348,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
log.debug("sendXml: {}", wechatSocketClient.bytesToHex(req.toByteArray()));
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[XML消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -366,9 +366,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
log.debug("sendImage: {}", wechatSocketClient.bytesToHex(req.toByteArray()));
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[图片消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -384,9 +384,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
log.debug("sendEmotion: {}", wechatSocketClient.bytesToHex(req.toByteArray()));
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[表情消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -401,9 +401,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
log.debug("sendFile: {}", wechatSocketClient.bytesToHex(req.toByteArray()));
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(req);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[文件消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -417,9 +417,9 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
Wcf.Request wcfReq = Wcf.Request.newBuilder().setFuncValue(Wcf.Functions.FUNC_SEND_PAT_MSG_VALUE).setPm(patMsg).build();
|
||||
Wcf.Response rsp = wechatSocketClient.sendCmd(wcfReq);
|
||||
int state = judgeWcfCmdState(rsp);
|
||||
// 转发处理
|
||||
// 回调处理
|
||||
String stringJson = JSON.toJSONString(request);
|
||||
sendMsgForward(stringJson, state);
|
||||
sendMsgCallback(stringJson, state);
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("[发送消息]-[拍一拍消息]-处理结束,耗时:{}ms", (endTime - startTime));
|
||||
return null;
|
||||
@ -624,7 +624,7 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息转发
|
||||
* 消息回调
|
||||
*
|
||||
* @param jsonString json数据
|
||||
* @param state cmd调用状态
|
||||
@ -632,27 +632,27 @@ public class WeChatDllServiceImpl implements WeChatDllService {
|
||||
* @author chandler
|
||||
* @date 2024-10-10 23:10
|
||||
*/
|
||||
private void sendMsgForward(String jsonString, Integer state) {
|
||||
// 根据配置文件决定是否转发
|
||||
if (MsgFwdTypeEnum.CLOSE.getCode().equals(weChatFerryProperties.getSendMsgFwdFlag())
|
||||
|| (MsgFwdTypeEnum.SUCCESS.getCode().equals(weChatFerryProperties.getSendMsgFwdFlag()) && 0 != state)) {
|
||||
// 如果是关闭 或者 配置为成功才转发但发送状态为失败 的情况则取消发送
|
||||
private void sendMsgCallback(String jsonString, Integer state) {
|
||||
// 根据配置文件决定是否回调
|
||||
if (MsgCallbackTypeEnum.CLOSE.getCode().equals(weChatFerryProperties.getSendMsgCallbackFlag())
|
||||
|| (MsgCallbackTypeEnum.SUCCESS.getCode().equals(weChatFerryProperties.getSendMsgCallbackFlag()) && 0 != state)) {
|
||||
// 如果是关闭 或者 配置为成功才回调但发送状态为失败 的情况则取消发送
|
||||
return;
|
||||
}
|
||||
// 开启转发,且转发地址不为空
|
||||
if (!CollectionUtils.isEmpty(weChatFerryProperties.getSendMsgFwdUrls())) {
|
||||
for (String receiveMsgFwdUrl : weChatFerryProperties.getSendMsgFwdUrls()) {
|
||||
// 开启回调,且回调地址不为空
|
||||
if (!CollectionUtils.isEmpty(weChatFerryProperties.getSendMsgCallbackUrls())) {
|
||||
for (String receiveMsgFwdUrl : weChatFerryProperties.getSendMsgCallbackUrls()) {
|
||||
if (!receiveMsgFwdUrl.startsWith("http")) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
String responseStr = HttpClientUtil.doPostJson(receiveMsgFwdUrl, jsonString);
|
||||
if (judgeSuccess(responseStr)) {
|
||||
log.error("[发送消息]-消息转发外部接口,获取响应状态失败!-URL:{}", receiveMsgFwdUrl);
|
||||
log.error("[发送消息]-消息回调至外部接口,获取响应状态失败!-URL:{}", receiveMsgFwdUrl);
|
||||
}
|
||||
log.debug("[发送消息]-[转发接收到的消息]-转发消息至:{}", receiveMsgFwdUrl);
|
||||
log.debug("[发送消息]-[回调接收到的消息]-回调消息至:{}", receiveMsgFwdUrl);
|
||||
} catch (Exception e) {
|
||||
log.error("[发送消息]-消息转发接口[{}]服务异常:", receiveMsgFwdUrl, e);
|
||||
log.error("[发送消息]-消息回调接口[{}]服务异常:", receiveMsgFwdUrl, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
@ -34,7 +33,7 @@ public class WeChatMsgServiceImpl implements WeChatMsgService {
|
||||
@Override
|
||||
public void receiveMsg(String jsonString) {
|
||||
// 转发接口处理
|
||||
receiveMsgForward(jsonString);
|
||||
receiveMsgCallback(jsonString);
|
||||
// 转为JSON对象
|
||||
WxPpMsgDTO dto = JSON.parseObject(jsonString, WxPpMsgDTO.class);
|
||||
// 有开启的群聊配置
|
||||
@ -47,21 +46,21 @@ public class WeChatMsgServiceImpl implements WeChatMsgService {
|
||||
log.debug("[收到消息]-[消息内容]-打印:{}", dto);
|
||||
}
|
||||
|
||||
private void receiveMsgForward(String jsonString) {
|
||||
// 开启转发,且转发地址不为空
|
||||
if (weChatFerryProperties.getReceiveMsgFwdSwitch() && !CollectionUtils.isEmpty(weChatFerryProperties.getReceiveMsgFwdUrls())) {
|
||||
for (String receiveMsgFwdUrl : weChatFerryProperties.getReceiveMsgFwdUrls()) {
|
||||
private void receiveMsgCallback(String jsonString) {
|
||||
// 开启回调,且回调地址不为空
|
||||
if (weChatFerryProperties.getReceiveMsgCallbackSwitch() && !CollectionUtils.isEmpty(weChatFerryProperties.getReceiveMsgCallbackUrls())) {
|
||||
for (String receiveMsgFwdUrl : weChatFerryProperties.getReceiveMsgCallbackUrls()) {
|
||||
if (!receiveMsgFwdUrl.startsWith("http")) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
String responseStr = HttpClientUtil.doPostJson(receiveMsgFwdUrl, jsonString);
|
||||
if (judgeSuccess(responseStr)) {
|
||||
log.error("[接收消息]-消息转发外部接口,获取响应状态失败!-URL:{}", receiveMsgFwdUrl);
|
||||
log.error("[接收消息]-消息回调至外部接口,获取响应状态失败!-URL:{}", receiveMsgFwdUrl);
|
||||
}
|
||||
log.debug("[接收消息]-[转发接收到的消息]-转发消息至:{}", receiveMsgFwdUrl);
|
||||
log.debug("[接收消息]-[回调接收到的消息]-回调消息至:{}", receiveMsgFwdUrl);
|
||||
} catch (Exception e) {
|
||||
log.error("[接收消息]-消息转发接口[{}]服务异常:", receiveMsgFwdUrl, e);
|
||||
log.error("[接收消息]-消息回调接口[{}]服务异常:", receiveMsgFwdUrl, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -35,15 +35,15 @@ wechat:
|
||||
# 需要开启消息处理的群
|
||||
open-msg-groups:
|
||||
- 53257911728@chatroom
|
||||
# 接收消息转发开关
|
||||
receive-msg-fwd-switch: false
|
||||
# 接收消息转发URL
|
||||
receive-msg-fwd-urls:
|
||||
# 接收消息回调开关
|
||||
receive-msg-callback-switch: false
|
||||
# 接收消息回调地址
|
||||
receive-msg-callback-urls:
|
||||
- http://localhost:9001/msg
|
||||
# 发送消息转发标识 1-关闭 2-全转发 3-发送成功才转发
|
||||
send-msg-fwd-flag: '1'
|
||||
# 发送消息转发URL
|
||||
send-msg-fwd-urls:
|
||||
# 发送消息回调标识 1-关闭 2-全部回调 3-发送成功才回调
|
||||
send-msg-callback-flag: '1'
|
||||
# 发送消息回调地址
|
||||
send-msg-callback-urls:
|
||||
- http://localhost:9001/msg
|
||||
# 调用第三方服务客户端成功状态码
|
||||
third-party-ok-codes:
|
||||
|
Loading…
Reference in New Issue
Block a user