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.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;
public LibraryController(ID_LongIdMapServices ID_LongIdMapServices, ID_ScoreLineServices d_ScoreLineServices)
{
iD_LongIdMapServices = ID_LongIdMapServices;
this._ScoreLineServices = d_ScoreLineServices;
}
///
/// 同分年份数据
///
///
///
[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);
//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),
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 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
};
}
}
}