一分一段待完善

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 MySqlX.XDevAPI.Common;
using New_College.Common.HttpRestSharp;
using New_College.IRepository;
using New_College.IServices;
using New_College.Model;
using New_College.Model.Models;
@ -23,10 +24,12 @@ namespace New_College.Api.Controllers.Front
{
private readonly ID_LongIdMapServices iD_LongIdMapServices;
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;
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 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()
{
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)
{
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,
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,
});
response.Add(new ScoreLineResponseDto()
{
Count = query.result[i].currentCount,
Province = queryDto.Pronvice,
Score = query.result[i].score.ToString(),
SumCount = i == 0 ? query.result[i].cumulativeCount : query.result[i].cumulativeCount - query.result[i - 1].cumulativeCount,
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>>()
{

View File

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

View File

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

View File

@ -8,7 +8,7 @@ namespace New_College.Model.ViewModels
public class SameScoreLineDataDto
{
/// <summary>
/// 年份
/// </summary>
@ -69,7 +69,7 @@ namespace New_College.Model.ViewModels
/// <summary>
/// 分数区间
/// </summary>
public string ScoreRegion { get; set;}
public string ScoreRegion { get; set; }
/// <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; }
}
}