NewGaoKaoApi/New_College.Services/D_LongIdMapServices.cs

2438 lines
113 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using New_College.IServices;
using New_College.Model.Models;
using New_College.Services.BASE;
using New_College.IRepository.Base;
using New_College.IRepository;
using System.Threading.Tasks;
using New_College.Common.Excel;
using System.Data;
using System;
using System.Linq;
using System.Collections.Generic;
using New_College.Model.ViewModels;
using LinqKit;
using New_College.Model;
using New_College.Common.Helper;
using New_College.Common;
using New_College.Common.HttpRestSharp;
using System.Text;
using SqlSugar;
using System.Linq.Expressions;
using Org.BouncyCastle.Asn1.Ocsp;
using StackExchange.Redis;
using New_College.Repository;
using NPOI.Util.ArrayExtensions;
using System.Threading;
using Org.BouncyCastle.Asn1.Tsp;
using Newtonsoft.Json;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
namespace New_College.Services
{
public class D_LongIdMapServices : BaseServices<D_LongIdMap>, ID_LongIdMapServices
{
private readonly IBaseRepository<D_LongIdMap> _dal;
private readonly ID_MajorCategoryRepository d_MajorCategoryRepository;
private readonly ID_MajorClassRepository d_MajorClassRepository;
private readonly ID_MajorRepository d_MajorRepository;
private readonly ID_OccupationCategoryRepository d_OccupationCategoryRepository;
private readonly ID_OccupationRepository d_OccupationRepository;
private readonly ID_OccMapTagRepository d_OccMapTagRepository;
private readonly ID_MajorMapOccouptionRepository d_MajorMapOccouptionRepository;
private readonly ID_MajorMapTagRepository d_MajorMapTagRepository;
private readonly ID_MajorObtainRepository d_MajorObtainRepository;
private readonly ID_UniversityRepository d_UniversityRepository;
private readonly ID_UniversityimgRepository d_UniversityimgRepository;
private readonly ID_UniversityRankRepository d_UniversityRankRepository;
private readonly ID_MajorMapUniversityRepository d_MajorMapUniversityRepository;
private readonly ID_MajorInformationRepository d_MajorInformationRepository;
private readonly ID_UniversityCollectionRepository d_UniversityCollectionRepository;
private readonly IT_EnrollmentPlanedescRepository t_EnrollmentPlanedescRepository;
private readonly IT_EnrollmentBatchRepository t_EnrollmentBatchRepository;
private readonly ID_GraduateFlowRepository d_GraduateFlowRepository;
private readonly IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository;
private readonly ID_MyHistoryInfoServices d_MyHistory;
private readonly ID_PlanMajorDescRepository _PlanMajorDescRepository;
private readonly ID_PlanMajorScoreLineRepository d_PlanMajorScoreLineRepository;
private readonly ID_QualificationLineRepository d_QualificationLineRepository;
private readonly ID_PlanMajorDescRepository d_PlanMajorDescRepository;
private readonly ID_PlanMajorDescProRepository d_PlanMajorDescProRepository;
private readonly IT_TbSNeedDataInfoRepository t_TbSNeedDataInfoRepository;
private readonly IRedisCacheManager _redisCache;
public D_LongIdMapServices(IBaseRepository<D_LongIdMap> dal
, ID_MajorCategoryRepository ID_MajorCategoryRepository
, ID_MajorClassRepository ID_MajorClassRepository
, ID_MajorRepository ID_MajorRepository
, ID_OccupationCategoryRepository ID_OccupationCategoryRepository
, ID_OccupationRepository ID_OccupationRepository
, ID_OccMapTagRepository ID_OccMapTagRepository
, ID_MajorMapOccouptionRepository ID_MajorMapOccouptionRepository
, ID_MajorMapTagRepository ID_MajorMapTagRepository
, ID_MajorObtainRepository ID_MajorObtainRepository
, ID_UniversityRepository ID_UniversityRepository
, ID_UniversityimgRepository ID_UniversityimgRepository
, ID_UniversityRankRepository ID_UniversityRankRepository
, ID_MajorMapUniversityRepository ID_MajorMapUniversityRepository
, ID_MajorInformationRepository ID_MajorInformationRepository
, ID_UniversityCollectionRepository ID_UniversityCollectionRepository
, IT_EnrollmentPlanedescRepository IT_EnrollmentPlanedescRepository
, IT_EnrollmentBatchRepository IT_EnrollmentBatchRepository
, ID_GraduateFlowRepository ID_GraduateFlowRepository
, IT_EnrollmentPlaneRepository IT_EnrollmentPlaneRepository,
ID_MyHistoryInfoServices d_MyHistoryInfoServices,
ID_PlanMajorDescRepository _PlanMajorDescRepository,
ID_PlanMajorScoreLineRepository d_PlanMajorScoreLineRepository,
ID_QualificationLineRepository d_QualificationLineRepository,
ID_PlanMajorDescRepository d_PlanMajorDescRepository,
ID_PlanMajorDescProRepository d_PlanMajorDescProRepository,
IT_TbSNeedDataInfoRepository tbSNeedDataInfoRepository,
IRedisCacheManager redisCache)
{
this._dal = dal;
d_MajorCategoryRepository = ID_MajorCategoryRepository;
d_MajorClassRepository = ID_MajorClassRepository;
d_MajorRepository = ID_MajorRepository;
d_OccupationCategoryRepository = ID_OccupationCategoryRepository;
d_OccupationRepository = ID_OccupationRepository;
d_OccMapTagRepository = ID_OccMapTagRepository;
d_MajorMapOccouptionRepository = ID_MajorMapOccouptionRepository;
d_MajorMapTagRepository = ID_MajorMapTagRepository;
d_MajorObtainRepository = ID_MajorObtainRepository;
d_UniversityRepository = ID_UniversityRepository;
d_UniversityimgRepository = ID_UniversityimgRepository;
d_UniversityRankRepository = ID_UniversityRankRepository;
d_MajorMapUniversityRepository = ID_MajorMapUniversityRepository;
d_MajorInformationRepository = ID_MajorInformationRepository;
d_UniversityCollectionRepository = ID_UniversityCollectionRepository;
t_EnrollmentPlanedescRepository = IT_EnrollmentPlanedescRepository;
t_EnrollmentBatchRepository = IT_EnrollmentBatchRepository;
d_GraduateFlowRepository = ID_GraduateFlowRepository;
t_EnrollmentPlaneRepository = IT_EnrollmentPlaneRepository;
base.BaseDal = dal;
this.d_MyHistory = d_MyHistoryInfoServices;
this._PlanMajorDescRepository = _PlanMajorDescRepository;
this.d_PlanMajorScoreLineRepository = d_PlanMajorScoreLineRepository;
this.d_QualificationLineRepository = d_QualificationLineRepository;
this.d_PlanMajorDescRepository = d_PlanMajorDescRepository;
this.d_PlanMajorDescProRepository = d_PlanMajorDescProRepository;
t_TbSNeedDataInfoRepository = tbSNeedDataInfoRepository;
this._redisCache = redisCache;
}
/// <summary>
/// 获取院校库 添加个人收藏和对比 的验证
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<PageModel<UniversityResult>> GetUniversitys(UniversityQuery query)
{
Expression<Func<D_University, bool>> expression = Expressionable.Create<D_University>()
.And(x => x.IsDelete == false)
.AndIF(query.AreaName != null && query.AreaName.Any() && !query.AreaName.Contains("全国"), x => SqlFunc.ContainsArray(query.AreaName, x.Area_Name))
.AndIF(query.Nature != null && query.Nature.Any(), x => SqlFunc.ContainsArray(query.Nature, x.Nature))
.AndIF(query.Type != null && query.Type.Any(), x => SqlFunc.ContainsArray(query.Type, x.Type))
.AndIF(query.SubjectLevel.HasValue, x => x.Subject_Level == query.SubjectLevel)
.AndIF(query.Ascription != null && query.Ascription.Any(), x => SqlFunc.ContainsArray(query.Ascription, x.Ascription))
.AndIF(query.Nhef.HasValue, x => x.Nhef == query.Nhef)
.AndIF(query.Sff.HasValue, x => x.Sff == query.Sff)
.AndIF(query.Syl.HasValue, x => x.Syl == query.Syl)
.AndIF(!string.IsNullOrWhiteSpace(query.Name), u => SqlFunc.Contains(u.Name, query.Name))
.ToExpression();
var info = await d_UniversityRepository.QueryPage(expression, query.PageIndex, query.PageSize, "Rank Asc");
if (info.data.Count <= 0)
return new PageModel<UniversityResult>() { };
var collectionuniversity = new List<D_UniversityCollection>();
if (query.CustomerId > 0)
{
collectionuniversity = await d_UniversityCollectionRepository.Query(x => x.CustomerId == query.CustomerId && x.IsDelete == false);
}
List<UniversityResult> list = new List<UniversityResult>() { };
info.data = info.data.OrderBy(s => s.Rank).ToList();
foreach (var c in info.data)
{
string attribute = "";
if (c.Nhef == 1)
attribute += "985";
if (c.Sff == 1)
attribute += "211";
if (c.Syl == 1)
attribute += "双一流";
list.Add(new UniversityResult
{
Id = c.Id,
Name = c.Name,
Nature = c.Nature,
AscriptionName = c.AscriptionName,
UniversityCode = UniversityCodeConvertRules.UniversityCodeConvertRulesMap(c.UniversityCode),
collegeCode = c.UniversityCode,
AreaName = c.Area_Name,
AcademicianCount = c.Academician_Count,
Address = c.Address,
BuildDate = c.Build_Date,
DoctorateCount = c.Doctorate_Count,
Phone = c.Phone,
Web = c.Web,
Logo = c.Logo,
Syl = c.Syl == 1,
Nhef = c.Nhef == 1,
Sff = c.Sff == 1,
UniversityType = c.Type,
IsNearScore = false,
SubjectLevel = c.Subject_Level,
Rank = c.Rank,
IsCollection = collectionuniversity.Count(x => x.Type == 1 && x.UniversityId == c.Id) > 0,
IsContrast = collectionuniversity.Count(x => x.Type == 2 && x.UniversityId == c.Id) > 0,
});
}
return new PageModel<UniversityResult>()
{
data = list,
dataCount = info.dataCount,
page = info.page,
pageCount = info.pageCount,
PageSize = info.PageSize
};
}
/// <summary>
/// 专业库 一级二级列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<List<uniMajorInfoResult>> uniGetMajorInfo(MajorcategoryQuery query)
{
var expression = Expressionable.Create<D_Major>()
.And(x => x.IsDelete == false)
//.And(x => x.Type != 3)
.AndIF(!string.IsNullOrEmpty(query.MajorName), x => SqlFunc.Contains(x.MajorName, query.MajorName))
.ToExpression();
var majorcategories = (await d_MajorCategoryRepository.Query(x => x.Type == query.SchoolLevel && x.IsDelete == false)).Select(x => new uniMajorSelect() { Id = x.Id, Name = x.Name }); ;
var majorclasses = (await d_MajorClassRepository.Query(x => x.IsDelete == false)).Select(x => new uniMajorClassSelect() { Id = x.Id, Name = x.Name, TradeId = x.TradeId });
var majorinfo = (await d_MajorRepository.Query(expression)).Select(s => new uniMajorSelect() { pid = s.CategoryClass_Id, Id = s.Id, Name = s.Name }).ToList();
List<uniMajorInfoResult> list = new List<uniMajorInfoResult>() { };
foreach (var item in majorcategories)
{
List<uniMajorSecond> scond = new List<uniMajorSecond>() { };
var nowmajoclass = majorclasses.Where(x => x.TradeId == item.Id).ToList();
scond = nowmajoclass.Select(s => new uniMajorSecond()
{
MajorName = s.Name,
SecondId = s.Id,
MajorNum = majorinfo.Count(x => x.Name != s.Name && x.pid == s.Id),
majorSelects = majorinfo.Where(x => x.Name != s.Name && x.pid == s.Id).ToList()
}).ToList();
if (scond.Count() > 0)
{
if (scond.Select(c => c.MajorNum).Sum() > 0)
{
list.Add(new uniMajorInfoResult()
{
FirstName = item.Name,
RootId = item.Id,
SecondInfo = scond.Where(w => w.MajorNum > 0).ToList(),
});
}
}
}
return list;
}
/// <summary>
/// 根据一级分类id 获取二级三级专业数据
/// </summary>
/// <param name="tradeId"></param>
/// <returns></returns>
public async Task<List<TreeMajorInfoResult>> GetTreeMajors(int tradeId)
{
var result = new List<TreeMajorInfoResult>();
var classmajors = (await d_MajorClassRepository.Query(x => x.IsDelete == false && x.TradeId == tradeId)).Select(x => new uniMajorClassSelect() { Id = x.Id, Name = x.Name, TradeId = x.TradeId }).ToList();
var majorinfo = (await d_MajorRepository.Query(x => x.IsDelete == false)).Select(s => new uniMajorClassSelect() { Id = s.Id, TradeId = s.CategoryClass_Id, Name = s.Name, Code = s.MajorCode }).ToList();
classmajors.ForEach(a =>
{
var models = new TreeMajorInfoResult();
models.MajorClassId = a.Id;
models.MajorClassName = a.Name;
models.MajorsInfo = majorinfo.Where(e => e.TradeId == a.Id).Select(s => new uniMajorSelect()
{
Id = s.Id,
Name = s.Name,
Code = s.Code
}).ToList();
result.Add(models);
});
return result;
}
/// <summary>
/// 获取推荐职业
/// </summary>
/// <returns></returns>
public async Task<List<OccupationResult>> GetRecommendOccupation()
{
var info = await d_OccupationRepository.Query(x => x.Recommend > 0 && x.IsDelete == false);
if (info.Count <= 0)
return new List<OccupationResult>() { };
return info.Select(x => new OccupationResult() { Id = x.Id, Name = x.OccupationName }).ToList();
}
/// <summary>
/// 职业库 一级二级列表
/// </summary>
/// <returns></returns>
public async Task<List<uniMajorInfoResult>> uniGetOccupationInfo(MinOccupationRequest request)
{
List<uniMajorInfoResult> list = new List<uniMajorInfoResult>() { };
var occupationCategoryList = (await d_OccupationCategoryRepository.Query(x => x.IsDelete == false)).Select(x => new uniOccSelect() { Id = x.Id, Level = x.Level, Name = x.Name, ParentId = x.ParentId, OccupationName = x.OccupationName });
Expression<Func<D_Occupation, bool>> expression = Expressionable.Create<D_Occupation>()
.And(x => x.IsDelete == false)
.AndIF(!string.IsNullOrWhiteSpace(request.Name), x => SqlFunc.Contains(x.Name, request.Name))
.AndIF(request.IsHot, x => x.Recommend > 0)
.ToExpression();
var occupations = (await d_OccupationRepository.Query(expression)).Select(s => s.CategoryId).ToList();
var nowoccupationCategoryList = occupationCategoryList.Where(x => x.Level == 0).ToList();
foreach (var item in nowoccupationCategoryList)
{
List<uniMajorSecond> scond = new List<uniMajorSecond>() { };
var nowmajoclass = occupationCategoryList.Where(x => x.ParentId == item.Id).ToList();
scond = nowmajoclass.Select(s => new uniMajorSecond()
{
MajorName = s.OccupationName,
MajorNum = occupations.Count(e => e == s.Id),
SecondId = s.Id
}).ToList();
list.Add(new uniMajorInfoResult()
{
FirstName = item.Name,
SecondInfo = scond
});
}
return list;
}
public async Task<List<pcMajorInfoResult>> pcGetOccupationInfo(string name = null)
{
var list = new List<pcMajorInfoResult>() { };
Expression<Func<D_OccupationCategory, bool>> categoryexpression = Expressionable.Create<D_OccupationCategory>()
.And(x => x.IsDelete == false)
// .AndIF(!string.IsNullOrWhiteSpace(name), x => SqlFunc.Contains(x.Name, name))
.ToExpression();
var occupationCategoryList = (await d_OccupationCategoryRepository.Query(categoryexpression)).Select(x => new uniOccSelect() { Id = x.Id, Level = x.Level, Name = x.Name, ParentId = x.ParentId, OccupationName = x.OccupationName });
Expression<Func<D_Occupation, bool>> expression = Expressionable.Create<D_Occupation>()
.And(x => x.IsDelete == false)
.AndIF(!string.IsNullOrWhiteSpace(name), x => SqlFunc.Contains(x.Name, name))
.ToExpression();
var queryoccupations = await d_OccupationRepository.Query(expression);
var occupations = queryoccupations.Select(s => s.CategoryId).ToList();
var nowoccupationCategoryList = occupationCategoryList.Where(x => x.Level == 0).ToList();
foreach (var item in nowoccupationCategoryList)
{
var scond = new List<pcMajorItem>();
var nowmajoclass = occupationCategoryList.Where(x => x.ParentId == item.Id).ToList();
var tids = queryoccupations.Select(c => c.CategoryId).ToList();
if (nowmajoclass.Where(ww => SqlFunc.ContainsArray(tids, ww.Id)).Any())
{
scond = nowmajoclass.Select(s => new pcMajorItem()
{
Name = s.OccupationName,
MajorNum = occupations.Count(e => e == s.Id),
children = queryoccupations.Where(e => e.CategoryId == s.Id).Select(c => new pcMajorItem()
{
Name = c.Name,
Id = c.Id,
// MajorNum = queryoccupations.Where(e => e.CategoryId == s.Id).Count()
}).ToList(),
Id = s.Id
}).ToList();
list.Add(new pcMajorInfoResult()
{
Name = item.Name,
children = scond.Where(e => e.children.Any()).ToList()
});
}
}
return list;
}
/// <summary>
/// 院校详情
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<UniversityDetailResponse> GetUniversityDetails(IdQuery query)
{
if (query.Id <= 0)
return new UniversityDetailResponse() { Status = -1 };
var university = await d_UniversityRepository.QueryById(query.Id);
if (university == null)
return new UniversityDetailResponse() { Status = -2 };
var result = new UniversityDetailResponse();
string imgs = "";
var imglist = (await d_UniversityimgRepository.Query(x => x.UniversityId == query.Id && x.IsDelete == false)).FirstOrDefault();
if (imglist != null)
{
imgs = imglist.ImgList;
}
if (query.CustomerId.HasValue && query.CustomerId.Value > 0)
{
await d_MyHistory.Add(new D_MyHistoryInfo()
{
OrderSort = 0,
Type = 0,
UId = query.CustomerId.Value
});
}
result.universityResult = new UniversityResult
{
Id = university.Id,
Name = university.Name,
Address = university.Address,
Phone = university.Phone,
Nature = university.Nature,
AscriptionName = university.AscriptionName,
Rank = university.Rank,
AreaName = university.Area_Name,
Logo = university.Logo,
Syl = university.Syl == 1 ? true : false,
Nhef = university.Nhef == 1 ? true : false,
Sff = university.Sff == 1 ? true : false,
QJJH = university.QJJH == 1 ? true : false,
UniversityType = university.Type,
SubjectLevel = university.Subject_Level,
BuildDate = university.Build_Date,
Imglist = imgs,
DoctorateCount = university.Doctorate_Count,
MasterCount = university.Master_Count,
AcademicianCount = university.Academician_Count,
UniversityCode = UniversityCodeConvertRules.UniversityCodeConvertRulesMap(university.UniversityCode),
collegeCode = university.UniversityCode,
Web = string.IsNullOrEmpty(university.Web) ? "暂无" : university.Web,
// IsCollection = false,
Description = ClearHtmlHelper.SHTML(university.Description),
LongSchoolId = (await _dal.Query(x => x.IsDelete == false && x.table == "D_University" && x.newid == university.Id)).Select(x => x.longid).FirstOrDefault()
};
var mapuniversity = await d_MajorMapUniversityRepository.Query(x => x.Universityid == query.Id && x.IsDelete == false);
var majorids = mapuniversity.Select(x => x.MajorId).ToList();
var majorlist = await d_MajorRepository.Query(x => majorids.Contains(x.Id) && x.IsDelete == false);
var majors = new List<RelatedMajorModel>();
var spmajors = new List<RelatedMajorModel>();
int m = 0;
int sp = 0;
mapuniversity.ForEach(o =>
{
if (majorlist.Where(s => s.Id == o.MajorId).Any())
{
if (o.sp == 0 && m <= 5)
{
m++;
majors.Add(new RelatedMajorModel()
{
majorName = majorlist.Single(s => s.Id == o.MajorId).MajorName,
mid = o.MajorId
});
}
else if (o.sp == 1 && sp <= 5)
{
spmajors.Add(new RelatedMajorModel()
{
majorName = majorlist.Single(s => s.Id == o.MajorId).MajorName,
mid = o.MajorId
});
}
}
});
var graduateFlowinfo = (await d_GraduateFlowRepository.Query(x => x.UniversityId == query.Id && x.IsDelete == false)).FirstOrDefault();
if (graduateFlowinfo != null)
{
result.graduateModels = new graduateModel()
{
provinces = graduateFlowinfo.Provinces,
attrs = graduateFlowinfo.Attrs
};
}
result.relatedMajors = majors;
result.relatespMajors = spmajors;
result.Status = 1;
return result;
}
public async Task<List<SeachMajorDtoResponse>> SeachMajor(SeachMajorDtoRequest request)
{
return await d_MajorRepository.SeachMajor(request);
}
/// <summary>
/// 获取专业介绍
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MajorDetail> GetMajorDetail(MajorQuery query)
{
var info = (await d_MajorInformationRepository.Query(x => x.MajorId == query.MajorId && x.IsDelete == false)).FirstOrDefault();
if (info == null)
return new MajorDetail() { };//学校专业不匹配 获取专业概况信息为空
return new MajorDetail()
{
id = info.Id,
abstracts = info.Majordescription.ClearHtml(),
maincourse = info.Majorcourse.ClearHtml(),
studydirection = info.Postgraduate.ClearHtml(),
workdirection = info.Majorintent.ClearHtml(),
Name = info.Name
};
}
/// <summary>
/// 相关院校
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<PageModel<UniversityResult>> GetRelevantSchool(MajorSchoolQuery query)
{
var majorinfo = await d_MajorMapUniversityRepository.Query(x => x.MajorId == query.MajorId && x.IsDelete == false);
if (majorinfo.Count <= 0)
return new PageModel<UniversityResult>() { };
var universityids = majorinfo.Select(x => x.Universityid).ToList();
Expression<Func<D_University, bool>> exp = Expressionable.Create<D_University>() //创建表达式
.AndIF(!string.IsNullOrEmpty(query.AreaName) && query.AreaName != "全国", x => x.Area_Name.Contains(query.AreaName))
.And(x => x.IsDelete == false && universityids.Contains(x.Id))
.AndIF(query.SubjectLevel > 0, x => x.Subject_Level == query.SubjectLevel)
.AndIF(query.Type >= 0, x => x.Type == query.Type)
.AndIF(query.Nhef >= 0, x => x.Nhef == query.Nhef)
.AndIF(query.Sff >= 0, x => x.Sff == query.Sff)
.AndIF(query.Syl >= 0, x => x.Syl == query.Syl)
.AndIF(query.Nature >= 0, x => x.Nature == query.Nature)
.ToExpression();//注意 这一句 不能少
// var templist = await d_UniversityRepository.Query(c => universityids.Contains(c.Id));
var info = await d_UniversityRepository.QueryPage(exp, query.PageIndex, query.PageSize, "Rank Asc");
if (info.data.Count() <= 0)
return new PageModel<UniversityResult>() { };
List<UniversityResult> list = new List<UniversityResult>() { };
info.data = info.data.OrderBy(s => s.Rank).ToList();
foreach (var t in info.data)
{
//string typeStr = GetUniversityTypeName(t.Type);
//string ascription = GetAscriptionName(t.Ascription);
//string syl = t.Syl == 1 ? "双一流" : "";
//string nhefSff = GetNhefSff(t);
//string nature = t.Nature == 1 ? "公立" : "私立";
//string naturedetail = string.Format("{0}{1}{2}", typeStr, ascription, syl);
list.Add(new UniversityResult()
{
Id = t.Id,
Logo = t.Logo,
Name = t.Name,
AreaName = t.Area_Name,
Nature = t.Nature,
//naturedetail = naturedetail,
Sff = t.Sff == 1,
Syl = t.Syl == 1,
Nhef = t.Nhef == 1,
UniversityType = t.Type,
SubjectLevel = t.Subject_Level,
Rank = t.Rank,
});
}
return new PageModel<UniversityResult>()
{
data = list,
dataCount = info.dataCount,
page = info.page,
pageCount = info.pageCount,
PageSize = info.PageSize
};
}
/// <summary>
/// 获取专业就业前景
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<CareerProspects> GetCareerProspects(MajorCareerQuery query)
{
var info = (await d_MajorObtainRepository.Query(x => x.MajorId == query.MajorId)).FirstOrDefault();
if (info == null)
return new CareerProspects() { };
CareerProspects result = new CareerProspects() { };
List<distribution> TradeDistribute = new List<distribution>() { };
var array = JsonHelper.ParseJson<List<string>>(info.ObtainIndustryDis);
var arraynum = JsonHelper.ParseJson<List<int>>(info.ObtainIndustryDisProportion.Replace("%", ""));
for (int i = 0; i < array.Count; i++)
{
TradeDistribute.Add(new distribution() { name = array[i], data = arraynum[i] });
}
//就业地区
List<distribution> RegionDistribute = new List<distribution>() { };
var arrayarea = JsonHelper.ParseJson<List<string>>(info.ObtainRegionalDis);
var arrayareanum = JsonHelper.ParseJson<List<int>>(info.ObtainRegionalDisProportion.Replace("%", ""));
for (int i = 0; i < arrayarea.Count; i++)
{
RegionDistribute.Add(new distribution() { name = arrayarea[i], data = arrayareanum[i] });
}
//工资情况
List<distribution> MoneyDistribute = new List<distribution>() { };
var arraymoney = JsonHelper.ParseJson<List<string>>(info.WageSituation);
var arraymoneynum = JsonHelper.ParseJson<List<int>>(info.WageProportion.Replace("%", ""));
for (int i = 0; i < arraymoney.Count; i++)
{
MoneyDistribute.Add(new distribution() { name = arraymoney[i], data = arraymoneynum[i] });
}
//工作年限工资 WorkingYear
WorkingYear WorkingYear = new WorkingYear() { };
WorkingYear.WorkingYears = info.WorkingYears;
WorkingYear.WorkingYearsWage = info.WorkingYearsWage;
result.RegionDistribute = RegionDistribute;
result.TradeDistribute = TradeDistribute;
result.MoneyDistribute = MoneyDistribute;
result.WorkingYear = WorkingYear;
return result;
}
/// <summary>
/// 获取第三级
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<List<uniMajorInfo>>> uniGetMajorThree(ManageMajorQuery query)
{
List<uniMajorInfo> info = new List<uniMajorInfo>() { };
//if (!string.IsNullOrWhiteSpace(query.Tags))
//{
// if (query.Tags.Length != 3)
// return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "传入标签长度错误..." };
// //转化标签
// var tags = new List<string>() { };
// string n = query.Tags;
// string m = "";
// tags.AddRange(zuhe(n));
// for (int j = 2; j > -1; j--)
// {
// m = m + n[j];
// }
// tags.AddRange(zuhe(m));
// var ids = (await d_MajorMapTagRepository.Query(x => x.Tag.Contains(tags[0]) || x.Tag.Contains(tags[1]) || x.Tag.Contains(tags[2]) || x.Tag.Contains(tags[3]) || x.Tag.Contains(tags[4]) || x.Tag.Contains(tags[5]))).Select(x => x.MajorId).ToList();
// if (ids.Count <= 0)
// return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "标签对应专业为空" };
// info = (await d_MajorRepository.Query(x => ids.Contains(x.Id) && x.IsDelete == false)).Select(x => new uniMajorInfo() { Id = x.Id, Name = x.MajorName }).ToList();
// if (!string.IsNullOrWhiteSpace(query.SubjectClaim))
// {
// var planinfo = await t_EnrollmentPlaneRepository.Query(w => w.Years == query.Year && w.Area_Id == query.AreaId);
// if (planinfo == null)
// return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "所选省份年份的招生计划,正在完善中..." };
// var planid = planinfo.FirstOrDefault().Id;
// var wheres = PredicateBuilder.New<T_EnrollmentPlanedesc>();
// wheres.And(x => x.IsDelete == false && x.PlanId == planid && x.Scoreline <= query.Score && x.UniversityId > 0);
// if (query.SubjectClaim.Contains(""))
// {
// var cc = query.SubjectClaim.Split("");
// if (cc.Length == 2)
// {
// var cc1 = cc[0];
// var cc2 = cc[1];
// wheres.And(x => (x.Subjectclaim.Contains("/") && x.Subjectclaim.Contains(cc1)) == true || (x.Subjectclaim.Contains(cc2) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains("") && x.Subjectclaim.Contains(query.SubjectClaim)) == true);
// }
// else if (cc.Length == 3)
// {
// var cc1 = cc[0];
// var cc2 = cc[1];
// var cc3 = cc[2];
// wheres.And(x => (x.Subjectclaim.Contains("/") && x.Subjectclaim.Contains(cc1)) == true || (x.Subjectclaim.Contains(cc2) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains(cc3) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains("") && x.Subjectclaim.Contains(query.SubjectClaim)) == true);
// }
// }
// else
// {
// wheres.And(x => x.Subjectclaim.Contains(query.SubjectClaim) && !x.Subjectclaim.Contains(""));
// }
// var descinfo = await t_EnrollmentPlanedescRepository.Query(wheres);
// var newmajorlist = descinfo.Select(x => x.MajorName).Distinct().ToList();
// info = info.Where(x => newmajorlist.Contains(x.Name)).ToList();
// }
//}
//else if (query.universityId > 0)
//{
// var majormapids = (await d_MajorMapUniversityRepository.Query(x => x.IsDelete == false && x.Universityid == query.universityId && x.MajorId > 0)).Select(x => x.MajorId).ToList();
// info = (await d_MajorRepository.Query(x => majormapids.Contains(x.Id) && x.IsDelete == false)).Select(x => new uniMajorInfo() { Id = x.Id, Name = x.MajorName, Code = x.MajorCode }).ToList();
//}
//else
//{
var majorclasses = (await d_MajorClassRepository.Query(x => x.IsDelete == false)).Select(x => new uniMajorClassSelect() { Id = x.Id, Name = x.Name, TradeId = x.TradeId });
var nowmajorname = majorclasses.Where(x => x.Id == query.categoryclassid).Select(x => x.Name)?.FirstOrDefault();
var newmajorinfo = await d_MajorRepository.Query(x => x.IsDelete == false && x.CategoryClass_Id == query.categoryclassid);
info = newmajorinfo.Where(x => x.Name != nowmajorname).Select(x => new uniMajorInfo() { Id = x.Id, Name = x.MajorName, Code = x.MajorCode }).ToList();
//}
return new MessageModel<List<uniMajorInfo>>()
{
success = true,
msg = "获取成功",
response = info
};
}
/// <summary>
/// 根据标签推荐专业
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<List<uniMajorInfo>>> GetMajorThreeByTag(MajorThreeByTagQuery query)
{
if (string.IsNullOrWhiteSpace(query.Tags))
return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "传入标签为空,请先去测试..." };
if (query.Tags.Length != 3)
return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "传入标签长度错误..." };
//转化标签
var tags = new List<string>() { };
string n = query.Tags;
string m = "";
tags.AddRange(zuhe(n));
for (int j = 2; j > -1; j--)
{
m = m + n[j];
}
tags.AddRange(zuhe(m));
var ids = (await d_MajorMapTagRepository.Query(x => x.Tag.Contains(tags[0]) || x.Tag.Contains(tags[1]) || x.Tag.Contains(tags[2]) || x.Tag.Contains(tags[3]) || x.Tag.Contains(tags[4]) || x.Tag.Contains(tags[5]))).Select(x => x.MajorId).ToList();
if (ids.Count <= 0)
return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "标签对应专业为空" };
var info = (await d_MajorRepository.Query(x => ids.Contains(x.Id) && x.IsDelete == false)).Select(x => new uniMajorInfo() { Id = x.Id, Name = x.MajorName }).ToList();
if (!string.IsNullOrWhiteSpace(query.SubjectClaim))
{
var planinfo = await t_EnrollmentPlaneRepository.Query(w => w.Years == query.Year && w.Area_Id == query.AreaId);
if (planinfo == null)
return new MessageModel<List<uniMajorInfo>>() { success = false, msg = "所选省份年份的招生计划,正在完善中..." };
var planid = planinfo.FirstOrDefault().Id;
var wheres = PredicateBuilder.New<T_EnrollmentPlanedesc>();
wheres.And(x => x.IsDelete == false && x.PlanId == planid && x.Scoreline <= query.Score && x.UniversityId > 0);
if (query.SubjectClaim.Contains(""))
{
var cc = query.SubjectClaim.Split("");
if (cc.Length == 2)
{
var cc1 = cc[0];
var cc2 = cc[1];
wheres.And(x => (x.Subjectclaim.Contains("/") && x.Subjectclaim.Contains(cc1)) == true || (x.Subjectclaim.Contains(cc2) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains("") && x.Subjectclaim.Contains(query.SubjectClaim)) == true);
}
else if (cc.Length == 3)
{
var cc1 = cc[0];
var cc2 = cc[1];
var cc3 = cc[2];
wheres.And(x => (x.Subjectclaim.Contains("/") && x.Subjectclaim.Contains(cc1)) == true || (x.Subjectclaim.Contains(cc2) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains(cc3) && x.Subjectclaim.Contains("/")) == true || (x.Subjectclaim.Contains("") && x.Subjectclaim.Contains(query.SubjectClaim)) == true);
}
}
else
{
wheres.And(x => x.Subjectclaim.Contains(query.SubjectClaim) && !x.Subjectclaim.Contains(""));
}
var descinfo = await t_EnrollmentPlanedescRepository.Query(wheres);
var newmajorlist = descinfo.Select(x => x.MajorName).Distinct().ToList();
info = info.Where(x => newmajorlist.Contains(x.Name)).ToList();
}
return new MessageModel<List<uniMajorInfo>>()
{
success = true,
msg = "获取成功",
response = info
};
}
/// <summary>
/// 院校相关专业专用
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<List<uniMajorInfoResult>> GetUniversityMajor(IdQuery query)
{
var majormapids = (await d_MajorMapUniversityRepository.Query(x => x.IsDelete == false && x.Universityid == query.Id && x.MajorId > 0)).Select(x => x.MajorId).ToList();
var majorclass = (await d_MajorRepository.Query(x => x.IsDelete == false && majormapids.Contains(x.Id)));
var majorclassids = majorclass.Select(x => x.CategoryClass_Id).ToList();
List<uniMajorInfoResult> list = new List<uniMajorInfoResult>() { };
var majorclassinfo = await d_MajorClassRepository.Query(x => majorclassids.Contains(x.Id));
foreach (var item in majorclassinfo)
{
List<uniMajorSecond> second = new List<uniMajorSecond>() { };
second = majorclass.Where(x => x.CategoryClass_Id == item.Id).Select(x => new uniMajorSecond()
{
SecondId = x.Id,
MajorName = x.Name,
}).ToList();
if (second.Count > 0)
list.Add(new uniMajorInfoResult()
{
FirstName = item.Name,
SecondInfo = second,
MajorNum = second.Count()
});
}
return list;
}
/// <summary>
/// 获取职业第三级
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<List<IdNameResult>>> GetOccupationThree(IdQuery query)
{
StringBuilder stringBuilder = new StringBuilder() { };
stringBuilder.AppendFormat("SELECT Id,Name FROM `D_Occupation` where CategoryId={0} and IsDelete=0", query.Id);
var info = await d_OccupationRepository.QuerySql(stringBuilder.ToString());
if (info.Count <= 0)
return new MessageModel<List<IdNameResult>>() { success = false, msg = "数据为空" };
return new MessageModel<List<IdNameResult>>()
{
success = true,
msg = "获取成功",
response = info.Select(x => new IdNameResult()
{
Id = x.Id,
Name = x.Name
}).ToList()
};
}
/// <summary>
/// 获取职业详情-职业介绍
/// </summary>
/// <returns></returns>
public async Task<OccupationDetailResult> GetRecommendIntroduce(IdQuery query)
{
if (query.Id <= 0)
return new OccupationDetailResult() { Status = -1 };
var occupation = await d_OccupationRepository.QueryById(query.Id);
return new OccupationDetailResult()
{
Status = 1,
OccupationIntraduce = occupation.OccupationIntraduce.ClearHtml(),
JobContent = occupation.JobContent,
Name = occupation.Name,
Prospects = occupation.Prospects,
Requirements = occupation.Requirements,
Sort = occupation.OrderSort,
Id = occupation.Id.ToString()
};
}
/// <summary>
/// 查学校省份的 年份批次
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<BatchYear> GetBatchYearBySchoolId(PlanYearQuery query)
{
BatchYear result = new BatchYear() { };
//var info = await d_PlanMajorDescRepository.Query(x => x.UId == query.UnviersityId);
//if (info.Count <= 0)
// return new BatchYear() { };
var batchinfo = await t_EnrollmentBatchRepository.Query(x => x.AreaName == query.AreaName && x.IsDelete == false);
var batchselect = batchinfo.Select(x => x.Batch_name).Distinct().ToList();
var yearselect = batchinfo.Select(x => x.Year).Distinct().OrderByDescending(x => x).ToList();
var typeselect = batchinfo.Select(x => x.Type).Distinct().ToList();
result.Batch = batchselect;
result.Year = yearselect;
result.Type = typeselect;
return result;
}
/// <summary>
/// 获取招生计划 院校详情
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<List<NewPlanDescList>> GetPlanBySchollId(PlanQuery query)
{
Expression<Func<D_PlanMajorDescPro, bool>> whereexp = Expressionable.Create<D_PlanMajorDescPro>() //创建表达式
.And(c => c.IsDelete == false)
.AndIF(!string.IsNullOrEmpty(query.AreaName), c => c.Location == query.AreaName)
.And(c => c.UId == query.UnviersityId)
.AndIF(!string.IsNullOrEmpty(query.BatchName), c => c.BatchName == query.BatchName)
.AndIF(query.Year > 0, c => c.Years == query.Year)
.ToExpression();
var info = await d_PlanMajorDescProRepository.Query(whereexp);
List<NewPlanDescList> list = new List<NewPlanDescList>() { };
foreach (var item in info)
{
list.Add(new NewPlanDescList()
{
Name = item.Major,
AcademicYear = item.AcademicYear,
SelectSubject = item.SelectSubject,
Money = string.IsNullOrWhiteSpace(item.Free) || item.Free == "0" || item.Free == "待定" ? "--" : item.Free,
PlanNum = item.PlanCount,
Scoreline = item.LowScore == 0 || string.IsNullOrWhiteSpace(item.LowScore.ToString()) ? "--" : item.LowScore.ToString()
});
}
return list;
}
/// <summary>
/// 获取院校排名
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<List<UniversityRankList>> GetUniversityRank(UniversityRankQuery query)
{
var info = await d_UniversityRankRepository.Query(x => x.IsDelete == false && x.UniversityType == query.Type && x.Year == query.Year);
if (info.Count <= 0)
return new List<UniversityRankList>() { };
List<UniversityRankList> list = new List<UniversityRankList>() { };
return info.OrderBy(x => x.OrderSort).Select(x => new UniversityRankList() { Name = x.UniversityName, Sort = x.Rank }).ToList();
}
/// <summary>
///
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<List<UniversityPcRankList>> GetPcUniversityRank(UniversityRankQuery query)
{
return await d_UniversityRankRepository.GetPcUniversityRank(query);
}
/// <summary>
/// 专业搜索
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<PageModel<IdNameResult>>> uniGetSearchMajor(NameBaseQuery query)
{
var majorcategories = (await d_MajorCategoryRepository.Query(x => x.Type == query.Type && x.IsDelete == false)).Select(x => x.Id); ;
var majorclasses = (await d_MajorClassRepository.Query(x => x.IsDelete == false && majorcategories.Contains(x.TradeId))).Select(x => x.Id).ToList();
var info = await d_MajorRepository.QueryPage(x => majorclasses.Contains(x.CategoryClass_Id) && x.IsDelete == false && x.Name.Contains(query.Name), query.PageIndex, query.PageSize);
if (info.data.Count <= 0)
return new MessageModel<PageModel<IdNameResult>>() { success = false, msg = "获取失败,数据为空" };
List<IdNameResult> list = new List<IdNameResult>() { };
foreach (var item in info.data)
{
list.Add(new IdNameResult()
{
Id = item.Id,
Name = item.Name
});
}
return new MessageModel<PageModel<IdNameResult>>()
{
success = true,
msg = "获取成功",
response = new PageModel<IdNameResult>()
{
data = list,
dataCount = info.dataCount,
page = info.page,
pageCount = info.pageCount,
PageSize = info.PageSize
}
};
}
#region 数据处理
/// <summary>
/// 组合
/// </summary>
/// <param name="ssel"></param>
public List<string> zuhe(string ssel)
{
var list = new List<string>() { };
string m1 = "";
for (int i = 0; i < ssel.Length; i++)
{
m1 = ssel + ssel.Substring(i, 1);
list.Add(m1.Remove(i, 1));
}
return list;
}
/// <summary>
/// 获取学校类型0综合,1理工类2医学类|3军事类|4语言类|5师范类|6财经类|7政法类|8民族类|9农林类|10艺术类|11体育类|12其他
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
private string GetUniversityTypeName(int? type)
{
if (!Enum.IsDefined(typeof(EnumUniversityType), type))
return "";
//数字转为枚举
EnumUniversityType enumUniversityType = (EnumUniversityType)Enum.ToObject(typeof(EnumUniversityType), type);
return CommonTools.GetDescription(enumUniversityType);
}
/// <summary>
/// 获取学校归属
/// </summary>
/// <param name="AscriptionType"></param>
/// <returns></returns>
public string GetAscriptionName(int AscriptionType)
{
if (AscriptionType == 1)
return "教育部";
if (AscriptionType == 2)
return "省政府";
return "教育部";
}
/// <summary>
/// 获取学校性质
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
private string GetNhefSff(D_University t)
{
List<string> array = new List<string>();
if (t.Nhef == 1)
array.Add("985");
if (t.Sff == 1)
array.Add("211");
string nhefSff = string.Join('、', array);
return nhefSff;
}
#endregion
/// <summary>
/// 获取招生简章列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public MessageModel<List<GenBycollegeItem>> GetEnrollmentinproductionResult(UniversityGeneralRequest query)
{
var stringBuilder = new StringBuilder();
//http://192.168.104.104:3000/youzy.dms.basiclib.api.college.news.bycollege.get
var info = HttpHelper.PostApi<GenBycollegeobject>("http://192.168.104.104:3000/youzy.dms.basiclib.api.college.news.bycollege.get", query);
if (info.isSuccess == true)
{
return new MessageModel<List<GenBycollegeItem>>()
{
success = true,
msg = "获取成功",
response = info.result.items.ToList()
};
}
return new MessageModel<List<GenBycollegeItem>>()
{
success = info.isSuccess,
msg = "获取失败",
};
}
/// <summary>
/// 获取招生简介详情
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public MessageModel<collegeDetailResult> GetRequestEnrollmentinproductionDetailResult(StringIdQuery query)
{
//http://192.168.104.104:3000/youzy.dms.basiclib.api.college.news.get?id=65d152e0b306093ad50dc039&isAddHits=true
var info = HttpHelper.PostApi<Rootobject>(string.Format("http://192.168.104.104:3000/youzy.dms.basiclib.api.college.news.get?id={0}&isAddHits=true", query.Id));
if (info.isSuccess == true)
{
return new MessageModel<collegeDetailResult>()
{
success = true,
msg = "获取成功",
response = info.result
};
}
return new MessageModel<collegeDetailResult>()
{
success = info.isSuccess,
msg = "获取失败",
};
}
#region 数据导入
#region Majorcategory
///// <summary>
///// Majorcategory
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Majorcategory.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Name = dr["Name"].ToString();
// string Sort = dr["Sort"].ToString();
// string TradeName = dr["TradeName"].ToString();
// string TradeNumber = dr["TradeNumber"].ToString();
// string Type = dr["Type"].ToString();
// var info = await d_MajorCategoryRepository.Add(new D_MajorCategory()
// {
// OrderSort = Convert.ToInt32(Sort),
// Name = Name,
// TradeName = TradeName,
// TradeNumber = TradeNumber,
// Type = Convert.ToInt32(Type)
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region Majorclass
///// <summary>
///// Majorclass
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Majorclass.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Categoryname = dr["Categoryname"].ToString();
// string Sort = dr["Sort"].ToString();
// string TradeId = dr["TradeId"].ToString();
// string Name = dr["Name"].ToString();
// var nowmapid = (await _dal.Query(x => x.longid == TradeId)).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorClassRepository.Add(new D_MajorClass()
// {
// OrderSort = Convert.ToInt32(Sort),
// Name = Name,
// Categoryname = Categoryname,
// TradeId = nowmapid
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region Major
///// <summary>
///// Major
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Major.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string MajorName = dr["MajorName"].ToString();
// string MajorCode = dr["MajorCode"].ToString();
// string Name = dr["Name"].ToString();
// string Type = dr["Type"].ToString();
// string CategoryClass_Id = dr["CategoryClass_Id"].ToString();
// var nowmapid = mapinfo.Where(x => x.longid == CategoryClass_Id).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorRepository.Add(new D_Major()
// {
// Name = Name,
// CategoryClass_Id = nowmapid,
// MajorCode = MajorCode,
// MajorName = MajorName,
// Type = Type == "" ? 0 : Convert.ToInt32(Type),
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region OccupationCategory
///// <summary>
///// OccupationCategory
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\OccupationCategory.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// //var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Level = dr["Level"].ToString();
// string Name = dr["Name"].ToString();
// string OccupationName = dr["OccupationName"].ToString();
// var ParentId = dr["ParentId"].ToString() == "0" ? 0 : (await _dal.Query(x => x.longid == dr["ParentId"].ToString())).Select(x => x.newid).FirstOrDefault();
// string Sort = dr["Sort"].ToString();
// var info = await d_OccupationCategoryRepository.Add(new D_OccupationCategory()
// {
// Level = Convert.ToInt32(Level),
// Name = Name,
// OccupationName = OccupationName,
// ParentId = ParentId,
// OrderSort = Convert.ToInt32(Sort)
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region Occupation
///// <summary>
///// Occupation
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Occupation.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string CategoryId = dr["CategoryId"].ToString();
// string Name = dr["Name"].ToString();
// string OccupationIntraduce = dr["OccupationIntraduce"].ToString();
// string OccupationName = dr["OccupationName"].ToString();
// var newid = mapinfo.Where(x => x.longid == CategoryId).Select(x => x.newid).FirstOrDefault();
// var info = await d_OccupationRepository.Add(new D_Occupation ()
// {
// CategoryId=newid,
// Name=Name,
// OccupationIntraduce=OccupationIntraduce,
// OccupationName=OccupationName,
// Recommend=0,
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region OccMapTag
///// <summary>
///// OccMapTag
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\OccMapTag.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string OccId = dr["OccId"].ToString();
// string Name = dr["Name"].ToString();
// string Tag = dr["Tag"].ToString();
// var newid = mapinfo.Where(x => x.longid == OccId).Select(x => x.newid).FirstOrDefault();
// var info = await d_OccMapTagRepository.Add(new D_OccMapTag ()
// {
// Name=Name,
// OccId=newid,
// Tag=Tag
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region MajorMapOccouption
///// <summary>
///// MajorMapOccouption
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\MajorMapOccouption.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string MajorId = dr["MajorId"].ToString();
// string OccouptionId = dr["OccouptionId"].ToString();
// var newMajorId = mapinfo.Where(x => x.longid == MajorId).Select(x => x.newid).FirstOrDefault();
// var newOccouptionId = mapinfo.Where(x => x.longid == OccouptionId).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorMapOccouptionRepository.Add(new D_MajorMapOccouption()
// {
// MajorId = newMajorId,
// OccouptionId = newOccouptionId
// });
// if (info > 0)
// {
// await _dal.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// }
// return true;
//}
#endregion
#region MajorMapTag
///// <summary>
///// MajorMapTag
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\MajorMapTag.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string MajorId = dr["MajorId"].ToString();
// string Name = dr["Name"].ToString();
// string Tag = dr["Tag"].ToString();
// var newMajorId = mapinfo.Where(x => x.longid == MajorId).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorMapTagRepository.Add(new D_MajorMapTag()
// {
// MajorId = newMajorId,
// Name=Name,
// Tag=Tag,
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region MajorObtain
///// <summary>
///// MajorObtain
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\MajorObtain.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string AverageWage = dr["AverageWage"].ToString();
// string EducationalBackgroundRatio = dr["EducationalBackgroundRatio"].ToString();
// string EducationRequirements = dr["EducationRequirements"].ToString();
// string EmploymentDirection = dr["EmploymentDirection"].ToString();
// string Experience = dr["Experience"].ToString();
// string ExperienceRatio = dr["ExperienceRatio"].ToString();
// string MajorId = dr["MajorId"].ToString();
// string MajorName = dr["MajorName"].ToString();
// string ObtainIndustryDis = dr["ObtainIndustryDis"].ToString();
// string ObtainIndustryDisProportion = dr["ObtainIndustryDisProportion"].ToString();
// string ObtainMoreArea = dr["ObtainMoreArea"].ToString();
// string ObtainMostIndustries = dr["ObtainMostIndustries"].ToString();
// string ObtainRank = dr["ObtainRank"].ToString();
// string ObtainRankDetail = dr["ObtainRankDetail"].ToString();
// string ObtainRegionalDis = dr["ObtainRegionalDis"].ToString();
// string ObtainRegionalDisProportion = dr["ObtainRegionalDisProportion"].ToString();
// string Position = dr["Position"].ToString();
// string WageProportion = dr["WageProportion"].ToString();
// string WageSituation = dr["WageSituation"].ToString();
// string WorkingYears = dr["WorkingYears"].ToString();
// string WorkingYearsWage = dr["WorkingYearsWage"].ToString();
// var newMajorId = mapinfo.Where(x => x.longid == MajorId).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorObtainRepository.Add(new D_MajorObtain()
// {
// MajorId = newMajorId,
// AverageWage = AverageWage,
// ObtainMoreArea = ObtainMoreArea,
// EducationalBackgroundRatio = EducationalBackgroundRatio,
// EducationRequirements = EducationRequirements,
// EmploymentDirection = EmploymentDirection,
// Experience = Experience,
// ExperienceRatio = ExperienceRatio,
// ObtainIndustryDis = ObtainIndustryDis,
// MajorName = MajorName,
// ObtainRank = ObtainRank,
// ObtainIndustryDisProportion = ObtainIndustryDisProportion,
// ObtainMostIndustries = ObtainMostIndustries,
// ObtainRankDetail = ObtainRankDetail,
// ObtainRegionalDis = ObtainRegionalDis,
// Position = Position,
// ObtainRegionalDisProportion = ObtainRegionalDisProportion,
// WageProportion = WageProportion,
// WageSituation = WageSituation,
// WorkingYears = WorkingYears,
// WorkingYearsWage = WorkingYearsWage
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region University
///// <summary>
///// University
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\University.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// //var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Area_Name = dr["Area_Name"].ToString();
// string Ascription = dr["Ascription"].ToString();
// string AscriptionName = dr["AscriptionName"].ToString();
// string Description = dr["Description"].ToString();
// string Doctorate_Count = dr["Doctorate_Count"].ToString();
// string Logo = dr["Logo"].ToString();
// string Master_Count = dr["Master_Count"].ToString();
// string Name = dr["Name"].ToString();
// string Nature = dr["Nature"].ToString();
// string Nhef = dr["Nhef"].ToString();
// string Rank = dr["Rank"].ToString();
// string Sff = dr["Sff"].ToString();
// string Subject_Level = dr["Subject_Level"].ToString();
// string Syl = dr["Syl"].ToString();
// string Type = dr["Type"].ToString();
// string Web = dr["Web"].ToString();
// //var newMajorId = mapinfo.Where(x => x.longid == MajorId).Select(x => x.newid).FirstOrDefault();
// var info = await d_UniversityRepository.Add(new D_University()
// {
// Name = Name,
// Area_Name = Area_Name,
// Ascription = Ascription == "" ? 0 : Convert.ToInt32(Ascription),
// AscriptionName = AscriptionName,
// Description = Description,
// Doctorate_Count = Doctorate_Count == "" ? 0 : Convert.ToInt32(Doctorate_Count),
// Logo = Logo,
// Master_Count = Master_Count == "" ? 0 : Convert.ToInt32(Master_Count),
// Nature = Nature == "" ? 0 : Convert.ToInt32(Nature),
// Nhef = Nhef == "" ? 0 : Convert.ToInt32(Nhef),
// Rank = Rank == "" ? 0 : Convert.ToInt32(Rank),
// Sff = Sff == "" ? 0 : Convert.ToInt32(Sff),
// Web = Web,
// Type = Type == "" ? 0 : Convert.ToInt32(Type),
// Syl = Syl == "" ? 0 : Convert.ToInt32(Syl),
// Subject_Level = Subject_Level == "" ? 0 : Convert.ToInt32(Subject_Level),
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region Universityimg
///// <summary>
///// Universityimg
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Universityimg.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string ImgList = dr["ImgList"].ToString();
// string UniversityId = dr["UniversityId"].ToString();
// var newuniversityid = mapinfo.Where(x => x.longid == UniversityId).Select(x => x.newid).FirstOrDefault();
// var info = await d_UniversityimgRepository.Add(new D_Universityimg()
// {
// ImgList=ImgList,
// UniversityId=newuniversityid,
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region UniversityRank
///// <summary>
///// UniversityRank
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\UniversityRank.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// //var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Rank = dr["Rank"].ToString();
// string UniversityName = dr["UniversityName"].ToString();
// string UniversityType = dr["UniversityType"].ToString();
// string Year = dr["Year"].ToString();
// //var newuniversityid = mapinfo.Where(x => x.longid == UniversityId).Select(x => x.newid).FirstOrDefault();
// var info = await d_UniversityRankRepository.Add(new D_UniversityRank()
// {
// Rank = Convert.ToInt32(Rank),
// UniversityName = UniversityName,
// UniversityType = Convert.ToInt32(UniversityType),
// Year = Year
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region MajorMapUniversity
///// <summary>
///// MajorMapUniversity
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\MajorMapUniversity.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Universityid = dr["Universityid"].ToString();
// string majorid = dr["majorid"].ToString();
// var newuniversityid = mapinfo.Where(x => x.longid == Universityid).Select(x => x.newid).FirstOrDefault();
// var newmajorid = mapinfo.Where(x => x.longid == majorid).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorMapUniversityRepository.Add(new D_MajorMapUniversity()
// {
// MajorId = newmajorid,
// Universityid = newuniversityid,
// sp = 0
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region Majorinformation
///// <summary>
///// Majorinformation
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\Majorinformation.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string Name = dr["Name"].ToString();
// string Universityid = dr["Universityid"].ToString();
// string MajorId = dr["MajorId"].ToString();
// string Majorcourse = dr["Majorcourse"].ToString();
// string Majorintent = dr["Majorintent"].ToString();
// string Majordescription = dr["Majordescription"].ToString();
// string Skill = dr["Skill"].ToString();
// string Postgraduate = dr["Postgraduate"].ToString();
// var newuniversityid = mapinfo.Where(x => x.longid == Universityid).Select(x => x.newid).FirstOrDefault();
// var newmajorid = mapinfo.Where(x => x.longid == MajorId).Select(x => x.newid).FirstOrDefault();
// var info = await d_MajorInformationRepository.Add(new D_MajorInformation()
// {
// Name = Name,
// UniversityId = newuniversityid <= 0 ? 0 : newuniversityid,
// MajorId = newmajorid <= 0 ? 0 :newmajorid,
// Majorcourse = Majorcourse,
// Majordescription = Majordescription,
// Majorintent = Majorintent,
// Skill = Skill,
// Postgraduate = Postgraduate
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#region GraduateFlow
///// <summary>
///// GraduateFlow
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\GraduateFlow.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// List<D_LongIdMap> list = new List<D_LongIdMap>() { };
// var mapinfo = await _dal.Query(x => x.IsDelete == false);
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string id = dr["_id"].ToString();
// string universityId = dr["universityId"].ToString();
// string provinces = dr["provinces"].ToString();
// string attrs = dr["attrs"].ToString();
// var newuniversityid = mapinfo.Where(x => x.longid == universityId).Select(x => x.newid).FirstOrDefault();
// var info = await d_GraduateFlowRepository.Add(new D_GraduateFlow()
// {
// Attrs = attrs,
// Provinces = provinces,
// UniversityId = newuniversityid,
// OrderSort = 0
// });
// if (info > 0)
// {
// list.Add(new D_LongIdMap() { longid = id, newid = info });
// }
// }
// await _dal.Add(list);
// }
// return true;
//}
#endregion
#endregion
/// <summary>
/// 更新数据学校Id
/// </summary>
/// <returns></returns>
public async Task<bool> Import()
{
// var universitylist = await d_UniversityRepository.Query();
// var plist = await this._PlanMajorDescRepository.Query(c => c.Location == "山东省" && c.Years == 2021 && c.PlanCount > 0);
//universitylist.ForEach(async u =>
//{
// plist.ForEach(async cc =>
// {
// if (cc.UId == u.Id)
// {
// cc.UId = u.Id;
// cc.ModifyTime = DateTime.Now;
// cc._985 = u.Nhef == 0 ? "否" : "是";
// cc._211 = u.Sff == 0 ? "否" : "是";
// cc._SYL = u.Syl == 0 ? "否" : "是";
// cc.AreaName = u.Area_Name;
// cc.Nature = u.Nature == 0 ? "公办" : u.Nature == 1 ? "民办" : u.Nature == 2 ? "中外合作" : "港澳台";
// cc.Ownership = u.AscriptionName;
// cc.EducationCategory = u.Subject_Level == 0 ? "本科" : "专科";
// //0综合,1理工类2医学类|3军事类|4语言类|5师范类|6财经类|7政法类|8民族类|9农林类|10艺术类|11体育类|12其他
// cc.SchoolType = UniversityTypeRelsove.GetType(u.Type);
// await this._PlanMajorDescRepository.Update(cc);
// }
// });
//});
// var p2list = await this.d_PlanMajorScoreLineRepository.Query(c => c.UniversityName == u.Name && c.UId <= 0);
// p2list.ForEach(async cc =>
// {
// cc.UId = u.Id;
// cc.ModifyTime = DateTime.Now;
// await this.d_PlanMajorScoreLineRepository.Update(cc);
// });
// var p3list = await this.d_QualificationLineRepository.Query(c => c.UniversityName == u.Name && c.UId <= 0);
// p3list.ForEach(async cc =>
// {
// cc.UId = u.Id;
// cc.ModifyTime = DateTime.Now;
// await this.d_QualificationLineRepository.Update(cc);
// });
// });
//this.d_PlanMajorDescServices = d_PlanMajorDescServices;
//this.d_PlanMajorScoreLineRepository = d_PlanMajorScoreLineRepository;
//this.d_QualificationLineRepository = d_QualificationLineRepository;
//var plandesc = await d_PlanMajorDescRepository.Query(c => c.Years == 2023 && c.Location == "山东省");
//var plandescline = await d_PlanMajorScoreLineRepository.Query(c => c.Years == 2022 && c.Location == "山东省");
//plandesc.ForEach(async a =>
//{
// // if (!string.IsNullOrEmpty(a.Major) && a.Major.Contains("(") && !string.IsNullOrEmpty(a.SelectSubject))
// //{
// // a.ModifyTime = DateTime.Now;
// // a.Remark = a.Major.Remove(a.Major.Length - 1, 1).Replace(a.Major.Split("(")[0], "");
// // a.Remark = a.Remark.Remove(0, 1);
// // a.Major = a.Major.Split("(")[0];
// // await d_PlanMajorDescRepository.Update(a);
// //}
// //if (!string.IsNullOrEmpty(a.Major) && a.Major.Contains("") && !string.IsNullOrEmpty(a.SelectSubject))
// //{
// // a.ModifyTime = DateTime.Now;
// // a.Remark = a.Major.Remove(a.Major.Length - 1, 1).Replace(a.Major.Split("")[0], "");
// // a.Remark = a.Remark.Remove(0, 1);
// // a.Major = a.Major.Split("")[0];
// // await d_PlanMajorDescRepository.Update(a);
// //}
// if (plandescline.Any(e => e.UId == a.UId && e.Major == a.Major && e.Location == a.Location) && a.LowScore <= 0)
// {
// var firstdefault = plandescline.FirstOrDefault(e => e.UId == a.UId && a.Major == e.Major && e.Location == a.Location);
// a.LowScore = firstdefault.LowScore;
// a.LowScoreRank = firstdefault.LowScoreRank;
// a.ModifyTime = DateTime.Now;
// await d_PlanMajorDescRepository.Update(a);
// }
//});
//plandescline.ForEach(async a =>
//{
// if (!string.IsNullOrEmpty(a.Major) && a.Major.Contains("(") && !string.IsNullOrEmpty(a.SelectSubject))
// {
// a.ModifyTime = DateTime.Now;
// a.Remark = a.Major.Remove(a.Major.Length - 1, 1).Replace(a.Major.Split("(")[0], "");
// a.Remark = a.Remark.Remove(0, 1);
// a.Major = a.Major.Split("(")[0];
// await d_PlanMajorDescRepository.Update(a);
// }
// if (!string.IsNullOrEmpty(a.Major) && a.Major.Contains("") && !string.IsNullOrEmpty(a.SelectSubject))
// {
// a.ModifyTime = DateTime.Now;
// a.Remark = a.Major.Remove(a.Major.Length - 1, 1).Replace(a.Major.Split("")[0], "");
// a.Remark = a.Remark.Remove(0, 1);
// a.Major = a.Major.Split("")[0];
// await d_PlanMajorDescRepository.Update(a);
// }
//});
//var plistpro = await d_PlanMajorDescProRepository.Query(c => c.Location == "山东省" && c.Years == 2023);
//plist.ForEach(async c =>
//{
// if (plistpro.Where(w => w.UId == c.UId && w.Major == c.Major && c.BatchName == w.BatchName && w.Location == "山东省").Any())
// {
// var pmodel = plistpro.Where(w => w.UId == c.UId && w.Major == c.Major && c.BatchName == w.BatchName && w.Location == "山东省").FirstOrDefault();
// pmodel.NewCount = pmodel.PlanCount - c.PlanCount;
// pmodel.ModifyTime = DateTime.Now;
// await d_PlanMajorDescProRepository.Update(pmodel);
// }
//});
#region *******************院校信息更新******************
//for (var i = 1; i <= 147; i++)
//{
// var body = new HttpHelperPostRequest() { pageIndex = i };
// var info = HttpHelper.PostApi<HttpHelperPostobject>("http://192.168.104.104:3000/youzy.dms.basiclib.api.college.query", body);
// info.result.items.ToList().ForEach(async a =>
// {
// //http://192.168.104.104:3000/youzy.dms.basiclib.api.college.bycode.get?code=10017 //详情
// // var bodydetail = new httphelperdetailrequest() { code = a.code };
// var undetail = HttpHelper.GetApi<UniversityDetailobject>("http://192.168.104.104:3000/", "youzy.dms.basiclib.api.college.bycode.get?code=" + a.code + "", "");
// Thread.Sleep(1000);
// var universitymodel = await d_UniversityRepository.Query(c => c.Name == a.cnName);
// if (universitymodel.Any() && undetail != null && undetail.result != null)
// {
// var updatemodel = universitymodel.FirstOrDefault();
// var category = undetail.result.categories.ToList();
// //if (category.Contains("医药"))
// //{
// // updatemodel.Type = UniversityTypeRelsove.GetTypeName("医药");
// //updatemodel.Web = undetail.result.webSite;
// //updatemodel.Address = undetail.result.address[0].address;
// //updatemodel.Phone = string.Join(",",undetail.result.zhaoBanDH);
// // updatemodel.AscriptionName = undetail.result.belong;
// //updatemodel.UniversityCode = a.code;
// //updatemodel.Rank = a.ranking;
// //updatemodel.Build_Date = undetail.result.createdYear;
// //updatemodel.Description = undetail.result.introduction;
// updatemodel.Master_Count = undetail.result.pointsOfShuo.Any() ? undetail.result.pointsOfShuo[0].number : 0;
// updatemodel.Doctorate_Count = undetail.result.pointsOfBo.Any() ? undetail.result.pointsOfBo[0].number : 0;
// //updatemodel.Type = UniversityTypeRelsove.GetTypeName((undetail.result.categories.Any() ? undetail.result.categories[0] : ""));
// await d_UniversityRepository.Update(updatemodel);
// // }
// }
// });
//}
#endregion
#region *********************院校代码更新******************************
//var universitylist = await d_UniversityRepository.Query();
//var plist = await this._PlanMajorDescRepository.Query(c => c.Location == "山东省" && c.Years == 2021 && c.PlanCount > 0);
//universitylist.ForEach(async u =>
//{
// plist.ForEach(async cc =>
// {
// if (cc.UId == u.Id&&string.IsNullOrWhiteSpace(cc.EnrollmentCode))
// {
// cc.EnrollmentCode = u.UniversityCode;
// cc.ModifyTime = DateTime.Now;
// await this._PlanMajorDescRepository.Update(cc);
// }
// });
//});
#endregion
return true;
}
/// <summary>
/// 更新专业分数线
/// </summary>
/// <returns></returns>
public async Task<bool> UpdatePlanScoreLine()
{
var tbinfo = await t_TbSNeedDataInfoRepository.Query(e => e.Location == "山东省");
var plist = await this.d_PlanMajorDescProRepository.Query(c => c.Location == "山东省" && c.Years == 2023 && c.IsDelete == false);
var list = new List<D_PlanMajorScoreLine>();
int i = 232818;
tbinfo.ForEach(a =>
{
if (plist.Where(e => e.UniversityName == a.UniversityName && e.MajorCode == a.MajorCode).Any())
{
i++;
var pdefault = plist.Where(e => e.UniversityName == a.UniversityName && e.MajorCode == a.MajorCode).FirstOrDefault();
list.Add(new D_PlanMajorScoreLine()
{
Id = i,
AvgScore = a._23SchoolAvgScore,
BatchName = pdefault.BatchName,
CreateTime = DateTime.Now,
FirstType = a.FirstType,
IsDelete = true,
Location = a.Location,
LowScore = Convert.ToInt32(a._23Score),
LowScoreRank = Convert.ToInt32(a._23ScoreLine),
Major = a.MajorName,
MajorCode = a.MajorCode,
ModifyTime = DateTime.Now,
//HighScore = "0",
//MajorGroup = "",
PlanCount = pdefault.PlanCount,
RootType = pdefault.RootType,
SelectSubject = pdefault.SelectSubject,
SubjectType = "综合",
UId = pdefault.UId,
UniversityName = a.UniversityName,
Years = pdefault.Years,
Remark = pdefault.Remark
});
}
});
//var count = list;
await d_PlanMajorScoreLineRepository.BatchAdd(list);
return true;
}
/// <summary>
/// 更新学校基础信息
/// </summary>
/// <returns></returns>
public async Task<bool> UpdateUniveristyInf()
{
var tbinfo = await t_TbSNeedDataInfoRepository.Query();
// var plist = await this._PlanMajorDescRepository.Query(c => c.Location == "山东省" && c.Years == 2023);
var info = await d_UniversityRepository.Query();
// var infoimg = await d_UniversityimgRepository.Query();
info.ForEach(async a =>
{
if (tbinfo.Where(e => e.UniversityName == a.Name).Any())
{
var baseinfo = tbinfo.Where(e => e.UniversityName == a.Name).FirstOrDefault();
// var imginfo = infoimg.FirstOrDefault(o => o.UniversityId == a.Id);
//if (!string.IsNullOrWhiteSpace(baseinfo.VRUrl) && imginfo != null)
//{
// imginfo.VRUrl = baseinfo.VRUrl;
// await d_UniversityimgRepository.Update(imginfo);
//}
if (baseinfo.LnstitutionalLevel != null)
{
a.Sff = baseinfo.LnstitutionalLevel.Contains("211") ? 1 : 0;
a.Syl = baseinfo.LnstitutionalLevel.Contains("双一流") ? 1 : 0;
a.QJJH = baseinfo.LnstitutionalLevel.Contains("强基") ? 1 : 0;
a.Nhef = baseinfo.LnstitutionalLevel.Contains("985") ? 1 : 0;
}
//a.Doctorate_Count = int.Parse(baseinfo.PhDPoint);
//a.Master_Count = int.Parse(baseinfo.MastersDegree);
//a.Nature = baseinfo.Nature.Contains("公办") ? 0 : baseinfo.Nature.Contains("民办") ? 1 : baseinfo.Nature.Contains("中外合作") ? 2 : baseinfo.Nature.Contains("港澳台") ? 3 : -1;
//a.Subject_Level = baseinfo.EducationCategory == "本科" ? 0 : 1;
await d_UniversityRepository.Update(a);
}
});
//var plist = await this._PlanMajorDescRepository.Query(c => c.Location == "山东省" && c.Years == 2023 && c.IsDelete == false && c.UId <= 0);
//info.ForEach(async a =>
//{
// var pplist = plist.Where(ee => ee.UniversityName == a.Name).ToList();
// pplist.ForEach(c =>
// {
// c.UId = a.Id;
// c.AreaName = a.Area_Name;
// c.Rank = a.Rank.ToString();
// c._985 = a.Nhef == 1 ? "是" : "否";
// c._SYL = a.Syl == 1 ? "是" : "否";
// c._211 = a.Sff == 1 ? "是" : "否";
// c.Nature = a.Nature == 0 ? "公办" : a.Nature == 1 ? "民办" : a.Nature == 2 ? "中外合作办学" : "港澳台";
// c.ReName = c.Major;
// c.Remark = "(" + c.Major.Remove(c.Major.Length - 1, 1).Replace(c.Major.Split("(")[0], "");
// c.Major = c.Major.Split("(")[0];
// });
// if (pplist.Any() && pplist.Count() > 0)
// {
// await this._PlanMajorDescRepository.Batchupdate(pplist);
// }
//});
return true;
}
public async Task<List<UniversityMongoResult>> GetSyncUniversityInfo()
{
if (_redisCache.Get("sync_university"))
{
return JsonConvert.DeserializeObject<List<UniversityMongoResult>>((Encoding.UTF8.GetString(_redisCache.Get<byte[]>("sync_university"))));
}
var list = new List<UniversityMongoResult>();
var tbinfo = await t_TbSNeedDataInfoRepository.Query(e => e.Location == "山东省");
var universitylist = await d_UniversityRepository.Query();
var universityimglist = await d_UniversityimgRepository.Query(x => x.IsDelete == false);
universitylist.ForEach(university =>
{
var models = new UniversityMongoResult()
{
Id = university.Id,
Name = university.Name,
Address = university.Address,
Phone = university.Phone,
// Nature = university.Nature,
//AscriptionName = university.AscriptionName,
// Rank = university.Rank,
AreaName = university.Area_Name,
Logo = university.Logo,
// Syl = university.Syl == 1 ? true : false,
// Nhef = university.Nhef == 1 ? true : false,
// Sff = university.Sff == 1 ? true : false,
// QJJH = university.QJJH == 1 ? true : false,
//UniversityType = university.Type,
SubjectLevel = university.Subject_Level,
BuildDate = university.Build_Date,
// Imglist = imgs,
DoctorateCount = university.Doctorate_Count,
MasterCount = university.Master_Count,
AcademicianCount = university.Academician_Count,
collegeCode = university.UniversityCode,
Web = string.IsNullOrEmpty(university.Web) ? "暂无" : university.Web,
// Description = ClearHtmlHelper.SHTML(university.Description),
};
if (universityimglist.Where(e => e.UniversityId == university.Id).Any() && universityimglist.Where(e => e.UniversityId == university.Id).Select(c => c.ImgList).Count() > 0)
{
models.Imglist = universityimglist.Where(e => e.UniversityId == university.Id).Select(c => c.ImgList).FirstOrDefault();
}
else
{
var unimglist = HttpHelper.GetApi<UnImglistobject>("http://192.168.104.104:3000/", "youzy.dms.basiclib.api.college.image.get?collegeCode=" + university.UniversityCode + "", "");
if (unimglist != null && unimglist.isSuccess)
{
models.Imglist = unimglist.result.urls.Select(c => c.url).ToList().ToJson();
}
}
models.VrUrl = universityimglist.Where(e => e.UniversityId == university.Id).Select(c => c.VRUrl).FirstOrDefault();
var baseinfo = tbinfo.Where(e => e.UniversityName == university.Name).FirstOrDefault();
if (baseinfo != null && !string.IsNullOrWhiteSpace(baseinfo.LnstitutionalLevel))
{
models.features = baseinfo.LnstitutionalLevel;
}
if (baseinfo != null && !string.IsNullOrWhiteSpace(baseinfo.City))
{
models.CityName = baseinfo.City;
}
if ((baseinfo != null && !string.IsNullOrWhiteSpace(baseinfo.Nature)))
{
models.Nature = baseinfo.Nature;
}
else
{
models.Nature = university.Nature == 0 ? "公办" : university.Nature == 1 ? "民办" : university.Nature == 2 ? "中外合作" : "港澳台";
}
if (baseinfo != null && !string.IsNullOrWhiteSpace(baseinfo.Ownership))
{
models.Belong = baseinfo.Ownership;
}
else
{
models.Belong = university.AscriptionName;
}
var undetail = HttpHelper.GetApi<UniversityDetailobject>("http://192.168.104.104:3000/", "youzy.dms.basiclib.api.college.bycode.get?code=" + university.UniversityCode + "", "");
if (undetail != null && undetail.isSuccess)
{
models.UniversityType = undetail.result.categories.ToList();
}
else
{
models.UniversityType = new List<string>() {
GetUniversityTypeName(university.Type)
};
}
list.Add(models);
});
byte[] byresult = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(list));
_redisCache.Set("sync_university", byresult, TimeSpan.FromDays(1));
return list;
}
/// <summary>
/// 更新招生计划数据
/// </summary>
/// <returns></returns>
public async Task<bool> UpdatePlanProInf()
{
var tbinfo = await t_TbSNeedDataInfoRepository.Query(e => e.Location == "河南省");
var universitylist = await d_UniversityRepository.Query();
var majorlist = await d_MajorRepository.Query();
#region************************更新招生计划合计****************************
// var majorlist = await d_PlanMajorScoreLineRepository.Query(e => e.Location == "河南省" && e.Years == 2021);
//var qliylist = await d_QualificationLineRepository.Query(e => e.Location == "河南省" && e.Years == 2022);
//var plist = await this.d_PlanMajorDescProRepository.Query(c => c.Location == "河南省" && c.Years == 2021 && c.IsDelete == false);
// tbinfo.ForEach(o =>
// {
//if (plist.Any(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName))
//{
// o._21Count = plist.Where(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName).FirstOrDefault().PlanCount.ToString();
// // o.AcademicYear = plist.Where(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName).FirstOrDefault().AcademicYear;
//}
//if (majorlist.Any(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName))
//{
// o._21Score = majorlist.Where(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName).FirstOrDefault().LowScore.ToString();
// o._21ScoreLine = majorlist.Where(e => e.Major == o.MajorName && e.UniversityName == o.UniversityName).FirstOrDefault().LowScoreRank.ToString();
//}
//if (qliylist.Any(e => e.UniversityName == o.UniversityName))
//{
// o._23SchoolScore = qliylist.Where(e => e.UniversityName == o.UniversityName).FirstOrDefault().LowScore.ToString();
// o._23SchoolScoreLine = qliylist.Where(e => e.UniversityName == o.UniversityName).FirstOrDefault().LowScoreRank.ToString();
// //o._23SchoolAvgScore=
//}
// });
// await t_TbSNeedDataInfoRepository.BatchUpdate(tbinfo);
#endregion************************更新招生计划合计****************************
#region ***********************更新相关参数***************************
//var tbsdinfo = await t_TbSNeedDataInfoRepository.Query(e => e.Location == "山东省");
//tbinfo.ForEach(e =>
//{
// if (tbsdinfo.Any(a => a.UniversityName == e.UniversityName))
// {
// e.UniversityRank = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().UniversityRank;
// e.City = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().City;
// e.EmploymentQuality = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().EmploymentQuality;
// e.EnrollmentCode = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().EnrollmentCode;
// if (tbsdinfo.Any(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)))
// {
// e.Fee = tbsdinfo.Where(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)).FirstOrDefault().Fee;
// e.MjaorLevel = tbsdinfo.Where(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)).FirstOrDefault().MjaorLevel;
// e.MajorCount = tbsdinfo.Where(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)).FirstOrDefault().LnstitutionalLevel;
// e.MajorRankPercentage = tbsdinfo.Where(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)).FirstOrDefault().LnstitutionalLevel;
// e.FirstType = tbsdinfo.Where(a => a.UniversityName == e.UniversityName && a.MajorName.Contains(e.MajorName)).FirstOrDefault().FirstType;
// }
// e.LnstitutionalLevel = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().LnstitutionalLevel;
// e.MastersDegree = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().MastersDegree;
// e.MastersMajor = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().MastersMajor;
// e.Nature = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().Nature;
// e.Ownership = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().Ownership;
// e.PhDMajor = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().PhDMajor;
// e.PhDPoint = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().PhDPoint;
// e.ProfessionalAssessment = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().ProfessionalAssessment;
// e.Province = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().Province;
// e.VRUrl = tbsdinfo.Where(a => a.UniversityName == e.UniversityName).FirstOrDefault().VRUrl;
// }
//});
//await t_TbSNeedDataInfoRepository.BatchUpdate(tbinfo);
#endregion
#region 院校专业关联
var models = new List<D_MajorMapUniversity>();
tbinfo.ForEach(async a =>
{
if (universitylist.Where(e => e.Name == a.UniversityName).Any())
{
if (majorlist.Where(e => a.MajorName.Contains(e.Name)).Any())
{
var mid = majorlist.Where(e => a.MajorName.Contains(e.Name)).FirstOrDefault().Id;
var uid = universitylist.Where(e => e.Name == a.UniversityName).FirstOrDefault().Id;
if (!models.Where(e => e.Universityid == uid && e.MajorId == mid).Any())
{
if (!(await d_MajorMapUniversityRepository.Query(q => q.Universityid == uid && q.MajorId == mid)).Any())
models.Add(new D_MajorMapUniversity()
{
CreateTime = DateTime.UtcNow,
IsDelete = false,
ModifyTime = DateTime.UtcNow,
OrderSort = 0,
sp = 0,
MajorId = majorlist.Where(e => a.MajorName.Contains(e.Name)).FirstOrDefault().Id,
Universityid = universitylist.Where(e => e.Name == a.UniversityName).FirstOrDefault().Id
});
}
}
}
});
await d_MajorMapUniversityRepository.Add(models);
#endregion
//var universitylist=await un
#region 更新专业计划信息
//var plist = await this.d_PlanMajorDescProRepository.Query(c => c.Location == "山东省" && c.Years == 2023 && c.IsDelete == false && c.UId <= 0);
//plist.ForEach(p =>
//{
// var newmodel = tbinfo.Where(e => (e.EnrollmentCode == p.EnrollmentCode || e.UniversityName == p.UniversityName) && e.MajorCode == p.MajorCode).FirstOrDefault();
// if (newmodel != null)
// {
// p.CityName = newmodel.City;
// p.EducationCategory = newmodel.EducationCategory;
// // p.EnrollmentCode = newmodel.EnrollmentCode;
// p.EnrollmentType = newmodel.EnrollmentType;
// //p.SchoolType=newmodel.sch
// p.FirstType = newmodel.FirstType;
// p.Nature = newmodel.Nature;
// p.Ownership = newmodel.Ownership;
// p.NewCount = int.Parse(newmodel._23Count) - int.Parse(newmodel._22Count);
// p.PlanCount = int.Parse(newmodel._23Count);
// p.LowScore = int.Parse(newmodel._23Score);
// p.LowScoreRank = int.Parse(newmodel._23ScoreLine);
// }
//});
//await this.d_PlanMajorDescProRepository.Batchupdate(plist);
#endregion
#region 更新专业分数先选科数据
//var planlinelist = await d_PlanMajorScoreLineRepository.Query(e => e.IsDelete == false && e.Years == 2023 && e.Location == "山东省");
//planlinelist.ForEach(async c =>
//{
// var tmpany = tbinfo.Where(e => e.UniversityName == c.UniversityName && e.MajorCode == c.MajorCode).Any();
// if (tmpany)
// {
// var tmp = tbinfo.Where(e => e.UniversityName == c.UniversityName && e.MajorCode == c.MajorCode).FirstOrDefault();
// c.SelectSubject = tmp._23subject;
// await d_PlanMajorScoreLineRepository.Update(c);
// }
//});
#endregion
return true;
}
// #region 院校排序
/// <summary>
/// 院校排序
/// </summary>
/// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\院校专业职业\\院校排名.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var stringBuilderinfo = new StringBuilder();
// stringBuilderinfo.AppendFormat("select Id,Name,Logo,Nhef,Sff,Syl,Area_Name,AscriptionName from D_University where IsDelete=0");
// var info = await d_UniversityRepository.QuerySql(stringBuilderinfo.ToString());
// List<D_University> list = new List<D_University>() { };
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// var rank = Convert.ToInt32(dr["排序"].ToString());
// var name = dr["院校名称"].ToString();
// var nowinfo = info.Where(x => x.Name == name).FirstOrDefault();
// if (nowinfo != null)
// {
// nowinfo.Rank = rank;
// list.Add(nowinfo);
// }
// }
// await d_UniversityRepository.Update(list);
// }
// return true;
//}
// #endregion
}
public class HttpHelperPostRequest
{
public int pageIndex { get; set; }
}
public class HttpHelperPostobject
{
public basiclibResult result { get; set; }
public string code { get; set; }
public string message { get; set; }
public string fullMessage { get; set; }
public DateTime timestamp { get; set; }
public bool isSuccess { get; set; }
}
public class basiclibResult
{
public int totalCount { get; set; }
public basiclibItem[] items { get; set; }
}
public class basiclibItem
{
public int numId { get; set; }
public string code { get; set; }
public string gbCode { get; set; }
public string cnName { get; set; }
public string logoUrl { get; set; }
public string natureType { get; set; }
public string eduLevel { get; set; }
public string belong { get; set; }
public string[] categories { get; set; }
public string[] features { get; set; }
public string provinceCode { get; set; }
public string provinceName { get; set; }
public string cityName { get; set; }
public int hits { get; set; }
public int ranking { get; set; }
public int rankingOfWSL { get; set; }
public int rankingOfRK { get; set; }
public int rankingOfXYH { get; set; }
public int rankingOfQS { get; set; }
public int rankingOfUSNews { get; set; }
public int rankingOfEdu { get; set; }
public float comScore { get; set; }
public string id { get; set; }
}
}