You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.7 KiB
62 lines
1.7 KiB
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V1;
|
|
|
|
use App\Http\Resources\OwnResource;
|
|
use App\Http\Resources\ScoreLogResource;
|
|
use App\Models\User;
|
|
use App\Services\PageServe;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
|
|
class OwnController extends Controller
|
|
{
|
|
/**
|
|
* 获取当前用户的信息
|
|
*
|
|
* @return \Illuminate\Http\JsonResponse 返回当前用户信息的 JSON 响应
|
|
*/
|
|
public function me()
|
|
{
|
|
// 获取当前认证用户
|
|
$me = auth()->user();
|
|
|
|
// 返回成功响应和用户信息
|
|
return responseJson(200, 'success', new OwnResource($me));
|
|
}
|
|
|
|
/**
|
|
* 获取当前用户的积分日志
|
|
*
|
|
* @param PageServe $serve 分页服务
|
|
* @return \Illuminate\Http\JsonResponse 返回积分日志的 JSON 响应
|
|
*/
|
|
public function scoreLogs(PageServe $serve)
|
|
{
|
|
// 获取分页参数
|
|
list($limit, $offset) = $serve->getPageParameters();
|
|
|
|
/**
|
|
* @var $me User
|
|
*/
|
|
// 获取当前认证用户
|
|
$me = auth()->user();
|
|
|
|
// 获取用户的积分日志查询
|
|
$query = $me->scoreLogs();
|
|
|
|
// 获取积分日志总数
|
|
$count = $query->count();
|
|
|
|
// 获取分页后的积分日志数据
|
|
$scoreLogs = $me->scoreLogs()
|
|
->latest() // 按时间降序排列
|
|
->offset($offset) // 设置偏移量
|
|
->limit($limit) // 设置限制
|
|
->get();
|
|
|
|
// 返回成功响应和积分日志
|
|
return responseJson(200, 'success', ScoreLogResource::collection($scoreLogs), compact('count'));
|
|
}
|
|
}
|