朋友圈优化
This commit is contained in:
@@ -73,33 +73,13 @@ class GetWechatMomentsV1Controller extends BaseController
|
||||
// 可选参数:wechatId 不传则查看当前账号可访问的所有微信的朋友圈
|
||||
$wechatId = $this->request->param('wechatId/s', '');
|
||||
|
||||
// 获取当前账号可访问的微信ID集合(内部已做权限控制)
|
||||
$accessibleWechatIds = $this->getAccessibleWechatIds();
|
||||
// 如果传了 wechatId,则只允许查看自己有权限的该微信
|
||||
$targetWechatIds = [];
|
||||
if (!empty($wechatId)) {
|
||||
if (!in_array($wechatId, $accessibleWechatIds, true)) {
|
||||
return ResponseHelper::error('无权查看该微信的朋友圈', 403);
|
||||
}
|
||||
$targetWechatIds = [$wechatId];
|
||||
} else {
|
||||
// 未传 wechatId,则查看所有有权限的微信的朋友圈
|
||||
$targetWechatIds = $accessibleWechatIds;
|
||||
}
|
||||
|
||||
if (empty($targetWechatIds)) {
|
||||
return ResponseHelper::error('暂无可查看的微信账号', 404);
|
||||
}
|
||||
|
||||
|
||||
// 查询朋友圈:如果传了 userName 参数,则只查看指定用户的;否则查看所有
|
||||
$query = Db::table('s2_wechat_moments')
|
||||
->whereIn('userName', $targetWechatIds);
|
||||
$query = Db::table('s2_wechat_moments');
|
||||
|
||||
// 如果传了 userName 参数,则只查看指定用户的朋友圈
|
||||
$userName = $this->request->param('userName/s', '');
|
||||
if (!empty($userName)) {
|
||||
$query->where('userName', $userName);
|
||||
|
||||
if (!empty($wechatId)) {
|
||||
$query->where('userName', $wechatId);
|
||||
}
|
||||
|
||||
// 关键词搜索
|
||||
@@ -160,24 +140,14 @@ class GetWechatMomentsV1Controller extends BaseController
|
||||
return ResponseHelper::error('wechatId不能为空');
|
||||
}
|
||||
|
||||
// 权限校验:只能查看当前账号可访问的微信
|
||||
$accessibleWechatIds = $this->getAccessibleWechatIds();
|
||||
if (!in_array($wechatId, $accessibleWechatIds, true)) {
|
||||
return ResponseHelper::error('无权查看该微信的朋友圈', 403);
|
||||
}
|
||||
|
||||
// 获取对应的微信账号ID
|
||||
$accountId = Db::table('s2_wechat_account')
|
||||
->where('wechatId', $wechatId)
|
||||
->value('id');
|
||||
|
||||
if (empty($accountId)) {
|
||||
return ResponseHelper::error('微信账号不存在或尚未同步', 404);
|
||||
}
|
||||
|
||||
// 查询朋友圈(不限制 userName,导出所有朋友圈)
|
||||
$query = Db::table('s2_wechat_moments')
|
||||
->where('wechatAccountId', $accountId);
|
||||
$query = Db::table('s2_wechat_moments');
|
||||
|
||||
if (!empty($wechatId)) {
|
||||
$query->where('userName', $wechatId);
|
||||
}
|
||||
|
||||
// 关键词搜索
|
||||
if ($keyword = trim((string)$this->request->param('keyword', ''))) {
|
||||
@@ -203,7 +173,7 @@ class GetWechatMomentsV1Controller extends BaseController
|
||||
}
|
||||
|
||||
// 获取所有数据(不分页)
|
||||
$moments = $query->order('createTime', 'desc')->select();
|
||||
$moments = $query->order('createTime', 'desc')->group('snsId')->select();
|
||||
|
||||
if (empty($moments)) {
|
||||
return ResponseHelper::error('暂无数据可导出');
|
||||
|
||||
Reference in New Issue
Block a user