志愿填报查询接口优化

develop
old易 2024-03-26 11:20:25 +08:00
parent a3e6ba14c6
commit 19bcf45788
5 changed files with 102 additions and 43 deletions

View File

@ -37,6 +37,29 @@ namespace New_College.Api.Controllers.Front
/// <summary>
///获取分享好友任务完成情况
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<CustomerShareModel>>> ShareTaskFinshing([FromQuery] CustomerShareQuery query)
{
var userinfo = new List<CustomerShareModel>();
var customer = await _fansDistributionServices.Query(c => c.IsDelete == false && c.SaleId == query.CustomerId);
var fansids = customer.Select(c => c.FansId).ToList();
userinfo = (await _services.Query(c => fansids.Contains(c.Id))).Select(c => new CustomerShareModel()
{
Avatar = c.AvatarUrl,
nickName = c.NickName
}).ToList();
return new MessageModel<List<CustomerShareModel>>()
{
response = userinfo,
success = true,
msg = "ok"
};
}
/// <summary>
///
/// </summary>
@ -205,7 +228,7 @@ namespace New_College.Api.Controllers.Front
await DistrFanc(request.SaleId, customerinfo.Id);
});
newId = await updatesync(customerinfo.Phone);
}
catch (Exception ex)
{

View File

@ -232,6 +232,13 @@
服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
</summary>
</member>
<member name="M:New_College.Api.Controllers.Front.CustomerController.ShareTaskFinshing(New_College.Model.Request.CustomerShareQuery)">
<summary>
获取分享好友任务完成情况
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.CustomerController.SyncCustomerInfo(New_College.Model.SyncCustomerDto)">
<summary>

View File

@ -16,4 +16,11 @@ namespace New_College.Model.Request
/// </summary>
public string code { get; set; }
}
public class CustomerShareQuery
{
public int CustomerId { get; set;}
}
}

View File

@ -5,6 +5,14 @@ using System.Text;
namespace New_College.Model.ViewModels
{
public class CustomerShareModel
{
public string Avatar{ get; set; }
public string nickName { get; set; }
}
public class CustomerInfoResult
{

View File

@ -169,9 +169,6 @@ namespace New_College.Repository
var subjecttype = query.SubjectClaim.Length == 2 ? query.SubjectClaim : "综合";
query.SubjectClaim = query.SubjectClaim.Length == 2 ? (query.SubjectClaim == "理科" ? "物,化,生" : "政,史,地") : query.SubjectClaim;
var regionlist = this.Db.Queryable<SysRegion>().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => SqlFunc.ContainsArray(query.provinceIds, c.KeyId)).Select(c => c.RegionName).ToList();
var claim = new string[] { };
@ -244,22 +241,9 @@ namespace New_College.Repository
sqlstr.AppendFormat(" and (_23subject like'%{0}%' or _23subject like'%{1}%' or _23subject like'%{2}%' )", claim01, claim02, claim03);
}
sqlstr.Append(" order by _23Score");
//string sql = string.Format("SELECT * from T_TbSNeedDataInfo where location='{0}' and _23Score BETWEEN {1} and {2} and (_23subject like'%{3}%' or _23subject like'%{4}%' or _23subject like'%{5}%' )"
// , query.Location, query.Score, query.Score + 15, claim01, claim02, claim03);
var recommendInfo = await this.Db.SqlQueryable<TbSNeedDataInfoViewDto>(sqlstr.ToString()).ToListAsync();
// var recommendInfo = await this.Db.Queryable<TbSNeedDataInfoViewDto>()
// .WhereIF(regionlist.Any(), p => SqlFunc.ContainsArray(regionlist, p.Province))
// //.WhereIF(query.Year > 0, p => p.Years == query.Year)
// .WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
// .Where(p => p.SubjectType == subjecttype)
// //.WhereIF(!string.IsNullOrEmpty(query.BatchName), p => p.BatchName == query.BatchName)
// .WhereIF(string.IsNullOrWhiteSpace(query.Type), p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 60, query.Score + 15))
// .WhereIF(query.Type == "冲", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score, query.Score + 15))
// .WhereIF(query.Type == "稳", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 26, query.Score - 1))
// .WhereIF(query.Type == "保", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 60, query.Score - 26))
// .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), c => SqlFunc.Contains(c._23subject, claim01) || SqlFunc.Contains(c._23subject, claim02) || SqlFunc.Contains(c._23subject, claim03) || c._23subject == "不限")
// .WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorName))
//.ToListAsync();
var universitylist = recommendInfo.GroupBy(g => g.UniversityName).Select(c => new UniversityEnrollmentPlanResult() { UniversityName = c.Key }).ToList();
var universitytemps = (await d_University.Query(c => SqlFunc.ContainsArray(recommendInfo.Select(c => c.UniversityName).ToList(), c.Name))).Select(c => new
@ -267,36 +251,66 @@ namespace New_College.Repository
{ Id = c.Id, Logo = c.Logo, Name = c.Name }).ToList();
var ulist = universitylist.Select(s => new UniversityEnrollmentPlanResult()
//var ulist = universitylist.Select(s => new UniversityEnrollmentPlanResult()
//{
// Logo = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Logo : "",
// UniversityId = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Id : 0,
// AreaName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Province : " ",
// UniversityCode = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).EnrollmentCode : "",
// Rank = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).UniversityRank : " ",
// _985 = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("985") ? "是" : "否") : "否") : "否",
// _211 = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("211") ? "是" : "否") : "否") : "否",
// _SYL = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("双一流") ? "是" : "否") : "否") : "否",
// SchoolScoreline = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScoreLine) : 0,
// SchoolLowScore = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScore) : 0,
// Type = MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 2 ? "冲" : MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 1 ? "稳" : "保",//冲稳保院校
// Percentage = MajorPlanScoreTool.GetPlanPercentage(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score),
// AscriptionName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Ownership : " ",
// CityName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).City : " ",
// MjaorPlan = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.Where(e => e.UniversityName == s.UniversityName).Count() : 0,
// planCount = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.Where(e => e.UniversityName == s.UniversityName).Sum(m => int.Parse(m._23Count)) : 0,
// PlanIds = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.Where(e => e.UniversityName == s.UniversityName).Select(c => c.ID).ToList()) : null,
// UniversityName = s.UniversityName,
//}).OrderByDescending(t => t.Type).OrderBy(t => t.SchoolScoreline).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize).ToList();
var ulist = new List<UniversityEnrollmentPlanResult>();
universitylist.ForEach(s =>
{
Logo = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Logo : "",
UniversityId = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Id : 0,
AreaName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Province : " ",
UniversityCode = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).EnrollmentCode : "",
Rank = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).UniversityRank : " ",
_985 = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("985") ? "是" : "否") : "否") : "否",
_211 = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("211") ? "是" : "否") : "否") : "否",
_SYL = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("双一流") ? "是" : "否") : "否") : "否",
SchoolScoreline = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScoreLine) : 0,
SchoolLowScore = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScore) : 0,
Type = MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 2 ? "冲" : MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 1 ? "稳" : "保",//冲稳保院校
Percentage = MajorPlanScoreTool.GetPlanPercentage(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score),
AscriptionName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Ownership : " ",
CityName = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).City : " ",
MjaorPlan = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.Where(e => e.UniversityName == s.UniversityName).Count() : 0,
planCount = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? recommendInfo.Where(e => e.UniversityName == s.UniversityName).Sum(m => int.Parse(m._23Count)) : 0,
PlanIds = recommendInfo.Any(e => e.UniversityName == s.UniversityName) ? (recommendInfo.Where(e => e.UniversityName == s.UniversityName).Select(c => c.ID).ToList()) : null,
UniversityName = s.UniversityName,
}).OrderByDescending(t => t.Type).OrderBy(t => t.SchoolScoreline).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize).ToList();
if (recommendInfo.Any(e => e.UniversityName == s.UniversityName))
{
var recommendFirstModel = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName);
ulist.Add(new UniversityEnrollmentPlanResult()
{
Logo = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Logo : "",
UniversityId = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Id : 0,
AreaName = recommendFirstModel.Province,
UniversityCode = recommendFirstModel.EnrollmentCode,
Rank = recommendFirstModel.UniversityRank,
_985 = (recommendFirstModel.LnstitutionalLevel != null ? (recommendFirstModel.LnstitutionalLevel.Contains("985") ? "是" : "否") : "否"),
_211 = (recommendFirstModel.LnstitutionalLevel != null ? (recommendFirstModel.LnstitutionalLevel.Contains("211") ? "是" : "否") : "否"),
_SYL = (recommendFirstModel.LnstitutionalLevel != null ? (recommendFirstModel.LnstitutionalLevel.Contains("双一流") ? "是" : "否") : "否"),
SchoolScoreline = int.Parse(recommendFirstModel._23SchoolScoreLine),
SchoolLowScore = int.Parse(recommendFirstModel._23SchoolScore),
Type = MajorPlanScoreTool.GetPlanScore(int.Parse(recommendFirstModel._23Score), (int)query.Score) == 2 ? "冲" : MajorPlanScoreTool.GetPlanScore(int.Parse(recommendFirstModel._23Score), (int)query.Score) == 1 ? "稳" : "保",//冲稳保院校
Percentage = MajorPlanScoreTool.GetPlanPercentage(int.Parse(recommendFirstModel._23Score), (int)query.Score),
AscriptionName = recommendFirstModel.Ownership,
CityName = recommendFirstModel.City,
MjaorPlan = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Count(),
planCount = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Sum(m => int.Parse(m._23Count)),
PlanIds = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Select(c => c.ID).ToList(),
UniversityName = s.UniversityName
});
}
});
return new MessageModel<PageModel<UniversityEnrollmentPlanResult>>()
{
success = true,
msg = "获取成功",
response = new PageModel<UniversityEnrollmentPlanResult>()
{
data = ulist,
data = ulist.OrderByDescending(t => t.Type).OrderBy(t => t.SchoolScoreline).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize).ToList(),
dataCount = universitylist.Count,
page = query.PageIndex,
PageSize = query.PageSize,
@ -355,13 +369,13 @@ namespace New_College.Repository
Years = plans.Years
})
.ToPageListAsync(query.PageIndex, query.PageSize, totalNumber);
recommendInfo.ForEach(recommendInfo =>
recommendInfo.Where(e => e.Id > 0).ToList().ForEach(recommendInfo =>
{
recommendInfo.Percentage = MajorPlanScoreTool.GetPlanPercentage((int)recommendInfo.ScoreLine, query.Score);
});
return new PageModel<UniversityResult>()
{
data = recommendInfo.OrderBy(o => o.Percentage).ToList(),
data = recommendInfo.Where(e => e.Id > 0).OrderBy(o => o.Percentage).ToList(),
page = query.PageIndex,
PageSize = query.PageSize,
dataCount = totalNumber,