骑行和赛事分享&集合正在骑行的人数

This commit is contained in:
lishuo committed 2021-12-27 18:29:23 +08:00
1 parent 2743c8d185
commit ffc98f1a58
23 files changed
+3736 -1103

No files matched your search

+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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; }
+2
View File
@@ -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
{