From 84213487a0e212300f63539e1b635b44b552c46a Mon Sep 17 00:00:00 2001
From: tanglong <842690096@qq.com>
Date: Wed, 30 Jul 2025 16:51:08 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=89=93=E7=9A=84=E5=9C=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 9 +-
Server/.gitignore | 9 +-
.../Dto/LargeScreen/LargeScreenDto.cs | 19 +-
.../Dto/LargeScreen/SportsProjectListDto.cs | 29 ++
.../Dto/LargeScreen/SportsTestDataDto.cs | 97 ++++++
.../Dto/LargeScreen/StudentListDto.cs | 20 ++
.../net6.0/YD_XinWei.Commons.AssemblyInfo.cs | 2 +-
...YD_XinWei.Commons.AssemblyInfoInputs.cache | 2 +-
...XinWei.Commons.csproj.FileListAbsolute.txt | 12 +
.../Controllers/LargeScreenController.cs | 48 +++
Server/YD_XinWei/Program.cs | 2 +-
.../Services/Impl/LargeScreenService.cs | 172 +++++++++-
.../Services/Interface/ILargeScreenService.cs | 11 +-
.../SmartSportsEntitys/N_SportsTestValue.cs | 12 +-
.../YD_XinWei/SmartSportsEntitys/S_Class.cs | 4 +-
Server/YD_XinWei/Startup.cs | 3 +-
Server/YD_XinWei/Utilities/AppSettings.cs | 1 +
.../obj/Debug/net6.0/ApiEndpoints.json | 62 ++++
.../net6.0/EndpointInfo/YD_XinWei.Api.json | 294 ++++++++++++++++++
.../net6.0/YD_XinWei.Api.AssemblyInfo.cs | 2 +-
.../YD_XinWei.Api.AssemblyInfoInputs.cache | 2 +-
..._XinWei.Api.csproj.AssemblyReference.cache | Bin 20023 -> 22505 bytes
.../YD_XinWei.Api.csproj.FileListAbsolute.txt | 90 ++++++
Server/YD_XinWei/obj/Debug/net6.0/apphost.exe | Bin 151040 -> 151040 bytes
24 files changed, 869 insertions(+), 33 deletions(-)
create mode 100644 Server/YD_XinWei.Commons/Dto/LargeScreen/SportsProjectListDto.cs
create mode 100644 Server/YD_XinWei.Commons/Dto/LargeScreen/SportsTestDataDto.cs
create mode 100644 Server/YD_XinWei.Commons/Dto/LargeScreen/StudentListDto.cs
create mode 100644 Server/YD_XinWei/Controllers/LargeScreenController.cs
diff --git a/.gitignore b/.gitignore
index 88dbff1..5a7fe71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,8 @@
-.vs/
+.vs
+.vscode
+bin
+obj
+*.jfm
+*.dbmdl
+*.user
+node_modules
\ No newline at end of file
diff --git a/Server/.gitignore b/Server/.gitignore
index 88dbff1..5a7fe71 100644
--- a/Server/.gitignore
+++ b/Server/.gitignore
@@ -1 +1,8 @@
-.vs/
+.vs
+.vscode
+bin
+obj
+*.jfm
+*.dbmdl
+*.user
+node_modules
\ No newline at end of file
diff --git a/Server/YD_XinWei.Commons/Dto/LargeScreen/LargeScreenDto.cs b/Server/YD_XinWei.Commons/Dto/LargeScreen/LargeScreenDto.cs
index 1b4463a..b148ab7 100644
--- a/Server/YD_XinWei.Commons/Dto/LargeScreen/LargeScreenDto.cs
+++ b/Server/YD_XinWei.Commons/Dto/LargeScreen/LargeScreenDto.cs
@@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
namespace YD_XinWei.Commons.Dto.LargeScreen
{
@@ -21,12 +22,12 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
///
/// 各项目数据
///
- public ItemDataDto ItemData { get; set; } = new ItemDataDto();
+ public List ItemDatalist { get; set; } = new List();
///
/// 班级运动榜
///
- public ClassSportsRankingDto ClassSportsRankList { get; set; } = new ClassSportsRankingDto();
+ public List ClassSportsRankList { get; set; } = new List();
///
/// 各项目实时数据
@@ -71,9 +72,9 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
public class ItemDataDto
{
///
- /// 项目id
+ /// 项目枚举
///
- public int ProjectId { get; set; }
+ public int CategoryValue { get; set; }
///
/// 项目优良率
@@ -114,7 +115,7 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
///
/// 成绩
///
- public string Score { get; set; }
+ public float Value { get; set; }
}
///
@@ -166,7 +167,7 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
///
/// 年级班级名称
///
- public int GradeAndClassName { get; set; }
+ public string GradeAndClassName { get; set; }
///
/// 项目名称
@@ -176,12 +177,12 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
///
/// 成绩
///
- public int Result { get; set; }
+ public float Value { get; set; }
///
/// 得分
///
- public int Score { get; set; }
+ public float Score { get; set; }
///
/// 等级
@@ -192,6 +193,6 @@ namespace YD_XinWei.Commons.Dto.LargeScreen
/// 创建时间
///
- public string CreateTime { get; set; }
+ public string ScoreTime { get; set; }
}
}
diff --git a/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsProjectListDto.cs b/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsProjectListDto.cs
new file mode 100644
index 0000000..92d7a40
--- /dev/null
+++ b/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsProjectListDto.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace YD_XinWei.Commons.Dto.LargeScreen
+{
+ ///
+ /// 体育项目列表
+ ///
+ public class SportsProjectListDto
+ {
+ ///
+ /// ProjectId
+ ///
+ public int ProjectId { get; set; }
+
+ ///
+ ///名称
+ ///
+ public string ProjectName { get; set; }
+
+ ///
+ /// 类别
+ ///
+ public int CategoryValue { get; set; }
+ }
+}
diff --git a/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsTestDataDto.cs b/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsTestDataDto.cs
new file mode 100644
index 0000000..3a8837f
--- /dev/null
+++ b/Server/YD_XinWei.Commons/Dto/LargeScreen/SportsTestDataDto.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace YD_XinWei.Commons.Dto.LargeScreen
+{
+ public class SportsTestDataDto
+ {
+ ///
+ ///学校编号
+ ///
+ public string? SchoolCode { get; set; }
+
+ ///
+ ///老师Id
+ ///
+ public int TeacherId { get; set; }
+
+ ///
+ ///年级Id
+ ///
+ public int GradeId { get; set; }
+
+ ///
+ ///年级名称
+ ///
+ ///
+ public string? GradeName { get; set; }
+
+ ///
+ ///班级Id
+ ///
+ ///
+ public int ClassId { get; set; }
+
+ ///
+ ///班级名称
+ ///
+ ///
+ public string? ClassName { get; set; }
+
+
+ ///
+ ///学生学号
+ ///
+ public string StudentNo { get; set; }
+
+ ///
+ ///学生名称
+ ///
+ public string StudentName { get; set; }
+
+ ///
+ ///性别
+ ///
+ public int Sex { get; set; }
+
+ ///
+ ///类别枚举值
+ ///
+ public int CategoryValue { get; set; }
+
+ ///
+ ///测试结果
+ ///
+ public float Value { get; set; }
+
+ ///
+ ///得分
+ ///
+ public float Score { get; set; }
+
+ ///
+ /// 等级
+ ///
+ public string? Rank { get; set; }
+
+ ///
+ ///测试时间
+ ///
+ public DateTime ScoreTime { get; set; }
+
+ ///
+ /// 身高[单位:厘米]
+ ///
+ public float? Height { get; set; }
+
+ ///
+ /// 体重[单位:千克]
+ ///
+ public float? Weight { get; set; }
+ }
+}
diff --git a/Server/YD_XinWei.Commons/Dto/LargeScreen/StudentListDto.cs b/Server/YD_XinWei.Commons/Dto/LargeScreen/StudentListDto.cs
new file mode 100644
index 0000000..104f604
--- /dev/null
+++ b/Server/YD_XinWei.Commons/Dto/LargeScreen/StudentListDto.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace YD_XinWei.Commons.Dto.LargeScreen
+{
+ ///
+ /// 学生列表
+ ///
+ public class StudentListDto
+ {
+ public string StudentNo { get; set; }
+
+ public string Photo { get; set; }
+
+ public int Sex { get; set; }
+ }
+}
diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
index 96b043f..59d2aeb 100644
--- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
+++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9db8634ffd224583a038708ca65e7bbd724860fd")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d6f1972ad9eeb1f7748d627b93cfc055c9be74da")]
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
index 6b43653..9b035b3 100644
--- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
+++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
@@ -1 +1 @@
-242218b26af20e234a480d64e61bc7bcf41a4da0f6701959d0541467151cf2ce
+f2cd6ca8ff95a7c4607306742b0f6455f67e97940b68e393657f6ff677fbc6f0
diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.FileListAbsolute.txt b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.FileListAbsolute.txt
index e9092c3..a437640 100644
--- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.FileListAbsolute.txt
+++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.FileListAbsolute.txt
@@ -76,3 +76,15 @@ C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\refint\YD_XinWei.Commons.dll
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.pdb
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\ref\YD_XinWei.Commons.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\bin\Debug\net6.0\YD_XinWei.Commons.deps.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\bin\Debug\net6.0\YD_XinWei.Commons.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\bin\Debug\net6.0\YD_XinWei.Commons.pdb
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.csproj.AssemblyReference.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.AssemblyInfoInputs.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.AssemblyInfo.cs
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.csproj.CoreCompileInputs.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\refint\YD_XinWei.Commons.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\YD_XinWei.Commons.pdb
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei.Commons\obj\Debug\net6.0\ref\YD_XinWei.Commons.dll
diff --git a/Server/YD_XinWei/Controllers/LargeScreenController.cs b/Server/YD_XinWei/Controllers/LargeScreenController.cs
new file mode 100644
index 0000000..500632a
--- /dev/null
+++ b/Server/YD_XinWei/Controllers/LargeScreenController.cs
@@ -0,0 +1,48 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using YD_XinWei.Api.Services.Impl;
+using YD_XinWei.Api.Services.Interface;
+using YD_XinWei.Commons.Dto;
+using YD_XinWei.Commons.Dto.LargeScreen;
+using YD_XinWei.Commons.Dto.Open;
+
+namespace YD_XinWei.Api.Controllers
+{
+ [ApiVersion("1.0")]
+ [AllowAnonymous]
+ public class LargeScreenController : ControllerBase
+ {
+ private readonly ILargeScreenService _largeScreenService;
+ public LargeScreenController(ILargeScreenService largeScreenService)
+ {
+ _largeScreenService = largeScreenService;
+ }
+
+ ///
+ /// 获取项目列表
+ ///
+ ///
+ [HttpGet]
+ [Route("/LargeScreen/{apiVersion}/SportsProjectList")]
+ public async Task> SportsProjectList(int orgId)
+ {
+ var res = await _largeScreenService.SportsProjectList(orgId);
+
+ return res;
+ }
+
+ ///
+ /// 项目成绩大屏数据
+ ///
+ ///
+ [HttpGet]
+ [Route("/LargeScreen/{apiVersion}/ItemResultLargeScreenData")]
+ public async Task ItemResultLargeScreenData(int orgId)
+ {
+ var res = await _largeScreenService.ItemResultLargeScreenData(orgId);
+
+ return res;
+ }
+ }
+}
diff --git a/Server/YD_XinWei/Program.cs b/Server/YD_XinWei/Program.cs
index b3c5f7a..bb107ec 100644
--- a/Server/YD_XinWei/Program.cs
+++ b/Server/YD_XinWei/Program.cs
@@ -19,7 +19,7 @@ namespace YD_XinWei.Api
{
serverOptions.Limits.MaxRequestBodySize = 10485760;
});
- webBuilder.UseKestrel().UseUrls("http://*:9994");
+ webBuilder.UseKestrel().UseUrls("http://*:9995");
webBuilder.UseIIS();
webBuilder.UseStartup();
}).UseServiceProviderFactory(new AutofacServiceProviderFactory());
diff --git a/Server/YD_XinWei/Services/Impl/LargeScreenService.cs b/Server/YD_XinWei/Services/Impl/LargeScreenService.cs
index 1bdbb05..1f935f6 100644
--- a/Server/YD_XinWei/Services/Impl/LargeScreenService.cs
+++ b/Server/YD_XinWei/Services/Impl/LargeScreenService.cs
@@ -1,8 +1,11 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using VOL.Entity.DomainModels.XinWei;
+using VOL.Entity.Enum;
using YD_XinWei.Api.Context;
using YD_XinWei.Api.Services.Interface;
+using YD_XinWei.Api.SmartSportsEntitys;
+using YD_XinWei.Commons.Dto.Common;
using YD_XinWei.Commons.Dto.LargeScreen;
using YD_XinWei.Commons.MemoryCaches;
@@ -28,6 +31,32 @@ namespace YD_XinWei.Api.Services.Impl
_mapper = mapper;
_caching = caching;
}
+
+ ///
+ /// 获取项目列表
+ ///
+ ///
+ ///
+ public async Task> SportsProjectList(int orgId)
+ {
+ var testingProjectKey = $"TestingProject_{orgId}";
+
+ var res = _caching.Get>(testingProjectKey);
+
+ if (res == null || res.Count == 0)
+ {
+ res = await _sportsContext.XW_TestingProject.Where(x => x.OrgId == orgId)
+ .Select(x => new SportsProjectListDto()
+ {
+ ProjectId = x.ProjectId,
+ ProjectName = x.ProjectName,
+ CategoryValue = x.CategoryValue
+ }).ToListAsync();
+ }
+
+ return res;
+ }
+
///
/// 项目成绩大屏数据
///
@@ -37,34 +66,163 @@ namespace YD_XinWei.Api.Services.Impl
{
var res = new LargeScreenDto();
- var schoolCode = _caching.Get(orgId.ToString());
+ var schoolKeyKey = $"School_{orgId}";
+
+ var schoolCode = _caching.Get(schoolKeyKey);
if (string.IsNullOrWhiteSpace(schoolCode))
{
schoolCode = await _sportsContext.School.Where(x => x.Id == orgId).Select(x => x.SchoolCode).FirstAsync();
- _caching.Add(orgId.ToString(), schoolCode);
+ _caching.Add(schoolKeyKey, schoolCode);
}
var sportsTestDataKey = $"SportsTestData_{schoolCode}";
+ var studentListKey = $"StudentList_{schoolCode}";
- var studentInfo = await _sportsContext.Student.Where(x => x.SchoolCode == schoolCode).Select(x => x.Sex).ToListAsync();
+ var studentList = _caching.Get>(studentListKey);
- res.BasicInfo.FemaleCount = studentInfo.Count(x => x == 2);
- res.BasicInfo.MaleCount = studentInfo.Count(x => x == 1);
+ if (studentList == null || studentList.Count == 0)
+ {
+ studentList = await _sportsContext.Student.Where(x => x.SchoolCode == schoolCode).Select(x => new StudentListDto
+ {
+ StudentNo = x.StudentNo,
+ Sex = x.Sex,
+ Photo = x.Photo ?? ""
+ }).ToListAsync();
+ _caching.AddObject(studentListKey, studentList, 3600);
+ }
- var sportsTestData = _caching.Get>(sportsTestDataKey);
+ res.BasicInfo.FemaleCount = studentList.Count(x => x.Sex == 2);
+ res.BasicInfo.MaleCount = studentList.Count(x => x.Sex == 1);
+
+ var sportsTestData = _caching.Get>(sportsTestDataKey);
if (sportsTestData == null || sportsTestData.Count == 0)
{
- sportsTestData = await _sportsContext.XW_SportsTestData.Where(x => x.OrgId == orgId).ToListAsync();
+ sportsTestData = await _sportsContext.SportsTestValue.Where(x => x.SchoolCode == schoolCode && x.DataSource == DataSource.XW)
+ .Select(x => new SportsTestDataDto()
+ {
+ SchoolCode = x.SchoolCode,
+ CategoryValue = x.CategoryValue,
+ ClassId = x.ClassId,
+ ClassName = x.ClassName,
+ GradeId = x.GradeId,
+ GradeName = x.GradeName,
+ TeacherId = x.TeacherId,
+ StudentNo = x.StudentNo,
+ StudentName = x.StudentName,
+ Sex = x.Sex,
+ ScoreTime = x.ScoreTime,
+ Height = x.Height,
+ Weight = x.Weight,
+ Value = x.Value,
+ Score = x.Score,
+ Rank = x.Rank
+ }).ToListAsync();
_caching.AddObject(sportsTestDataKey, sportsTestData, 3600);
}
+ var bestScoreData = sportsTestData
+ .GroupBy(x => x.StudentNo)
+ .Select(g => g.OrderByDescending(x => x.Score).First())
+ .ToList();
+
+ var projectResults = bestScoreData
+ .GroupBy(x => x.CategoryValue)
+ .Select(g => new ItemDataDto
+ {
+ CategoryValue = g.Key,
+ // 优良率计算:分数 > 80 的人数 ÷ 总人数
+ ExcellentRate = g.Count(x => x.Score > 80) * 100.0 / Math.Max(g.Count(), 1),
+
+ // 男生前十名
+ MaleRankList = g.Where(x => x.Sex == 1)
+ .OrderByDescending(x => x.Value)
+ .Take(10)
+ .Select((x, index) => new StudentScoreRankingDto
+ {
+ Rank = index + 1,
+ StudentNo = x.StudentNo,
+ StudentName = x.StudentName,
+ Value = x.Value
+ }).ToList(),
+
+ // 女生前十名
+ FemaleRankList = g.Where(x => x.Sex == 2)
+ .OrderByDescending(x => x.Value)
+ .Take(10)
+ .Select((x, index) => new StudentScoreRankingDto
+ {
+ Rank = index + 1,
+ StudentNo = x.StudentNo,
+ StudentName = x.StudentName,
+ Value = x.Value
+ }).ToList()
+ })
+ .ToList();
+
+ res.ItemDatalist = projectResults;
+ var classListKey = $"ClassList_{schoolCode}";
+ var classList = _caching.Get>(classListKey);
+ if (classList == null || classList.Count == 0)
+ {
+ classList = await _sportsContext.Class.Where(x => x.SchoolCode == schoolCode).ToListAsync();
+ _caching.AddObject(classListKey, classList, 3600);
+ }
+ var classRankingList = sportsTestData
+ .GroupBy(x => new { x.ClassId })
+ .Select(g => new ClassSportsRankingDto
+ {
+ ClassId = g.Key.ClassId,
+ ClassName = classList.Where(c => c.Id == g.Key.ClassId).Select(x => $"{x.GradeName}-{x.ClassName}").FirstOrDefault() ?? "",
+ Count = g.Count()
+ })
+ .OrderByDescending(x => x.Count)
+ .Take(5)
+ .Select((x, index) =>
+ {
+ x.Rank = index + 1;
+ return x;
+ })
+ .ToList();
+
+ res.ClassSportsRankList = classRankingList;
+
+ var testingProjectKey = $"TestingProject_{orgId}";
+
+ var testingProjects = _caching.Get>(testingProjectKey) ?? new List();
+ var projectNameDict = testingProjects.ToDictionary(t => t.CategoryValue, t => t.ProjectName);
+
+ var studentPhotoDict = studentList.Where(s => !string.IsNullOrEmpty(s.StudentNo)).ToDictionary(s => s.StudentNo, s => s.Photo ?? string.Empty);
+
+ var latestPerStudent = sportsTestData
+ .GroupBy(x => x.StudentNo)
+ .Select(g => g.OrderByDescending(x => x.ScoreTime).First())
+ .ToList();
+
+ var realTimeResults = latestPerStudent
+ .OrderByDescending(x => x.ScoreTime)
+ .Take(50)
+ .Select(x => new ItemRealTimeResultDto
+ {
+ StudentNo = x.StudentNo,
+ StudentName = x.StudentName,
+ Photo = studentPhotoDict.TryGetValue(x.StudentNo, out var photo) ? photo : string.Empty,
+ GradeAndClassName = $"{x.GradeName}-{x.ClassName}",
+ ProjectName = projectNameDict.TryGetValue(x.CategoryValue, out var projectName) ? projectName : string.Empty,
+ Value = x.Value,
+ Score = x.Score,
+ Rank = x.Rank ?? "不及格",
+ ScoreTime = x.ScoreTime.ToString("yyyy-MM-dd HH:mm:ss")
+ })
+ .ToList();
+
+ res.ItemRealTimeResultList = realTimeResults;
return res;
}
diff --git a/Server/YD_XinWei/Services/Interface/ILargeScreenService.cs b/Server/YD_XinWei/Services/Interface/ILargeScreenService.cs
index 36e1052..9792fbf 100644
--- a/Server/YD_XinWei/Services/Interface/ILargeScreenService.cs
+++ b/Server/YD_XinWei/Services/Interface/ILargeScreenService.cs
@@ -1,4 +1,5 @@
-using YD_XinWei.Commons.Dto.LargeScreen;
+using YD_XinWei.Commons.Dto.Common;
+using YD_XinWei.Commons.Dto.LargeScreen;
using YD_XinWei.Commons.Dto.Open;
namespace YD_XinWei.Api.Services.Interface
@@ -8,6 +9,14 @@ namespace YD_XinWei.Api.Services.Interface
///
public interface ILargeScreenService
{
+
+ ///
+ /// 体育项目
+ ///
+ /// 学校Id
+ ///
+ Task> SportsProjectList(int orgId);
+
///
/// 项目成绩大屏数据
///
diff --git a/Server/YD_XinWei/SmartSportsEntitys/N_SportsTestValue.cs b/Server/YD_XinWei/SmartSportsEntitys/N_SportsTestValue.cs
index 9ba382b..78b3d75 100644
--- a/Server/YD_XinWei/SmartSportsEntitys/N_SportsTestValue.cs
+++ b/Server/YD_XinWei/SmartSportsEntitys/N_SportsTestValue.cs
@@ -39,7 +39,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "老师名称")]
[Comment("老师名称")]
[Column(TypeName = "nvarchar(100)")]
- public string TeacherName { get; set; }
+ public string? TeacherName { get; set; }
///
@@ -56,7 +56,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "年级名称")]
[Comment("年级名称")]
[Column(TypeName = "nvarchar(100)")]
- public string GradeName { get; set; }
+ public string? GradeName { get; set; }
///
///班级Id
@@ -72,7 +72,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "班级名称")]
[Comment("班级名称")]
[Column(TypeName = "nvarchar(100)")]
- public string ClassName { get; set; }
+ public string? ClassName { get; set; }
///
///学生学号
@@ -112,7 +112,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "类别名称")]
[Comment("类别名称")]
[Column(TypeName = "nvarchar(100)")]
- public string CategoryEnum { get; set; }
+ public string? CategoryEnum { get; set; }
///
///测试结果
@@ -177,7 +177,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "等级")]
[Comment("等级")]
[Column(TypeName = "nvarchar(100)")]
- public string Rank { get; set; }
+ public string? Rank { get; set; }
///
/// 班级排名
@@ -234,7 +234,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "备注")]
[Comment("备注")]
[Column(TypeName = "text")]
- public string Remarks { get; set; }
+ public string? Remarks { get; set; }
///
/// 当前年份
diff --git a/Server/YD_XinWei/SmartSportsEntitys/S_Class.cs b/Server/YD_XinWei/SmartSportsEntitys/S_Class.cs
index da11719..b6a5c88 100644
--- a/Server/YD_XinWei/SmartSportsEntitys/S_Class.cs
+++ b/Server/YD_XinWei/SmartSportsEntitys/S_Class.cs
@@ -37,7 +37,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "年级名称")]
[Comment("年级名称")]
[Column(TypeName = "nvarchar(100)")]
- public string GradeName { get; set; }
+ public string? GradeName { get; set; }
///
///班级名称
@@ -45,7 +45,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys
[Display(Name = "班级名称")]
[Comment("班级名称")]
[Column(TypeName = "nvarchar(100)")]
- public string ClassName { get; set; }
+ public string? ClassName { get; set; }
}
}
diff --git a/Server/YD_XinWei/Startup.cs b/Server/YD_XinWei/Startup.cs
index 052e621..31009ac 100644
--- a/Server/YD_XinWei/Startup.cs
+++ b/Server/YD_XinWei/Startup.cs
@@ -61,8 +61,9 @@ namespace YD_XinWei.Api
services.AddSingleton();
services.AddScoped();
+ services.AddScoped();
- services.AddScoped();
+ services.AddScoped();
services.AddSession();
services.AddMemoryCache();
services.AddHttpContextAccessor();
diff --git a/Server/YD_XinWei/Utilities/AppSettings.cs b/Server/YD_XinWei/Utilities/AppSettings.cs
index c8188d4..d05e684 100644
--- a/Server/YD_XinWei/Utilities/AppSettings.cs
+++ b/Server/YD_XinWei/Utilities/AppSettings.cs
@@ -21,6 +21,7 @@
ExpMinutes = configuration["ExpMinutes"];
DbConnectionString = configuration["DbConnectionString"];
SmartSportsString = configuration["SmartSportsString"];
+ RedisConnectionString = configuration["RedisConnectionString"];
CorsUrls = configuration["CorsUrls"].Split(',');
WeChat = configuration.GetSection("WeChat").Get();
}
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json b/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json
index cc74dd3..3afa639 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json
+++ b/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json
@@ -102,6 +102,68 @@
}
]
},
+ {
+ "ContainingType": "YD_XinWei.Api.Controllers.LargeScreenController",
+ "Method": "ItemResultLargeScreenData",
+ "RelativePath": "LargeScreen/{apiVersion}/ItemResultLargeScreenData",
+ "HttpMethod": "GET",
+ "IsController": true,
+ "Order": 0,
+ "Parameters": [
+ {
+ "Name": "orgId",
+ "Type": "System.Int32",
+ "IsRequired": false
+ },
+ {
+ "Name": "apiVersion",
+ "Type": "",
+ "IsRequired": true
+ }
+ ],
+ "ReturnTypes": [
+ {
+ "Type": "YD_XinWei.Commons.Dto.LargeScreen.LargeScreenDto",
+ "MediaTypes": [
+ "text/plain",
+ "application/json",
+ "text/json"
+ ],
+ "StatusCode": 200
+ }
+ ]
+ },
+ {
+ "ContainingType": "YD_XinWei.Api.Controllers.LargeScreenController",
+ "Method": "SportsProjectList",
+ "RelativePath": "LargeScreen/{apiVersion}/SportsProjectList",
+ "HttpMethod": "GET",
+ "IsController": true,
+ "Order": 0,
+ "Parameters": [
+ {
+ "Name": "orgId",
+ "Type": "System.Int32",
+ "IsRequired": false
+ },
+ {
+ "Name": "apiVersion",
+ "Type": "",
+ "IsRequired": true
+ }
+ ],
+ "ReturnTypes": [
+ {
+ "Type": "System.Collections.Generic.List\u00601[[YD_XinWei.Commons.Dto.LargeScreen.SportsProjectListDto, YD_XinWei.Commons, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]",
+ "MediaTypes": [
+ "text/plain",
+ "application/json",
+ "text/json"
+ ],
+ "StatusCode": 200
+ }
+ ]
+ },
{
"ContainingType": "YD_XinWei.Api.Controllers.XinWeiController",
"Method": "GetOrgSportsProjectList",
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/EndpointInfo/YD_XinWei.Api.json b/Server/YD_XinWei/obj/Debug/net6.0/EndpointInfo/YD_XinWei.Api.json
index debda3c..0b41b5b 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/EndpointInfo/YD_XinWei.Api.json
+++ b/Server/YD_XinWei/obj/Debug/net6.0/EndpointInfo/YD_XinWei.Api.json
@@ -6,6 +6,111 @@
"version": "v1"
},
"paths": {
+ "/LargeScreen/{apiVersion}/SportsProjectList": {
+ "get": {
+ "tags": [
+ "LargeScreen"
+ ],
+ "summary": "获取项目列表",
+ "parameters": [
+ {
+ "name": "orgId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "apiVersion",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SportsProjectListDto"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SportsProjectListDto"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SportsProjectListDto"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/LargeScreen/{apiVersion}/ItemResultLargeScreenData": {
+ "get": {
+ "tags": [
+ "LargeScreen"
+ ],
+ "summary": "项目成绩大屏数据",
+ "parameters": [
+ {
+ "name": "orgId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "apiVersion",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/LargeScreenDto"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LargeScreenDto"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LargeScreenDto"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/basic/{apiVersion}/device/open/getDeviceInfo": {
"get": {
"tags": [
@@ -1396,6 +1501,55 @@
},
"additionalProperties": false
},
+ "BasicInfoDto": {
+ "type": "object",
+ "properties": {
+ "maleCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "femaleCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "studentCount": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true
+ },
+ "weekTrainingCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "increase": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ClassSportsRankingDto": {
+ "type": "object",
+ "properties": {
+ "rank": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "classId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "className": {
+ "type": "string",
+ "nullable": true
+ },
+ "count": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
"DeviceInfoDto": {
"type": "object",
"properties": {
@@ -1648,6 +1802,106 @@
},
"additionalProperties": false
},
+ "ItemDataDto": {
+ "type": "object",
+ "properties": {
+ "categoryValue": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "excellentRate": {
+ "type": "number",
+ "format": "double"
+ },
+ "maleRankList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/StudentScoreRankingDto"
+ },
+ "nullable": true
+ },
+ "femaleRankList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/StudentScoreRankingDto"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ItemRealTimeResultDto": {
+ "type": "object",
+ "properties": {
+ "studentNo": {
+ "type": "string",
+ "nullable": true
+ },
+ "studentName": {
+ "type": "string",
+ "nullable": true
+ },
+ "photo": {
+ "type": "string",
+ "nullable": true
+ },
+ "gradeAndClassName": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectName": {
+ "type": "string",
+ "nullable": true
+ },
+ "value": {
+ "type": "number",
+ "format": "float"
+ },
+ "score": {
+ "type": "number",
+ "format": "float"
+ },
+ "rank": {
+ "type": "string",
+ "nullable": true
+ },
+ "scoreTime": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LargeScreenDto": {
+ "type": "object",
+ "properties": {
+ "basicInfo": {
+ "$ref": "#/components/schemas/BasicInfoDto"
+ },
+ "itemDatalist": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ItemDataDto"
+ },
+ "nullable": true
+ },
+ "classSportsRankList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ClassSportsRankingDto"
+ },
+ "nullable": true
+ },
+ "itemRealTimeResultList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ItemRealTimeResultDto"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
"PersonAnalysisVo": {
"type": "object",
"properties": {
@@ -1923,6 +2177,24 @@
},
"additionalProperties": false
},
+ "SportsProjectListDto": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "projectName": {
+ "type": "string",
+ "nullable": true
+ },
+ "categoryValue": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
"SportsRosterDto": {
"type": "object",
"properties": {
@@ -2134,6 +2406,28 @@
},
"additionalProperties": false
},
+ "StudentScoreRankingDto": {
+ "type": "object",
+ "properties": {
+ "rank": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "studentNo": {
+ "type": "string",
+ "nullable": true
+ },
+ "studentName": {
+ "type": "string",
+ "nullable": true
+ },
+ "value": {
+ "type": "number",
+ "format": "float"
+ }
+ },
+ "additionalProperties": false
+ },
"TableDataPersonAnalysisVo": {
"type": "object",
"properties": {
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
index 530c888..40b5544 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
+++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9db8634ffd224583a038708ca65e7bbd724860fd")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d6f1972ad9eeb1f7748d627b93cfc055c9be74da")]
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
index 203b5cc..fdf3b80 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
+++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
@@ -1 +1 @@
-b4f63fa29e10d0dac6c934094a7c4f3bdebb2add2cd178a611d5c0347f714af8
+853f3940ff1e4c76230b7f689ccce5dc2964ced3eb1c5e1437954d479bd6dbeb
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache
index 6a4468763f6f99984ddcdd589b9fb50436925718..89f6cc771b5daca15bf74a77fc030167854fc091 100644
GIT binary patch
delta 2214
zcmb_eO-~a+7@qM!2m~x@ArOsJL2aVjHW;ELM4K&<7{0WCl5B!YJGK*dXV%#%q4BVP
zL9-VVOuQIRg6M_#A2h~9k6cYW@EdT4-7VFfLaWRs+wAN+&-*;@*LM3A{Pi9>Z7=}<
zfJJpoTd)zcHLjDAq2-YMgi}kqgSobpTYiYi1BA6aVylQ9Y$z%tFbO?BHbRJ$M<%sTCgqcfng}vLkO6SA1{j{dI=JY?0aG%bQPSdaUuG{jq~aYB2YST~
z!tQ+4=Ezj;R|v-@f^FiZWI-p`+;<0HyZ5+tYuV}f(J?08_$(ki72v7VFi?Se?(KTa
z(E!E&X%=+YO~m_WvMV-cdKB|W$c<0c8_Au`N5U}Vc}_sOiSzML7m$&WogAzwG%ZRH
z;nTE;3}udC6LY+Z{?L0Qw=G8!#Dv^MmJrJINKB9RA#o9^$UCS|VVGAHl~pZHOH8-Q
z-h*w`r|q9yTn<#^r5>_IiF$s^x6Kv<_O}>!cYG)l5|kw|y)paqj7jNu^K?-_PleFa$fT^=G-1Iv5{DOSLx+x%j_-ZTUGF;A
z>#Oka4rzI!IE}}0XI=TUq*GRlv1wdj)TWQQqUOsw3r9swztHHfX3IMk@S8_#T)Asg
z(h|wf&ra`sxwg}NPdE)*{H#c^Gi$XzFC)42Av;#Dd!Nyf^ho9=gq_OF#Joxw%37g(
W0QQ0f0WA1`MBMH6fe%+s&in>X#(<>&
delta 24
gcmaF4o^kseMh-Sc1qKEN#^lL`lJc8xatinX09jlHumAu6
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.FileListAbsolute.txt b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.FileListAbsolute.txt
index fbbf010..38b6761 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.FileListAbsolute.txt
+++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.FileListAbsolute.txt
@@ -625,3 +625,93 @@ C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWe
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.genruntimeconfig.cache
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\ref\YD_XinWei.Api.dll
C:\Users\tangl\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.upToDateCheck.txt
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\appsettings.Development.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\appsettings.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.staticwebassets.endpoints.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.exe
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.deps.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.runtimeconfig.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.pdb
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.xml
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Aliyun.OSS.Core.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Autofac.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Autofac.Extensions.DependencyInjection.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\AutoMapper.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\AutoMapper.Collection.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\CSRedisCore.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Humanizer.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.JsonPatch.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.Mvc.Versioning.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Bcl.AsyncInterfaces.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Bcl.TimeProvider.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Data.SqlClient.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Abstractions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Design.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Relational.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.SqlServer.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Identity.Client.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.Abstractions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.JsonWebTokens.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.Logging.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.IdentityModel.Tokens.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.OpenApi.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.Win32.SystemEvents.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Newtonsoft.Json.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Newtonsoft.Json.Bson.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Swashbuckle.AspNetCore.Swagger.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerGen.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerUI.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Configuration.ConfigurationManager.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Diagnostics.DiagnosticSource.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Drawing.Common.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.IdentityModel.Tokens.Jwt.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Runtime.Caching.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Security.Cryptography.ProtectedData.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Security.Permissions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\System.Windows.Extensions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\unix\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win-arm\native\Microsoft.Data.SqlClient.SNI.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Runtime.Caching.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Commons.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Commons.pdb
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.csproj.AssemblyReference.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.AssemblyInfoInputs.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.AssemblyInfo.cs
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.csproj.CoreCompileInputs.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.MvcApplicationPartsAssemblyInfo.cs
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.MvcApplicationPartsAssemblyInfo.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\scopedcss\bundle\YD_XinWei.Api.styles.css
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.build.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.development.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.build.endpoints.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets\msbuild.YD_XinWei.Api.Microsoft.AspNetCore.StaticWebAssets.props
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets\msbuild.YD_XinWei.Api.Microsoft.AspNetCore.StaticWebAssetEndpoints.props
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets\msbuild.build.YD_XinWei.Api.props
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets\msbuild.buildMultiTargeting.YD_XinWei.Api.props
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets\msbuild.buildTransitive.YD_XinWei.Api.props
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.pack.json
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\staticwebassets.upToDateCheck.txt
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWe.7845F25F.Up2Date
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\refint\YD_XinWei.Api.dll
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.xml
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.pdb
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.genruntimeconfig.cache
+C:\Users\tangl\Desktop\Git\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\ref\YD_XinWei.Api.dll
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe b/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe
index 404569020242880eab452aaa7d05a0a21b9753bb..a48f2bef15074e9bd49248c8fbb80d0949e32df7 100644
GIT binary patch
delta 99
zcmWm4$qj%o5JS;VZgdm21Zvz1Bv!9@*GCbu6J8?SMwOVZW%|RW5LrC
j$oh6A%8JZ0GE1FWFI^Z&Y7&-7Ns_4jzsrR8Sj}lZ+cFYv
delta 99
zcmWNI(G7qg3`9@<+y+GiX5hmaz~CBU;uwx$;(ESZ@7naW{TVxT53jL#^K$Y^+O^Ub
j9XOFeldNX!k%bpkSb#c3HKxiga#K*_-zt1(HkbJUn86V}