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 { /// /// 服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下 /// 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; } /// /// 智能填报预览图 /// /// /// [HttpGet] public async Task> GetAIPerview([FromQuery] OneSubmitGoRequest request) { var perviewdto = await _d_PlanMajorDescServices.GetAIPerview(request); //var pie = new List(); //pie.Add(new PieChatsDto() { name = "需冲刺", value = 560 }); //pie.Add(new PieChatsDto() { name = "较稳妥", value = 1301 }); //pie.Add(new PieChatsDto() { name = "可保底", value = 600 }); //var ulist = new List(); //ulist.Add(new UniversityPerviewDto() { Name = "985", Count = 7 }); //ulist.Add(new UniversityPerviewDto() { Name = "211", Count = 18 }); //ulist.Add(new UniversityPerviewDto() { Name = "双一流", Count = 56 }); //ulist.Add(new UniversityPerviewDto() { Name = "省重点", Count = 42 }); //ulist.Add(new UniversityPerviewDto() { Name = "公办", Count = 134 }); //ulist.Add(new UniversityPerviewDto() { Name = "民办", Count = 10 }); return new MessageModel() { msg = "ok", response = perviewdto, success = true }; } /// /// 查询扩缩招院校招生计划详情 /// /// /// [HttpGet] public async Task> GetMajorPlanPro([FromQuery] MajorPlanProViewQuery request) { if (request.Year <= 0) { return new MessageModel() { msg = "Year字段必传参数", }; } if (string.IsNullOrEmpty(request.Location)) { return new MessageModel() { msg = "Location字段必传参数", }; } if (request.UId <= 0) { return new MessageModel() { msg = "UId字段必传参数", }; } var query = await _d_PlanMajorDescProServices.GetMajorPlanPro(request); return new MessageModel() { response = query, success = query != null && query.itemViews != null ? true : false, msg = query != null && query.itemViews != null ? "获取成功" : "获取失败" }; } /// /// 查询扩缩招院校列表 /// /// /// [HttpPost] public async Task>> GetUniversityPlanPro([FromBody] UniversityProViewQuery request) { var result = new PageModel(); if (string.IsNullOrWhiteSpace(request.Location)) { return new MessageModel>() { msg = "Location字段必传参数", }; } if (request.Year <= 0) { return new MessageModel>() { msg = "Year字段必传参数", }; } var pagemodel = await _d_PlanMajorDescProServices.GetUniversityPlanPro(request); return new MessageModel>() { response = pagemodel, success = pagemodel.data.Any() ? true : false, msg = pagemodel.data.Any() ? "获取成功" : "获取失败" }; } /// /// 一键填报 /// /// /// [HttpGet] public async Task>> OneSubmitGo([FromQuery] OneSubmitGoRequest request) { if (string.IsNullOrWhiteSpace(request.Location)) { return new MessageModel>() { msg = "Location字段必传参数", }; } if (request.Year <= 0) { return new MessageModel>() { msg = "Year字段必传参数", }; } if (string.IsNullOrWhiteSpace(request.SubjectClaim)) { return new MessageModel>() { msg = "SubjectClaim字段必传参数", }; } if (string.IsNullOrWhiteSpace(request.BatchName)) { return new MessageModel>() { msg = "BatchName字段必传参数", }; } var response = await _d_PlanMajorDescServices.GetPlanMajorList(request); if (response.data == null || !response.data.Any() || response.dataCount <= 0) { return new MessageModel>() { msg = "获取失败", success = false, response = response }; } return new MessageModel>() { msg = "获取成功", success = true, response = response }; } /// /// 移动端 /// /// /// [HttpGet] public async Task> MAIGo([FromQuery] OneSubmitGoRequest request) { request.Scoure = "m"; var query = await OneSubmitGo(request); if (!query.success) { return new MessageModel() { 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(); 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 = new List() { 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 = JsonConvert.SerializeObject(c.VolunteerRemark) }).ToList(); itemIds = await _VolunteerTableDetailServices.Add(itemlist); } if (id > 0 && itemIds == vollunterrrequest.volunteerTableDetailViews.Count() && itemIds > 0) { _unitOfWork.CommitTran(); } else { _unitOfWork.RollbackTran(); return new MessageModel() { success = false, response = -1, msg = "无数据" }; } return new MessageModel() { success = id > 0, response = id, msg = "ok" }; } return new MessageModel() { success = false, response = -1, msg = "无数据" }; } /// /// AI智能填报 /// /// /// [HttpGet] public async Task>> AIGo([FromQuery] OneSubmitGoRequest request) { if (string.IsNullOrWhiteSpace(request.Location)) { return new MessageModel>() { msg = "Location字段必传参数", }; } if (request.Year <= 0) { return new MessageModel>() { msg = "Year字段必传参数", }; } if (string.IsNullOrWhiteSpace(request.SubjectClaim)) { return new MessageModel>() { msg = "SubjectClaim字段必传参数", }; } if (string.IsNullOrWhiteSpace(request.BatchName)) { return new MessageModel>() { msg = "BatchName字段必传参数", }; } var response = await _d_PlanMajorDescServices.GetAIGoList(request); if (response.data == null || !response.data.Any() || response.dataCount <= 0) { return new MessageModel>() { msg = "获取失败", success = false, response = response }; } return new MessageModel>() { msg = "获取成功", success = true, response = response }; } } }