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