94 lines
3.6 KiB
C#
94 lines
3.6 KiB
C#
using Assets.Scenes.Ride.Scripts.Model.RiderModels;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|
{
|
|
public class SingleModel : BaseCycling
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="route1"></param>
|
|
/// <param name="manufacturerId"></param>
|
|
/// <param name="deviceNumber"></param>
|
|
/// <param name="antModelId"></param>
|
|
public SingleModel(Route route1) //SelectParamModel param)
|
|
: base(route1, CyclingModel.Single)
|
|
{
|
|
//recorderData = recorderData1;
|
|
this.IsRecord = true;
|
|
recorderData = new RecorderDataModel()
|
|
{
|
|
CurrentUser = App.CurrentUser,
|
|
//BelongUserId = App.CurrentUser.Id,
|
|
Competitionid = 0,
|
|
ContinueIndex = 0,
|
|
ContinueMark = Guid.NewGuid().ToString(),
|
|
EndDistance = 0,
|
|
IsCompleted = false,
|
|
IsNeedRanking = true,
|
|
CyclingState = CyclingStateEnum.Prepare,
|
|
//ManufacturerId = manufacturerId, //ManufacturerId,
|
|
CurrentRoute = route,
|
|
CurrentRouteStartDistance = 0,
|
|
//DeviceNumber = deviceNumber,//DeviceNumber
|
|
//AntModelId = antModelId,
|
|
StartTime = DateTime.Now
|
|
};
|
|
#region TODO 线路上的人
|
|
//if (param != null)
|
|
//{
|
|
// recorderData.EndDistance = param.EndDistance;
|
|
// recorderData.CurrentRouteStartDistance = param.EndDistance;
|
|
// if (!string.IsNullOrWhiteSpace(param.ContinueMark))
|
|
// {
|
|
// recorderData.ContinueMark = param.ContinueMark;
|
|
// }
|
|
// recorderData.ContinueIndex = param.ContinueIndex.GetValueOrDefault(0);
|
|
//}
|
|
//recorderData.PreDistance = recorderData.EndDistance;
|
|
|
|
//TODO 附件的人列表加上自己
|
|
riders = new List<BaseRider>();
|
|
var rider = new OnlineRiderModel()
|
|
{
|
|
NickName = App.CurrentUser.Nickname,
|
|
UserId = App.CurrentUser.Id,
|
|
WxHeadImg = App.CurrentUser.WxHeadImg + "?t=1",
|
|
//Point = new GeoJSON.Net.Geometry.GeographicPosition(this.route.RouteInstance.Point[0], this.route.RouteInstance.Point[1]),
|
|
EndDistance = recorderData.EndDistance
|
|
};
|
|
rider.Point = _turfHelper.Along(rider.EndDistance);
|
|
|
|
riders.Add(rider);
|
|
#endregion
|
|
}
|
|
|
|
public override void Run(TargetData targetData)
|
|
{
|
|
#region TODO 获取在线用户
|
|
riders.RemoveAll(r => r.IsSelf == false);
|
|
var onlineUsers = MapUDPService.GetOnlineUsers(recorderData.CurrentRoute.RouteInstance.Id).Where(d => d.IsSelf == false)
|
|
.ToList();
|
|
foreach (var item in onlineUsers)
|
|
{
|
|
riders.Add(new OnlineRiderModel()
|
|
{
|
|
NickName = item.Name,
|
|
UserId = item.Id,
|
|
WxHeadImg = item.HeadImage,
|
|
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
|
|
EndDistance = item.EndDistance,
|
|
PreDistance = item.PreDistance,
|
|
});
|
|
}
|
|
#endregion
|
|
base.Run(targetData);
|
|
}
|
|
}
|
|
}
|