NewGaoKaoApi/New_College.Api/Controllers/Back/D_PlanMajorDescController.cs

370 lines
13 KiB
C#

using New_College.IServices;
using New_College.Model;
using New_College.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
using New_College.Model.ViewModels;
using System.Linq;
using Org.BouncyCastle.Asn1.Ocsp;
using New_College.IRepository.UnitOfWork;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace New_College.Api.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize]
public class D_PlanMajorDescController : ControllerBase
{
/// <summary>
/// 服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
/// </summary>
private readonly ID_PlanMajorDescServices _d_PlanMajorDescServices;
private readonly ID_PlanMajorDescProServices _d_PlanMajorDescProServices;
private readonly IU_VolunteerTableServices _VolunteerTableServices;
private readonly IU_VolunteerTableDetailServices _VolunteerTableDetailServices;
private readonly IUnitOfWork _unitOfWork;
public D_PlanMajorDescController(ID_PlanMajorDescServices D_PlanMajorDescServices, ID_PlanMajorDescProServices d_PlanMajorDescProServices,
IU_VolunteerTableServices volunteerTableServices, IU_VolunteerTableDetailServices volunteerTableDetailServices, IUnitOfWork unitOfWork)
{
_d_PlanMajorDescServices = D_PlanMajorDescServices;
_d_PlanMajorDescProServices = d_PlanMajorDescProServices;
_VolunteerTableServices = volunteerTableServices;
_VolunteerTableDetailServices = volunteerTableDetailServices;
_unitOfWork = unitOfWork;
}
/// <summary>
/// 查询扩缩招院校招生计划详情
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<MajorPlanProView>> GetMajorPlanPro([FromQuery] MajorPlanProViewQuery request)
{
if (request.Year <= 0)
{
return new MessageModel<MajorPlanProView>()
{
msg = "Year字段必传参数",
};
}
if (string.IsNullOrEmpty(request.Location))
{
return new MessageModel<MajorPlanProView>()
{
msg = "Location字段必传参数",
};
}
if (request.UId <= 0)
{
return new MessageModel<MajorPlanProView>()
{
msg = "UId字段必传参数",
};
}
var query = await _d_PlanMajorDescProServices.GetMajorPlanPro(request);
return new MessageModel<MajorPlanProView>()
{
response = query,
success = query != null && query.itemViews != null ? true : false,
msg = query != null && query.itemViews != null ? "获取成功" : "获取失败"
};
}
/// <summary>
/// 查询扩缩招院校列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<PageModel<UniversityPlanProView>>> GetUniversityPlanPro([FromBody] UniversityProViewQuery request)
{
var result = new PageModel<UniversityPlanProView>();
if (string.IsNullOrWhiteSpace(request.Location))
{
return new MessageModel<PageModel<UniversityPlanProView>>()
{
msg = "Location字段必传参数",
};
}
if (request.Year <= 0)
{
return new MessageModel<PageModel<UniversityPlanProView>>()
{
msg = "Year字段必传参数",
};
}
var pagemodel = await _d_PlanMajorDescProServices.GetUniversityPlanPro(request);
return new MessageModel<PageModel<UniversityPlanProView>>()
{
response = pagemodel,
success = pagemodel.data.Any() ? true : false,
msg = pagemodel.data.Any() ? "获取成功" : "获取失败"
};
}
/// <summary>
/// 一键填报
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<PageModel<OneSubmitGoResponse>>> OneSubmitGo([FromQuery] OneSubmitGoRequest request)
{
if (string.IsNullOrWhiteSpace(request.Location))
{
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "Location字段必传参数",
};
}
if (request.Year <= 0)
{
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "Year字段必传参数",
};
}
if (string.IsNullOrWhiteSpace(request.SubjectClaim))
{
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "SubjectClaim字段必传参数",
};
}
if (string.IsNullOrWhiteSpace(request.BatchName))
{
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "BatchName字段必传参数",
};
}
var response = await _d_PlanMajorDescServices.GetPlanMajorList(request);
if (response.data == null || !response.data.Any() || response.dataCount <= 0)
{
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "获取失败",
success = false,
response = response
};
}
return new MessageModel<PageModel<OneSubmitGoResponse>>()
{
msg = "获取成功",
success = true,
response = response
};
}
/// <summary>
/// 移动端
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<int>> MAIGo([FromQuery] OneSubmitGoRequest request)
{
request.Scoure = "m";
var query = await OneSubmitGo(request);
if (!query.success)
{
return new MessageModel<int>()
{
success = false,
response = -1,
msg = query.msg
};
}
var vollunterrrequest = new VolunteerTableDtoView();
vollunterrrequest.Type = "一键填报";
vollunterrrequest.CustomerId = request.CustomerId;
vollunterrrequest.BatchName = request.BatchName;
vollunterrrequest.CreateTime = DateTime.Now;
vollunterrrequest.Score = request.Score;
vollunterrrequest.SubjectClaim = request.SubjectClaim;
var vollitem = new List<VolunteerTableDetailView>();
int sort = 0;
query.response.data.ForEach(c =>
{
sort++;
vollitem.Add(new VolunteerTableDetailView()
{
UniversityCode = c.UniversityCode,
UniversityId = c.UniversityId,
UniversityName = c.UniversityName,
Sort = sort,
PlanMajorIds = c.PlanId.ToString(),
VolunteerRemark = JsonConvert.SerializeObject(new VolteerItem()
{
planId = c.PlanId,
tage = c.Percentage,
type = c.Type,
})
});
});
vollunterrrequest.volunteerTableDetailViews = vollitem;
int ordersort = 0;
var vol = (await _VolunteerTableServices.Query(c => c.CustomerId == request.CustomerId));
if (vol.Any())
{
vollunterrrequest.VolunteerTableName = "我的志愿表" + (vol.OrderByDescending(c => c.CreateTime).FirstOrDefault().OrderSort + 1);
ordersort = (vol.OrderByDescending(c => c.CreateTime).FirstOrDefault().OrderSort + 1);
}
else
{
vollunterrrequest.VolunteerTableName = "我的志愿表01";
ordersort = 1;
}
if (vollunterrrequest.volunteerTableDetailViews != null && vollunterrrequest.volunteerTableDetailViews.Any() && vollunterrrequest.volunteerTableDetailViews.Count() > 0)
{
_unitOfWork.BeginTran();
var id = await _VolunteerTableServices.Add(new U_VolunteerTable()
{
CreateTime = DateTime.Now,
CustomerId = request.CustomerId,
ModifyTime = DateTime.Now,
OrderSort = ordersort,
IsDelete = false,
SubjectClaim = request.SubjectClaim,
Type = vollunterrrequest.Type,
Score = request.Score,
BatchName = request.BatchName,
VolunteerTableName = vollunterrrequest.VolunteerTableName,
});
int itemIds = 0;
if (id > 0)
{
var itemlist = vollunterrrequest.volunteerTableDetailViews.Select(c => new U_VolunteerTableDetail()
{
CreateTime = DateTime.Now,
IsDelete = false,
ModifyTime = DateTime.Now,
OrderSort = c.Sort,
PlanMajorIds = c.PlanMajorIds,
UniversityCode = c.UniversityCode,
UniversityId = c.UniversityId,
UniversityName = c.UniversityName,
VolunteerTableId = id,
VolunteerRemark = c.VolunteerRemark
}).ToList();
itemIds = await _VolunteerTableDetailServices.Add(itemlist);
}
if (id > 0 && itemIds == vollunterrrequest.volunteerTableDetailViews.Count() && itemIds > 0)
{
_unitOfWork.BeginTran();
}
else
{
_unitOfWork.RollbackTran();
}
return new MessageModel<int>()
{
success = id > 0,
response = id,
msg = "ok"
};
}
return new MessageModel<int>()
{
success = false,
response = -1,
msg = "无数据"
};
}
/// <summary>
/// AI智能填报
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<AIGOPageModel<AIGOResponse>>> AIGo([FromQuery] OneSubmitGoRequest request)
{
if (string.IsNullOrWhiteSpace(request.Location))
{
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "Location字段必传参数",
};
}
if (request.Year <= 0)
{
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "Year字段必传参数",
};
}
if (string.IsNullOrWhiteSpace(request.SubjectClaim))
{
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "SubjectClaim字段必传参数",
};
}
if (string.IsNullOrWhiteSpace(request.BatchName))
{
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "BatchName字段必传参数",
};
}
var response = await _d_PlanMajorDescServices.GetAIGoList(request);
if (response.data == null || !response.data.Any() || response.dataCount <= 0)
{
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "获取失败",
success = false,
response = response
};
}
return new MessageModel<AIGOPageModel<AIGOResponse>>()
{
msg = "获取成功",
success = true,
response = response
};
}
}
}