| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace App\Module\AppGame\Handler\House;
- use App\Module\AppGame\Handler\BaseHandler;
- use App\Module\AppGame\Proto\HouseRankDto;
- use App\Module\Farm\Services\HouseService;
- use Google\Protobuf\Internal\Message;
- use Illuminate\Support\Facades\Log;
- use UCore\Exception\LogicException;
- use Uraus\Kku\Request\RequestHouseRank;
- use Uraus\Kku\Response\ResponseHouseRank;
- /**
- * 处理房屋排行榜请求
- */
- class RankHandler extends BaseHandler
- {
- /**
- * 是否需要登录
- * @var bool
- */
- protected bool $need_login = true;
- /**
- * 处理房屋排行榜请求
- *
- * @param RequestHouseRank $data 房屋排行榜请求数据
- * @return ResponseHouseRank 房屋排行榜响应
- */
- public function handle(Message $data): Message
- {
- try {
- $userId = $this->user_id;
- // 获取分页参数
- $page = $data->getPage();
- $pageNum = $page ? $page->getPage() : 1;
- $pageSize = $page && $page->getPerPage() > 0 ? $page->getPerPage() : 10;
- // 调用服务层获取排行榜数据
- $rankData = HouseService::getHouseRankList($userId, $pageNum, $pageSize);
- // 转换为Protobuf格式并返回
- return HouseRankDto::toProtobuf($rankData);
- } catch (\Exception $e) {
- Log::error('获取房屋排行榜失败', [
- 'user_id' => $this->user_id ?? 0,
- 'error' => $e->getMessage(),
- 'trace' => $e->getTraceAsString()
- ]);
- throw new LogicException('获取排行榜数据失败');
- }
- }
- }
|