powerfun-unity/Assets/Scripts/Apis/MapCompetitionApi.cs
2021-08-13 17:19:02 +08:00

105 lines
4.1 KiB
C#

using Assets.Scripts.Apis.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assets.Scripts.Apis
{
internal class MapCompetitionApi : ApiBase
{
/// <summary>
/// 比赛实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult<MapCompetition> GetById(int id)
{
return Get<JsonResult<MapCompetition>>("/MapCompetition/GetDetail?id=" + id);
}
/// <summary>
/// 获取当前比赛排名
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult<List<CompetitionRankingResultModel>> GetRankingList(int id)
{
var list = Get<JsonResult<dynamic>>($"/MapRecord/GetCompetitionRanking?id={ id }&pageIndex=0&pageSize=999");
return new JsonResult<List<CompetitionRankingResultModel>>
{
result = list.result,
errMsg = list.errMsg,
data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CompetitionRankingResultModel>>(JsonConvert.SerializeObject(list.data.list))
};
}
//查询我参与的比赛列表
public JsonResult<List<JoinedCompetitionModel>> GetMyCompetitionList()
{
var list = Get<JsonResult<dynamic>>($"/MapCompetition/v0/GetMyList");
return new JsonResult<List<JoinedCompetitionModel>>
{
result = list.result,
errMsg = list.errMsg,
data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JoinedCompetitionModel>>(JsonConvert.SerializeObject(list.data))
};
}
//查询比赛列表
public JsonResult<List<MapCompetitionModel>> GetCompetitionList(string name,int pageIndex,int pageSize,int status=0)
{
var list = Get<JsonResult<dynamic>>($"/MapCompetition/v1/GetList?pageIndex={ pageIndex }&pageSize={ pageSize }&name={ name }&status={ status }");
return new JsonResult<List<MapCompetitionModel>>
{
result = list.result,
errMsg = list.errMsg,
data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MapCompetitionModel>>(JsonConvert.SerializeObject(list.data))
};
}
public async Task<JsonResult<List<MapCompetition>>> GetCompetitionListV2(string name, int pageIndex, int pageSize, string status = "", int order = 1, bool self = false, int activity = 0)
{
var list = await GetAsync<JsonResult<dynamic>>($"/MapCompetition/v2/GetList?pageIndex={ pageIndex }&pageSize={ pageSize }&name={ name }&status={ status }&order={order}&self={self}&activity={activity}");
return new JsonResult<List<MapCompetition>>
{
result = list.result,
errMsg = list.errMsg,
data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MapCompetition>>(JsonConvert.SerializeObject(list.data))
};
}
//查询比赛详情
public JsonResult<MapCompetitionDetailModel> GetCompetitionDetail(int id)
{
var list = Get<JsonResult<dynamic>>($"/MapRouteGlobalCycling/Get?id={ id }");
return new JsonResult<MapCompetitionDetailModel>
{
result = list.result,
errMsg = list.errMsg,
data = Newtonsoft.Json.JsonConvert.DeserializeObject<MapCompetitionDetailModel>(JsonConvert.SerializeObject(list.data))
};
}
//报名比赛
public JsonResult ApplyMapCompetition(int id)
{
var param = new
{
id = id,
};
return Post<JsonResult>($"/MapCompetition/ApplyMapCompetition", param);
}
//取消报名比赛
public JsonResult CancelMapCompetition(int id)
{
var param = new
{
id = id,
};
return Post<JsonResult>($"/MapCompetition/CancelMapCompetition", param);
}
}
}