- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明 Made-with: Cursor
215 lines
6.1 KiB
PHP
215 lines
6.1 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Author: ScottPan Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace crmeb\services\wechat\client\work;
|
|
|
|
|
|
use crmeb\services\wechat\client\BaseClient;
|
|
use EasyWeChat\Kernel\HttpClient\Response;
|
|
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
|
use Symfony\Contracts\HttpClient\ResponseInterface;
|
|
|
|
/**
|
|
* 外部联系
|
|
* Class ExternalContactClient
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
* @package crmeb\services\wechat\client\work
|
|
*/
|
|
class ExternalContactClient extends BaseClient
|
|
{
|
|
|
|
/**
|
|
* 获取外部联系人详情
|
|
* @param string $externalUserId
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function get(string $externalUserId): ResponseInterface|Response
|
|
{
|
|
return $this->api->get('cgi-bin/externalcontact/get', [
|
|
'external_userid' => $externalUserId,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 批量获取客户详情
|
|
* @param array $userIdList
|
|
* @param string $cursor
|
|
* @param int $limit
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function batchGet(array $userIdList, string $cursor = '', int $limit = 100): ResponseInterface|Response
|
|
{
|
|
return $this->api->postJson('cgi-bin/externalcontact/batch/get_by_user', [
|
|
'userid_list' => $userIdList,
|
|
'cursor' => $cursor,
|
|
'limit' => $limit,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 获取企业标签库
|
|
* @param array $tagIds
|
|
* @param array $groupIds
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function getCorpTags(array $tagIds = [], array $groupIds = []): ResponseInterface|Response
|
|
{
|
|
$params = [
|
|
'tag_id' => $tagIds,
|
|
'group_id' => $groupIds
|
|
];
|
|
|
|
return $this->api->postJson('cgi-bin/externalcontact/get_corp_tag_list', $params);
|
|
}
|
|
|
|
/**
|
|
* 添加企业客户标签
|
|
* @param array $params
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function addCorpTag(array $params): ResponseInterface|Response
|
|
{
|
|
return $this->api->postJson('cgi-bin/externalcontact/add_corp_tag', $params);
|
|
}
|
|
|
|
/**
|
|
* 编辑企业客户标签
|
|
* @param string $id
|
|
* @param string|null $name
|
|
* @param int|null $order
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function updateCorpTag(string $id, ?string $name = null, ?int $order = null): ResponseInterface|Response
|
|
{
|
|
$params = [
|
|
"id" => $id
|
|
];
|
|
|
|
if (!\is_null($name)) {
|
|
$params['name'] = $name;
|
|
}
|
|
|
|
if (!\is_null($order)) {
|
|
$params['order'] = $order;
|
|
}
|
|
|
|
return $this->api->postJson('cgi-bin/externalcontact/edit_corp_tag', $params);
|
|
}
|
|
|
|
/**
|
|
* 删除企业客户标签
|
|
* @param array $tagId
|
|
* @param array $groupId
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function deleteCorpTag(array $tagId, array $groupId): ResponseInterface|Response
|
|
{
|
|
$params = [
|
|
"tag_id" => $tagId,
|
|
"group_id" => $groupId,
|
|
];
|
|
|
|
return $this->api->postJson('cgi-bin/externalcontact/del_corp_tag', $params);
|
|
}
|
|
|
|
/**
|
|
* 编辑客户企业标签
|
|
* @param array $params
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function markTags(array $params): ResponseInterface|Response
|
|
{
|
|
return $this->api->postJson('cgi-bin/externalcontact/mark_tag', $params);
|
|
}
|
|
|
|
/**
|
|
* 获取客户群列表
|
|
* @param array $params
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function getGroupChats(array $params): ResponseInterface|Response
|
|
{
|
|
return $this->api->postJson('cgi-bin/externalcontact/groupchat/list', $params);
|
|
}
|
|
|
|
/**
|
|
* 获取客户群详情
|
|
* @param string $chatId
|
|
* @param int $needName
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function getGroupChat(string $chatId, int $needName = 0): ResponseInterface|Response
|
|
{
|
|
$params = [
|
|
'chat_id' => $chatId,
|
|
'need_name' => $needName,
|
|
];
|
|
|
|
return $this->api->postJson('cgi-bin/externalcontact/groupchat/get', $params);
|
|
}
|
|
|
|
/**
|
|
* 获取「群聊数据统计」数据. (按自然日聚合的方式)
|
|
* @param int $dayBeginTime
|
|
* @param int $dayEndTime
|
|
* @param array $userIds
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/15
|
|
*/
|
|
public function groupChatStatisticGroupByDay(int $dayBeginTime, int $dayEndTime, array $userIds = []): ResponseInterface|Response
|
|
{
|
|
$params = [
|
|
'day_begin_time' => $dayBeginTime,
|
|
'day_end_time' => $dayEndTime,
|
|
'owner_filter' => [
|
|
'userid_list' => $userIds
|
|
]
|
|
];
|
|
return $this->api->postJson('cgi-bin/externalcontact/groupchat/statistic_group_by_day', $params);
|
|
}
|
|
|
|
}
|