一分一段待完善

develop
old易 2024-12-13 16:32:17 +08:00
parent 3f91672bd1
commit c84f1adbce
4 changed files with 64 additions and 32 deletions

View File

@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using MySqlX.XDevAPI.Common; using MySqlX.XDevAPI.Common;
using New_College.Common.HttpRestSharp; using New_College.Common.HttpRestSharp;
using New_College.IRepository;
using New_College.IServices; using New_College.IServices;
using New_College.Model; using New_College.Model;
using New_College.Model.Models; using New_College.Model.Models;
@ -23,10 +24,12 @@ namespace New_College.Api.Controllers.Front
{ {
private readonly ID_LongIdMapServices iD_LongIdMapServices; private readonly ID_LongIdMapServices iD_LongIdMapServices;
private readonly ID_ScoreLineServices _ScoreLineServices; private readonly ID_ScoreLineServices _ScoreLineServices;
public LibraryController(ID_LongIdMapServices ID_LongIdMapServices, ID_ScoreLineServices d_ScoreLineServices) private readonly ISysRegionRepository _regionRepository;
public LibraryController(ID_LongIdMapServices ID_LongIdMapServices, ID_ScoreLineServices d_ScoreLineServices, ISysRegionRepository sysRegionRepository)
{ {
iD_LongIdMapServices = ID_LongIdMapServices; iD_LongIdMapServices = ID_LongIdMapServices;
this._ScoreLineServices = d_ScoreLineServices; this._ScoreLineServices = d_ScoreLineServices;
_regionRepository = sysRegionRepository;
} }
@ -66,22 +69,6 @@ namespace New_College.Api.Controllers.Front
}; };
} }
var query = await _ScoreLineServices.Query(c => SqlFunc.Between(c.SumCount, lines.Min(), lines.Max()) && c.Province == queryDto.Pronvice); var query = await _ScoreLineServices.Query(c => SqlFunc.Between(c.SumCount, lines.Min(), lines.Max()) && c.Province == queryDto.Pronvice);
//var newscore = queryDto.Score - 1;
//var tmpquery = await _ScoreLineServices.Query(c => c.Score == newscore.ToString() && c.Province == queryDto.Pronvice);
//query.ForEach(a =>
//{
// // var newsuminfo = tmpquery.FirstOrDefault(a => a.Years == a.Years);
// response.Add(new SameScoreLineDataDto()
// {
// Count = a.Count,
// Score = a.Score,
// SumCount = a.SumCount,
// Years = a.Years,
// Type = a.Type,
// ScoreRegion = newsuminfo.SumCount + "~" + a.SumCount
// });
//});
response = query.GroupBy(g => new SameScoreLineDataDto { Years = g.Years, Type = g.Type }).Select(c => new SameScoreLineDataDto() response = query.GroupBy(g => new SameScoreLineDataDto { Years = g.Years, Type = g.Type }).Select(c => new SameScoreLineDataDto()
{ {
Score = query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Max(e => e.Score), Score = query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Max(e => e.Score),
@ -109,20 +96,43 @@ namespace New_College.Api.Controllers.Front
public async Task<MessageModel<List<ScoreLineResponseDto>>> GetScoreLine([FromQuery] ScoreLineQueryDto queryDto) public async Task<MessageModel<List<ScoreLineResponseDto>>> GetScoreLine([FromQuery] ScoreLineQueryDto queryDto)
{ {
var response = new List<ScoreLineResponseDto>(); var response = new List<ScoreLineResponseDto>();
var query = await _ScoreLineServices.Query(c => c.Years == queryDto.Years && c.Province == queryDto.Pronvice);
for (int i = 0; i < query.Count(); i++) var provinceInfo = await _regionRepository.Query(p => p.Level == 1);
queryDto.Pronvice = provinceInfo.FirstOrDefault(e => e.RegionName.Contains(queryDto.Pronvice)).RegionCode;
var url = $"https://api.v3.ycymedu.com/api/ScoreSection/scoreSection?year={queryDto.Years}&locationCode={queryDto.Pronvice}&type={queryDto.Type}";
var query = HttpHelper.GetApi<ScoreLineobject>(url, "");
if (query.code == 200)
{ {
response.Add(new ScoreLineResponseDto() for (int i = 0; i < query.result.Count(); i++)
{ {
Count = query[i].Count, response.Add(new ScoreLineResponseDto()
Province = query[i].Province, {
Score = query[i].Score, Count = query.result[i].currentCount,
SumCount = i == 0 ? query[i].SumCount : query[i].SumCount - query[i - 1].SumCount, Province = queryDto.Pronvice,
Type = query[i].Type, Score = query.result[i].score.ToString(),
ScoreRegion = i == 0 ? "1~" + query[i].SumCount : query[i - 1].SumCount + 1 + "~ " + query[i].SumCount, SumCount = i == 0 ? query.result[i].cumulativeCount : query.result[i].cumulativeCount - query.result[i - 1].cumulativeCount,
Years = query[i].Years, Type = queryDto.Type == 0 ? "综合" : queryDto.Type == 1 ? "历史" : "物理",
}); ScoreRegion = i == 0 ? "1~" + query.result[i].cumulativeCount : query.result[i - 1].cumulativeCount + 1 + "~" + query.result[i].cumulativeCount,
Years = queryDto.Years,
});
}
} }
//var query = await _ScoreLineServices.Query(c => c.Years == queryDto.Years && c.Province == queryDto.Pronvice);
//for (int i = 0; i < query.Count(); i++)
//{
// response.Add(new ScoreLineResponseDto()
// {
// Count = query[i].Count,
// Province = query[i].Province,
// Score = query[i].Score,
// SumCount = i == 0 ? query[i].SumCount : query[i].SumCount - query[i - 1].SumCount,
// Type = query[i].Type,
// ScoreRegion = i == 0 ? "1~" + query[i].SumCount : query[i - 1].SumCount + 1 + "~ " + query[i].SumCount,
// Years = query[i].Years,
// });
//}
return new MessageModel<List<ScoreLineResponseDto>>() return new MessageModel<List<ScoreLineResponseDto>>()
{ {

View File

@ -54,8 +54,8 @@ namespace New_College.Api.Controllers
}).ToList(); }).ToList();
DateTime dt = DateTime.Now; DateTime dt = DateTime.Now;
DateTime fixedDate = new DateTime(dt.Year, 6, 10); // 创建当前年份的9月10日 DateTime fixedDate = new DateTime(dt.Year, 9, 10); // 创建当前年份的9月10日
int nowyear = dt > fixedDate ? dt.Year : dt.Year-1; // 比较当前日期与固定日期 int nowyear = dt > fixedDate ? dt.Year + 1 : dt.Year; // 比较当前日期与固定日期
sevolunterlist.ForEach(a => sevolunterlist.ForEach(a =>
{ {

View File

@ -23,6 +23,7 @@ namespace New_College.Model.ViewModels
/// </summary> /// </summary>
public int Score { get; set; } public int Score { get; set; }
public int? Type { get; set; }
} }

View File

@ -8,7 +8,7 @@ namespace New_College.Model.ViewModels
public class SameScoreLineDataDto public class SameScoreLineDataDto
{ {
/// <summary> /// <summary>
/// 年份 /// 年份
/// </summary> /// </summary>
@ -69,7 +69,7 @@ namespace New_College.Model.ViewModels
/// <summary> /// <summary>
/// 分数区间 /// 分数区间
/// </summary> /// </summary>
public string ScoreRegion { get; set;} public string ScoreRegion { get; set; }
/// <summary> /// <summary>
/// 本段人数 /// 本段人数
@ -128,4 +128,25 @@ namespace New_College.Model.ViewModels
} }
public class ScoreLineobject
{
public int code { get; set; }
public string type { get; set; }
public string message { get; set; }
public List<ScoreLineResult> result { get; set; }
public object extras { get; set; }
public string time { get; set; }
}
public class ScoreLineResult
{
public string _id { get; set; }
public int type { get; set; }
public int score { get; set; }
public int currentCount { get; set; }
public int cumulativeCount { get; set; }
}
} }