【触客宝】朋友圈采集修改规则(将需要采集的用户先迁移到指定账号后开启采集,完毕后迁移回去)
This commit is contained in:
@@ -19,12 +19,16 @@ class AutomaticAssign extends BaseController
|
||||
* 自动分配微信好友
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function autoAllotWechatFriend($data = [])
|
||||
public function autoAllotWechatFriend($data = [],$isInner = false)
|
||||
{
|
||||
// 获取授权token
|
||||
$authorization = trim($this->request->header('authorization', $this->authorization));
|
||||
if (empty($authorization)) {
|
||||
return errorJson('缺少授权信息');
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>'缺少授权信息']);
|
||||
}else{
|
||||
return errorJson('缺少授权信息');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -34,7 +38,11 @@ class AutomaticAssign extends BaseController
|
||||
$isDeleted = !empty($data['isDeleted']) ? $data['isDeleted'] : input('isDeleted', false);
|
||||
|
||||
if (empty($toAccountId)) {
|
||||
return errorJson('目标账号ID不能为空');
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>'目标账号ID不能为空']);
|
||||
}else{
|
||||
return errorJson('目标账号ID不能为空');
|
||||
}
|
||||
}
|
||||
|
||||
$params = [
|
||||
@@ -73,13 +81,25 @@ class AutomaticAssign extends BaseController
|
||||
$response = handleApiResponse($result);
|
||||
|
||||
if($response){
|
||||
return successJson([],'微信好友自动分配成功');
|
||||
if($isInner){
|
||||
return json_encode(['code'=>200,'msg'=>'微信好友自动分配成功']);
|
||||
}else{
|
||||
return successJson([],'微信好友自动分配成功');
|
||||
}
|
||||
}else{
|
||||
return errorJson($response);
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>$response]);
|
||||
}else{
|
||||
return errorJson($response);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return errorJson('微信好友自动分配失败:' . $e->getMessage());
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>'微信好友自动分配失败:' . $e->getMessage()]);
|
||||
}else{
|
||||
return errorJson('微信好友自动分配失败:' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,4 +161,73 @@ class AutomaticAssign extends BaseController
|
||||
return errorJson('微信群聊自动分配失败:' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定微信好友分配到指定账号
|
||||
* @param int $wechatFriendId 微信好友ID
|
||||
* @param int $toAccountId 目标账号ID
|
||||
* @param string $comment 评论/备注
|
||||
* @param bool $notifyReceiver 是否通知接收者
|
||||
* @param int $optFrom 操作来源
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function allotWechatFriend($data = [],$isInner = false)
|
||||
{
|
||||
// 获取授权token
|
||||
$authorization = trim($this->request->header('authorization', $this->authorization));
|
||||
if (empty($authorization)) {
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>'缺少授权信息']);
|
||||
}else{
|
||||
return errorJson('缺少授权信息');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取请求参数
|
||||
$wechatFriendId = !empty($data['wechatFriendId']) ? $data['wechatFriendId'] : input('wechatFriendId', 0);
|
||||
$toAccountId = !empty($data['toAccountId']) ? $data['toAccountId'] : input('toAccountId', 0);
|
||||
$comment = !empty($data['comment']) ? $data['comment'] : input('comment', '');
|
||||
$notifyReceiver = !empty($data['notifyReceiver']) ? $data['notifyReceiver'] : input('notifyReceiver', false);
|
||||
$optFrom = !empty($data['optFrom']) ? $data['optFrom'] : input('optFrom', 4); // 默认操作来源为4
|
||||
|
||||
// 参数验证
|
||||
if (empty($wechatFriendId)) {
|
||||
return errorJson('微信好友ID不能为空');
|
||||
}
|
||||
|
||||
if (empty($toAccountId)) {
|
||||
return errorJson('目标账号ID不能为空');
|
||||
}
|
||||
|
||||
|
||||
// 设置请求头
|
||||
$headerData = ['client:system'];
|
||||
$header = setHeader($headerData, $authorization, 'json');
|
||||
|
||||
// 发送请求
|
||||
$url = $this->baseUrl . 'api/WechatFriend/allot?wechatFriendId='.$wechatFriendId.'¬ifyReceiver='.$notifyReceiver.'&comment='.$comment.'&toAccountId='.$toAccountId.'&optFrom='.$optFrom;
|
||||
$result = requestCurl($url, [], 'PUT', $header, 'json');
|
||||
|
||||
if (empty($result)) {
|
||||
if($isInner){
|
||||
return json_encode(['code'=>200,'msg'=>'微信好友分配成功']);
|
||||
}else{
|
||||
return successJson([], '微信好友分配成功');
|
||||
}
|
||||
} else {
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>$result]);
|
||||
}else{
|
||||
return errorJson($result);
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
if($isInner){
|
||||
return json_encode(['code'=>500,'msg'=>'微信好友分配失败:' . $e->getMessage()]);
|
||||
}else{
|
||||
return errorJson('微信好友分配失败:' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -196,7 +196,7 @@ class AuthService
|
||||
|
||||
// 尝试从缓存获取授权信息
|
||||
$authorization = Cache::get($cacheKey);
|
||||
//$authorization = 'mYpVVhPY7PxctvYw1pn1VCTS2ck0yZG8q11gAiJrRN_D3q7KXXBPAfXoAmqs7kKHeaAx-h4GB7DiqVIQJ09HiXVhaQT6PtgLX3w8YV16erThC-lG1fyJB4DJxu-QxA3Q8ogSs1WFOa8aAXD1QQUZ7Kbjkw_VMLL4lrfe0Yjaqy3DnO7aL1xGnNjjX8P5uqCAZgHKlN8NjuDEGyYvXygW1YyoK9pNpwvq-6DYKjLWdmbHvFaAybHf-hU1XyrFavZqcZYxIoVXjfJ5ASp4XxeCWqMCzwtSoz9RAvwLAlNxGweowtuyX9389ZaXI-zbqb2T0S8llg';
|
||||
//$authorization = '';
|
||||
// 如果缓存中没有或已过期,则重新获取
|
||||
if (empty($authorization)) {
|
||||
try {
|
||||
|
||||
@@ -7,6 +7,8 @@ use app\cunkebao\model\ContentItem;
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
use app\api\controller\WebSocketController;
|
||||
use think\facade\Env;
|
||||
use app\api\controller\AutomaticAssign;
|
||||
|
||||
/**
|
||||
* 内容库控制器
|
||||
@@ -732,7 +734,7 @@ class ContentLibraryController extends Controller
|
||||
}
|
||||
|
||||
// 返回采集结果
|
||||
return json([
|
||||
return json_encode([
|
||||
'code' => 200,
|
||||
'msg' => '采集任务执行完成',
|
||||
'data' => [
|
||||
@@ -760,14 +762,20 @@ class ContentLibraryController extends Controller
|
||||
}
|
||||
|
||||
try {
|
||||
$toAccountId = '';
|
||||
$username = Env::get('api.username', '');
|
||||
$password = Env::get('api.password', '');
|
||||
if (!empty($username) || !empty($password)) {
|
||||
$toAccountId = Db::name('users')->where('account',$username)->value('s2_accountId');
|
||||
}
|
||||
|
||||
// 查询好友信息
|
||||
$friends = Db::table('s2_wechat_friend')
|
||||
->field('id, wechatAccountId, wechatId')
|
||||
->field('id, wechatAccountId, wechatId,accountId')
|
||||
->whereIn('id', $friendIds)
|
||||
->where('isDeleted', 0)
|
||||
->select();
|
||||
|
||||
|
||||
if (empty($friends)) {
|
||||
return [
|
||||
'status' => 'failed',
|
||||
@@ -778,8 +786,22 @@ class ContentLibraryController extends Controller
|
||||
// 从朋友圈采集内容
|
||||
$collectedData = [];
|
||||
$totalMomentsCount = 0;
|
||||
|
||||
|
||||
foreach ($friends as $friend) {
|
||||
if (!empty($username) && !empty($password)) {
|
||||
//执行切换好友命令
|
||||
$automaticAssign = new AutomaticAssign();
|
||||
$automaticAssign->allotWechatFriend(['wechatFriendId' => $friend['id'],'toAccountId' => $toAccountId],true);
|
||||
//执行采集朋友圈命令
|
||||
$webSocket = new WebSocketController(['userName' => $username,'password' => $password,'accountId' => $toAccountId]);
|
||||
$webSocket->getMoments(['wechatFriendId' => $friend['id'],'wechatAccountId' => $friend['wechatAccountId']]);
|
||||
//采集完毕切换
|
||||
$automaticAssign->allotWechatFriend(['wechatFriendId' => $friend['id'],'toAccountId' => $friend['accountId']],true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 从s2_wechat_moments表获取朋友圈数据
|
||||
$moments = Db::table('s2_wechat_moments')
|
||||
->where([
|
||||
@@ -788,7 +810,7 @@ class ContentLibraryController extends Controller
|
||||
])
|
||||
->order('createTime', 'desc')
|
||||
->select();
|
||||
|
||||
|
||||
if (empty($moments)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user