From 586bb9c76c77f0a158b62d4ec969cf200402fadd Mon Sep 17 00:00:00 2001 From: gallonyin Date: Mon, 4 Sep 2023 23:51:02 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=BD=AC=E5=8F=91=E5=92=8C=E5=8D=95=E7=82=B9=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worktool/service/WeworkOperationImpl.kt | 82 +++++++++++++++++-- 1 file changed, 77 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt index ca53869..6abc980 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -1010,6 +1010,13 @@ object WeworkOperationImpl { ): Boolean { val retryCount = maxRetryCount ?: 2 val startTime = System.currentTimeMillis() + if (extraText == "单点发送") { + LogUtils.d("单点发送") + for (title in nameList) { + singleSendMultiMessage(message, weworkMessageList, startTime, title) + } + return true + } val groupName = "消息转发专用群" val titleList = arrayListOf(groupName) message.titleList = titleList @@ -1060,6 +1067,71 @@ object WeworkOperationImpl { } } } + val maxLength = 9 + for (chunkedNameList in nameList.chunked(maxLength)) { + subSendMultiMessage(message, startTime, groupName, chunkedNameList, extraText, key) + } + return true + } + + /** + * 批量发送 合并发送 子任务-单点发送 + */ + private fun singleSendMultiMessage( + message: WeworkMessageBean, + weworkMessageList: List, + startTime: Long, + title: String + ): Boolean { + val titleList = arrayListOf(title) + if (WeworkRoomUtil.intoRoom(title) || WeworkRoomUtil.intoRoom(title, fastIn = false)) { + for (weworkMessage in weworkMessageList) { + weworkMessage.titleList = titleList + weworkMessage.messageId = message.messageId + when (weworkMessage.type) { + WeworkMessageBean.SEND_MESSAGE -> { + WeworkController.sendMessage(weworkMessage) + } + WeworkMessageBean.PUSH_MICRO_DISK_IMAGE -> { + WeworkController.pushMicroDiskImage(weworkMessage) + } + WeworkMessageBean.PUSH_MICRO_DISK_FILE -> { + WeworkController.pushMicroDiskFile(weworkMessage) + } + WeworkMessageBean.PUSH_MICROPROGRAM -> { + WeworkController.pushMicroprogram(weworkMessage) + } + WeworkMessageBean.PUSH_OFFICE -> { + WeworkController.pushOffice(weworkMessage) + } + WeworkMessageBean.PUSH_FILE -> { + WeworkController.pushFile(weworkMessage) + } + WeworkMessageBean.PUSH_LINK -> { + WeworkController.pushLink(weworkMessage) + } + } + } + return true + } + uploadCommandResult(message, ExecCallbackBean.ERROR_INTO_ROOM, "$title: 单点发送失败 未找到房间", startTime, listOf(), titleList) + return false + } + + /** + * 批量发送 合并发送 子任务-转发 + */ + private fun subSendMultiMessage( + message: WeworkMessageBean, + startTime: Long, + groupName: String, + nameList: List, + extraText: String? = null, + key: String, + maxRetryCount: Int? = null + ): Boolean { + val retryCount = maxRetryCount ?: 2 + val titleList = arrayListOf(groupName) if (WeworkRoomUtil.intoRoom(groupName) || WeworkRoomUtil.intoRoom(groupName, fastIn = false)) { if (WeworkTextUtil.longClickMyMessageItem( //聊天消息列表 1ListView 0RecycleView xViewGroup @@ -1073,7 +1145,7 @@ object WeworkOperationImpl { } else { LogUtils.e("$groupName: 多选失败") if (retryCount > 0) { - return sendMultiMessage(message, weworkMessageList, nameList, extraText, key, retryCount - 1) + return subSendMultiMessage(message, startTime, groupName, nameList, extraText, key, retryCount - 1) } uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "多选失败 $startTime", startTime, listOf(), nameList) return false @@ -1162,7 +1234,7 @@ object WeworkOperationImpl { LogUtils.e("$groupName: 转发失败") if (retryCount > 0) { goHome() - return sendMultiMessage(message, weworkMessageList, nameList, extraText, key, retryCount - 1) + return subSendMultiMessage(message, startTime, groupName, nameList, extraText, key, retryCount - 1) } uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "$groupName: 转发失败", startTime, listOf(), nameList) goHome() @@ -1171,7 +1243,7 @@ object WeworkOperationImpl { } else { LogUtils.e("未找到逐条转发按钮") if (retryCount > 0) { - return sendMultiMessage(message, weworkMessageList, nameList, extraText, key, retryCount - 1) + return subSendMultiMessage(message, startTime, groupName, nameList, extraText, key, retryCount - 1) } uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到逐条转发按钮", startTime, listOf(), nameList) return false @@ -1179,7 +1251,7 @@ object WeworkOperationImpl { } else { LogUtils.e("未找到转发按钮") if (retryCount > 0) { - return sendMultiMessage(message, weworkMessageList, nameList, extraText, key, retryCount - 1) + return subSendMultiMessage(message, startTime, groupName, nameList, extraText, key, retryCount - 1) } uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到转发按钮", startTime, listOf(), nameList) return false @@ -1187,7 +1259,7 @@ object WeworkOperationImpl { } else { LogUtils.d("$groupName: 转发失败 未找到房间") if (retryCount > 0) { - return sendMultiMessage(message, weworkMessageList, nameList, extraText, key, retryCount - 1) + return subSendMultiMessage(message, startTime, groupName, nameList, extraText, key, retryCount - 1) } uploadCommandResult(message, ExecCallbackBean.ERROR_INTO_ROOM, "$groupName: 转发失败 未找到房间", startTime, listOf(), nameList) return false