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.
aquaculture/app/Http/Controllers/Api/V1/OwnController.php

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'));
}
}