diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt index f2087eb5..1384140a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt @@ -10,6 +10,8 @@ data class WeworkAgentSetting( val secret: String = "", val atAll: Boolean? = false, val toUser: String? = "@all", + val toParty: String? = "", + val toTag: String? = "", val proxyType: Proxy.Type = Proxy.Type.DIRECT, val proxyHost: String? = "", val proxyPort: String? = "", diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt index 479d23f8..c162eaf7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt @@ -129,6 +129,11 @@ class WeworkAgentFragment : BaseFragment(), binding!!.etSecret.setText(settingVo.secret) binding!!.sbAtAll.isChecked = settingVo.atAll == true binding!!.etToUser.setText(settingVo.toUser) + binding!!.etToParty.setText(settingVo.toParty) + binding!!.etToTag.setText(settingVo.toTag) + binding!!.layoutToUser.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE + binding!!.layoutToParty.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE + binding!!.layoutToTag.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE binding!!.rgProxyType.check(settingVo.getProxyTypeCheckId()) binding!!.etProxyHost.setText(settingVo.proxyHost) binding!!.etProxyPort.setText(settingVo.proxyPort) @@ -166,10 +171,18 @@ class WeworkAgentFragment : BaseFragment(), R.id.sb_at_all -> { if (isChecked) { binding!!.etToUser.setText("@all") + binding!!.etToParty.setText("") + binding!!.etToTag.setText("") binding!!.layoutToUser.visibility = View.GONE + binding!!.layoutToParty.visibility = View.GONE + binding!!.layoutToTag.visibility = View.GONE } else { binding!!.etToUser.setText("") + binding!!.etToParty.setText("") + binding!!.etToTag.setText("") binding!!.layoutToUser.visibility = View.VISIBLE + binding!!.layoutToParty.visibility = View.VISIBLE + binding!!.layoutToTag.visibility = View.VISIBLE } } R.id.sb_proxyAuthenticator -> { @@ -254,7 +267,9 @@ class WeworkAgentFragment : BaseFragment(), val atAll = binding!!.sbAtAll.isChecked val toUser = binding!!.etToUser.text.toString().trim() - if (!atAll && TextUtils.isEmpty(toUser)) { + val toParty = binding!!.etToParty.text.toString().trim() + val toTag = binding!!.etToTag.text.toString().trim() + if (!atAll && TextUtils.isEmpty(toUser) && TextUtils.isEmpty(toParty) && TextUtils.isEmpty(toTag)) { throw Exception(getString(R.string.invalid_at_mobiles)) } @@ -277,7 +292,7 @@ class WeworkAgentFragment : BaseFragment(), throw Exception(getString(R.string.invalid_username_or_password)) } - return WeworkAgentSetting(corpID, agentID, secret, atAll, toUser, proxyType, proxyHost, proxyPort, proxyAuthenticator, proxyUsername, proxyPassword) + return WeworkAgentSetting(corpID, agentID, secret, atAll, toUser, toParty, toTag, proxyType, proxyHost, proxyPort, proxyAuthenticator, proxyUsername, proxyPassword) } override fun onDestroyView() { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt index 9dd2a914..026bf682 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt @@ -135,6 +135,8 @@ class WeworkAgentUtils private constructor() { val textMsgMap: MutableMap = mutableMapOf() textMsgMap["touser"] = setting.toUser.toString() + textMsgMap["toparty"] = setting.toParty.toString() + textMsgMap["totag"] = setting.toTag.toString() textMsgMap["msgtype"] = "text" textMsgMap["agentid"] = setting.agentID val textText: MutableMap = mutableMapOf() diff --git a/app/src/main/res/layout/fragment_senders_wework_agent.xml b/app/src/main/res/layout/fragment_senders_wework_agent.xml index e90573da..682a7242 100644 --- a/app/src/main/res/layout/fragment_senders_wework_agent.xml +++ b/app/src/main/res/layout/fragment_senders_wework_agent.xml @@ -160,7 +160,7 @@ android:layout_width="70dp" android:layout_height="wrap_content" android:gravity="end" - android:text="@string/specified_member" + android:text="@string/touser" android:textStyle="bold" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 4afdc034..139b44b0 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -284,7 +284,7 @@ Multiple openids are separated by , WebServer is empty or not a valid URL WebHook is empty or not a valid URL - Specified member cannot be empty or select @all + toUser/toParty/toTag cannot be empty or select @all CoreID, AgentID, and Secret cannot be empty AgentId, AppKey, AppSecret, and UserIds cannot be empty The receiving phone number cannot be empty @@ -315,6 +315,12 @@ Specified Member \@all Tip: List of member IDs that receive messages (multiple recipients are separated by \'|\', up to 1000) + To User + To Party + To Tag + Tip: List of member IDs that receive messages (multiple recipients are separated by \'|\', up to 1000) + Tip: List of party IDs that receive messages (multiple recipients are separated by \'|\', up to 1000) + Tip: List of tag IDs that receive messages (multiple recipients are separated by \'|\', up to 1000) Tip: The userid of the user who receives the message, up to 20 at a time (separated by \'|\') SendKey Message Channel diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 91b00b6d..d446ccd0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -285,7 +285,7 @@ 多个 openid 用 , 隔开 WebServer为空 或 不是有效URL WebHook为空 或 不是有效URL - 指定成员 不能为空 或者 选择@all + 指定成员/指定部门/指定标签 不能为空 或者 选择@all 企业ID、AgentID、Secret都不能为空 AgentId、AppKey、AppSecret、UserIds都不能为空 接收手机号不能为空 @@ -316,6 +316,12 @@ 指定成员 \@all Tip:接收消息的成员ID列表(多个接收者用‘|’分隔,最多支持1000个) + 指定成员 + 指定部门 + 指定标签 + Tip:接收消息的成员ID列表(多个接收者用‘|’分隔,最多支持1000个) + Tip:接收消息的部门ID列表(多个接收者用‘|’分隔,最多支持1000个) + Tip:接收消息的标签ID列表(多个接收者用‘|’分隔,最多支持1000个) Tip:接收用户的userid,每次最多传20个(用‘|’分隔) SendKey 消息通道