1+ using System . ComponentModel . DataAnnotations ;
12using GameFrameX . Apps . Common . Session ;
23using GameFrameX . Foundation . Http . Normalization ;
34using GameFrameX . NetWork . HTTP ;
@@ -9,23 +10,42 @@ namespace GameFrameX.Hotfix.Logic.Http;
910/// http://localhost:20001/game/api/GetOnlinePlayerList
1011/// </summary>
1112[ HttpMessageMapping ( typeof ( GetOnlinePlayerListHttpHandler ) ) ]
13+ [ HttpMessageRequest ( typeof ( GetOnlinePlayerListRequest ) ) ]
14+ [ HttpMessageResponse ( typeof ( GetOnlinePlayerListResponse ) ) ]
15+ [ Description ( "获取在线玩家列表" ) ]
1216public sealed class GetOnlinePlayerListHttpHandler : BaseHttpHandler
1317{
1418 /// <summary>
1519 /// </summary>
1620 /// <param name="ip"></param>
1721 /// <param name="url"></param>
18- /// <param name="parameters "></param>
22+ /// <param name="request "></param>
1923 /// <returns></returns>
20- public override Task < string > Action ( string ip , string url , Dictionary < string , object > parameters )
24+ public override Task < string > Action ( string ip , string url , HttpMessageRequestBase request )
2125 {
22- parameters . TryGetValue ( "pageSize" , out var pageSizeStr ) ;
23- parameters . TryGetValue ( "pageIndex" , out var pageIndexStr ) ;
24- var pageSize = string . IsNullOrEmpty ( pageSizeStr ? . ToString ( ) ) ? 0 : Convert . ToInt32 ( pageSizeStr ) ;
25- var pageIndex = string . IsNullOrEmpty ( pageIndexStr ? . ToString ( ) ) ? 0 : Convert . ToInt32 ( pageIndexStr ) ;
26-
27- var response = SessionManager . GetPageList ( pageSize , pageIndex ) ;
26+ GetOnlinePlayerListRequest parameters = ( GetOnlinePlayerListRequest ) request ;
27+ var response = SessionManager . GetPageList ( parameters . PageSize , parameters . PageIndex ) ;
2828 var res = HttpJsonResult . SuccessString ( "当前在线玩家" , JsonHelper . Serialize ( response ) ) ;
2929 return Task . FromResult ( res ) ;
3030 }
31+ }
32+
33+ public sealed class GetOnlinePlayerListResponse : HttpMessageResponseBase
34+ {
35+ public List < Session > List { get ; set ; }
36+ }
37+
38+ public sealed class GetOnlinePlayerListRequest : HttpMessageRequestBase
39+ {
40+ /// <summary>
41+ ///
42+ /// </summary>
43+ [ Required , Range ( 0 , int . MaxValue ) ]
44+ public int PageIndex { get ; set ; }
45+
46+ /// <summary>
47+ ///
48+ /// </summary>
49+ [ Required , Range ( 1 , int . MaxValue ) ]
50+ public int PageSize { get ; set ; }
3151}
0 commit comments