| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- class FollowSrv
- {
- /**
- * @param array $data
- * @param string $table
- * @param array $users [1 => ['username' => 'xxx', ...] ... ]
- */
- public static function formatWithFollowList(array $data, string $table, array $users = [])
- {
- $followIds = [];
- foreach ($data as &$record) {
- $record['follow_ids'] = $record['follow_ids'] ? explode(',', $record['follow_ids']) : [];
- rsort($record['follow_ids']);
- $record['follow_ids'] = array_slice($record['follow_ids'], 0, 5);
- $followIds = Helper::concatArray($followIds, $record['follow_ids']);
- $record['follow_list'] = [];
- }
- if ($followIds) {
- $follows = Helper::arrayColumn(
- DB::getListWithCriteria($table, DbCriteria::simpleCompare([
- 'id' => $followIds
- ])->setSelect('id, detail, user_id, create_date')),
- null,
- 'id'
- );
- foreach ($data as &$record) {
- foreach ($record['follow_ids'] as $followId) {
- if (isset($follows[$followId])) {
- $followInfo = $follows[$followId];
- $followInfo['avatar'] = !empty($users[$followInfo['user_id']]['avatar']) ? $users[$followInfo['user_id']]['avatar'] : '/zqcrm/avatar/20250926/9PLsci1dwXLcb8Iw.jpg';
- $followInfo['avatar'] = Helper::getImageUrl($followInfo['avatar'], '', 1);
- $followInfo['detail'] = strip_tags($followInfo['detail']);
- $followInfo['username'] = $users[$followInfo['user_id']]['username'] ?? '';
- $record['follow_list'][] = $followInfo;
- }
- }
- unset($record['follow_ids']);
- }
- }
- return $data;
- }
- }
|