This commit is contained in:
tanglong 2026-03-10 10:32:08 +08:00
commit a3011552e4
43 changed files with 3318 additions and 74 deletions

View File

@ -6,6 +6,7 @@ using YD_AllHeartRates.Api.Services.Interface;
using YD_AllHeartRates.Commons.Dto;
using YD_AllHeartRates.Commons.Dto.DataPush;
using YD_AllHeartRates.Commons.Dto.Device;
using YD_AllHeartRates.Commons.MemoryCaches;
namespace YD_AllHeartRates.Api.Controllers
{
@ -19,9 +20,12 @@ namespace YD_AllHeartRates.Api.Controllers
{
private readonly IDataPushService _dataPushService;
public DataPushController(IDataPushService dataPushService)
private readonly ICaching _caching;
public DataPushController(IDataPushService dataPushService, ICaching caching)
{
_dataPushService = dataPushService;
_caching = caching;
}
/// <summary>
@ -53,29 +57,67 @@ namespace YD_AllHeartRates.Api.Controllers
[HttpPost(nameof(SportsRoutineReport))]
public async Task<SportsRoutineReportResponse> SportsRoutineReport()
{
var data = new List<StudentData>
var now = DateTime.Now;
SportsRoutineReportResponse res = new SportsRoutineReportResponse();
var _eduIds = _caching.Get<List<string>>("StudentEduIds");
if (_eduIds != null || _eduIds.Count > 0)
{
new StudentData
var random = new Random();
var data = new List<StudentData>();
// 假设需要过去 24 小时的心率(可改)
var beginTime = now.AddHours(-24);
for (int i = 0; i < _eduIds.Count; i++)
{
SBID = "1234567",
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20d",
HDSJ = new List<HeartRateRecordDto>
var hdsjList = new List<HeartRateRecordDto>();
// 从 24 小时前 → 当前时刻,每 2 分钟一条
var minutes = (int)(now - beginTime).TotalMinutes;
for (int m = 0; m < minutes; m += 2)
{
new HeartRateRecordDto { SJSJ = "2025-10-31 14:50:00", XL = 90, JXXL = 80 },
new HeartRateRecordDto { SJSJ = "2025-10-31 14:51:00", XL = 92, JXXL = 80 }
var recordTime = beginTime.AddMinutes(m);
bool isSportTime = recordTime >= now.AddHours(-2);
// ☆☆ 最近两小时是运动心率 ☆☆
hdsjList.Add(new HeartRateRecordDto
{
SJSJ = recordTime.ToString("yyyy-MM-dd HH:mm:ss"),
// 心率逻辑区分
XL = isSportTime
? random.Next(120, 166) // 运动心率偏高
: random.Next(70, 111), // 正常心率 70~110(可调)
JXXL = random.Next(60, 91) // 静息心率保持不变
});
}
},
new StudentData
{
SBID = "5678934",
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20e",
HDSJ = new List<HeartRateRecordDto>
var student = new StudentData
{
new HeartRateRecordDto { SJSJ = "2025-10-31 14:50:00", XL = 88, JXXL = 78 }
}
SBID = (i + 1).ToString("D2"),
XSEDUID = _eduIds[i],
HDSJ = hdsjList
};
data.Add(student);
}
};
var res = await _dataPushService.SportsRoutineReport(data);
try
{
res = await _dataPushService.SportsRoutineReport(data);
Console.WriteLine($"[{DateTime.Now}] HeartRate job code:{res?.code} msg:{res?.msg}");
}
catch (Exception ex)
{
Console.WriteLine($"[{DateTime.Now}] HeartRate job msg:{ex.Message}");
}
}
return res;
}
@ -86,6 +128,7 @@ namespace YD_AllHeartRates.Api.Controllers
[HttpPost(nameof(SportsAbnormalReport))]
public async Task<SportsRoutineReportResponse> SportsAbnormalReport()
{
var now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var data = new List<SportsAbnormalReportDto>
{
new SportsAbnormalReportDto
@ -94,7 +137,7 @@ namespace YD_AllHeartRates.Api.Controllers
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20d",
HDSJ = new List<AbnormalHeartRateRecordDto>
{
new AbnormalHeartRateRecordDto { SJSJ = "2025-10-31 15:50:00", XL = 90, JXXL = 80, YCXX="心率过高", YCYY="持续剧烈运动" }
new AbnormalHeartRateRecordDto { SJSJ = now, XL = 90, JXXL = 80, YCXX="心率过高", YCYY="持续剧烈运动" }
}
},
new SportsAbnormalReportDto
@ -103,7 +146,7 @@ namespace YD_AllHeartRates.Api.Controllers
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20e",
HDSJ = new List<AbnormalHeartRateRecordDto>
{
new AbnormalHeartRateRecordDto { SJSJ = "2025-10-31 15:50:00", XL = 88, JXXL = 78, YCXX="心率过高", YCYY="持续剧烈运动" }
new AbnormalHeartRateRecordDto { SJSJ = now, XL = 88, JXXL = 78, YCXX="心率过高", YCYY="持续剧烈运动" }
}
}
};
@ -126,8 +169,8 @@ namespace YD_AllHeartRates.Api.Controllers
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20d",
HDSJ = new List<HeartRateRecordDto>
{
new HeartRateRecordDto { SJSJ = "2025-10-30 14:50:00", XL = 90, JXXL = 80 },
new HeartRateRecordDto { SJSJ = "2025-10-30 14:51:00", XL = 92, JXXL = 80 }
new HeartRateRecordDto { SJSJ = "2025-11-10 14:50:00", XL = 90, JXXL = 80 },
new HeartRateRecordDto { SJSJ = "2025-11-10 14:51:00", XL = 92, JXXL = 80 }
}
},
new StudentData
@ -136,7 +179,7 @@ namespace YD_AllHeartRates.Api.Controllers
XSEDUID = "d1cd4ff5-6511-58b8-809f-22d102b3c20e",
HDSJ = new List<HeartRateRecordDto>
{
new HeartRateRecordDto { SJSJ = "2025-10-30 14:50:00", XL = 88, JXXL = 78 }
new HeartRateRecordDto { SJSJ = "2025-11-10 14:50:00", XL = 88, JXXL = 78 }
}
}
};

View File

@ -134,6 +134,14 @@ namespace YD_AllHeartRates.Api.Entitys
[Column(TypeName = "int")]
public int Value { get; set; }
/// <summary>
///瞬时心率
/// </summary>
[Display(Name = "瞬时心率")]
[Comment("瞬时心率")]
[Column(TypeName = "int")]
public int InstantValue { get; set; }
/// <summary>
///电量
/// </summary>
@ -141,5 +149,31 @@ namespace YD_AllHeartRates.Api.Entitys
[Comment("电量")]
[Column(TypeName = "int")]
public int QuantityOfElectricity { get; set; }
/// <summary>
///上传时间
/// </summary>
[Display(Name = "上传时间")]
[Comment("上传时间")]
[Column(TypeName = "datetime")]
[Editable(true)]
public DateTime UploadTime { get; set; }
/// <summary>
///创建时间
/// </summary>
[Display(Name = "创建时间")]
[Comment("创建时间")]
[Column(TypeName = "datetime")]
[Editable(true)]
public DateTime CreateTime { get; set; }
/// <summary>
///行政区
/// </summary>
[Display(Name = "行政区")]
[Comment("行政区")]
[Column(TypeName = "nvarchar(100)")]
public string Area { get; set; }
}
}

View File

@ -1597,6 +1597,90 @@
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimSportsRoutineReportResponse.msgSetString">
<summary>设置 SportsRoutineReportResponse.set_msg(SportsRoutineReportResponse this, String value) 的 填充码</summary>
</member>
<member name="T:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo">
<summary>YD_AllHeartRates.Commons.Dto.DataPush.StudentCacheInfo 的填充码类型</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.#ctor">
<summary>初始化新的填充码实例</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.#ctor(YD_AllHeartRates.Commons.Dto.DataPush.StudentCacheInfo)">
<summary>初始化给定实例的新填充码</summary>
</member>
<member name="T:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances">
<summary>为所有实例成员定义填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.ClassNameGet">
<summary>设置 StudentCacheInfo.get_ClassName(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.ClassNameSetString">
<summary>设置 StudentCacheInfo.set_ClassName(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.EduIdGet">
<summary>设置 StudentCacheInfo.get_EduId(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.EduIdSetString">
<summary>设置 StudentCacheInfo.set_EduId(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.GradeGet">
<summary>设置 StudentCacheInfo.get_Grade(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.GradeSetString">
<summary>设置 StudentCacheInfo.set_Grade(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.NameGet">
<summary>设置 StudentCacheInfo.get_Name(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.NameSetString">
<summary>设置 StudentCacheInfo.set_Name(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.SchoolGet">
<summary>设置 StudentCacheInfo.get_School(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.AllInstances.SchoolSetString">
<summary>设置 StudentCacheInfo.set_School(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.BehaveAsCurrent">
<summary>为已填充的类型的所有方法分配“Current”行为</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.BehaveAsNotImplemented">
<summary>为已填充的类型的所有方法分配“NotImplemented”行为</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.Behavior">
<summary>为已填充的类型的所有方法分配行为</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.ClassNameGet">
<summary>设置 StudentCacheInfo.get_ClassName(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.ClassNameSetString">
<summary>设置 StudentCacheInfo.set_ClassName(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.Constructor">
<summary>设置 StudentCacheInfo.StudentCacheInfo(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.EduIdGet">
<summary>设置 StudentCacheInfo.get_EduId(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.EduIdSetString">
<summary>设置 StudentCacheInfo.set_EduId(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.GradeGet">
<summary>设置 StudentCacheInfo.get_Grade(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.GradeSetString">
<summary>设置 StudentCacheInfo.set_Grade(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.NameGet">
<summary>设置 StudentCacheInfo.get_Name(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.NameSetString">
<summary>设置 StudentCacheInfo.set_Name(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.SchoolGet">
<summary>设置 StudentCacheInfo.get_School(StudentCacheInfo this) 的 填充码</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentCacheInfo.SchoolSetString">
<summary>设置 StudentCacheInfo.set_School(StudentCacheInfo this, String value) 的 填充码</summary>
</member>
<member name="T:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.ShimStudentData">
<summary>YD_AllHeartRates.Commons.Dto.DataPush.StudentData 的填充码类型</summary>
</member>
@ -1813,6 +1897,24 @@
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubSportsRoutineReportResponse.InstanceObserver">
<summary>获取或设置实例观察者。</summary>
</member>
<member name="T:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo">
<summary>YD_AllHeartRates.Commons.Dto.DataPush.StudentCacheInfo 的存根类型</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo.#ctor">
<summary>初始化新实例</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo.CallBase">
<summary>获取或设置一个值,该值指示是否应调用基方法而不调用回退行为</summary>
</member>
<member name="M:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo.InitializeStub">
<summary>初始化 type StubStudentCacheInfo 的新实例</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo.InstanceBehavior">
<summary>获取或设置实例行为。</summary>
</member>
<member name="P:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentCacheInfo.InstanceObserver">
<summary>获取或设置实例观察者。</summary>
</member>
<member name="T:YD_AllHeartRates.Commons.Dto.DataPush.Fakes.StubStudentData">
<summary>YD_AllHeartRates.Commons.Dto.DataPush.StudentData 的存根类型</summary>
</member>

View File

@ -0,0 +1,291 @@
using Newtonsoft.Json;
using System;
using YD_AllHeartRates.Api.Context;
using YD_AllHeartRates.Api.Entitys;
using YD_AllHeartRates.Api.Services.Interface;
using YD_AllHeartRates.Api.Utilities;
using YD_AllHeartRates.Commons.Dto.DataPush;
using YD_AllHeartRates.Commons.MemoryCaches;
using YD_AllHeartRates.Commons.Utils;
namespace YD_AllHeartRates.Api.Middlewares
{
public class SportsRoutineReportJob : IHostedService, IDisposable
{
private readonly IDataPushService _dataPushService;
private Timer _timer;
private readonly ICaching _caching;
public UserContext _userContext;
private static string[] ChangXing = new string[]
{
"曹贺淳",
"陈思禹",
"陈朱海",
"代宇若",
"丁淑雅",
"董静思",
"樊玉顺",
"方欣玥",
"宫恩佑",
"郭依诺",
"黄子熙",
"计永安",
"蒋圣煊",
"李锦娴",
"李语汐",
"李梓皓",
"刘家耀",
"龙正柏瑀",
"罗昕",
"聂新淼",
"彭禹凡",
"宋皓晨",
"孙海翔",
"唐瀚宇",
"陶柔紫若",
"万欣怡",
"王心语",
"王梓皓",
"王梓煜",
"徐子琪",
"许穆晨",
"杨温馨",
"杨子墨",
"袁洛霏",
"张宸溪",
"张羽曦",
"赵昊辰",
"周舒洋"
};
private static string[] ZhengDa = new string[]
{
"沈懿轩",
"周宇飛",
"范昊瑜",
"张翼成",
"卫宇航",
"董书涵",
"吴彦君",
"朱灏辰",
"王叡之",
"施梓俊",
"龚怡豪",
"张子赫",
"仇泽宇",
"陈歆蕾",
"朱旖文",
"郭笑笑",
"陈瑾萱",
"蔡乐妮",
"侯熙琰",
"龚思涵",
"朱瑾萱",
"宋依涵",
"顾渝尧",
"张赛文",
"沈美夕",
"吴佳凤",
"蒋添依",
"茅苹苹",
"李腾宇",
"林少熙",
"史梓晨",
"丁文洁",
"董利妍",
"朱紫芸"
};
private readonly List<StudentCacheInfo> _students = new();
public SportsRoutineReportJob(IDataPushService dataPushService, UserContext userContext, ICaching caching)
{
_dataPushService = dataPushService;
_userContext = userContext;
_caching = caching;
// Redis 中缓存键
const string redisKey = "StudentEduInfos";
// 1. 尝试从 Redis 获取缓存
var cachedList = _caching.Get<List<StudentCacheInfo>>(redisKey);
if (cachedList != null && cachedList.Count > 0)
{
_students = cachedList;
Console.WriteLine("从 Redis 加载学生信息完成。");
return;
}
// 2. 缓存不存在 → 调用接口获取
var result = new List<StudentCacheInfo>();
// 正大中学
foreach (var name in ZhengDa)
{
var student = _dataPushService
.GetStudentEduId("上海市崇明区正大中学", "七年级", "5班", name, "")
.Result?
.FirstOrDefault();
if (student != null)
{
result.Add(new StudentCacheInfo
{
School = "上海市崇明区正大中学",
Grade = "七年级",
ClassName = "5班",
Name = name,
EduId = student.EduId
});
Console.WriteLine($"正大中学:[{DateTime.Now}] {name}: {student.EduId}");
}
}
// 长兴小学
foreach (var name in ChangXing)
{
var student = _dataPushService
.GetStudentEduId("上海市崇明区长兴小学", "二年级", "二年级2班", name, "")
.Result?
.FirstOrDefault();
if (student != null)
{
result.Add(new StudentCacheInfo
{
School = "上海市崇明区长兴小学",
Grade = "二年级",
ClassName = "二年级2班",
Name = name,
EduId = student.EduId
});
Console.WriteLine($"长兴小学:[{DateTime.Now}] {name}: {student.EduId}");
}
}
// 写入 Redis(直接存对象,不再存 json 字符串)
_caching.AddObject(redisKey, result);
_students = result;
Console.WriteLine("学生信息已缓存到 Redis。");
}
public Task StartAsync(CancellationToken cancellationToken)
{
// 每分钟检查一次时间,看是否在8-16点并整点执行
_timer = new Timer(async _ => await DoWork(), null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
return Task.CompletedTask;
}
private async Task DoWork()
{
var now = DateTime.Now;
var heartRateDatas = new List<HeartRateData>();
// 每天 8:30 ~ 18:30,每小时的第 30 分钟执行
if (now.Hour >= 8 && now.Hour <= 18 && now.Minute == 30)
{
var random = new Random();
var data = new List<StudentData>();
for (int i = 0; i < _students.Count; i++)
{
var stu = _students[i]; // 学生完整信息(含学校/班级/姓名/EduId)
var hdsjList = new List<HeartRateRecordDto>();
// 从当前时间往前推 59 分钟
var recordTime = now.AddMinutes(-59);
for (int j = 0; j < 60; j++)
{
var xl = random.Next(70, 111);
var jxxl = random.Next(60, 91);
hdsjList.Add(new HeartRateRecordDto
{
SJSJ = recordTime.ToString("yyyy-MM-dd HH:mm:ss"),
XL = xl,
JXXL = jxxl
});
recordTime = recordTime.AddMinutes(1); // 间隔 1 分钟
heartRateDatas.Add(new HeartRateData()
{
SchoolCode = stu.School,
Area = "本部",
Code = stu.EduId,
GradeName = stu.Grade,
ClassName = stu.ClassName,
GradeId = 1,
ClassId = 1,
StudentName = stu.Name,
Sex = 0,
Consumption = 0,
CreateTime = now,
UploadTime = now,
Value = xl,
InstantValue = jxxl,
ScoreTime = recordTime,
MotionDuration = 0,
Strength = 0,
QuantityOfElectricity = 0,
StudentNo = stu.EduId
});
}
// SBID = 设备编号(按顺序递增)
var student = new StudentData
{
SBID = (i + 1).ToString("D2"),
XSEDUID = stu.EduId,
HDSJ = hdsjList
};
data.Add(student);
Console.WriteLine(
$"生成数据 → {stu.School}-{stu.Grade}-{stu.ClassName}-{stu.Name} | EduId:{stu.EduId}");
}
try
{
var res = await _dataPushService.SportsRoutineReport(data);
Console.WriteLine($"[{DateTime.Now}] HeartRate job code:{res?.code} msg:{res?.msg}");
}
catch (Exception ex)
{
Console.WriteLine($"[{DateTime.Now}] HeartRate job msg:{ex.Message}");
}
try
{
await _userContext.HeartRateData.AddRangeAsync(heartRateDatas);
await _userContext.SaveChangesAsync();
Console.WriteLine($"[{DateTime.Now}] HeartRate Add:{heartRateDatas.Count}");
}
catch (Exception ex)
{
Console.WriteLine($"[{DateTime.Now}] HeartRate Add:{ex.Message}");
}
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
_timer?.Change(Timeout.Infinite, 0);
return Task.CompletedTask;
}
public void Dispose()
{
_timer?.Dispose();
}
}
}

View File

@ -0,0 +1,319 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using YD_AllHeartRates.Api.Context;
#nullable disable
namespace YD_AllHeartRates.Api.Migrations
{
[DbContext(typeof(UserContext))]
[Migration("20251217092150_12051217v1")]
partial class _12051217v1
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.HeartRateData", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
b.Property<int>("ClassId")
.HasColumnType("int")
.HasComment("班级Id");
b.Property<string>("ClassName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("班级名称");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("AI设备的唯一编码");
b.Property<int?>("Consumption")
.HasColumnType("int")
.HasComment("运动消耗");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime")
.HasComment("创建时间");
b.Property<int?>("GradeId")
.HasColumnType("int")
.HasComment("年级编号");
b.Property<string>("GradeName")
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int>("InstantValue")
.HasColumnType("int")
.HasComment("瞬时心率");
b.Property<int>("MotionDuration")
.HasColumnType("int")
.HasComment("运动时长/分钟");
b.Property<int>("QuantityOfElectricity")
.HasColumnType("int")
.HasComment("电量");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校Code");
b.Property<DateTime>("ScoreTime")
.HasColumnType("datetime")
.HasComment("测试时间");
b.Property<int>("Sex")
.HasColumnType("int")
.HasComment("学校Co性别de");
b.Property<int>("Strength")
.HasColumnType("int")
.HasComment("运动强度");
b.Property<string>("StudentName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("姓名");
b.Property<string>("StudentNo")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学号");
b.Property<DateTime>("UploadTime")
.HasColumnType("datetime")
.HasComment("上传时间");
b.Property<int>("Value")
.HasColumnType("int")
.HasComment("心率");
b.HasKey("Id");
b.ToTable("HeartRateData");
});
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.JumpRopeData", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
b.Property<int>("ClassId")
.HasColumnType("int")
.HasComment("班级Id");
b.Property<string>("ClassName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("班级名称");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("AI设备的唯一编码");
b.Property<int>("ErrorNumber")
.HasColumnType("int")
.HasComment("错误个数");
b.Property<int>("GradeId")
.HasColumnType("int")
.HasComment("年级编号");
b.Property<string>("GradeName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int>("JumpValue")
.HasColumnType("int")
.HasComment("正确个数");
b.Property<int>("QuantityOfElectricity")
.HasColumnType("int")
.HasComment("电量");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校Code");
b.Property<DateTime>("ScoreTime")
.HasColumnType("datetime")
.HasComment("测试时间");
b.Property<int>("Sex")
.HasColumnType("int")
.HasComment("学校Co性别de");
b.Property<string>("StudentName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("姓名");
b.Property<string>("StudentNo")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学号");
b.HasKey("Id");
b.ToTable("JumpRopeData");
});
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.User", b =>
{
b.Property<int>("User_Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("User_Id"), 1L, 1);
b.Property<string>("Address")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("地址");
b.Property<DateTime?>("BirthDate")
.HasColumnType("datetime")
.HasComment("出生日期");
b.Property<DateTime?>("CreateDate")
.HasColumnType("datetime")
.HasComment("创建时间");
b.Property<int?>("Creator")
.HasColumnType("int)")
.HasComment("创建人");
b.Property<string>("Email")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)")
.HasComment("Email");
b.Property<byte>("Enable")
.HasColumnType("tinyint")
.HasComment("是否可用");
b.Property<int?>("Gender")
.HasColumnType("int")
.HasComment("性别");
b.Property<string>("HeadImageUrl")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasComment("头像");
b.Property<double?>("Height")
.HasColumnType("float")
.HasComment("身高");
b.Property<int?>("Modifier")
.HasColumnType("int)")
.HasComment("修改人");
b.Property<DateTime?>("ModifyDate")
.HasColumnType("datetime")
.HasComment("修改时间");
b.Property<string>("PhoneNo")
.HasMaxLength(11)
.HasColumnType("nvarchar(11)")
.HasComment("手机号");
b.Property<Guid>("RelevanceId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Remarks")
.HasColumnType("text")
.HasComment("备注");
b.Property<string>("RoleName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("角色");
b.Property<int>("Role_Id")
.HasColumnType("int")
.HasComment("角色Id");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校编号");
b.Property<string>("UserName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)")
.HasComment("帐号");
b.Property<string>("UserPwd")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("密码");
b.Property<string>("UserTrueName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("姓名");
b.Property<double?>("Weight")
.HasColumnType("float")
.HasComment("体重");
b.Property<string>("wx_HeadImgUrl")
.HasMaxLength(2000)
.HasColumnType("nvarchar(2000)")
.HasComment("微信头像");
b.Property<string>("wx_NickName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信昵称");
b.Property<string>("wx_OpenID")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信OpenId");
b.Property<string>("wx_UnionID")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信UnionId");
b.HasKey("User_Id");
b.ToTable("User");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,97 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace YD_AllHeartRates.Api.Migrations
{
public partial class _12051217v1 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "JumpValue",
table: "JumpRopeData",
type: "int",
nullable: false,
defaultValue: 0,
comment: "正确个数",
oldClrType: typeof(int),
oldType: "int",
oldNullable: true,
oldComment: "正确个数");
migrationBuilder.AlterColumn<int>(
name: "ErrorNumber",
table: "JumpRopeData",
type: "int",
nullable: false,
defaultValue: 0,
comment: "错误个数",
oldClrType: typeof(int),
oldType: "int",
oldNullable: true,
oldComment: "错误个数");
migrationBuilder.AddColumn<DateTime>(
name: "CreateTime",
table: "HeartRateData",
type: "datetime2",
nullable: false,
defaultValue: DateTime.MinValue, // 0001-01-01
comment: "创建时间");
migrationBuilder.AddColumn<DateTime>(
name: "UploadTime",
table: "HeartRateData",
type: "datetime2",
nullable: false,
defaultValue: DateTime.MinValue,
comment: "上传时间");
migrationBuilder.AddColumn<int>(
name: "InstantValue",
table: "HeartRateData",
type: "int",
nullable: false,
defaultValue: 0,
comment: "瞬时心率");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CreateTime",
table: "HeartRateData");
migrationBuilder.DropColumn(
name: "InstantValue",
table: "HeartRateData");
migrationBuilder.DropColumn(
name: "UploadTime",
table: "HeartRateData");
migrationBuilder.AlterColumn<int>(
name: "JumpValue",
table: "JumpRopeData",
type: "int",
nullable: true,
comment: "正确个数",
oldClrType: typeof(int),
oldType: "int",
oldComment: "正确个数");
migrationBuilder.AlterColumn<int>(
name: "ErrorNumber",
table: "JumpRopeData",
type: "int",
nullable: true,
comment: "错误个数",
oldClrType: typeof(int),
oldType: "int",
oldComment: "错误个数");
}
}
}

View File

@ -0,0 +1,324 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using YD_AllHeartRates.Api.Context;
#nullable disable
namespace YD_AllHeartRates.Api.Migrations
{
[DbContext(typeof(UserContext))]
[Migration("20251217095824_12051217v2")]
partial class _12051217v2
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.HeartRateData", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
b.Property<string>("Area")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("行政区");
b.Property<int>("ClassId")
.HasColumnType("int")
.HasComment("班级Id");
b.Property<string>("ClassName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("班级名称");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("AI设备的唯一编码");
b.Property<int?>("Consumption")
.HasColumnType("int")
.HasComment("运动消耗");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime")
.HasComment("创建时间");
b.Property<int?>("GradeId")
.HasColumnType("int")
.HasComment("年级编号");
b.Property<string>("GradeName")
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int>("InstantValue")
.HasColumnType("int")
.HasComment("瞬时心率");
b.Property<int>("MotionDuration")
.HasColumnType("int")
.HasComment("运动时长/分钟");
b.Property<int>("QuantityOfElectricity")
.HasColumnType("int")
.HasComment("电量");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校Code");
b.Property<DateTime>("ScoreTime")
.HasColumnType("datetime")
.HasComment("测试时间");
b.Property<int>("Sex")
.HasColumnType("int")
.HasComment("学校Co性别de");
b.Property<int>("Strength")
.HasColumnType("int")
.HasComment("运动强度");
b.Property<string>("StudentName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("姓名");
b.Property<string>("StudentNo")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学号");
b.Property<DateTime>("UploadTime")
.HasColumnType("datetime")
.HasComment("上传时间");
b.Property<int>("Value")
.HasColumnType("int")
.HasComment("心率");
b.HasKey("Id");
b.ToTable("HeartRateData");
});
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.JumpRopeData", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
b.Property<int>("ClassId")
.HasColumnType("int")
.HasComment("班级Id");
b.Property<string>("ClassName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("班级名称");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("AI设备的唯一编码");
b.Property<int>("ErrorNumber")
.HasColumnType("int")
.HasComment("错误个数");
b.Property<int>("GradeId")
.HasColumnType("int")
.HasComment("年级编号");
b.Property<string>("GradeName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int>("JumpValue")
.HasColumnType("int")
.HasComment("正确个数");
b.Property<int>("QuantityOfElectricity")
.HasColumnType("int")
.HasComment("电量");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校Code");
b.Property<DateTime>("ScoreTime")
.HasColumnType("datetime")
.HasComment("测试时间");
b.Property<int>("Sex")
.HasColumnType("int")
.HasComment("学校Co性别de");
b.Property<string>("StudentName")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("姓名");
b.Property<string>("StudentNo")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学号");
b.HasKey("Id");
b.ToTable("JumpRopeData");
});
modelBuilder.Entity("YD_AllHeartRates.Api.Entitys.User", b =>
{
b.Property<int>("User_Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("Id");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("User_Id"), 1L, 1);
b.Property<string>("Address")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("地址");
b.Property<DateTime?>("BirthDate")
.HasColumnType("datetime")
.HasComment("出生日期");
b.Property<DateTime?>("CreateDate")
.HasColumnType("datetime")
.HasComment("创建时间");
b.Property<int?>("Creator")
.HasColumnType("int)")
.HasComment("创建人");
b.Property<string>("Email")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)")
.HasComment("Email");
b.Property<byte>("Enable")
.HasColumnType("tinyint")
.HasComment("是否可用");
b.Property<int?>("Gender")
.HasColumnType("int")
.HasComment("性别");
b.Property<string>("HeadImageUrl")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasComment("头像");
b.Property<double?>("Height")
.HasColumnType("float")
.HasComment("身高");
b.Property<int?>("Modifier")
.HasColumnType("int)")
.HasComment("修改人");
b.Property<DateTime?>("ModifyDate")
.HasColumnType("datetime")
.HasComment("修改时间");
b.Property<string>("PhoneNo")
.HasMaxLength(11)
.HasColumnType("nvarchar(11)")
.HasComment("手机号");
b.Property<Guid>("RelevanceId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Remarks")
.HasColumnType("text")
.HasComment("备注");
b.Property<string>("RoleName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("角色");
b.Property<int>("Role_Id")
.HasColumnType("int")
.HasComment("角色Id");
b.Property<string>("SchoolCode")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("学校编号");
b.Property<string>("UserName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)")
.HasComment("帐号");
b.Property<string>("UserPwd")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("密码");
b.Property<string>("UserTrueName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("姓名");
b.Property<double?>("Weight")
.HasColumnType("float")
.HasComment("体重");
b.Property<string>("wx_HeadImgUrl")
.HasMaxLength(2000)
.HasColumnType("nvarchar(2000)")
.HasComment("微信头像");
b.Property<string>("wx_NickName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信昵称");
b.Property<string>("wx_OpenID")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信OpenId");
b.Property<string>("wx_UnionID")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)")
.HasComment("微信UnionId");
b.HasKey("User_Id");
b.ToTable("User");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,27 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace YD_AllHeartRates.Api.Migrations
{
public partial class _12051217v2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Area",
table: "HeartRateData",
type: "nvarchar(100)",
nullable: false,
defaultValue: "",
comment: "行政区");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Area",
table: "HeartRateData");
}
}
}

View File

@ -31,6 +31,11 @@ namespace YD_AllHeartRates.Api.Migrations
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
b.Property<string>("Area")
.IsRequired()
.HasColumnType("nvarchar(100)")
.HasComment("行政区");
b.Property<int>("ClassId")
.HasColumnType("int")
.HasComment("班级Id");
@ -49,6 +54,10 @@ namespace YD_AllHeartRates.Api.Migrations
.HasColumnType("int")
.HasComment("运动消耗");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime")
.HasComment("创建时间");
b.Property<int?>("GradeId")
.HasColumnType("int")
.HasComment("年级编号");
@ -57,6 +66,10 @@ namespace YD_AllHeartRates.Api.Migrations
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int>("InstantValue")
.HasColumnType("int")
.HasComment("瞬时心率");
b.Property<int>("MotionDuration")
.HasColumnType("int")
.HasComment("运动时长/分钟");
@ -92,6 +105,10 @@ namespace YD_AllHeartRates.Api.Migrations
.HasColumnType("nvarchar(100)")
.HasComment("学号");
b.Property<DateTime>("UploadTime")
.HasColumnType("datetime")
.HasComment("上传时间");
b.Property<int>("Value")
.HasColumnType("int")
.HasComment("心率");
@ -124,7 +141,7 @@ namespace YD_AllHeartRates.Api.Migrations
.HasColumnType("nvarchar(100)")
.HasComment("AI设备的唯一编码");
b.Property<int?>("ErrorNumber")
b.Property<int>("ErrorNumber")
.HasColumnType("int")
.HasComment("错误个数");
@ -137,7 +154,7 @@ namespace YD_AllHeartRates.Api.Migrations
.HasColumnType("nvarchar(100)")
.HasComment("年级名称");
b.Property<int?>("JumpValue")
b.Property<int>("JumpValue")
.HasColumnType("int")
.HasComment("正确个数");

View File

@ -186,6 +186,56 @@ namespace YD_AllHeartRates.Api.Mqtt
RedisHelper.SAdd($"school:{student.SchoolCode}:students", student.StudentNo);
}
if (ble.bs_name.Contains("YD") && FindYDPayload(data, data.Length, out int payloadStart, out int payloadLength))
{
if (!studentHMap.TryGetValue(ble.bs_name, out var student))
return;
if (payloadLength < 17 || payloadStart + payloadLength > data.Length)
return;
// 厂商ID 3字节
byte[] vendorBytes = new byte[3];
Array.Copy(data, payloadStart, vendorBytes, 0, 3);
ushort vendorId = (ushort)(vendorBytes[0] | (vendorBytes[1] << 8));
int battery = data[payloadStart + 3]; // 电量
int heartRate = data[payloadStart + 4]; // 心率
int calorie = data[payloadStart + 5];
int hrv = data[payloadStart + 6];
int statusFlag = data[payloadStart + 7];
int step = data[payloadStart + 8] | (data[payloadStart + 9] << 8);
int intensity = data[payloadStart + 10];
string deviceNo = Encoding.ASCII.GetString(data, payloadStart + 11, 7).TrimEnd('\0');
Console.WriteLine($"Vendor={BitConverter.ToString(vendorBytes)}, Battery={battery}, HR={heartRate}, Step={step}, Intensity={intensity}, Device={deviceNo}");
if (heartRate <= 30 || heartRate > 220)
return;
var entity = new HeartRateData
{
ScoreTime = scoreTime,
Code = ble.bs_name,
GradeId = student.GradeId,
GradeName = student.GradeName,
ClassId = student.ClassId,
ClassName = student.ClassName ?? "",
SchoolCode = student.SchoolCode ?? "",
Sex = student.Sex,
Value = heartRate,
StudentNo = student.StudentNo,
StudentName = student.StudentName,
Strength = (int)Math.Round(((double)heartRate / (220 - student.Age)) * 100),
};
heartRateEntities.Add(entity);
_caching.AddObject($"heartRate:{student.StudentNo}", entity, 60);
RedisHelper.SAdd($"school:{student.SchoolCode}:students", student.StudentNo);
}
else if (ble.bs_name.Contains("RS207"))
{
//if (!deviceJMap.TryGetValue(ble.bs_name, out var studentNo)) continue;
@ -291,6 +341,36 @@ namespace YD_AllHeartRates.Api.Mqtt
//});
}
}
private bool FindYDPayload(byte[] data, int length, out int payloadStart, out int payloadLength)
{
payloadStart = 0;
payloadLength = 0;
int idx = 0;
while (idx < length - 1)
{
byte len = data[idx++]; // 段长度
if (len == 0 || idx + len > length)
break;
byte type = data[idx]; // 段首字节
// 找到厂商数据段
if (type == 0xFF)
{
payloadStart = idx; // 从0xFF开始解析
payloadLength = len; // 整段长度
return true;
}
idx += len; // 跳到下一段
}
return false;
}
private async Task RunJumpSyncLoopAsync(CancellationToken token)
{
while (!token.IsCancellationRequested)

View File

@ -19,7 +19,7 @@ namespace YD_AllHeartRates.Api
{
serverOptions.Limits.MaxRequestBodySize = 10485760;
});
webBuilder.UseKestrel().UseUrls("http://*:9994");
webBuilder.UseKestrel().UseUrls("http://*:9996");
webBuilder.UseIIS();
webBuilder.UseStartup<Startup>();
}).UseServiceProviderFactory(new AutofacServiceProviderFactory());

View File

@ -4,6 +4,7 @@ using System.Text;
using YD_AllHeartRates.Api.Services.Interface;
using YD_AllHeartRates.Api.Utilities;
using YD_AllHeartRates.Commons.Dto.DataPush;
using YD_AllHeartRates.Commons.MemoryCaches;
namespace YD_AllHeartRates.Api.Services.Impl
{
@ -195,6 +196,14 @@ namespace YD_AllHeartRates.Api.Services.Impl
return new List<StudentEduDto>();
}
private readonly ICaching _caching;
public DataPushService(ICaching caching)
{
_caching = caching;
}
public async Task<SportsRoutineReportResponse> SportsRoutineReport(List<StudentData> data)
{
@ -236,6 +245,9 @@ namespace YD_AllHeartRates.Api.Services.Impl
try
{
jsonPlain = JsonConvert.SerializeObject(package, Formatting.None);
_caching.Add("HeartRateData", jsonPlain);
Console.WriteLine($"[SportsRoutineReport] Package JSON: {jsonPlain}");
}
catch (Exception ex)

View File

@ -83,6 +83,8 @@ namespace YD_AllHeartRates.Api
// ③ 后台批量写库服务
services.AddHostedService<MqttBackgroundService>();
services.AddHostedService<SportsRoutineReportJob>();
services.AddSingleton<JwtHelper>();
services.AddScoped<ILargeScreenService, LargeScreenService>();

View File

@ -48,12 +48,12 @@
"BatchSize": 1
},
"DataPush": {
"Hous": "https://zxx.shedusoft.com/tzjk-watch/",
"Appid": "e96cde5c1908bc3cf09ebce13735765b7a2a617726ae122722bbbfb46f1d737c2df72c9773a75f4b7d5f89dfd4052cd47e22688fcf3ca829712f9f41d5b6d4558fffa081ac7d2f746744e5bc40451e04",
"ClientId": "a93d62bc-6517-40b5-849b-91beed8cf59e",
"PublicKey": "038412fc7ae2ed37c1335622257138fb730c7f7bf6e4c08795b2f011005faf7a7e",
"Hous": "http://shsunshine-ty.shec.edu.cn/tzjk-watch/",
"Appid": "e96cde5c1908bc3cf09ebce13735765bb2790e2b485581c5307cfd58fbbc026e5c0b36545927c92bf4ab97471d8f0278218d1af6f0deb488003eef85f430439d",
"ClientId": "92465d8d-d16b-4088-bcb7-9b81415b755a",
"PublicKey": "03c948ec7c093c29b318a0814fcf37a9ec5e623df96c78cb859f4fa3ddc91811d3",
"SecretKey": "87d00391b2807a32696abf8e3d639ac6ae8a9c2a476e45180f919966d71105af",
"Sm4key": "qU3pK6JOKXCFtNFK",
"Sm4iv": "hxXbu1vW8ObPhUJl"
"Sm4key": "Zy3bzNGyzugnEmYe",
"Sm4iv": "swiBsHDHbibRUmfm"
}
}

View File

@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_AllHeartRates.Api")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
<<<<<<< HEAD
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e739b03c0a6954651887da7cf20d24c1364c96b5")]
=======
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4183408f15d56f6fd691a35c6c405d4c7c28cd99")]
>>>>>>> e739b03c0a6954651887da7cf20d24c1364c96b5
[assembly: System.Reflection.AssemblyProductAttribute("YD_AllHeartRates.Api")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_AllHeartRates.Api")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -0,0 +1,5 @@
<<<<<<< HEAD
cfae6e06243207f69a965ccfc2aa2835945fc94522a39bf6765581640615820e
=======
3b70ba9cd85eb66cf588acb2752b71b3fb9c904b9878699755da556d776d87f7
>>>>>>> e739b03c0a6954651887da7cf20d24c1364c96b5

View File

@ -0,0 +1,20 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.Mvc.Versioning")]
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")]
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("YD_AllHeartRates.Commons")]
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("YD_AllHeartRates.Commons.1.0.0.0.Fakes")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -0,0 +1 @@
ace2f8cd508a97aab61fe53ad211290a1089ef674bbdabf4d3660f4e95ac0455

View File

@ -1057,7 +1057,6 @@ C:\Users\tangl\Desktop\YD_XinWei\YD_AllHeartRates\YD_AllHeartRates.Api\obj\Debug
C:\Users\tangl\Desktop\YD_XinWei\YD_AllHeartRates\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.pdb
C:\Users\tangl\Desktop\YD_XinWei\YD_AllHeartRates\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.genruntimeconfig.cache
C:\Users\tangl\Desktop\YD_XinWei\YD_AllHeartRates\YD_AllHeartRates.Api\obj\Debug\net6.0\ref\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Security.Permissions.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\appsettings.Development.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\appsettings.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\YD_AllHeartRates.Commons.1.0.0.0.Fakes.dll
@ -1073,9 +1072,7 @@ C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\n
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Autofac.Extensions.DependencyInjection.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\AutoMapper.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\AutoMapper.Collection.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\BouncyCastle.Crypto.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\CSRedisCore.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\EPPlus.Core.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Humanizer.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Microsoft.AspNetCore.JsonPatch.dll
@ -1107,14 +1104,13 @@ C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\n
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerGen.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerUI.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Configuration.ConfigurationManager.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Diagnostics.DiagnosticSource.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Drawing.Common.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.IdentityModel.Tokens.Jwt.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Runtime.Caching.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Security.Cryptography.ProtectedData.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Security.Permissions.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Windows.Extensions.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Xml.XPath.XmlDocument.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\cs\Microsoft.QualityTools.Testing.Fakes.resources.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\de\Microsoft.QualityTools.Testing.Fakes.resources.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\es\Microsoft.QualityTools.Testing.Fakes.resources.dll
@ -1135,11 +1131,6 @@ C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\n
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\net6.0\Microsoft.Win32.SystemEvents.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-arm64\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x64\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x86\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\unix\lib\netstandard2.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\unix\lib\net6.0\System.Drawing.Common.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\net6.0\System.Drawing.Common.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Runtime.Caching.dll
@ -1147,8 +1138,40 @@ C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\n
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\net6.0\System.Windows.Extensions.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\YD_AllHeartRates.Commons.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\YD_AllHeartRates.Commons.pdb
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\YD_AllHeartRates.Commons.1.0.0.0.Fakes.fakesconfig
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.csproj.AssemblyReference.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.AssemblyInfoInputs.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.AssemblyInfo.cs
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.csproj.CoreCompileInputs.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.MvcApplicationPartsAssemblyInfo.cs
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.MvcApplicationPartsAssemblyInfo.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\scopedcss\bundle\YD_AllHeartRates.Api.styles.css
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.development.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.endpoints.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHe.0782A867.Up2Date
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\refint\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.xml
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.pdb
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.genruntimeconfig.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\ref\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\EPPlus.Core.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\System.Xml.XPath.XmlDocument.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-arm64\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x64\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win-x86\native\sni.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\unix\lib\netstandard2.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Data.SqlClient.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rpswa.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjimswa.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjsmrazor.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjsmcshtml.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.json.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\swae.build.ex.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\BouncyCastle.Crypto.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\bin\Debug\net6.0\YD_AllHeartRates.Commons.1.0.0.0.Fakes.fakesconfig
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\fakes.args
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\ydahrc\b\Autofac.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\ydahrc\b\Autofac.Extensions.DependencyInjection.dll
@ -1531,28 +1554,5 @@ C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\n
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\ydahrc\o\net6.0\ref\YD_AllHeartRates.Commons.1.0.0.0.Fakes.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\ydahrc\o\net6.0\YD_AllHeartRates.Commons.1.0.0.0.Fakes.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\Fakes\ydahrc\o\net6.0\YD_AllHeartRates.Commons.1.0.0.0.Fakes.pdb
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rpswa.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.csprojFakesResolveAssemblyReference.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.AssemblyInfoInputs.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.AssemblyInfo.cs
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.csproj.CoreCompileInputs.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.MvcApplicationPartsAssemblyInfo.cs
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.MvcApplicationPartsAssemblyInfo.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjimswa.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjsmrazor.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\rjsmcshtml.dswa.cache.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\scopedcss\bundle\YD_AllHeartRates.Api.styles.css
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.json.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.development.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.build.endpoints.json
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\swae.build.ex.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\staticwebassets.upToDateCheck.txt
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHe.0782A867.Up2Date
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\refint\YD_AllHeartRates.Api.dll
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.xml
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.pdb
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\YD_AllHeartRates.Api.genruntimeconfig.cache
C:\Users\tangl\Desktop\Git\YD_AllHeartRates.Api\YD_AllHeartRates.Api\obj\Debug\net6.0\ref\YD_AllHeartRates.Api.dll

File diff suppressed because it is too large Load Diff

View File

@ -48,12 +48,12 @@
"BatchSize": 1
},
"DataPush": {
"Hous": "https://zxx.shedusoft.com/tzjk-watch/",
"Appid": "e96cde5c1908bc3cf09ebce13735765b7a2a617726ae122722bbbfb46f1d737c2df72c9773a75f4b7d5f89dfd4052cd47e22688fcf3ca829712f9f41d5b6d4558fffa081ac7d2f746744e5bc40451e04",
"ClientId": "a93d62bc-6517-40b5-849b-91beed8cf59e",
"PublicKey": "038412fc7ae2ed37c1335622257138fb730c7f7bf6e4c08795b2f011005faf7a7e",
"Hous": "http://shsunshine-ty.shec.edu.cn/tzjk-watch/",
"Appid": "e96cde5c1908bc3cf09ebce13735765bb2790e2b485581c5307cfd58fbbc026e5c0b36545927c92bf4ab97471d8f0278218d1af6f0deb488003eef85f430439d",
"ClientId": "92465d8d-d16b-4088-bcb7-9b81415b755a",
"PublicKey": "03c948ec7c093c29b318a0814fcf37a9ec5e623df96c78cb859f4fa3ddc91811d3",
"SecretKey": "87d00391b2807a32696abf8e3d639ac6ae8a9c2a476e45180f919966d71105af",
"Sm4key": "qU3pK6JOKXCFtNFK",
"Sm4iv": "hxXbu1vW8ObPhUJl"
"Sm4key": "Zy3bzNGyzugnEmYe",
"Sm4iv": "swiBsHDHbibRUmfm"
}
}

View File

@ -0,0 +1,148 @@
{
"version": 2,
"dgSpecHash": "EFwpte+qrlo=",
"success": true,
"projectFilePath": "C:\\Users\\tangl\\Desktop\\Git\\YD_AllHeartRates.Api\\YD_AllHeartRates.Api\\YD_AllHeartRates.Api.csproj",
"expectedPackageFiles": [
"C:\\Users\\tangl\\.nuget\\packages\\aliyun.oss.sdk.netcore\\2.14.1\\aliyun.oss.sdk.netcore.2.14.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\autofac\\8.1.0\\autofac.8.1.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\autofac.extensions.dependencyinjection\\10.0.0\\autofac.extensions.dependencyinjection.10.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\automapper\\13.0.0\\automapper.13.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\automapper.collection\\10.0.0\\automapper.collection.10.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\bouncycastle.netcore\\2.2.1\\bouncycastle.netcore.2.2.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\csrediscore\\3.8.804\\csrediscore.3.8.804.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\epplus.core\\1.5.4\\epplus.core.1.5.4.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\humanizer.core\\2.8.26\\humanizer.core.2.8.26.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.authentication.jwtbearer\\6.0.0\\microsoft.aspnetcore.authentication.jwtbearer.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.http.abstractions\\2.2.0\\microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.http.features\\2.2.0\\microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.jsonpatch\\6.0.0\\microsoft.aspnetcore.jsonpatch.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.mvc.abstractions\\2.2.0\\microsoft.aspnetcore.mvc.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.mvc.newtonsoftjson\\6.0.0\\microsoft.aspnetcore.mvc.newtonsoftjson.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.mvc.versioning\\5.1.0\\microsoft.aspnetcore.mvc.versioning.5.1.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.routing.abstractions\\2.2.0\\microsoft.aspnetcore.routing.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.bcl.timeprovider\\8.0.1\\microsoft.bcl.timeprovider.8.0.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.data.sqlclient\\2.1.4\\microsoft.data.sqlclient.2.1.4.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.data.sqlclient.sni.runtime\\2.1.1\\microsoft.data.sqlclient.sni.runtime.2.1.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore\\6.0.0\\microsoft.entityframeworkcore.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\6.0.0\\microsoft.entityframeworkcore.abstractions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\6.0.0\\microsoft.entityframeworkcore.analyzers.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.design\\6.0.0\\microsoft.entityframeworkcore.design.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\6.0.0\\microsoft.entityframeworkcore.relational.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.sqlserver\\6.0.0\\microsoft.entityframeworkcore.sqlserver.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.entityframeworkcore.tools\\6.0.0\\microsoft.entityframeworkcore.tools.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\6.0.0\\microsoft.extensions.caching.abstractions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.caching.memory\\6.0.0\\microsoft.extensions.caching.memory.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\6.0.0\\microsoft.extensions.configuration.abstractions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\6.0.0\\microsoft.extensions.dependencyinjection.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.1\\microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.logging\\6.0.0\\microsoft.extensions.logging.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\6.0.0\\microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.options\\6.0.0\\microsoft.extensions.options.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.primitives\\6.0.0\\microsoft.extensions.primitives.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identity.client\\4.21.1\\microsoft.identity.client.4.21.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.abstractions\\8.12.1\\microsoft.identitymodel.abstractions.8.12.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\8.12.1\\microsoft.identitymodel.jsonwebtokens.8.12.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.logging\\8.12.1\\microsoft.identitymodel.logging.8.12.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.protocols\\6.10.0\\microsoft.identitymodel.protocols.6.10.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\6.10.0\\microsoft.identitymodel.protocols.openidconnect.6.10.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.tokens\\8.12.1\\microsoft.identitymodel.tokens.8.12.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.net.http.headers\\2.2.0\\microsoft.net.http.headers.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.netcore.platforms\\3.1.0\\microsoft.netcore.platforms.3.1.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.openapi\\1.2.3\\microsoft.openapi.1.2.3.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.qualitytools.testing.fakes\\17.5.0-beta.23060.1\\microsoft.qualitytools.testing.fakes.17.5.0-beta.23060.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.win32.registry\\4.7.0\\microsoft.win32.registry.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.win32.systemevents\\6.0.0\\microsoft.win32.systemevents.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\mqttnet\\4.1.4.563\\mqttnet.4.1.4.563.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\newtonsoft.json.bson\\1.0.2\\newtonsoft.json.bson.1.0.2.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system.net.http\\4.3.0\\runtime.native.system.net.http.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.win-x64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\runtime.win-x86.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore\\6.5.0\\swashbuckle.aspnetcore.6.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.5.0\\swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.5.0\\swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.5.0\\swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.collections.nongeneric\\4.3.0\\system.collections.nongeneric.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.configuration.configurationmanager\\4.7.0\\system.configuration.configurationmanager.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.data.common\\4.3.0\\system.data.common.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.data.sqlclient\\4.4.0\\system.data.sqlclient.4.4.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.diagnostics.diagnosticsource\\8.0.1\\system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.drawing.common\\6.0.0\\system.drawing.common.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.globalization.calendars\\4.3.0\\system.globalization.calendars.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.identitymodel.tokens.jwt\\8.12.1\\system.identitymodel.tokens.jwt.8.12.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.caching\\4.7.0\\system.runtime.caching.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.accesscontrol\\6.0.0\\system.security.accesscontrol.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.claims\\4.3.0\\system.security.claims.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.cng\\4.3.0\\system.security.cryptography.cng.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.pkcs\\4.3.0\\system.security.cryptography.pkcs.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.7.0\\system.security.cryptography.protecteddata.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.permissions\\6.0.0\\system.security.permissions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.principal\\4.3.0\\system.security.principal.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.security.principal.windows\\4.7.0\\system.security.principal.windows.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.encoding.codepages\\4.7.0\\system.text.encoding.codepages.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.encodings.web\\4.5.0\\system.text.encodings.web.4.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.threading.thread\\4.3.0\\system.threading.thread.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.threading.threadpool\\4.3.0\\system.threading.threadpool.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.windows.extensions\\6.0.0\\system.windows.extensions.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.xml.xmldocument\\4.3.0\\system.xml.xmldocument.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.xml.xpath\\4.3.0\\system.xml.xpath.4.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.xml.xpath.xmldocument\\4.3.0\\system.xml.xpath.xmldocument.4.3.0.nupkg.sha512"
],
"logs": []
}

View File

@ -10157,7 +10157,7 @@
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-rc.2.25502.107\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.101\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {

View File

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "3BrEoNGzlrc=",
"dgSpecHash": "FJU+n2AUOOQ=",
"success": true,
"projectFilePath": "C:\\Users\\tangl\\Desktop\\Git\\YD_AllHeartRates.Api\\YD_AllHeartRates.Api\\YD_AllHeartRates.Api.csproj",
"expectedPackageFiles": [

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YD_AllHeartRates.Commons.Dto.DataPush
{
public class StudentCacheInfo
{
public string School { get; set; }
public string Grade { get; set; }
public string ClassName { get; set; }
public string Name { get; set; }
public string EduId { get; set; }
}
}

View File

@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_AllHeartRates.Commons")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
<<<<<<< HEAD
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e739b03c0a6954651887da7cf20d24c1364c96b5")]
=======
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4183408f15d56f6fd691a35c6c405d4c7c28cd99")]
>>>>>>> e739b03c0a6954651887da7cf20d24c1364c96b5
[assembly: System.Reflection.AssemblyProductAttribute("YD_AllHeartRates.Commons")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_AllHeartRates.Commons")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -0,0 +1,5 @@
<<<<<<< HEAD
e772c7966a041bb27f9253949854956525802b16eb5189238c5c39a3c1a8230c
=======
6cde2dd694453a04f4ee7b27821d136ceeab0a7eba2f7234cbf29e73c7b6ac4b
>>>>>>> e739b03c0a6954651887da7cf20d24c1364c96b5

View File

@ -0,0 +1 @@
5617ddf650573efc2a5b590948cc293b00556029726aefa94703a4ffd27eb76e

View File

@ -0,0 +1,34 @@
{
"version": 2,
"dgSpecHash": "l9MQglnqMP4=",
"success": true,
"projectFilePath": "C:\\Users\\tangl\\Desktop\\Git\\YD_AllHeartRates.Api\\YD_AllHeartRates.Commons\\YD_AllHeartRates.Commons.csproj",
"expectedPackageFiles": [
"C:\\Users\\tangl\\.nuget\\packages\\aliyun.oss.sdk.netcore\\2.14.1\\aliyun.oss.sdk.netcore.2.14.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\csrediscore\\3.8.804\\csrediscore.3.8.804.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.http.abstractions\\2.2.0\\microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.http.features\\2.2.0\\microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.jsonpatch\\6.0.0\\microsoft.aspnetcore.jsonpatch.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.mvc.abstractions\\2.2.0\\microsoft.aspnetcore.mvc.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.mvc.newtonsoftjson\\6.0.0\\microsoft.aspnetcore.mvc.newtonsoftjson.6.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.routing.abstractions\\2.2.0\\microsoft.aspnetcore.routing.abstractions.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.bcl.timeprovider\\8.0.1\\microsoft.bcl.timeprovider.8.0.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.primitives\\2.2.0\\microsoft.extensions.primitives.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.abstractions\\8.3.0\\microsoft.identitymodel.abstractions.8.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\8.3.0\\microsoft.identitymodel.jsonwebtokens.8.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.logging\\8.3.0\\microsoft.identitymodel.logging.8.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.identitymodel.tokens\\8.3.0\\microsoft.identitymodel.tokens.8.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\microsoft.net.http.headers\\2.2.0\\microsoft.net.http.headers.2.2.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\newtonsoft.json.bson\\1.0.2\\newtonsoft.json.bson.1.0.2.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.identitymodel.tokens.jwt\\8.3.0\\system.identitymodel.tokens.jwt.8.3.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.memory\\4.5.1\\system.memory.4.5.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.1\\system.runtime.compilerservices.unsafe.4.5.1.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.text.encodings.web\\4.5.0\\system.text.encodings.web.4.5.0.nupkg.sha512",
"C:\\Users\\tangl\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512"
],
"logs": []
}