646 lines
22 KiB
C#
646 lines
22 KiB
C#
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 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;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 同分年份数据
|
|
/// </summary>
|
|
/// <param name="queryDto"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<SameScoreLineDataDto>>> GetSameScoreLine([FromQuery] ScoreLineQueryDto queryDto)
|
|
{
|
|
var response = new List<SameScoreLineDataDto>();
|
|
if (queryDto.Score <= 50)
|
|
{
|
|
return new MessageModel<List<SameScoreLineDataDto>>()
|
|
{
|
|
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();
|
|
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<List<SameScoreLineDataDto>>()
|
|
{
|
|
msg = "ok",
|
|
response = response.OrderByDescending(c => c.Years).ToList(),
|
|
success = true
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取省份学年位次信息列表(目前只有山东省)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
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++)
|
|
{
|
|
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>>()
|
|
{
|
|
response = response,
|
|
status = 200,
|
|
success = true,
|
|
msg = "ok"
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取院校库
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<MessageModel<PageModel<UniversityResult>>> GetUniversitys([FromBody] UniversityQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetUniversitys(query);
|
|
if (result.data == null || result.data.Count <= 0)
|
|
{
|
|
return new MessageModel<PageModel<UniversityResult>>()
|
|
{
|
|
success = false,
|
|
msg = "获取失败",
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<PageModel<UniversityResult>>()
|
|
{
|
|
success = true,
|
|
msg = "获取成功",
|
|
response = result
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 专业库 一级二级列表
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<uniMajorInfoResult>>> uniGetMajorInfo([FromQuery] MajorcategoryQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.uniGetMajorInfo(query);
|
|
return new MessageModel<List<uniMajorInfoResult>>()
|
|
{
|
|
success = result.Count <= 0 ? false : true,
|
|
msg = result.Count <= 0 ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 根据一级专业Id获取二三级专业数据
|
|
/// </summary>
|
|
/// <param name="tradeId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<TreeMajorInfoResult>>> GetTreeMajors([FromQuery] int tradeId)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetTreeMajors(tradeId);
|
|
return new MessageModel<List<TreeMajorInfoResult>>()
|
|
{
|
|
success = result.Count <= 0 ? false : true,
|
|
msg = result.Count <= 0 ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取推荐职业
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<OccupationResult>>> GetRecommendOccupation()
|
|
{
|
|
var result = await iD_LongIdMapServices.GetRecommendOccupation();
|
|
return new MessageModel<List<OccupationResult>>()
|
|
{
|
|
success = result.Count <= 0 ? false : true,
|
|
msg = result.Count <= 0 ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 职业库 一级二级列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<uniMajorInfoResult>>> uniGetOccupationInfo([FromQuery] MinOccupationRequest request)
|
|
{
|
|
var result = await iD_LongIdMapServices.uniGetOccupationInfo(request);
|
|
return new MessageModel<List<uniMajorInfoResult>>()
|
|
{
|
|
success = result.Count <= 0 ? false : true,
|
|
msg = result.Count <= 0 ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Pc端接口职业库一级二级三级列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
|
|
[HttpGet]
|
|
public async Task<MessageModel<dynamic>> 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<dynamic>()
|
|
{
|
|
success = result.Count <= 0 ? false : true,
|
|
msg = result.Count <= 0 ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取职业第三级
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<IdNameResult>>> GetOccupationThree([FromQuery] IdQuery query)
|
|
{
|
|
return await iD_LongIdMapServices.GetOccupationThree(query);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 院校详情
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<UniversityDetailResponse>> GetUniversityDetails([FromQuery] IdQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetUniversityDetails(query);
|
|
return new MessageModel<UniversityDetailResponse>()
|
|
{
|
|
success = result.Status == 1 ? true : false,
|
|
msg = result.Status == 1 ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 搜索专业名称得到专业列表
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<SeachMajorDtoResponse>>> SeachMajor([FromQuery] SeachMajorDtoRequest query)
|
|
{
|
|
var result = await iD_LongIdMapServices.SeachMajor(query);
|
|
return new MessageModel<List<SeachMajorDtoResponse>>()
|
|
{
|
|
msg = "ok",
|
|
success = result.Any() ? true : false,
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取专业介绍
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<MajorDetail>> GetMajorDetail([FromQuery] MajorQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetMajorDetail(query);
|
|
return new MessageModel<MajorDetail>()
|
|
{
|
|
success = result.id > 0 ? true : false,
|
|
msg = result.id > 0 ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 相关院校
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<PageModel<UniversityResult>>> GetRelevantSchool([FromQuery] MajorSchoolQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetRelevantSchool(query);
|
|
return new MessageModel<PageModel<UniversityResult>>()
|
|
{
|
|
success = (result.data == null || result.data.Count <= 0) == true ? false : true,
|
|
msg = (result.data == null || result.data.Count <= 0) == true ? "获取失败" : "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取专业就业前景
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<CareerProspects>> GetCareerProspects([FromQuery] MajorCareerQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetCareerProspects(query);
|
|
return new MessageModel<CareerProspects>()
|
|
{
|
|
success = true,
|
|
msg = "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取第三级
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<uniMajorInfo>>> uniGetMajorThree([FromQuery] ManageMajorQuery query)
|
|
{
|
|
return await iD_LongIdMapServices.uniGetMajorThree(query);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据标签推荐专业
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<uniMajorInfo>>> GetMajorThreeByTag([FromQuery] MajorThreeByTagQuery query)
|
|
{
|
|
return await iD_LongIdMapServices.GetMajorThreeByTag(query);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取职业详情-职业介绍
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<OccupationDetailResult>> GetRecommendIntroduce([FromQuery] IdQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetRecommendIntroduce(query);
|
|
return new MessageModel<OccupationDetailResult>()
|
|
{
|
|
success = result.Status == 1 ? true : false,
|
|
msg = result.Status == 1 ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public async Task<MessageModel<dynamic>> GetRecommendIntroduceV2([FromQuery] IdQuery query)
|
|
{
|
|
|
|
var info = HttpHelper.GetApi<pcOccupationobject>("http://192.168.104.104:3000/", "youzy.dms.basiclib.api.v1.career2.level.tree.get");
|
|
return new MessageModel<dynamic>()
|
|
{
|
|
msg = "获取成功",
|
|
response = info,
|
|
status = 200,
|
|
success = true,
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 院校相关专业专用
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<uniMajorInfoResult>>> GetUniversityMajor([FromQuery] IdQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetUniversityMajor(query);
|
|
return new MessageModel<List<uniMajorInfoResult>>()
|
|
{
|
|
success = true,
|
|
msg = "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查学校省份的 年份批次
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<BatchYear>> GetBatchYearBySchoolId([FromQuery] PlanYearQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetBatchYearBySchoolId(query);
|
|
return new MessageModel<BatchYear>()
|
|
{
|
|
success = result != null,
|
|
msg = result != null ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取招生计划 院校详情
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<NewPlanDescList>>> GetPlanBySchollId([FromQuery] PlanQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetPlanBySchollId(query);
|
|
if (result == null || result.Count() <= 0)
|
|
{
|
|
return new MessageModel<List<NewPlanDescList>>()
|
|
{
|
|
success = false,
|
|
msg = "获取失败"
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<List<NewPlanDescList>>()
|
|
{
|
|
success = true,
|
|
msg = "获取成功",
|
|
response = result
|
|
};
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取院校排名
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<UniversityRankList>>> GetUniversityRank([FromQuery] UniversityRankQuery query)
|
|
{
|
|
var result = await iD_LongIdMapServices.GetUniversityRank(query);
|
|
return new MessageModel<List<UniversityRankList>>()
|
|
{
|
|
success = result.Count > 0,
|
|
msg = result.Count > 0 ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// PC版本院校排名
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<UniversityPcRankList>>> GetPcUniversityRank([FromQuery] UniversityRankQuery query)
|
|
{
|
|
|
|
if (string.IsNullOrWhiteSpace(query.Year))
|
|
{
|
|
query.Year = "2023";
|
|
}
|
|
|
|
var result = await iD_LongIdMapServices.GetPcUniversityRank(query);
|
|
return new MessageModel<List<UniversityPcRankList>>()
|
|
{
|
|
success = result.Count > 0,
|
|
msg = result.Count > 0 ? "获取成功" : "获取失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 专业搜索
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<PageModel<IdNameResult>>> uniGetSearchMajor([FromQuery] NameBaseQuery query)
|
|
{
|
|
return await iD_LongIdMapServices.uniGetSearchMajor(query);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取招生简章列表
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public MessageModel<List<GenBycollegeItem>> GetEnrollmentinproductionResult([FromQuery] UniversityGeneralRequest request)
|
|
{
|
|
return iD_LongIdMapServices.GetEnrollmentinproductionResult(request);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取招生简介详情
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<RequestEnrollmentinproductionDetailResult>> GetRequestEnrollmentinproductionDetailResult([FromQuery] StringIdQuery query)
|
|
{
|
|
return await iD_LongIdMapServices.GetRequestEnrollmentinproductionDetailResult(query);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取学科评估
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<SubjectEvaluateResult>> GetSubjectEvaluate([FromQuery] SubjectEvaluateRequest request)
|
|
{
|
|
request.extTypeId = "第四轮";
|
|
var info = HttpHelper.PostApi<SubjectEvaluateResponse>("http://192.168.104.104:3000/youzy.dms.basiclib.api.college.subjectevaluate.byexttypeid.query", request);
|
|
if (info == null)
|
|
{
|
|
return new MessageModel<SubjectEvaluateResult>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
if (info.isSuccess)
|
|
{
|
|
return new MessageModel<SubjectEvaluateResult>()
|
|
{
|
|
success = true,
|
|
msg = "ok",
|
|
response = info.result
|
|
};
|
|
}
|
|
return new MessageModel<SubjectEvaluateResult>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 特色专业
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<FeaturedMajorResult>> GetFeaturedMajor([FromQuery] FeaturedMajorRequest request)
|
|
{
|
|
var info = HttpHelper.GetApi<FeaturedMajorResponse>("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<FeaturedMajorResult>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
if (info.isSuccess)
|
|
{
|
|
return new MessageModel<FeaturedMajorResult>()
|
|
{
|
|
success = true,
|
|
msg = "ok",
|
|
response = info.result
|
|
};
|
|
}
|
|
return new MessageModel<FeaturedMajorResult>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 院系设置
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<DepartmentResult>>> GetDepartment([FromQuery] DepartmentRequest request)
|
|
{
|
|
var info = HttpHelper.GetApi<DepartmentResponse>("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<List<DepartmentResult>>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
if (info.isSuccess)
|
|
{
|
|
return new MessageModel<List<DepartmentResult>>()
|
|
{
|
|
success = true,
|
|
msg = "ok",
|
|
response = info.result.ToList()
|
|
};
|
|
}
|
|
return new MessageModel<List<DepartmentResult>>
|
|
{
|
|
msg = "暂无数据",
|
|
success = false
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|