feat(user): 优化个人详情接口并添加俱乐部列表和关注功能

- 在用户详情中添加 club_list 字段,返回用户加入的俱乐部列表
- 优化俱乐部成员接口,支持分页和显示更多用户信息
- 新增关注功能,用户可以关注其他用户
This commit is contained in:
2025-05-24 22:32:13 +08:00
parent ac0777e34b
commit 185578aa6a
3 changed files with 15 additions and 6 deletions

View File

@@ -14,6 +14,7 @@ use app\admin\model\shopro\user\User;
use app\admin\model\zy\game\Activity;
use think\exception\ValidateException;
use app\admin\model\zy\game\Participant;
use app\admin\model\zy\link\Relation;
class Club extends Base
{
@@ -81,7 +82,7 @@ class Club extends Base
$menber = Menber::alias('m')
->join([User::$tableName => 'u'], 'u.id = m.user_id')
->where('club_id', $model['id'])->field('gender,count(*) as num')->group('u.gender')
->column('count(*) as num','gender');
->column('count(*) as num', 'gender');
$model['gender0'] = $menber[0] ?? 0;
$model['gender1'] = $menber[1] ?? 0;
$this->model->where('id', $model['id'])->setInc('attention');
@@ -118,9 +119,11 @@ class Club extends Base
public function menber()
{
$params = $this->request->param();
$sub = Relation::field('user_id,target_id,content')->where('user_id', $this->auth->id)->buildSql();
$query = Db::table(Menber::$tableName)->alias('m')
->join([User::$tableName => 'u'], 'u.id = m.user_id')
->field('m.*,u.avatar,u.gender,u.nickname');
->join([User::$tableName => 'u'], 'u.id = m.user_id', 'LEFT')
->join([$sub => 'r'], 'r.target_id = m.user_id', 'LEFT')
->field('m.*,u.avatar,u.gender,u.nickname,u.wechat,u.qq,u.mobile,r.content');
if (empty($params['id'])) {
return $this->error('参数错误');
}
@@ -136,9 +139,13 @@ class Club extends Base
if (isset($params['order'])) {
$query->order($params['order'], $params['sort'] ?? NULL);
}
$res = $query->select();
$res = $query->paginate($params['pageSize'] ?? 10);
$list = $res->items();
foreach ($list as &$l) {
$l['content'] = json_decode($l['content'] ?? '[]', true);
}
$this->success('Success', $res);
$this->success('Success', ['list' => $list, 'count' => $res->total()]);
}
// 获取俱乐部活动