Merge branch 'master' of https://github.com/gallonyin/worktool into master

This commit is contained in:
gallonyin
2023-01-26 16:31:45 +08:00
6 changed files with 105 additions and 4 deletions

View File

@@ -36,6 +36,7 @@ public class WeworkMessageBean {
* 从外部群添加好友 ADD_FRIEND_BY_GROUP * 从外部群添加好友 ADD_FRIEND_BY_GROUP
* 添加待办 ADD_NEED_DEAL * 添加待办 ADD_NEED_DEAL
* 打卡 CLOCK_IN * 打卡 CLOCK_IN
* 切换企业 SWITCH_CORP
* <p> * <p>
* 非操作类型 300 * 非操作类型 300
* 机器人普通日志记录 ROBOT_LOG * 机器人普通日志记录 ROBOT_LOG
@@ -47,6 +48,7 @@ public class WeworkMessageBean {
* 获取好友信息 GET_FRIEND_INFO * 获取好友信息 GET_FRIEND_INFO
* 获取我的信息 GET_MY_INFO * 获取我的信息 GET_MY_INFO
* 获取最近聊天列表 GET_RECENT_LIST * 获取最近聊天列表 GET_RECENT_LIST
* 获取企业列表 GET_CORP_LIST
*/ */
public static final int HEART_BEAT = 11; public static final int HEART_BEAT = 11;
public static final int TYPE_RECEIVE_MESSAGE_LIST = 101; public static final int TYPE_RECEIVE_MESSAGE_LIST = 101;
@@ -74,6 +76,7 @@ public class WeworkMessageBean {
public static final int ADD_FRIEND_BY_GROUP = 220; public static final int ADD_FRIEND_BY_GROUP = 220;
public static final int ADD_NEED_DEAL = 221; public static final int ADD_NEED_DEAL = 221;
public static final int CLOCK_IN = 222; public static final int CLOCK_IN = 222;
public static final int SWITCH_CORP = 223;
public static final int ROBOT_LOG = 301; public static final int ROBOT_LOG = 301;
public static final int ROBOT_ERROR_LOG = 302; public static final int ROBOT_ERROR_LOG = 302;
@@ -84,6 +87,7 @@ public class WeworkMessageBean {
public static final int GET_MY_INFO = 503; public static final int GET_MY_INFO = 503;
public static final int GET_GROUP_QRCODE = 504; public static final int GET_GROUP_QRCODE = 504;
public static final int GET_RECENT_LIST = 505; public static final int GET_RECENT_LIST = 505;
public static final int GET_CORP_LIST = 506;
/** /**
* roomType * roomType

View File

@@ -169,6 +169,9 @@ object MyLooper {
WeworkMessageBean.CLOCK_IN -> { WeworkMessageBean.CLOCK_IN -> {
WeworkController.clockIn(message) WeworkController.clockIn(message)
} }
WeworkMessageBean.SWITCH_CORP -> {
WeworkController.switchCorp(message)
}
WeworkMessageBean.SHOW_GROUP_INFO -> { WeworkMessageBean.SHOW_GROUP_INFO -> {
WeworkController.showGroupInfo(message) WeworkController.showGroupInfo(message)
} }
@@ -184,6 +187,9 @@ object MyLooper {
WeworkMessageBean.GET_RECENT_LIST -> { WeworkMessageBean.GET_RECENT_LIST -> {
WeworkController.getRecentList(message) WeworkController.getRecentList(message)
} }
WeworkMessageBean.GET_CORP_LIST -> {
WeworkController.getCorpList(message)
}
WeworkMessageBean.ROBOT_CONTROLLER_TEST -> { WeworkMessageBean.ROBOT_CONTROLLER_TEST -> {
WeworkController.test(message) WeworkController.test(message)
} }

View File

@@ -230,6 +230,17 @@ object WeworkController {
return WeworkOperationImpl.clockIn(message) return WeworkOperationImpl.clockIn(message)
} }
/**
* 切换企业
* @see WeworkMessageBean.SWITCH_CORP
* @param message#objectName 企业名称
*/
@RequestMapping
fun switchCorp(message: WeworkMessageBean): Boolean {
LogUtils.d("switchCorp(): ${message.objectName}")
return WeworkOperationImpl.switchCorp(message, message.objectName)
}
/** /**
* 推送微盘图片 * 推送微盘图片
* @see WeworkMessageBean.PUSH_MICRO_DISK_IMAGE * @see WeworkMessageBean.PUSH_MICRO_DISK_IMAGE
@@ -401,4 +412,14 @@ object WeworkController {
return WeworkGetImpl.getRecentList(message) return WeworkGetImpl.getRecentList(message)
} }
/**
* 获取企业列表
* @see WeworkMessageBean.GET_CORP_LIST
*/
@RequestMapping
fun getCorpList(message: WeworkMessageBean): Boolean {
LogUtils.d("getCorpList():")
return WeworkGetImpl.getCorpList(message)
}
} }

View File

@@ -87,7 +87,7 @@ object WeworkGetImpl {
sumInfo = info.toString() sumInfo = info.toString()
} }
WeworkController.weworkService.webSocketManager.send(weworkMessageBean) WeworkController.weworkService.webSocketManager.send(weworkMessageBean)
return true return getCorpList(message)
} else { } else {
LogUtils.d("未找到我的昵称") LogUtils.d("未找到我的昵称")
log("未找到我的昵称") log("未找到我的昵称")
@@ -135,7 +135,7 @@ object WeworkGetImpl {
weworkMessageBean.type = WeworkMessageBean.GET_MY_INFO weworkMessageBean.type = WeworkMessageBean.GET_MY_INFO
weworkMessageBean.myInfo = myInfo weworkMessageBean.myInfo = myInfo
WeworkController.weworkService.webSocketManager.send(weworkMessageBean) WeworkController.weworkService.webSocketManager.send(weworkMessageBean)
return true return getCorpList(message)
} }
/** /**
@@ -238,4 +238,39 @@ object WeworkGetImpl {
} }
return true return true
} }
/**
* 获取企业列表
*/
fun getCorpList(message: WeworkMessageBean): Boolean {
goHomeTab("消息")
val firstTv = AccessibilityUtil.findAllByClazz(getRoot(), Views.TextView)
.firstOrNull { it.text == null }
AccessibilityUtil.performClick(firstTv, retry = false)
sleep(Constant.CHANGE_PAGE_INTERVAL)
val listviewList = AccessibilityUtil.findAllOnceByClazz(getRoot(), Views.RecyclerView, Views.ListView, Views.ViewGroup)
.filter { it.childCount >= 2 }
val list = listviewList.firstOrNull()
if (list != null) {
val corpList = arrayListOf<String>()
for (i in 0 until list.childCount) {
val item = list.getChild(i)
val tvList = AccessibilityUtil.findAllOnceByClazz(item, Views.TextView)
val textList = tvList.filter { it.text != null }.map { it.text.toString() }
if (textList.isNotEmpty()) {
corpList.add(textList[0])
}
}
LogUtils.d("我的企业", GsonUtils.toJson(corpList))
val weworkMessageBean = WeworkMessageBean()
weworkMessageBean.type = WeworkMessageBean.GET_CORP_LIST
weworkMessageBean.titleList = corpList
WeworkController.weworkService.webSocketManager.send(weworkMessageBean)
goHome()
return true
} else {
LogUtils.e("未找到企业列表")
return false
}
}
} }

View File

@@ -57,10 +57,10 @@ object WeworkLoopImpl {
if (item.parent != null && item.parent.childCount > 1) { if (item.parent != null && item.parent.childCount > 1) {
LogUtils.d("通讯录有红点") LogUtils.d("通讯录有红点")
AccessibilityUtil.performClick(item) AccessibilityUtil.performClick(item)
val hasRecommendFriend = AccessibilityUtil.findOneByText(getRoot(), "可能的", timeout = Constant.POP_WINDOW_INTERVAL) val hasRecommendFriend = AccessibilityUtil.findOneByText(getRoot(), "可能的同事", exact = true, timeout = Constant.POP_WINDOW_INTERVAL)
if (hasRecommendFriend != null) { if (hasRecommendFriend != null) {
LogUtils.d("有可能认识的人") LogUtils.d("有可能认识的人")
AccessibilityUtil.performClick(hasRecommendFriend) AccessibilityUtil.performClick(AccessibilityUtil.findBackNode(hasRecommendFriend))
goHome() goHome()
return false return false
} }

View File

@@ -1001,6 +1001,41 @@ object WeworkOperationImpl {
} }
} }
/**
* 切换企业
* @see WeworkMessageBean.SWITCH_CORP
* @param objectName 企业名称
*/
fun switchCorp(message: WeworkMessageBean, objectName: String): Boolean {
val startTime = System.currentTimeMillis()
goHomeTab("消息")
val firstTv = AccessibilityUtil.findAllByClazz(getRoot(), Views.TextView)
.firstOrNull { it.text == null }
AccessibilityUtil.performClick(firstTv, retry = false)
sleep(Constant.CHANGE_PAGE_INTERVAL)
val listviewList = AccessibilityUtil.findAllOnceByClazz(getRoot(), Views.RecyclerView, Views.ListView, Views.ViewGroup)
.filter { it.childCount >= 2 }
val listview = listviewList.firstOrNull()
if (listview != null) {
val tvCorp = AccessibilityUtil.findOnceByText(listview, objectName, exact = true)
if (tvCorp != null) {
LogUtils.d("找到目标企业: $objectName")
AccessibilityUtil.performClick(tvCorp)
goHome()
return true
} else {
LogUtils.e("未找到目标企业: $objectName")
uploadCommandResult(message, ExecCallbackBean.ERROR_TARGET, "未找到目标企业: $objectName", startTime)
goHome()
return false
}
} else {
LogUtils.e("未找到企业列表: $objectName")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到企业列表: $objectName", startTime)
return false
}
}
/** /**
* 展示群信息 * 展示群信息
* @see WeworkMessageBean.SHOW_GROUP_INFO * @see WeworkMessageBean.SHOW_GROUP_INFO