骑行和赛事分享&集合正在骑行的人数
This commit is contained in:
1 parent
2743c8d185
commit
ffc98f1a58
23 files changed
+3736
-1103
No files matched your search
@@ -171,9 +171,9 @@ namespace Assets.Scripts.Apis
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<JsonResult<List<MapRoute>>> GetMapRouteAreaDetailList(int id, int pageIndex, int pageSize)
|
||||
public async Task<JsonResult<MapRouteAreaRouteList>> GetMapRouteAreaDetailList(int id, int pageIndex, int pageSize)
|
||||
{
|
||||
var result = await GetAsync<JsonResult<List<MapRoute>>>($"MapRouteArea/GetRouteList?areaId={id}&pageSize={pageSize}&pageIndex={pageIndex}");
|
||||
var result = await GetAsync<JsonResult<MapRouteAreaRouteList>>($"MapRouteArea/GetRouteList?areaId={id}&pageSize={pageSize}&pageIndex={pageIndex}");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Assets.Scripts.Apis.Models
|
||||
|
||||
public bool IsOfficial { get; set; }
|
||||
public int MapCompetitionType { get; set; }
|
||||
public object NickName { get; set; }
|
||||
public string NickName { get; set; }
|
||||
public int pageCount { get; set; }
|
||||
public int RouteId { get; set; }
|
||||
public string Sponsor { get; set; }
|
||||
|
||||
@@ -109,5 +109,7 @@ namespace Assets.Scripts.Apis.Models
|
||||
public string Camera { get; set; }
|
||||
public string MineCountString { get; set; }
|
||||
public int MineCount { get; set; }
|
||||
|
||||
public int[] RouteIds { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -138,6 +138,21 @@ namespace Assets.Scripts.Apis.Models
|
||||
public DateTime UpdateTime { get; set; }
|
||||
}
|
||||
|
||||
public class MapRouteAreaRouteList
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public List<MapRoute> RouteList
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
public List<int> RouteIds
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
}
|
||||
public class MapMaxRanking
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -46,7 +46,8 @@ namespace Assets.Scripts.Apis.Models
|
||||
public double CompleteRoute { get; set; }
|
||||
|
||||
public string Tips { get; set; }
|
||||
|
||||
|
||||
public double CurrentTotalClimb { get; set; }
|
||||
public double CurrentTotalDistance { get; set; }
|
||||
public double CurrentTotalKcal { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
using DG.Tweening;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
@@ -19,6 +20,11 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
GameObject TitleImage { get; set; }
|
||||
GameObject WatchTitle { get; set; }
|
||||
GameObject RankingPanel { get; set; }
|
||||
GameObject ShareButton { get; set; }
|
||||
GameObject ToolBarPanel { get; set; }
|
||||
GameObject WeChatButton { get; set; }
|
||||
|
||||
|
||||
RawImage TopHead { get; set; }
|
||||
RawImage SecondHead { get; set; }
|
||||
RawImage ThirdHead { get; set; }
|
||||
@@ -50,8 +56,14 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
WatchTitle = transform.Find("WatchTitle").gameObject;
|
||||
CloseTitle = transform.Find("CloseTitle").GetComponent<Text>();
|
||||
CloseTime = transform.Find("CloseTime").GetComponent<Text>();
|
||||
|
||||
|
||||
#if UNITY_IOS || UNITY_ANDROID
|
||||
ShareButton = transform.Find("ShareButton").gameObject;
|
||||
ToolBarPanel = transform.Find("ToolBarPanel").gameObject;
|
||||
WeChatButton = transform.Find("ToolBarPanel/WeChatButton").gameObject;
|
||||
ShareButton.SetActive(!cyclingController.isWatch);
|
||||
UIManager.AddEvent(ShareButton, UnityEngine.EventSystems.EventTriggerType.PointerClick, OpenShare);
|
||||
UIManager.AddEvent(WeChatButton, UnityEngine.EventSystems.EventTriggerType.PointerClick, OpenShare);
|
||||
#endif
|
||||
SpriteTop = Resources.Load<Sprite>("Images/Ride/Match/top-1");
|
||||
SpriteSecond = Resources.Load<Sprite>("Images/Ride/Match/top-2");
|
||||
SpriteThrid = Resources.Load<Sprite>("Images/Ride/Match/top-3");
|
||||
@@ -212,5 +224,24 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
SceneManager.LoadScene("MainScene");
|
||||
App.MainSceneParam["Name"] = "RaceHomePanel";
|
||||
}
|
||||
|
||||
private void OpenShare(BaseEventData baseEventData)
|
||||
{
|
||||
((RectTransform)ToolBarPanel.transform).pivot = new Vector2(0, ((RectTransform)ToolBarPanel.transform).pivot.y);
|
||||
ShareButton.SetActive(false);
|
||||
ToolBarPanel.transform.DOScaleX(1, 1);
|
||||
}
|
||||
|
||||
private void ShareWechat(BaseEventData baseEventData)
|
||||
{
|
||||
if (App.weChatController.IsWeChatAppInstalled())
|
||||
{
|
||||
App.weChatController.ShareWebpageToWX(0, $"{App.CurrentUser.WebHost}Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}", cyclingController.competition.NickName, "By " + App.CurrentUser.Nickname);
|
||||
}
|
||||
else
|
||||
{
|
||||
Utils.showToast(null, "未安装微信");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ using Assets.Scripts;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using System.Linq;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
@@ -62,6 +63,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
altitudeGraph = panel.transform.Find("AltitudeGraph").GetComponent<RawImage>();
|
||||
mapRanking = panel.transform.Find("MapRanking");
|
||||
mapId = panel.transform.Find("MapId").GetComponent<Text>();
|
||||
|
||||
#if UNITY_STANDALONE_WIN
|
||||
UIManager.RemoveEvent(distance.gameObject);
|
||||
UIManager.RemoveEvent(slope.gameObject);
|
||||
@@ -135,9 +137,18 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
DrawMapRouteAsync(route.Id);
|
||||
AddProcess(10);
|
||||
//查询排行榜
|
||||
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 10, "");
|
||||
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 99999, "");
|
||||
if (list.result)
|
||||
{
|
||||
if (list.data.list.Count > 10)
|
||||
{
|
||||
var ViewAll = panel.transform.Find("ViewAll").gameObject;
|
||||
ViewAll.SetActive(true);
|
||||
UIManager.AddEvent(ViewAll, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
Application.OpenURL($"{App.CurrentUser.WebHost}/Routes/{cyclingController.mapRoute.Id}?Token={App.CurrentUser.cookie}");
|
||||
});
|
||||
}
|
||||
CreateRankingList(list.data.list);
|
||||
AddProcess(10);
|
||||
}
|
||||
@@ -149,14 +160,20 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
#if UNITY_IOS || UNITY_ANDROID
|
||||
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/RankingItem");
|
||||
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/MySelfRankingItem");
|
||||
#else
|
||||
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/RankingItem");
|
||||
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/MySelfRankingItem");
|
||||
#endif
|
||||
var parent = panel.transform.Find("MapRanking");
|
||||
var title = panel.transform.Find("RankingTitle").gameObject;
|
||||
title.SetActive(list.Count != 0);
|
||||
int index = 0;
|
||||
foreach (var item in list)
|
||||
{
|
||||
index++;
|
||||
if (index > 10)
|
||||
break;
|
||||
GameObject newObj = (GameObject)Instantiate(prefab, parent);
|
||||
var selectPlayerItemScript = newObj.GetComponent<RankingItemScript>();
|
||||
selectPlayerItemScript.SetRanking(item.RowNumber.ToString());
|
||||
@@ -166,6 +183,19 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
var texture = cyclingController.GetCountryImageByCode(item.CountryCode);
|
||||
selectPlayerItemScript.SetCountry(texture);
|
||||
}
|
||||
//如果有自己的记录显示自己的排名
|
||||
var myself = list.Where(c => c.MySelf).FirstOrDefault();
|
||||
if (myself != null)
|
||||
{
|
||||
GameObject newObj = (GameObject)Instantiate(myprefab, parent);
|
||||
var selectPlayerItemScript = newObj.GetComponent<RankingItemScript>();
|
||||
selectPlayerItemScript.SetRanking(myself.RowNumber.ToString());
|
||||
selectPlayerItemScript.SetName(myself.NickName);
|
||||
selectPlayerItemScript.SetTimer(myself.IsDNF ? "DNF" : myself.TotalTime);
|
||||
selectPlayerItemScript.SetHead(myself.WxHeadImg);
|
||||
var texture = cyclingController.GetCountryImageByCode(myself.CountryCode);
|
||||
selectPlayerItemScript.SetCountry(texture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
//上传数据
|
||||
public override void Upload()
|
||||
{
|
||||
if (!mainController.cyclingController.recorderData.Saved)//处理重复上传的问题
|
||||
if (mainController.cyclingController.recorderData != null&&!mainController.cyclingController.recorderData.Saved)//处理重复上传的问题
|
||||
{
|
||||
mainController.Save(TotalDistance);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Linq;
|
||||
using System;
|
||||
using DG.Tweening;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
@@ -40,6 +41,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
GameObject goResultBtn;
|
||||
GameObject cancelBtn;
|
||||
GameObject shareWxBtn;
|
||||
GameObject shareButton;
|
||||
Transform toolbar;
|
||||
#endregion
|
||||
|
||||
CyclingController cyclingController;
|
||||
@@ -68,8 +71,11 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
#endregion
|
||||
goResultBtn = transform.Find("ConFirmButton").gameObject;
|
||||
cancelBtn = transform.Find("CloseButton").gameObject;
|
||||
toolbar = transform.Find("ToolBarPanel");
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
shareWxBtn = transform.Find("ToolBarPanel/WeChatButton").gameObject;
|
||||
|
||||
shareButton = transform.Find("ShareButton").gameObject;
|
||||
#endif
|
||||
}
|
||||
|
||||
public void InjectController(CyclingController controller)
|
||||
@@ -78,12 +84,27 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
cyclingController.AddEvent(goResultBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, GoResult);
|
||||
cyclingController.AddEvent(cancelBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, Cancel);
|
||||
cyclingController.AddEvent(shareWxBtn, EventTriggerType.PointerClick, shareToWx);
|
||||
cyclingController.AddEvent(shareButton, EventTriggerType.PointerClick, opneShare);
|
||||
}
|
||||
|
||||
private void opneShare(BaseEventData baseEventData)
|
||||
{
|
||||
((RectTransform)toolbar).pivot = new Vector2(0, ((RectTransform)toolbar).pivot.y);
|
||||
toolbar.gameObject.SetActive(true);
|
||||
shareButton.SetActive(false);
|
||||
toolbar.DOScaleX(1,1);
|
||||
}
|
||||
|
||||
private void shareToWx(BaseEventData b)
|
||||
{
|
||||
var bs = cyclingController.CaptureCamera();
|
||||
WeChatController.Instance.ShareImageToWX(0, bs);
|
||||
if (App.weChatController.IsWeChatAppInstalled())
|
||||
{
|
||||
App.weChatController.ShareWebpageToWX(0, $"{App.CurrentUser.WebHost}Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}", cyclingController.competition.NickName, "By " + App.CurrentUser.Nickname);
|
||||
}
|
||||
else
|
||||
{
|
||||
Utils.showToast(null, "未安装微信");
|
||||
}
|
||||
}
|
||||
|
||||
private void GoResult(BaseEventData baseEventData)
|
||||
|
||||
@@ -13,7 +13,6 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
protected override void Start()
|
||||
{
|
||||
base.Start();
|
||||
|
||||
UIManager.AddEvent(startBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, StartRide);
|
||||
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SingleRide);
|
||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using Assets.Scripts;
|
||||
using Assets.Scenes.Ride.Scripts;
|
||||
using Assets.Scripts;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@@ -13,6 +15,7 @@ public class NewRouteDetailController : PFUIPanel
|
||||
Dictionary<string, Texture> caches;
|
||||
GameObject map;
|
||||
ScrollRect scroll;
|
||||
List<int> routeIds { get; set; }
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
@@ -53,7 +56,7 @@ public class NewRouteDetailController : PFUIPanel
|
||||
rect.offsetMin = new Vector2(rect.offsetMin.x, 0);
|
||||
BindHeadImage();
|
||||
}
|
||||
|
||||
float timer = 1f;
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
@@ -72,6 +75,18 @@ public class NewRouteDetailController : PFUIPanel
|
||||
OnEndDrag(null);
|
||||
}
|
||||
}
|
||||
timer -= Time.deltaTime;
|
||||
while (timer < 0)
|
||||
{
|
||||
var list = MapUDPService.GetAllOnlineUserList();
|
||||
if (list.Count > 0 && routeIds != null)
|
||||
{
|
||||
//当前集合骑行人数
|
||||
var currentUserCount = list.Where(c => routeIds.Contains(c.RouteId)).Count();
|
||||
Debug.Log($"当前集合骑行人数{currentUserCount}");
|
||||
}
|
||||
timer += 1f;
|
||||
}
|
||||
}
|
||||
MapRouteAreaItem area;
|
||||
int pageIndex = 0, pageSize = 10;
|
||||
@@ -137,9 +152,10 @@ public class NewRouteDetailController : PFUIPanel
|
||||
var res = await ConfigHelper.mapApi.GetMapRouteAreaDetailList(area.Id, pageIndex, pageSize);
|
||||
if (res.result)
|
||||
{
|
||||
if (res.data.Count > 0)
|
||||
if (res.data.RouteList.Count > 0)
|
||||
{
|
||||
DisplayMaps(res.data);
|
||||
DisplayMaps(res.data.RouteList);
|
||||
routeIds = res.data.RouteIds;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user