using System; using System.Collections.Generic; using System.Data.Entity.Core.Metadata.Edm; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; 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; using New_College.Model.ViewModels; using SqlSugar; namespace New_College.Api.Controllers.Front { [Route("api/front/[controller]/[action]")] [ApiController] public class LibraryController : ControllerBase { private readonly ID_LongIdMapServices iD_LongIdMapServices; private readonly ID_ScoreLineServices _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; } /// /// 同分年份数据 /// /// /// [HttpGet] public async Task>> GetSameScoreLine([FromQuery] ScoreLineQueryDto queryDto) { var response = new List(); if (queryDto.Score <= 50) { return new MessageModel>() { msg = "请输入分数", success = false }; } //1.先计算分数对应的位次, //2.再通过位次反向匹配,前面三年的分数 var biaozhun = await _ScoreLineServices.Query(c => (c.Score == queryDto.Score.ToString() || c.Score == (queryDto.Score - 1).ToString()) && c.Province == queryDto.Pronvice && c.Years == queryDto.Years); var lines = biaozhun.Select(s => s.SumCount).ToArray(); if (biaozhun.Count() <= 0) { return new MessageModel>() { success = false, msg = "暂无数据", status = 200 }; } var query = await _ScoreLineServices.Query(c => SqlFunc.Between(c.SumCount, lines.Min(), lines.Max()) && c.Province == queryDto.Pronvice); 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), ScoreRegion = query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Min(e => e.SumCount) + "~" + query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Max(e => e.SumCount), Years = c.Key.Years, Type = c.Key.Type }).DistinctBy(c => c.Years).ToList(); return new MessageModel>() { msg = "ok", response = response.OrderByDescending(c => c.Years).ToList(), success = true }; } /// /// 获取省份学年位次信息列表(目前只有山东省) /// /// [HttpGet] public async Task>> GetScoreLine([FromQuery] ScoreLineQueryDto queryDto) { var response = new List(); 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(url, ""); if (query.code == 200) { for (int i = 0; i < query.result.Count(); i++) { 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>() { response = response, status = 200, success = true, msg = "ok" }; } /// /// 获取院校库 /// /// /// [HttpPost] public async Task>> GetUniversitys([FromBody] UniversityQuery query) { var result = await iD_LongIdMapServices.GetUniversitys(query); if (result.data == null || result.data.Count <= 0) { return new MessageModel>() { success = false, msg = "获取失败", }; } else { return new MessageModel>() { success = true, msg = "获取成功", response = result }; } } /// /// /// /// /// [HttpGet] public async Task>> GetMongoUniversity([FromQuery] string key) { if (key != "ycymedu") { return new MessageModel>() { success = false, msg = "" }; } var result = await iD_LongIdMapServices.GetSyncUniversityInfo(); return new MessageModel>() { response = result, }; } /// /// 专业库 一级二级列表 /// /// /// [HttpGet] public async Task>> uniGetMajorInfo([FromQuery] MajorcategoryQuery query) { var result = await iD_LongIdMapServices.uniGetMajorInfo(query); return new MessageModel>() { success = result.Count <= 0 ? false : true, msg = result.Count <= 0 ? "获取失败" : "获取成功", response = result }; } /// /// 根据一级专业Id获取二三级专业数据 /// /// /// [HttpGet] public async Task>> GetTreeMajors([FromQuery] int tradeId) { var result = await iD_LongIdMapServices.GetTreeMajors(tradeId); return new MessageModel>() { success = result.Count <= 0 ? false : true, msg = result.Count <= 0 ? "获取失败" : "获取成功", response = result }; } /// /// 获取推荐职业 /// /// [HttpGet] public async Task>> GetRecommendOccupation() { var result = await iD_LongIdMapServices.GetRecommendOccupation(); return new MessageModel>() { success = result.Count <= 0 ? false : true, msg = result.Count <= 0 ? "获取失败" : "获取成功", response = result }; } /// /// 职业库 一级二级列表 /// /// [HttpGet] public async Task>> uniGetOccupationInfo([FromQuery] MinOccupationRequest request) { var result = await iD_LongIdMapServices.uniGetOccupationInfo(request); return new MessageModel>() { success = result.Count <= 0 ? false : true, msg = result.Count <= 0 ? "获取失败" : "获取成功", response = result }; } /// /// Pc端接口职业库一级二级三级列表 /// /// [HttpGet] public async Task> PcGetOccupationInfo([FromQuery] MinOccupationRequest request) { ////http://192.168.104.104:3000/youzy.dms.basiclib.api.v1.career2.level.tree.get var result = await iD_LongIdMapServices.pcGetOccupationInfo(request.Name); return new MessageModel() { success = result.Count <= 0 ? false : true, msg = result.Count <= 0 ? "获取失败" : "获取成功", response = result }; } /// /// 获取职业第三级 /// /// /// [HttpGet] public async Task>> GetOccupationThree([FromQuery] IdQuery query) { return await iD_LongIdMapServices.GetOccupationThree(query); } /// /// 院校详情 /// /// /// [HttpGet] public async Task> GetUniversityDetails([FromQuery] IdQuery query) { var result = await iD_LongIdMapServices.GetUniversityDetails(query); return new MessageModel() { success = result.Status == 1 ? true : false, msg = result.Status == 1 ? "获取成功" : "获取失败", response = result }; } /// /// 搜索专业名称得到专业列表 /// /// /// [HttpGet] public async Task>> SeachMajor([FromQuery] SeachMajorDtoRequest query) { var result = await iD_LongIdMapServices.SeachMajor(query); return new MessageModel>() { msg = "ok", success = result.Any() ? true : false, response = result }; } /// /// 获取专业介绍 /// /// /// [HttpGet] public async Task> GetMajorDetail([FromQuery] MajorQuery query) { var result = await iD_LongIdMapServices.GetMajorDetail(query); return new MessageModel() { success = result.id > 0 ? true : false, msg = result.id > 0 ? "获取成功" : "获取失败", response = result }; } /// /// 相关院校 /// /// /// [HttpGet] public async Task>> GetRelevantSchool([FromQuery] MajorSchoolQuery query) { var result = await iD_LongIdMapServices.GetRelevantSchool(query); return new MessageModel>() { success = (result.data == null || result.data.Count <= 0) == true ? false : true, msg = (result.data == null || result.data.Count <= 0) == true ? "获取失败" : "获取成功", response = result }; } /// /// 获取专业就业前景 /// /// /// [HttpGet] public async Task> GetCareerProspects([FromQuery] MajorCareerQuery query) { var result = await iD_LongIdMapServices.GetCareerProspects(query); return new MessageModel() { success = true, msg = "获取成功", response = result }; } /// /// 获取第三级 /// /// /// [HttpGet] public async Task>> uniGetMajorThree([FromQuery] ManageMajorQuery query) { return await iD_LongIdMapServices.uniGetMajorThree(query); } /// /// 根据标签推荐专业 /// /// /// [HttpGet] public async Task>> GetMajorThreeByTag([FromQuery] MajorThreeByTagQuery query) { return await iD_LongIdMapServices.GetMajorThreeByTag(query); } /// /// 获取职业详情-职业介绍 /// /// [HttpGet] public async Task> GetRecommendIntroduce([FromQuery] IdQuery query) { var result = await iD_LongIdMapServices.GetRecommendIntroduce(query); return new MessageModel() { success = result.Status == 1 ? true : false, msg = result.Status == 1 ? "获取成功" : "获取失败", response = result }; } [HttpGet] public async Task> GetRecommendIntroduceV2([FromQuery] IdQuery query) { var info = HttpHelper.GetApi("http://192.168.104.104:3000/", "youzy.dms.basiclib.api.v1.career2.level.tree.get"); return new MessageModel() { msg = "获取成功", response = info, status = 200, success = true, }; } /// /// 院校相关专业专用三层下拉接口 /// /// /// [HttpGet] public async Task>> GetUniversityMajorByTree([FromQuery] IdQuery query) { var result = await iD_LongIdMapServices.GetUniversityMajorByTree(query); return new MessageModel>() { success = true, msg = "获取成功", response = result }; } /// /// 院校相关专业专用 /// /// /// [HttpGet] public async Task>> GetUniversityMajor([FromQuery] IdQuery query) { var result = await iD_LongIdMapServices.GetUniversityMajor(query); return new MessageModel>() { success = true, msg = "获取成功", response = result }; } /// /// 查学校省份的 年份批次 /// /// /// [HttpGet] public async Task> GetBatchYearBySchoolId([FromQuery] PlanYearQuery query) { var result = await iD_LongIdMapServices.GetBatchYearBySchoolId(query); return new MessageModel() { success = result != null, msg = result != null ? "获取成功" : "获取失败", response = result }; } /// /// 获取招生计划 院校详情 /// /// /// [HttpGet] public async Task>> GetPlanBySchollId([FromQuery] PlanQuery query) { var result = await iD_LongIdMapServices.GetPlanBySchollId(query); if (result == null || result.Count() <= 0) { return new MessageModel>() { success = false, msg = "获取失败" }; } else { return new MessageModel>() { success = true, msg = "获取成功", response = result }; } } /// /// 获取院校排名 /// /// /// [HttpGet] public async Task>> GetUniversityRank([FromQuery] UniversityRankQuery query) { if (string.IsNullOrWhiteSpace(query.Year)) { query.Year = query.Type == 3 ? "2024" : "2023"; } var result = await iD_LongIdMapServices.GetUniversityRank(query); return new MessageModel>() { success = result.Count > 0, msg = result.Count > 0 ? "获取成功" : "获取失败", response = result }; } /// /// PC版本院校排名 /// /// /// [HttpGet] public async Task>> GetPcUniversityRank([FromQuery] UniversityRankQuery query) { if (string.IsNullOrWhiteSpace(query.Year)) { query.Year = query.Type == 3 ? "2024" : "2023"; // query.SubjectType = query.Type; } var result = await iD_LongIdMapServices.GetPcUniversityRank(query); return new MessageModel>() { success = result.Count > 0, msg = result.Count > 0 ? "获取成功" : "获取失败", response = result }; } /// /// 专业搜索 /// /// /// [HttpGet] public async Task>> uniGetSearchMajor([FromQuery] NameBaseQuery query) { return await iD_LongIdMapServices.uniGetSearchMajor(query); } /// /// 获取招生简章列表 /// /// /// [HttpGet] public MessageModel> GetEnrollmentinproductionResult([FromQuery] UniversityGeneralRequest request) { return iD_LongIdMapServices.GetEnrollmentinproductionResult(request); } /// /// 获取招生简介详情 /// /// /// [HttpGet] public MessageModel GetRequestEnrollmentinproductionDetailResult([FromQuery] StringIdQuery query) { return iD_LongIdMapServices.GetRequestEnrollmentinproductionDetailResult(query); } /// /// 获取学科评估 /// /// /// [HttpGet] public async Task> GetSubjectEvaluate([FromQuery] SubjectEvaluateRequest request) { request.extTypeId = "第四轮"; var info = HttpHelper.PostApi("http://192.168.104.104:3000/youzy.dms.basiclib.api.college.subjectevaluate.byexttypeid.query", request); if (info == null) { return new MessageModel { msg = "暂无数据", success = false }; } if (info.isSuccess) { return new MessageModel() { success = true, msg = "ok", response = info.result }; } return new MessageModel { msg = "暂无数据", success = false }; } /// /// 特色专业 /// /// /// [HttpGet] public async Task> GetFeaturedMajor([FromQuery] FeaturedMajorRequest request) { var info = HttpHelper.GetApi("http://192.168.104.104:3000/", string.Format("youzy.dms.basiclib.api.college.profession.bycollege.get?collegeCode={0}", request.collegeCode)); if (info == null) { return new MessageModel { msg = "暂无数据", success = false }; } if (info.isSuccess) { return new MessageModel() { success = true, msg = "ok", response = info.result }; } return new MessageModel { msg = "暂无数据", success = false }; } /// /// 院系设置 /// /// /// [HttpGet] public async Task>> GetDepartment([FromQuery] DepartmentRequest request) { var info = HttpHelper.GetApi("http://192.168.104.104:3000/", string.Format("youzy.dms.basiclib.api.college.department.bycollege.get?collegeCode={0}", request.collegeCode)); if (info == null) { return new MessageModel> { msg = "暂无数据", success = false }; } if (info.isSuccess) { return new MessageModel>() { success = true, msg = "ok", response = info.result.ToList() }; } return new MessageModel> { msg = "暂无数据", success = false }; } } }