diff --git a/Server/YD_XinWei.Commons/Dto/Open/AddTrainDto.cs b/Server/YD_XinWei.Commons/Dto/Open/AddTrainDto.cs new file mode 100644 index 0000000..8da8fae --- /dev/null +++ b/Server/YD_XinWei.Commons/Dto/Open/AddTrainDto.cs @@ -0,0 +1,661 @@ +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.Open +{ + public class AddTrainDto + { + /// + /// 考试id + /// + public int? ExaminationId { get; set; } + + /// + /// 考试名称 + /// + public string ExaminationName { get; set; } + + /// + /// 项目类型(1体检 2体质) + /// + public int? ProjectType { get; set; } + + /// + /// 项目ID + /// + public int? ProjectId { get; set; } + + /// + /// 项目名称 + /// + public string ProjectName { get; set; } + + /// + /// 模式类型(1随堂模式2名单模式3刷卡或手动录入) + /// + public int? RosterType { get; set; } + + /// + /// 学校ID + /// + public int? OrgId { get; set; } + + /// + /// 年级ID + /// + public int? GradeId { get; set; } + + /// + /// 年级名称 + /// + public string GradeName { get; set; } + + /// + /// 班级或者名单id(根据roster_type来判断) + /// + public int? ClassId { get; set; } + + /// + /// 班级名称 + /// + public string ClassName { get; set; } + + /// + /// 组别 + /// + public string GroupId { get; set; } + + /// + /// 老师ID + /// + public int? TeacherId { get; set; } + + /// + /// 老师名称 + /// + public string TeacherName { get; set; } + + /// + /// 训练模式 + /// + public int? ModelType { get; set; } + + /// + /// 评分标准类型(1国家标准2地方标准3自定义标准) + /// + public int? MarkType { get; set; } + + /// + /// 项目类型(1跳绳2跑步) + /// + public int? ProjectKind { get; set; } + + /// + /// 训练标准ID + /// + public int? ProjectRuleId { get; set; } + + /// + /// 项目类型名称 + /// + public string ProjectKindName { get; set; } + + /// + /// 评分标准类型名称 + /// + public string MarkTypeName { get; set; } + + /// + /// 项目模式名称 + /// + public string ModelTypeName { get; set; } + + /// + /// 训练人数 + /// + public int? TrainCount { get; set; } + + /// + /// 开始时间 + /// + public string StartTime { get; set; } + + /// + /// 结束时间 + /// + public string EndTime { get; set; } + + /// + /// 男生总数 + /// + public int? MaleTotal { get; set; } + + /// + /// 女生总数 + /// + public int? FemaleTotal { get; set; } + + /// + /// 男生总成绩 + /// + public decimal? MaleCount { get; set; } + + /// + /// 男生最大值 + /// + public int? MaleMaxCount { get; set; } + + /// + /// 男生最小值 + /// + public int? MaleMinCount { get; set; } + + /// + /// 女生总成绩 + /// + public decimal? FemaleCount { get; set; } + + /// + /// 女生最大值 + /// + public int? FemaleMaxCount { get; set; } + + /// + /// 女生最小值 + /// + public int? FemaleMinCount { get; set; } + + /// + /// 男生总分数 + /// + public decimal? MaleScore { get; set; } + + /// + /// 男生最大分数 + /// + public decimal? MaleMaxScore { get; set; } + + /// + /// 男生最小分数 + /// + public decimal? MaleMinScore { get; set; } + + /// + /// 女生总分数 + /// + public decimal? FemaleScore { get; set; } + + /// + /// 女生最大分数 + /// + public decimal? FemaleMaxScore { get; set; } + + /// + /// 女生最小分数 + /// + public decimal? FemaleMinScore { get; set; } + + /// + /// 男生优秀人数 + /// + public int? MaleFine { get; set; } + + /// + /// 男生良好人数 + /// + public int? MaleGood { get; set; } + + /// + /// 男生及格人数 + /// + public int? MalePass { get; set; } + + /// + /// 男生不及格人数 + /// + public int? MaleFail { get; set; } + + /// + /// 女生优秀人数 + /// + public int? FemaleFine { get; set; } + + /// + /// 女生良好人数 + /// + public int? FemaleGood { get; set; } + + /// + /// 女生及格人数 + /// + public int? FemalePass { get; set; } + + /// + /// 女生不及格人数 + /// + public int? FemaleFail { get; set; } + + /// + /// 及格率 + /// + public decimal? PassingRate { get; set; } + + /// + /// 男生平均个数 + /// + public decimal? MaleAvgCount { get; set; } + + /// + /// 女生平均个数 + /// + public decimal? FemaleAvgCount { get; set; } + + /// + /// 男生平均分数 + /// + public decimal? MaleAvgScore { get; set; } + + /// + /// 女生平均分数 + /// + public decimal? FemaleAvgScore { get; set; } + + /// + /// 男生中位数 + /// + public decimal? MaleMedianCount { get; set; } + + /// + /// 女生中位数 + /// + public decimal? FemaleMedianCount { get; set; } + + /// + /// 男生平均值 + /// + public int? MaleAvgImproveCount { get; set; } + + /// + /// 男生最大值 + /// + public int? MaleMaxImproveCount { get; set; } + + /// + /// 男生最小值 + /// + public int? MaleMinImproveCount { get; set; } + + /// + /// 女生平均值 + /// + public int? FemaleAvgImproveCount { get; set; } + + /// + /// 女生最大值 + /// + public int? FemaleMaxImproveCount { get; set; } + + /// + /// 女生最小值 + /// + public int? FemaleMinImproveCount { get; set; } + + /// + /// 男生平均分数 + /// + public decimal? MaleAvgImproveScore { get; set; } + + /// + /// 男生最大分数 + /// + public decimal? MaleMaxImproveScore { get; set; } + + /// + /// 男生最小分数 + /// + public decimal? MaleMinImproveScore { get; set; } + + /// + /// 女生平均分数 + /// + public decimal? FemaleAvgImproveScore { get; set; } + + /// + /// 女生最大分数 + /// + public decimal? FemaleMaxImproveScore { get; set; } + + /// + /// 女生最小分数 + /// + public decimal? FemaleMinImproveScore { get; set; } + + /// + /// 失误最少的同学次数 + /// + public int? MinErrorCount { get; set; } = 99999; // 默认值 + + /// + /// 进入状态最快的同学耗时(心率借用这个字段。班级运动时间) + /// + public int? MinIntoStateTime { get; set; } = 999999; + + /// + /// 第一名平均耗时 + /// + public int? MinAvgTime { get; set; } = 999999; + + /// + /// 失误总次数 + /// + public int? TotalErrorCount { get; set; } = 0; + + /// + /// 失误损失次数 + /// + public int? LossesCount1 { get; set; } = 0; + + /// + /// 甩绳速度偏慢损失次数 + /// + public int? LossesCount2 { get; set; } = 0; + + /// + /// 进入状态过慢损失次数 + /// + public int? LossesCount3 { get; set; } = 0; + + /// + /// 提交标识 + /// + public string CheckCode { get; set; } + + /// + /// 班级明细 + /// + //[Display(Name = "DetailInfo")] + //[Comment("班级明细")] + //public object DetailInfo { get; set; } + + /// + /// 创建时间 + /// + public string CreateTime { get; set; } + + /// + /// 创建人 + /// + public string CreateBy { get; set; } + + /// + /// 修改时间 + /// + public string UpdateTime { get; set; } + + /// + /// 修改人 + /// + public string UpdateBy { get; set; } + + /// + /// 是否双人模式 + /// + public bool? DoubleFlag { get; set; } + + /// + /// 数据来源(1:pad, 2:微信小程序) + /// + public int? Source { get; set; } + + /// + /// 学生姓名 + /// + public string StudentName { get; set; } + + /// + /// 学生列表 + /// + public List StudentList { get; set; } = new List(); + + } + + public class TrainStudentsDto + { + /// + /// 训练ID + /// + public int? TrainId { get; set; } + + /// + /// 项目ID + /// + public int? ProjectId { get; set; } + + /// + /// 项目类型(1跳绳2跑步) + /// + public double? ProjectKind { get; set; } + + /// + /// 学校ID + /// + public int? OrgId { 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 GroupName { get; set; } + + /// + /// 组号 + /// + public int? GroupOrder { get; set; } + + /// + /// 老师ID + /// + public int? TeacherId { get; set; } + + /// + /// 设备ID + /// + public string DeviceId { get; set; } + + /// + /// 学生ID + /// + public int? StudentId { get; set; } + + /// + /// 学生名称 + /// + public string StudentName { get; set; } + + /// + /// 性别(1男2女) + /// + public double? Sex { get; set; } + + /// + /// 学号 + /// + public string StudentNo { get; set; } + + /// + /// 标准成绩 + /// + public int? Achievement { get; set; } + + /// + /// 原始标准成绩(被格式化小数点之前的) + /// + public int? OriginalAchievement { get; set; } + + /// + /// 标准成绩2 + /// + public int? Achievement2 { get; set; } + + /// + /// 原始标准成绩2(被格式化小数点之前的) + /// + public int? OriginalAchievement2 { get; set; } + + /// + /// 得分 + /// + public double? Score { get; set; } + + /// + /// 加分项得分 + /// + public double? PlusesScore { get; set; } + + /// + /// 评分等级 + /// + public int? Rating { get; set; } + + /// + /// 男生或女生排名 + /// + public int? RankingInGender { get; set; } + + /// + /// 全体排名 + /// + public int? Ranking { get; set; } + + /// + /// 失误总次数 + /// + public int? ErrorCount { get; set; } = 0; + + /// + /// 失误总耗时 + /// + public int? ErrorTime { get; set; } = 0; + + /// + /// 平均耗时 + /// + public int? AvgTime { get; set; } = 0; + + /// + /// 有效平均值(中位数) + /// + public int? MedianTime { get; set; } = 0; + + /// + /// 失误损失次数 + /// + public int? LossesCount1 { get; set; } = 0; + + /// + /// 甩绳速度偏慢损失次数 + /// + public int? LossesCount2 { get; set; } = 0; + + /// + /// 进入状态过慢损失次数 + /// + public int? LossesCount3 { get; set; } = 0; + + /// + /// 高一档分数段 + /// + public int? HigherScore { get; set; } = 0; + + /// + /// 进入状态耗时 + /// + public int? IntoStateTime { get; set; } = 0; + + /// + /// 次数提升空间 + /// + public int? ImproveCount { get; set; } = 0; + + /// + /// 分数提升空间 + /// + public double? ImproveScore { get; set; } = 0.0; + + /// + /// 家长消息发送标识 + /// + public int? FamilySendFlag { get; set; } + + /// + /// 是否已经完成 + /// + public bool? Completed { get; set; } + + /// + /// 实际完成的数量(圈数 + /// + public int? QuantityCompleted { get; set; } + + /// + /// 报表显示 + /// + public int? ModelType { get; set; } + + /// + /// 开始时间 + /// + public string StartTime { get; set; } + + /// + /// 教师 + /// + public string Teacher { get; set; } + + + /// + /// 创建时间 + /// + public string CreateTime { get; set; } + + + /// + /// 创建人 + /// + public string CreateBy { get; set; } + + /// + /// 修改时间 + /// + public string UpdateTime { get; set; } + + /// + /// 修改人 + /// + public string UpdateBy { get; set; } + } +} diff --git a/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.dll b/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.dll index 1178e85..f66ed2a 100644 Binary files a/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.dll and b/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.dll differ diff --git a/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.pdb b/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.pdb index a1d8b21..421cf47 100644 Binary files a/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.pdb and b/Server/YD_XinWei.Commons/bin/Debug/net6.0/YD_XinWei.Commons.pdb differ 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 b964b9e..a813261 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+ad143d6bcf630bb86e028d0e2fbc538118cf0f41")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dc38461ab3d5355886477c5ce017e5a8d53b032c")] [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 c0fbe26..d5726c2 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 @@ -562c82be8cab4925261e4546fce5719b7639c2d7732d32c1400730022946afbc +65247451932fb6a1473b087a540d7cef1e306a7fc920c10a16025c3146816395 diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.CoreCompileInputs.cache b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.CoreCompileInputs.cache index 0674b81..29c89f3 100644 --- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.CoreCompileInputs.cache +++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -2234f164660a5e08dc58515192ad8ac9b5061083036b5ca76e9e574a19157fbe +d167f9103755ff5ca5b76181ff8275aedada2858286ffc5980f9cd358d847536 diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.dll b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.dll index 1178e85..f66ed2a 100644 Binary files a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.dll and b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.dll differ diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.pdb b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.pdb index a1d8b21..421cf47 100644 Binary files a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.pdb and b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.pdb differ diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.sourcelink.json b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.sourcelink.json index 9b574b3..eca264e 100644 --- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.sourcelink.json +++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.sourcelink.json @@ -1 +1 @@ -{"documents":{"C:\\Users\\HHST102\\Desktop\\Code\\YD_XinWei\\*":"https://dev.azure.com/tanglong10081/YD_XinWei/_apis/git/repositories/YD_XinWei/items?api-version=1.0&versionType=commit&version=1c36de9ae00d951cbe0a6ae28dfdf85462590015&path=/*"}} \ No newline at end of file +{"documents":{"C:\\Users\\TangLong\\Desktop\\Code\\YD_XinWei\\*":"https://dev.azure.com/tanglong10081/YD_XinWei/_apis/git/repositories/YD_XinWei/items?api-version=1.0&versionType=commit&version=dc38461ab3d5355886477c5ce017e5a8d53b032c&path=/*"}} \ No newline at end of file diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/ref/YD_XinWei.Commons.dll b/Server/YD_XinWei.Commons/obj/Debug/net6.0/ref/YD_XinWei.Commons.dll index 8030b66..7de51ca 100644 Binary files a/Server/YD_XinWei.Commons/obj/Debug/net6.0/ref/YD_XinWei.Commons.dll and b/Server/YD_XinWei.Commons/obj/Debug/net6.0/ref/YD_XinWei.Commons.dll differ diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/refint/YD_XinWei.Commons.dll b/Server/YD_XinWei.Commons/obj/Debug/net6.0/refint/YD_XinWei.Commons.dll index 8030b66..7de51ca 100644 Binary files a/Server/YD_XinWei.Commons/obj/Debug/net6.0/refint/YD_XinWei.Commons.dll and b/Server/YD_XinWei.Commons/obj/Debug/net6.0/refint/YD_XinWei.Commons.dll differ diff --git a/Server/YD_XinWei/AutoMappers/MappingProfile.cs b/Server/YD_XinWei/AutoMappers/MappingProfile.cs index 494b051..fc67aee 100644 --- a/Server/YD_XinWei/AutoMappers/MappingProfile.cs +++ b/Server/YD_XinWei/AutoMappers/MappingProfile.cs @@ -18,6 +18,8 @@ namespace YD_XinWei.Api.AutoMappers //CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); } } } diff --git a/Server/YD_XinWei/Controllers/XinWeiController.cs b/Server/YD_XinWei/Controllers/XinWeiController.cs index 34039b2..2fd22c3 100644 --- a/Server/YD_XinWei/Controllers/XinWeiController.cs +++ b/Server/YD_XinWei/Controllers/XinWeiController.cs @@ -83,5 +83,31 @@ namespace YD_XinWei.Api.Controllers var res = await _xinWeiService.FaceListOfDevicePage(dto); return res; } + + /// + /// 查询训练评分规则 + /// + /// + /// + [HttpGet] + [Route("/sports/{apiVersion}/project/getScoreRules")] + public async Task> GetScoreRules(int orgId) + { + var res = await _xinWeiService.ScoreRules(orgId); + return res; + } + + /// + /// 新增训练 + /// + /// + /// + [HttpPost] + [Route("/sports/{apiVersion}/train/addTrain")] + public async Task AddTrain([FromBody] AddTrainDto dto) + { + await _xinWeiService.AddTrain(dto); + return Ok("新增成功"); + } } } diff --git a/Server/YD_XinWei/Services/Impl/XinWeiService.cs b/Server/YD_XinWei/Services/Impl/XinWeiService.cs index 8c8ef3f..b3f8db9 100644 --- a/Server/YD_XinWei/Services/Impl/XinWeiService.cs +++ b/Server/YD_XinWei/Services/Impl/XinWeiService.cs @@ -156,7 +156,23 @@ namespace YD_XinWei.Api.Services.Impl /// public async Task> ScoreRules(int orgId) { - throw new NotImplementedException(); + return new List(); + } + + /// + /// 新增训练 + /// + /// + /// + public async Task AddTrain(AddTrainDto dto) + { + var entity = _mapper.Map(dto); + + if (entity != null) + { + await _sportsContext.XW_SportsTestData.AddAsync(entity); + await _sportsContext.SaveChangesAsync(); + } } } } diff --git a/Server/YD_XinWei/Services/Interface/IXinWeiService.cs b/Server/YD_XinWei/Services/Interface/IXinWeiService.cs index 9896d79..8d4d295 100644 --- a/Server/YD_XinWei/Services/Interface/IXinWeiService.cs +++ b/Server/YD_XinWei/Services/Interface/IXinWeiService.cs @@ -55,5 +55,12 @@ namespace YD_XinWei.Api.Services.Interface /// 学校Id /// Task> ScoreRules(int orgId); + + /// + /// 新增训练 + /// + /// + /// + Task AddTrain(AddTrainDto dto); } } diff --git a/Server/YD_XinWei/SmartSportsEntitys/XW_SportsTestData.cs b/Server/YD_XinWei/SmartSportsEntitys/XW_SportsTestData.cs index 3cf28ba..39f188a 100644 --- a/Server/YD_XinWei/SmartSportsEntitys/XW_SportsTestData.cs +++ b/Server/YD_XinWei/SmartSportsEntitys/XW_SportsTestData.cs @@ -8,7 +8,7 @@ using YD_XinWei.Api.Entitys; namespace VOL.Entity.DomainModels.XinWei { [Table("XW_SportsTestData")] - public class XW_SportsTestData : EntityBase + public class XW_SportsTestData { /// /// 编号 diff --git a/Server/YD_XinWei/SmartSportsEntitys/XW_TestingProject.cs b/Server/YD_XinWei/SmartSportsEntitys/XW_TestingProject.cs index 3e7c3f2..e13ed19 100644 --- a/Server/YD_XinWei/SmartSportsEntitys/XW_TestingProject.cs +++ b/Server/YD_XinWei/SmartSportsEntitys/XW_TestingProject.cs @@ -10,7 +10,7 @@ namespace YD_XinWei.Api.SmartSportsEntitys /// 芯未体测项目表 /// [Table("XW_TestingProject")] - public class XW_TestingProject : EntityBase + public class XW_TestingProject { /// /// Id diff --git a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainSetting.cs b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainSetting.cs index 1e9093b..0bf97a9 100644 --- a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainSetting.cs +++ b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainSetting.cs @@ -8,7 +8,7 @@ using YD_XinWei.Api.Entitys; namespace VOL.Entity.DomainModels.XinWei { [Table("XW_TrainSetting")] - public class XW_TrainSetting : EntityBase + public class XW_TrainSetting { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] diff --git a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs index 71d0f78..efca2be 100644 --- a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs +++ b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs @@ -6,7 +6,7 @@ using YD_XinWei.Api.Entitys; namespace VOL.Entity.DomainModels.XinWei { [Table("XW_TrainStudents")] - public class XW_TrainStudents : EntityBase + public class XW_TrainStudents { /// /// 编号 diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.dll b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.dll index 00cb13a..6938e28 100644 Binary files a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.dll and b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.dll differ diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.exe b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.exe index 939d67e..7cc5d6c 100644 Binary files a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.exe and b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.exe differ diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.pdb b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.pdb index ff5f6d3..e780dc2 100644 Binary files a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.pdb and b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.pdb differ diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.xml b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.xml index 2b3e1ec..a3b6cab 100644 --- a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.xml +++ b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Api.xml @@ -100,6 +100,20 @@ + + + 查询训练评分规则 + + + + + + + 新增训练 + + + + 数据库实体父类 @@ -287,6 +301,20 @@ + + + 获取训练评分规则 + + 学校Id + + + + + 新增训练 + + + + 获取班级列表 @@ -360,6 +388,20 @@ + + + 获取训练评分规则 + + 学校Id + + + + + 新增训练 + + + + 帐号 diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.dll b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.dll index 1178e85..f66ed2a 100644 Binary files a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.dll and b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.dll differ diff --git a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.pdb b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.pdb index a1d8b21..421cf47 100644 Binary files a/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.pdb and b/Server/YD_XinWei/bin/Debug/net6.0/YD_XinWei.Commons.pdb differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json b/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json index fed4221..b8c5f9b 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json +++ b/Server/YD_XinWei/obj/Debug/net6.0/ApiEndpoints.json @@ -159,6 +159,58 @@ } ] }, + { + "ContainingType": "YD_XinWei.Api.Controllers.XinWeiController", + "Method": "GetScoreRules", + "RelativePath": "sports/{apiVersion}/project/getScoreRules", + "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.Open.ScoreRuleDto, 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": "AddTrain", + "RelativePath": "sports/{apiVersion}/train/addTrain", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [ + { + "Name": "dto", + "Type": "YD_XinWei.Commons.Dto.Open.AddTrainDto", + "IsRequired": true + }, + { + "Name": "apiVersion", + "Type": "", + "IsRequired": true + } + ], + "ReturnTypes": [] + }, { "ContainingType": "YD_XinWei.Api.Controllers.StudentController", "Method": "ClassListbyTeacher", 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 5c74bf6..e0d3a70 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,134 +6,6 @@ "version": "v1" }, "paths": { - "/HomeWork/AddHomeWork": { - "post": { - "tags": [ - "HomeWork" - ], - "summary": "新增作业", - "requestBody": { - "description": "", - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/AddHomeWorkDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddHomeWorkDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AddHomeWorkDto" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/AddHomeWorkDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/HomeWork/HomeWorkRecord": { - "get": { - "tags": [ - "HomeWork" - ], - "summary": "作业记录", - "parameters": [ - { - "name": "teacherPhoneNo", - "in": "query", - "description": "", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" - } - } - } - } - } - } - } - }, - "/HomeWork/HomeWorkDetails": { - "get": { - "tags": [ - "HomeWork" - ], - "summary": "作业详情", - "parameters": [ - { - "name": "homeWorkId", - "in": "query", - "description": "", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HomeWorkDetailsDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HomeWorkDetailsDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HomeWorkDetailsDto" - } - } - } - } - } - } - }, "/Student/ClassListbyTeacher": { "get": { "tags": [ @@ -233,112 +105,6 @@ } } }, - "/Teacher/TeacherProfile": { - "get": { - "tags": [ - "Teacher" - ], - "summary": "老师个人信息", - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - } - } - } - } - } - }, - "/Teacher/ModifyTeacherProfile": { - "post": { - "tags": [ - "Teacher" - ], - "summary": "修改个人信息", - "requestBody": { - "description": "", - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/TeacherProfileDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/Teacher/ModifyTeacherPwd": { - "post": { - "tags": [ - "Teacher" - ], - "summary": "修改密码", - "requestBody": { - "description": "", - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/ModifyTeacherPwdDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModifyTeacherPwdDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ModifyTeacherPwdDto" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/ModifyTeacherPwdDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, "/User/WXUserInfo": { "post": { "tags": [ @@ -559,17 +325,64 @@ } } }, - "/XinWei/HomeWorkRecord": { + "/basic/{apiVersion}/device/open/getDeviceInfo": { "get": { "tags": [ "XinWei" ], - "summary": "作业记录", + "summary": "获取设备信息", "parameters": [ { - "name": "teacherPhoneNo", + "name": "deviceSerial", "in": "query", - "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + } + } + } + } + } + }, + "/sports/{apiVersion}/common/getSportsModelTypeList": { + "get": { + "tags": [ + "XinWei" + ], + "summary": "获取项目模式列表", + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, "schema": { "type": "string" } @@ -583,7 +396,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" + "$ref": "#/components/schemas/ProjectModeDto" } } }, @@ -591,7 +404,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" + "$ref": "#/components/schemas/ProjectModeDto" } } }, @@ -599,7 +412,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/HomeWorkRecordDto" + "$ref": "#/components/schemas/ProjectModeDto" } } } @@ -607,40 +420,339 @@ } } } + }, + "/sports/{apiVersion}/common/getOrgSportsProjectList": { + "get": { + "tags": [ + "XinWei" + ], + "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/TestingProjectDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestingProjectDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestingProjectDto" + } + } + } + } + } + } + } + }, + "/basic/basic/{apiVersion}/open/getMinimumOfStudentInfoList": { + "get": { + "tags": [ + "XinWei" + ], + "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/StudentInfoDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StudentInfoDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StudentInfoDto" + } + } + } + } + } + } + } + }, + "/basic/{apiVersion}/open/getFaceListOfDevicePage": { + "get": { + "tags": [ + "XinWei" + ], + "summary": "获取人脸信息", + "parameters": [ + { + "name": "OrgId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNo", + "in": "query", + "required": true, + "schema": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "required": true, + "schema": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/FaceListOfDevicePageDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FaceListOfDevicePageDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/FaceListOfDevicePageDto" + } + } + } + } + } + } + }, + "/sports/{apiVersion}/project/getScoreRules": { + "get": { + "tags": [ + "XinWei" + ], + "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/ScoreRuleDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScoreRuleDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScoreRuleDto" + } + } + } + } + } + } + } + }, + "/sports/{apiVersion}/train/addTrain": { + "post": { + "tags": [ + "XinWei" + ], + "summary": "新增训练", + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AddTrainDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddTrainDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddTrainDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddTrainDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } } }, "components": { "schemas": { - "AddHomeWorkDto": { + "AddTrainDto": { "type": "object", "properties": { - "workName": { + "examinationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "examinationName": { "type": "string", "nullable": true }, - "workText": { + "projectType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectName": { "type": "string", "nullable": true }, - "workType": { + "rosterType": { "type": "integer", - "format": "int32" + "format": "int32", + "nullable": true }, - "studentScope": { + "orgId": { "type": "integer", - "format": "int32" - }, - "teacherId": { - "type": "integer", - "format": "int32" - }, - "teacherName": { - "type": "string", + "format": "int32", "nullable": true }, "gradeId": { "type": "integer", - "format": "int32" + "format": "int32", + "nullable": true }, "gradeName": { "type": "string", @@ -648,24 +760,348 @@ }, "classId": { "type": "integer", - "format": "int32" + "format": "int32", + "nullable": true }, "className": { "type": "string", "nullable": true }, + "groupId": { + "type": "string", + "nullable": true + }, + "teacherId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "teacherName": { + "type": "string", + "nullable": true + }, + "modelType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "markType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectKind": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectKindName": { + "type": "string", + "nullable": true + }, + "markTypeName": { + "type": "string", + "nullable": true + }, + "modelTypeName": { + "type": "string", + "nullable": true + }, + "trainCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, "startTime": { "type": "string", - "format": "date-time" + "nullable": true }, "endTime": { "type": "string", - "format": "date-time" + "nullable": true }, - "homeWorkStudents": { + "maleTotal": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleTotal": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMaxCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleMinCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMaxCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleMinCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMaxScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMinScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMaxScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMinScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleFine": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleGood": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "malePass": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleFail": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleFine": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleGood": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femalePass": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleFail": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "passingRate": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleAvgCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleAvgCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleAvgScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleAvgScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMedianCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMedianCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleAvgImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleMaxImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleMinImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleAvgImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleMaxImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "femaleMinImproveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maleAvgImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMaxImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maleMinImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleAvgImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMaxImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "femaleMinImproveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "minErrorCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "minIntoStateTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "minAvgTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "totalErrorCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount1": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "checkCode": { + "type": "string", + "nullable": true + }, + "createTime": { + "type": "string", + "nullable": true + }, + "createBy": { + "type": "string", + "nullable": true + }, + "updateTime": { + "type": "string", + "nullable": true + }, + "updateBy": { + "type": "string", + "nullable": true + }, + "doubleFlag": { + "type": "boolean", + "nullable": true + }, + "source": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "studentName": { + "type": "string", + "nullable": true + }, + "studentList": { "type": "array", "items": { - "$ref": "#/components/schemas/HomeWorkStudentsDto" + "$ref": "#/components/schemas/TrainStudentsDto" }, "nullable": true } @@ -686,95 +1122,226 @@ }, "additionalProperties": false }, - "HomeWorkDetailsDto": { + "DeviceInfoDto": { "type": "object", "properties": { "id": { "type": "integer", - "format": "int32" + "format": "int32", + "nullable": true }, - "workName": { + "type": { + "type": "number", + "format": "double", + "nullable": true + }, + "deviceType": { "type": "string", "nullable": true }, - "workText": { + "deviceSerial": { "type": "string", "nullable": true }, - "startTime": { + "deviceMac": { "type": "string", - "format": "date-time" + "nullable": true }, - "endTime": { + "deviceImei": { "type": "string", - "format": "date-time" + "nullable": true }, - "studentScope": { + "cameraIp": { + "type": "string", + "nullable": true + }, + "gunJumpingIp": { + "type": "string", + "nullable": true + }, + "eai100Flag": { + "type": "boolean", + "nullable": true + }, + "orgId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "orgName": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "softwareVer": { + "type": "string", + "nullable": true + }, + "cameraInfo": { + "type": "string", + "nullable": true + }, + "hardwareVer": { + "type": "string", + "nullable": true + }, + "deployTime": { + "type": "string", + "nullable": true + }, + "lastLoginTime": { + "type": "string", + "nullable": true + }, + "remark": { + "type": "string", + "nullable": true + }, + "state": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "createTime": { + "type": "string", + "nullable": true + }, + "createBy": { + "type": "string", + "nullable": true + }, + "updateTime": { + "type": "string", + "nullable": true + }, + "updateBy": { + "type": "string", + "nullable": true + }, + "similarNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "DeviceUserFaceVo": { + "type": "object", + "properties": { + "userId": { "type": "integer", "format": "int32" }, - "homeWorkStudents": { + "faceType": { + "type": "integer", + "format": "int32" + }, + "faceUrl": { + "type": "string", + "nullable": true + }, + "faceId": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FaceListOfDevicePageDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "startRow": { + "type": "integer", + "format": "int32" + }, + "endRow": { + "type": "integer", + "format": "int32" + }, + "pages": { + "type": "integer", + "format": "int32" + }, + "prePage": { + "type": "integer", + "format": "int32" + }, + "nextPage": { + "type": "integer", + "format": "int32" + }, + "isFirstPage": { + "type": "boolean" + }, + "isLastPage": { + "type": "boolean" + }, + "hasPreviousPage": { + "type": "boolean" + }, + "hasNextPage": { + "type": "boolean" + }, + "navigatePages": { + "type": "integer", + "format": "int32" + }, + "navigatePageNums": { "type": "array", "items": { - "$ref": "#/components/schemas/HomeWorkStudentsDto" + "type": "integer", + "format": "int32" }, "nullable": true - } - }, - "additionalProperties": false - }, - "HomeWorkRecordDto": { - "type": "object", - "properties": { - "id": { + }, + "navigateFirstPage": { "type": "integer", "format": "int32" }, - "workName": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time" - }, - "endTime": { - "type": "string", - "format": "date-time" - }, - "workStatus": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "HomeWorkStudentsDto": { - "type": "object", - "properties": { - "schoolCode": { - "type": "string", - "nullable": true - }, - "studentNo": { - "type": "string", - "nullable": true - }, - "studentName": { - "type": "string", - "nullable": true - }, - "sex": { + "navigateLastPage": { "type": "integer", "format": "int32" }, - "photo": { - "type": "string", + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceUserFaceVo" + }, "nullable": true - }, - "workStatus": { - "type": "integer", - "format": "int32" } }, "additionalProperties": false @@ -808,18 +1375,18 @@ }, "additionalProperties": false }, - "ModifyTeacherPwdDto": { + "ProjectModeDto": { "type": "object", "properties": { - "newrPwd": { - "type": "string", - "nullable": true + "id": { + "type": "integer", + "format": "int32" }, - "oldPwd": { - "type": "string", - "nullable": true + "projectKind": { + "type": "integer", + "format": "int32" }, - "confirmPwd": { + "name": { "type": "string", "nullable": true } @@ -851,6 +1418,232 @@ }, "additionalProperties": false }, + "ScoreRuleDto": { + "type": "object", + "properties": { + "projectKind": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectName": { + "type": "string", + "nullable": true + }, + "markType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "modelType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gradeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "orgId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ruleType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScoreRuleItemDto" + }, + "nullable": true + }, + "pluses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScoreRulePlusDto" + }, + "nullable": true + }, + "scoreScopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScoreScope" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ScoreRuleItemDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "score": { + "type": "number", + "format": "double", + "nullable": true + }, + "max": { + "type": "number", + "format": "double", + "nullable": true + }, + "min": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "ScoreRulePlusDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "score": { + "type": "number", + "format": "double", + "nullable": true + }, + "max": { + "type": "number", + "format": "double", + "nullable": true + }, + "min": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxScore": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "ScoreScope": { + "type": "object", + "properties": { + "gender": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxPlusCount": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxPlusScore": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "StudentInfoDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "userId": { + "type": "integer", + "format": "int32" + }, + "orgId": { + "type": "integer", + "format": "int32" + }, + "gradeId": { + "type": "integer", + "format": "int32" + }, + "ruleGradeId": { + "type": "integer", + "format": "int32" + }, + "gradeName": { + "type": "string", + "nullable": true + }, + "classId": { + "type": "integer", + "format": "int32" + }, + "className": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "sex": { + "type": "string", + "nullable": true + }, + "studentNo": { + "type": "string", + "nullable": true + }, + "cardNo": { + "nullable": true + } + }, + "additionalProperties": false + }, "StudentListDto": { "type": "object", "properties": { @@ -873,35 +1666,244 @@ }, "additionalProperties": false }, - "TeacherProfileDto": { + "TestingProjectDto": { "type": "object", "properties": { - "headImageUrl": { + "projectId": { + "type": "integer", + "format": "int32" + }, + "projectName": { "type": "string", "nullable": true }, - "userTrueName": { - "type": "string", - "nullable": true + "isOpen": { + "type": "boolean" }, - "birthDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "gender": { + "isShow": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TrainStudentsDto": { + "type": "object", + "properties": { + "trainId": { "type": "integer", "format": "int32", "nullable": true }, - "height": { - "type": "number", - "format": "float", + "projectId": { + "type": "integer", + "format": "int32", "nullable": true }, - "weight": { + "projectKind": { "type": "number", - "format": "float", + "format": "double", + "nullable": true + }, + "orgId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gradeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gradeName": { + "type": "string", + "nullable": true + }, + "classId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + }, + "groupName": { + "type": "string", + "nullable": true + }, + "groupOrder": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "teacherId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "deviceId": { + "type": "string", + "nullable": true + }, + "studentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "studentName": { + "type": "string", + "nullable": true + }, + "sex": { + "type": "number", + "format": "double", + "nullable": true + }, + "studentNo": { + "type": "string", + "nullable": true + }, + "achievement": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "originalAchievement": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "achievement2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "originalAchievement2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "score": { + "type": "number", + "format": "double", + "nullable": true + }, + "plusesScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "rating": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rankingInGender": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ranking": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "errorCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "errorTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "avgTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "medianTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount1": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lossesCount3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "higherScore": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "intoStateTime": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "improveCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "improveScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "familySendFlag": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "completed": { + "type": "boolean", + "nullable": true + }, + "quantityCompleted": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "modelType": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "startTime": { + "type": "string", + "nullable": true + }, + "teacher": { + "type": "string", + "nullable": true + }, + "createTime": { + "type": "string", + "nullable": true + }, + "createBy": { + "type": "string", + "nullable": true + }, + "updateTime": { + "type": "string", + "nullable": true + }, + "updateBy": { + "type": "string", "nullable": true } }, @@ -966,25 +1968,17 @@ } ], "tags": [ - { - "name": "HomeWork", - "description": "作业" - }, { "name": "Student", "description": "学生" }, - { - "name": "Teacher", - "description": "老师端" - }, { "name": "User", "description": "用户" }, { "name": "XinWei", - "description": "作业" + "description": "芯未" } ] } \ No newline at end of file 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 481c7be..03ecda8 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+ad143d6bcf630bb86e028d0e2fbc538118cf0f41")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dc38461ab3d5355886477c5ce017e5a8d53b032c")] [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 2b54bb4..d36720e 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 @@ -a22d4df7e052da38fa6c0800608573154d72ec117a2dfcfb27f737b03c08bb4d +2484f36a7fcc252949009027ed60641b02c74041ebf315ee3eaf2b7543bf8538 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 96b0180..7ed4eb8 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache and b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.CoreCompileInputs.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.CoreCompileInputs.cache index 5c5babd..d4565d7 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.CoreCompileInputs.cache +++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -0b885924c6cfa9a8470e64544c43de5a027bc2c8e1b105f9aa5492c4fc6edf75 +003262f253ec12e347b045c271db87bbce9d120a50e84c916441f4ba635620da 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 90f33a5..49a58a5 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 @@ -102,7 +102,6 @@ C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_Xi C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\appsettings.Development.json C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.staticwebassets.endpoints.json C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\appsettings.json -C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.staticwebassets.runtime.json C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.exe C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.deps.json C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\YD_XinWei.Api.runtimeconfig.json @@ -265,3 +264,4 @@ C:\Users\HHST102\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_Xin C:\Users\HHST102\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\YD_XinWei.Api.genruntimeconfig.cache C:\Users\HHST102\Desktop\Code\YD_XinWei\Server\YD_XinWei\obj\Debug\net6.0\ref\YD_XinWei.Api.dll C:\Users\HHST102\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.Mvc.Versioning.dll +C:\Users\TangLong\Desktop\Code\YD_XinWei\Server\YD_XinWei\bin\Debug\net6.0\Microsoft.AspNetCore.Mvc.Versioning.dll diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.dll b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.dll index 00cb13a..6938e28 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.dll and b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.dll differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.genruntimeconfig.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.genruntimeconfig.cache index b4bedd5..c9d75af 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.genruntimeconfig.cache +++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.genruntimeconfig.cache @@ -1 +1 @@ -060f56a1a9a01341736e0740bbb12803aab2a8b5e7b43736aebdfccc3610cbc8 +8f600b69930d1c868b0d8cf16beca96f9dca64d0a3ee6c5610ba18b0c9543755 diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.pdb b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.pdb index ff5f6d3..e780dc2 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.pdb and b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.pdb differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.sourcelink.json b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.sourcelink.json index 9b574b3..eca264e 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.sourcelink.json +++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.sourcelink.json @@ -1 +1 @@ -{"documents":{"C:\\Users\\HHST102\\Desktop\\Code\\YD_XinWei\\*":"https://dev.azure.com/tanglong10081/YD_XinWei/_apis/git/repositories/YD_XinWei/items?api-version=1.0&versionType=commit&version=1c36de9ae00d951cbe0a6ae28dfdf85462590015&path=/*"}} \ No newline at end of file +{"documents":{"C:\\Users\\TangLong\\Desktop\\Code\\YD_XinWei\\*":"https://dev.azure.com/tanglong10081/YD_XinWei/_apis/git/repositories/YD_XinWei/items?api-version=1.0&versionType=commit&version=dc38461ab3d5355886477c5ce017e5a8d53b032c&path=/*"}} \ No newline at end of file diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.xml b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.xml index 2b3e1ec..a3b6cab 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.xml +++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.xml @@ -100,6 +100,20 @@ + + + 查询训练评分规则 + + + + + + + 新增训练 + + + + 数据库实体父类 @@ -287,6 +301,20 @@ + + + 获取训练评分规则 + + 学校Id + + + + + 新增训练 + + + + 获取班级列表 @@ -360,6 +388,20 @@ + + + 获取训练评分规则 + + 学校Id + + + + + 新增训练 + + + + 帐号 diff --git a/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe b/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe index 939d67e..7cc5d6c 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe and b/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/ref/YD_XinWei.Api.dll b/Server/YD_XinWei/obj/Debug/net6.0/ref/YD_XinWei.Api.dll index a9b072e..16e5927 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/ref/YD_XinWei.Api.dll and b/Server/YD_XinWei/obj/Debug/net6.0/ref/YD_XinWei.Api.dll differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/refint/YD_XinWei.Api.dll b/Server/YD_XinWei/obj/Debug/net6.0/refint/YD_XinWei.Api.dll index a9b072e..16e5927 100644 Binary files a/Server/YD_XinWei/obj/Debug/net6.0/refint/YD_XinWei.Api.dll and b/Server/YD_XinWei/obj/Debug/net6.0/refint/YD_XinWei.Api.dll differ diff --git a/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets.build.json b/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets.build.json index 953c2d8..d0431ea 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets.build.json +++ b/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets.build.json @@ -1,11 +1,12 @@ { "Version": 1, - "Hash": "rBCLZOUjwISsB+SX42YT2TnXFxFh+mQJBrhM1QYR9dM=", + "Hash": "KP759nLzKnXJ+WS979JyaVeurWoEX66xHrJc8V9vLq8=", "Source": "YD_XinWei.Api", "BasePath": "_content/YD_XinWei.Api", "Mode": "Default", "ManifestType": "Build", "ReferencedProjectsConfiguration": [], "DiscoveryPatterns": [], - "Assets": [] + "Assets": [], + "Endpoints": [] } \ No newline at end of file diff --git a/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets/msbuild.build.YD_XinWei.Api.props b/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets/msbuild.build.YD_XinWei.Api.props index 5a6032a..ddaed44 100644 --- a/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets/msbuild.build.YD_XinWei.Api.props +++ b/Server/YD_XinWei/obj/Debug/net6.0/staticwebassets/msbuild.build.YD_XinWei.Api.props @@ -1,3 +1,4 @@  + \ No newline at end of file