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 46893a9..28e5789 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 @@ -47,24 +47,24 @@ public class WeChatFerryProperties { private List openMsgGroups; /** - * 接收消息转发开关 + * 接收消息回调开关 */ - private Boolean receiveMsgFwdSwitch = false; + private Boolean receiveMsgCallbackSwitch = false; /** - * 接收消息转发URL + * 接收消息回调地址 */ - private List receiveMsgFwdUrls; + private List receiveMsgCallbackUrls; /** - * 发送消息转发标识 1-关闭 2-全转发 3-发送成功才转发 + * 发送消息回调标识 1-关闭 2-全部回调 3-发送成功才回调 */ - private String sendMsgFwdFlag = "1"; + private String sendMsgCallbackFlag = "1"; /** - * 发送消息转发URL + * 发送消息回调地址 */ - private List sendMsgFwdUrls; + private List sendMsgCallbackUrls; /** * 调用第三方服务客户端成功状态码 diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgFwdTypeEnum.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgCallbackTypeEnum.java similarity index 58% rename from clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgFwdTypeEnum.java rename to clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgCallbackTypeEnum.java index c9a7648..787eeb9 100644 --- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgFwdTypeEnum.java +++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/enums/MsgCallbackTypeEnum.java @@ -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 codeMap = Arrays.stream(values()).collect(Collectors.toMap(MsgFwdTypeEnum::getCode, v -> v)); + public static final Map 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); } diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatDllServiceImpl.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatDllServiceImpl.java index caa217d..67418ef 100644 --- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatDllServiceImpl.java +++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatDllServiceImpl.java @@ -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); } } } diff --git a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatMsgServiceImpl.java b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatMsgServiceImpl.java index 640c299..72fe5df 100644 --- a/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatMsgServiceImpl.java +++ b/clients/java/wechat-ferry-mvn/src/main/java/com/wechat/ferry/service/impl/WeChatMsgServiceImpl.java @@ -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); } } } diff --git a/clients/java/wechat-ferry-mvn/src/main/resources/application.yml b/clients/java/wechat-ferry-mvn/src/main/resources/application.yml index fc9a8c2..8f78100 100644 --- a/clients/java/wechat-ferry-mvn/src/main/resources/application.yml +++ b/clients/java/wechat-ferry-mvn/src/main/resources/application.yml @@ -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: