上传记录增加本地保存逻辑
This commit is contained in:
parent
614d067d25
commit
9993752ff5
File diff suppressed because it is too large
Load Diff
@ -302,7 +302,9 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
var rs = resultPanel.GetComponent<ResultPanelScript>();
|
var rs = resultPanel.GetComponent<ResultPanelScript>();
|
||||||
rs.InjectController(this);
|
rs.InjectController(this);
|
||||||
rs.SetDataSource(cyclingController.recorderData);
|
rs.SetDataSource(cyclingController.recorderData);
|
||||||
cyclingController.recorderData.SaveData(cyclingModel, selectParamModel, imageFileName);
|
var localData = cyclingController.recorderData.SaveLocal(cyclingModel, selectParamModel, imageFileName);
|
||||||
|
//异步上传
|
||||||
|
cyclingController.recorderData.SaveDataAysnc(localData);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected string CaptureCamera(Camera camera, Rect rect)
|
protected string CaptureCamera(Camera camera, Rect rect)
|
||||||
@ -330,7 +332,9 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
GameObject.Destroy(rt);
|
GameObject.Destroy(rt);
|
||||||
// 最后将这些纹理数据,成一个图片文件
|
// 最后将这些纹理数据,成一个图片文件
|
||||||
byte[] bytes = screenShot.EncodeToPNG();
|
byte[] bytes = screenShot.EncodeToPNG();
|
||||||
string filename = Application.dataPath + "/" + Guid.NewGuid().ToString() + ".png";
|
|
||||||
|
var path = Helper.GetDataDir("MapWorkoutRecords/images");
|
||||||
|
string filename = path + "/" + Guid.NewGuid().ToString() + ".png";
|
||||||
System.IO.File.WriteAllBytes(filename, bytes);
|
System.IO.File.WriteAllBytes(filename, bytes);
|
||||||
//Debug.Log(string.Format("截屏了一张照片: {0}", filename));
|
//Debug.Log(string.Format("截屏了一张照片: {0}", filename));
|
||||||
return filename;
|
return filename;
|
||||||
|
|||||||
@ -16,9 +16,14 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
{
|
{
|
||||||
public class Helper
|
public class Helper
|
||||||
{
|
{
|
||||||
public static string GetDataDire(string pathName)
|
public static string GetDataDir(string pathName)
|
||||||
{
|
{
|
||||||
return @"D:\unityproject\Test\"+ pathName;
|
var dirName = Application.dataPath + "/" + pathName;
|
||||||
|
if (!Directory.Exists(dirName))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(dirName);
|
||||||
|
}
|
||||||
|
return dirName;
|
||||||
}
|
}
|
||||||
public static double AveragePower(IList<TargetData> list)
|
public static double AveragePower(IList<TargetData> list)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
using Assets.Scripts.Apis;
|
using Assets.Scripts.Apis;
|
||||||
using Assets.Scripts.Apis.Models;
|
using Assets.Scripts.Apis.Models;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Assets.Scenes.Ride.Scripts.Model
|
namespace Assets.Scenes.Ride.Scripts.Model
|
||||||
{
|
{
|
||||||
@ -104,16 +106,12 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
|
|
||||||
public int GlobalCyclingId { get; set; }
|
public int GlobalCyclingId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
public Dictionary<MapInterruptRecord, List<string>> SaveLocal(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName = "")
|
||||||
/// 保存数据
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="base64Image"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public JsonResult<AddMapRecordResultModel> SaveData(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName = "")
|
|
||||||
{
|
{
|
||||||
|
Dictionary<MapInterruptRecord, List<string>> recordData = new Dictionary<MapInterruptRecord, List<string>>();
|
||||||
if (RiderDatas.Count <= 0)
|
if (RiderDatas.Count <= 0)
|
||||||
{
|
{
|
||||||
return new JsonResult<AddMapRecordResultModel> { result = true };
|
return recordData;
|
||||||
}
|
}
|
||||||
string newFileName = Guid.NewGuid().ToString();
|
string newFileName = Guid.NewGuid().ToString();
|
||||||
int FTP = Helper.GetFtp();
|
int FTP = Helper.GetFtp();
|
||||||
@ -123,8 +121,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
//训练量
|
//训练量
|
||||||
double TSS = (RiderDatas.Count * NP * IF) / (FTP * 3600) * 100;
|
double TSS = (RiderDatas.Count * NP * IF) / (FTP * 3600) * 100;
|
||||||
var averagePower = Helper.AveragePower(RiderDatas);
|
var averagePower = Helper.AveragePower(RiderDatas);
|
||||||
MapInterruptRecordApi service = new MapInterruptRecordApi();
|
|
||||||
// AntManufacturer manufacturer = service.GetAntManufacturer(ManufacturerId).data;
|
// AntManufacturer manufacturer = service.GetAntManufacturer(ManufacturerId).data;
|
||||||
var recordId = Guid.NewGuid().ToString();
|
var recordId = Guid.NewGuid().ToString();
|
||||||
var ticks = RiderDatas.Last().Ticks;
|
var ticks = RiderDatas.Last().Ticks;
|
||||||
var interruptRecord = new MapInterruptRecord
|
var interruptRecord = new MapInterruptRecord
|
||||||
@ -182,7 +180,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
interruptRecord.AverageHeartRate = Math.Round(RiderDatas.Average(a => a._HeartRate.GetValueOrDefault(0)));
|
interruptRecord.AverageHeartRate = Math.Round(RiderDatas.Average(a => a._HeartRate.GetValueOrDefault(0)));
|
||||||
interruptRecord.MaxHeartRate = RiderDatas.Max(a => a._HeartRate.GetValueOrDefault(0));
|
interruptRecord.MaxHeartRate = RiderDatas.Max(a => a._HeartRate.GetValueOrDefault(0));
|
||||||
//service.CreateRecordCyclingData(interruptRecord);
|
//service.CreateRecordCyclingData(interruptRecord);
|
||||||
var path = Helper.GetDataDire("MapWorkoutRecords");
|
//保存骑行记录txt
|
||||||
|
var path = Helper.GetDataDir("MapWorkoutRecords" + "/" + interruptRecord.Id);
|
||||||
var fname = path + "/" + newFileName + ".txt";
|
var fname = path + "/" + newFileName + ".txt";
|
||||||
var files = new List<string>();
|
var files = new List<string>();
|
||||||
using (var fs = new FileInfo(fname).OpenWrite())
|
using (var fs = new FileInfo(fname).OpenWrite())
|
||||||
@ -197,14 +196,35 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
stream.Close();
|
stream.Close();
|
||||||
files.Add(fname);
|
files.Add(fname);
|
||||||
}
|
}
|
||||||
#region 截图
|
//图片
|
||||||
if (!string.IsNullOrEmpty(imageName))
|
if (!string.IsNullOrEmpty(imageName))
|
||||||
{
|
{
|
||||||
files.Add(imageName);
|
files.Add(imageName);
|
||||||
|
}
|
||||||
|
//持久化序列化对象
|
||||||
|
var recordString = JsonConvert.SerializeObject(interruptRecord);
|
||||||
|
var recordFilePath = path + "/" + "record" + ".txt";
|
||||||
|
System.IO.File.WriteAllText(recordFilePath, recordString);
|
||||||
|
|
||||||
|
recordData.Add(interruptRecord, files);
|
||||||
|
return recordData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 保存数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="base64Image"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public void SaveDataAysnc(Dictionary<MapInterruptRecord, List<string>> data)
|
||||||
|
{
|
||||||
|
if (data != null && data.Count > 0)
|
||||||
|
{
|
||||||
|
Task.Run(() => {
|
||||||
|
var record = data.FirstOrDefault();
|
||||||
|
MapInterruptRecordApi service = new MapInterruptRecordApi();
|
||||||
|
var result = service.Add(record.Key, record.Value);
|
||||||
|
//return new JsonResult<AddMapRecordResultModel> { result = result.result, errMsg = result.errMsg, data = result.data };
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#endregion
|
|
||||||
var result = service.Add(interruptRecord, files);
|
|
||||||
return new JsonResult<AddMapRecordResultModel> { result = result.result, errMsg = result.errMsg, data = result.data };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,6 +22,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
slider = transform.Find("Sensitivity").GetComponent<Slider>();
|
slider = transform.Find("Sensitivity").GetComponent<Slider>();
|
||||||
text = transform.Find("Sensitivity/Text").GetComponent<Text>();
|
text = transform.Find("Sensitivity/Text").GetComponent<Text>();
|
||||||
text.text = App.rideSetting.sensitivity.ToString("#0")+ "%";
|
text.text = App.rideSetting.sensitivity.ToString("#0")+ "%";
|
||||||
|
slider.value =(float)App.rideSetting.sensitivity;
|
||||||
slider.onValueChanged.AddListener((f) =>
|
slider.onValueChanged.AddListener((f) =>
|
||||||
{
|
{
|
||||||
text.text = $"{(f).ToString("#0")}%";
|
text.text = $"{(f).ToString("#0")}%";
|
||||||
|
|||||||
@ -85,6 +85,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
GameObject startPanel;
|
GameObject startPanel;
|
||||||
GameObject headPanel;
|
GameObject headPanel;
|
||||||
GameObject settingPanel;
|
GameObject settingPanel;
|
||||||
|
Button abandonButton;
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
#region 控件获取与事件绑定
|
#region 控件获取与事件绑定
|
||||||
@ -137,6 +138,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
saveButton = transform.Find("Panel/QuitPanel/SaveButton").GetComponent<Button>();
|
saveButton = transform.Find("Panel/QuitPanel/SaveButton").GetComponent<Button>();
|
||||||
cancelQuitButton = transform.Find("Panel/QuitPanel/CancelButton").GetComponent<Button>();
|
cancelQuitButton = transform.Find("Panel/QuitPanel/CancelButton").GetComponent<Button>();
|
||||||
closeQuitButton = transform.Find("Panel/QuitPanel/CloseButton").GetComponent<Button>();
|
closeQuitButton = transform.Find("Panel/QuitPanel/CloseButton").GetComponent<Button>();
|
||||||
|
abandonButton = transform.Find("Panel/QuitPanel/AbandonButton").GetComponent<Button>();
|
||||||
viewButton =transform.Find("Panel/ViewButton").GetComponent<Button>();
|
viewButton =transform.Find("Panel/ViewButton").GetComponent<Button>();
|
||||||
altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>();
|
altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>();
|
||||||
leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>();
|
leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>();
|
||||||
@ -156,8 +158,9 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
|
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
|
||||||
UIManager.AddEvent(addButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSelectPlayer);
|
UIManager.AddEvent(addButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSelectPlayer);
|
||||||
UIManager.AddEvent(saveButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SaveRide);
|
UIManager.AddEvent(saveButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SaveRide);
|
||||||
UIManager.AddEvent(cancelQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CancelQuit);
|
UIManager.AddEvent(abandonButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CancelQuit);
|
||||||
UIManager.AddEvent(closeQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
|
UIManager.AddEvent(closeQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
|
||||||
|
UIManager.AddEvent(cancelQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
|
||||||
UIManager.AddEvent(viewButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ChangeView);
|
UIManager.AddEvent(viewButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ChangeView);
|
||||||
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
||||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user