私域操盘手 - 调整微信号详情页部分页面数据,使用跳转时传递的列表数据而不是接口数据

This commit is contained in:
柳清爽
2025-05-10 12:02:19 +08:00
parent 6d9d56008d
commit 2bb3f3de5d
4 changed files with 216 additions and 6 deletions

View File

@@ -7,7 +7,6 @@ use think\facade\Route;
// 定义RESTful风格的API路由
Route::group('v1/', function () {
// 设备管理相关
Route::group('devices', function () {
Route::get('add-results', 'app\cunkebao\controller\device\GetAddResultedV1Controller@index'); // 更新设备任务配置
@@ -24,10 +23,13 @@ Route::group('v1/', function () {
// 设备微信相关
Route::group('device/wechats', function () {
Route::get('', 'app\cunkebao\controller\wechat\GetWechatsOnDevicesV1Controller@index'); // 获取在线微信账号列表
Route::get(':id', 'app\cunkebao\controller\wechat\GetWechatOnDeviceSummarizeV1Controller@index'); // 获取微信号详情
Route::get('friends', 'app\cunkebao\controller\DeviceWechat@getFriends'); // 获取微信好友列表
Route::get('count', 'app\cunkebao\controller\DeviceWechat@count'); // 获取在线微信账号数量
Route::get('device-count', 'app\cunkebao\controller\DeviceWechat@deviceCount'); // 获取有登录微信的设备数量
Route::get(':id', 'app\cunkebao\controller\DeviceWechat@detail'); // 获取微信号详情
Route::put('refresh', 'app\cunkebao\controller\DeviceWechat@refresh'); // 刷新设备微信状态
Route::post('transfer-friends', 'app\cunkebao\controller\DeviceWechat@transferFriends'); // 微信好友转移
});
@@ -78,7 +80,7 @@ Route::group('v1/', function () {
Route::group('chatroom', function () {
Route::get('', 'app\cunkebao\controller\chatroom\GetChatroomListV1Controller@index'); // 获取群列表
Route::get('getMemberList', 'app\cunkebao\controller\chatroom\GetChatroomListV1Controller@getMemberList'); // 获取群详情
});
// 计划任务相关路由

View File

@@ -0,0 +1,152 @@
<?php
namespace app\cunkebao\controller\wechat;
use app\common\model\WechatAccount as WechatAccountModel;
use app\cunkebao\controller\BaseController;
/**
* 设备微信控制器
*/
class GetWechatOnDeviceSummarizeV1Controller extends BaseController
{
protected function getRegisterDate()
{
return date('Y-m-d');
}
protected function getWechatAccount()
{
$aa = WechatAccountModel::find($this->request->param('id/d'));
dd(
$aa->toArray()
);
}
/**
* 获取微信号详情
*
* @return \think\response\Json
*/
public function index()
{
try {
$this->getWechatAccount();
// 获取微信号基本信息
$wechat = WechatAccountModel::where('id', $id)
->where('isDeleted', 0)
->find();
if (!$wechat) {
return json([
'code' => 404,
'msg' => '微信号不存在'
]);
}
// 计算账号年龄(从创建时间到现在)
$accountAge = 0;
if ($wechat['createTime']) {
$createTime = strtotime($wechat['createTime']);
$now = time();
$accountAge = floor(($now - $createTime) / (24 * 3600));
}
// 计算活跃程度(根据消息数)
$activityLevel = '低';
if ($wechat['thirtyDayMsgCount'] > 1000) {
$activityLevel = '高';
} elseif ($wechat['thirtyDayMsgCount'] > 500) {
$activityLevel = '中';
}
// 评估账号权重(示例算法)
$weight = 0;
// 基础权重
$weight += 10;
// 好友数量权重
$weight += min($wechat['totalFriend'] / 100, 20);
// 活跃度权重
$weight += min($wechat['thirtyDayMsgCount'] / 100, 20);
// 账号年龄权重
$weight += min($accountAge / 30, 10);
// 在线状态权重
if ($wechat['wechatAlive']) {
$weight += 5;
}
// 获取限制记录(示例数据,实际需要从数据库获取)
$restrictions = [
[
'type' => '添加好友限制',
'reason' => '频繁添加好友',
'startTime' => date('Y-m-d H:i:s', strtotime('-1 day')),
'endTime' => date('Y-m-d H:i:s', strtotime('+1 day'))
]
];
// 处理返回数据
$data = [
'basicInfo' => [
'id' => $wechat['id'],
'wechatId' => $wechat['wechatId'],
'nickname' => $wechat['nickname'] ?: $wechat['accountNickname'],
'avatar' => $wechat['avatar'],
'status' => $wechat['wechatAlive'] ? '在线' : '离线',
'deviceStatus' => $wechat['deviceAlive'] ? '在线' : '离线',
'deviceInfo' => $wechat['imei'] . ($wechat['deviceMemo'] ? " ({$wechat['deviceMemo']})" : ''),
'gender' => $wechat['gender'],
'region' => $wechat['region'],
'signature' => $wechat['signature']
],
'statistics' => [
'totalFriend' => $wechat['totalFriend'],
'maleFriend' => $wechat['maleFriend'],
'femaleFriend' => $wechat['femaleFriend'],
'canAddFriendCount' => 30 - (isset($wechat['yesterdayMsgCount']) ? intval($wechat['yesterdayMsgCount']) : 0),
'yesterdayMsgCount' => $wechat['yesterdayMsgCount'],
'sevenDayMsgCount' => $wechat['sevenDayMsgCount'],
'thirtyDayMsgCount' => $wechat['thirtyDayMsgCount']
],
'accountInfo' => [
'age' => $accountAge,
'activityLevel' => $activityLevel,
'weight' => round($weight, 2),
'createTime' => $wechat['createTime'],
'lastUpdateTime' => $wechat['updateTime']
],
'restrictions' => $restrictions,
];
return json([
'code' => 200,
'msg' => '获取成功',
'data' => $data
]);
} catch (\Exception $e) {
return json([
'code' => 500,
'msg' => '获取失败:' . $e->getMessage()
]);
}
}
}