From 1299126dd88520ce6ad96a69428531872809812c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?old=E6=98=93?= <156663459@qq.com> Date: Tue, 21 Nov 2023 11:32:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:PC=E7=AB=AF=E5=BF=97=E6=84=BF=E8=A1=A8?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Front/PcVolunteerController.cs | 316 ++++++++++++++++++ .../Controllers/Front/VolunteerController.cs | 5 +- New_College.Api/New_College.Model.xml | 170 ++++++++++ New_College.Api/New_College.xml | 40 +++ New_College.Api/appsettings.json | 2 +- New_College.Model/Models/U_VolunteerTable.cs | 23 +- .../ViewModels/VolunteerTableDtoView.cs | 204 +++++++++++ 7 files changed, 756 insertions(+), 4 deletions(-) create mode 100644 New_College.Api/Controllers/Front/PcVolunteerController.cs create mode 100644 New_College.Model/ViewModels/VolunteerTableDtoView.cs diff --git a/New_College.Api/Controllers/Front/PcVolunteerController.cs b/New_College.Api/Controllers/Front/PcVolunteerController.cs new file mode 100644 index 0000000..8b95b88 --- /dev/null +++ b/New_College.Api/Controllers/Front/PcVolunteerController.cs @@ -0,0 +1,316 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using New_College.Model; +using New_College.Model.ViewModels; +using New_College.IServices; +using New_College.Model.Models; +using New_College.Services; +using System.Linq.Expressions; +using New_College.IRepository.UnitOfWork; +using New_College.Repository.UnitOfWork; +using SqlSugar; +namespace New_College.Api.Controllers.Front +{ + + + /// + /// PC志愿表管理 + /// + [Route("api/front/[controller]/[action]")] + [ApiController] + public class PcVolunteerController : ControllerBase + { + private readonly IU_VolunteerTableServices _VolunteerTableServices; + private readonly IU_VolunteerTableDetailServices _VolunteerTableDetailServices; + private readonly IUnitOfWork _unitOfWork; + private readonly ID_PlanMajorDescServices _planMajorDescServices; + public PcVolunteerController(IU_VolunteerTableServices volunteerTableServices, IU_VolunteerTableDetailServices volunteerTableDetailServices, IUnitOfWork unitOfWork, ID_PlanMajorDescServices planMajorDescServices) + { + _VolunteerTableServices = volunteerTableServices; + _VolunteerTableDetailServices = volunteerTableDetailServices; + _unitOfWork = unitOfWork; + _planMajorDescServices = planMajorDescServices; + } + + + /// + /// Pc端查询我的志愿列表 + /// + /// + /// + [HttpGet] + public async Task>> Get([FromQuery] VolunteerTableRequestView view) + { + if (view.CustomerId <= 0) + { + return new MessageModel>() + { + msg = "CustomerId 为必传参数" + }; + } + + var response = new PageModel(); + Expression> exp = Expressionable.Create() + .And(c => c.IsDelete == false) + .And(c => c.CustomerId == view.CustomerId) + .ToExpression(); + var pagemodel = await _VolunteerTableServices.QueryPage(exp, view.PageIndex, view.PageSize); + response.data = pagemodel.data.Select(c => new VolunteerTableDtoView() + { + CustomerId = c.CustomerId, + Score = c.Score, + SubjectClaim = c.SubjectClaim, + Type = c.Type, + VId = c.Id, + VolunteerTableName = c.VolunteerTableName + }).ToList(); + response.pageCount = pagemodel.pageCount; + response.page = pagemodel.page; + response.PageSize = view.PageSize; + return new MessageModel>() + { + msg = "获取成功", + success = true, + response = response + }; + + } + + + /// + /// Pc查询单个志愿表详情信息 + /// + /// 志愿表Id + /// + [HttpGet("{id}")] + public async Task> Get(int id = 0) + { + + if (id <= 0) + { + return new MessageModel() + { + msg = "id 为必传参数" + }; + } + + var view = new VolunteerTableDetailDtoView(); + var query = await _VolunteerTableServices.QueryById(id); + var items = await _VolunteerTableDetailServices.Query(c => c.VolunteerTableId == id); + var PlanMajorIds = new List(); + foreach (var item in items) + { + var ids = item.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(c => int.Parse(c)).ToList(); + PlanMajorIds.AddRange(ids); + } + var planmajordesc = await _planMajorDescServices.Query(c => SqlFunc.ContainsArray(PlanMajorIds, c.Id));// + + view.VolunteerTableName = query.VolunteerTableName; + view.SubjectClaim = query.SubjectClaim; + view.CustomerId = query.CustomerId; + view.Score = query.Score; + view.Type = query.Type; + view.tableDetailItemsViews = items.Select(c => new VolunteerTableDetailItemsView() + { + UniversityId = c.UniversityId, + UniversityName = c.UniversityName, + UniversityCode = c.UniversityCode, + _211 = planmajordesc.Where(e => e.UId == c.UniversityId).FirstOrDefault()._211, + _985 = planmajordesc.Where(e => e.UId == c.UniversityId).FirstOrDefault()._985, + _SYL = planmajordesc.Where(e => e.UId == c.UniversityId).FirstOrDefault()._SYL, + planMajorItems = planmajordesc.Select(s => new VolunteerTablePlanMajorItem() + { + fee = s.Free, + Major = s.Major, + MajorCode = s.MajorCode, + MajorGroup = s.MajorGroup, + MajorRemark = s.Remark, + planCount = s.PlanCount, + PlanId = s.Id, + SubjectClam = s.SelectSubject, + // PlanItems= s.PlanItems + }).ToList() + }).ToList(); + + return new MessageModel() + { + msg = "获取成功", + success = true, + response = view + + }; + } + + + + + /// + /// PC志愿表新增 + /// + /// + /// + [HttpPost] + public async Task> Post([FromBody] VolunteerTableDtoView request) + { + var data = new MessageModel(); + int ordersort = 0; + if (string.IsNullOrWhiteSpace(request.VolunteerTableName)) + { + var vol = (await _VolunteerTableServices.Query(c => c.CustomerId == request.CustomerId)); + if (vol.Any()) + { + request.VolunteerTableName = "我的志愿表" + vol.FirstOrDefault().Id + 1; + ordersort = vol.FirstOrDefault().Id + 1; + } + else + { + request.VolunteerTableName = "我的志愿表01"; + ordersort = 1; + } + } + _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 = request.Type, + Score = request.Score, + VolunteerTableName = request.VolunteerTableName, + }); + + int itemIds = 0; + if (id > 0) + { + var itemlist = request.volunteerTableDetailViews.Select(c => new U_VolunteerTableDetail() + { + CreateTime = DateTime.Now, + IsDelete = false, + ModifyTime = DateTime.Now, + OrderSort = 0, + PlanMajorIds = c.PlanMajorIds, + UniversityCode = c.UniversityCode, + UniversityId = c.UniversityId, + UniversityName = c.UniversityName, + VolunteerTableId = id, + }).ToList(); + itemIds = await _VolunteerTableDetailServices.Add(itemlist); + } + if (id > 0 && itemIds == request.volunteerTableDetailViews.Count() && itemIds > 0) + { + _unitOfWork.BeginTran(); + } + else + { + _unitOfWork.RollbackTran(); + } + data.success = id > 0; + + if (data.success) + { + data.response = id.ObjToString(); + data.msg = "添加成功"; + } + return data; + } + + + /// + /// Pc修改志愿表 + /// + /// + /// + [HttpPut] + public async Task> Put([FromBody] VolunteerTableDtoView request) + { + var data = new MessageModel(); + if (request.VId > 0) + { + _unitOfWork.BeginTran(); + data.success = await _VolunteerTableServices.Update(request); + //删掉之前的志愿表,更新新的匹配进来 + var itemids = (await _VolunteerTableDetailServices.Query(c => c.VolunteerTableId == request.VId)).Select(c => (object)c.Id).ToArray(); + var status = await _VolunteerTableDetailServices.DeleteByIds(itemids); + var itemlist = request.volunteerTableDetailViews.Select(c => new U_VolunteerTableDetail() + { + CreateTime = DateTime.Now, + IsDelete = false, + ModifyTime = DateTime.Now, + OrderSort = 0, + PlanMajorIds = c.PlanMajorIds, + UniversityCode = c.UniversityCode, + UniversityId = c.UniversityId, + UniversityName = c.UniversityName, + VolunteerTableId = request.VId, + }).ToList(); + var itemIds = await _VolunteerTableDetailServices.Add(itemlist); + if (status && itemIds > 0 && data.success) + { + _unitOfWork.CommitTran(); + data.msg = "更新成功"; + data.response = request?.VId.ObjToString(); + } + else + { + _unitOfWork.RollbackTran(); + } + } + return data; + } + + + /// + /// Pc删除志愿表 + /// + /// + /// + [HttpDelete("{id}")] + public async Task> Delete(int id = 0) + { + var data = new MessageModel(); + if (id > 0) + { + var detail = await _VolunteerTableServices.QueryById(id); + detail.IsDelete = true; + if (detail != null) + { + _unitOfWork.BeginTran(); + data.success = await _VolunteerTableServices.Update(detail); + var itemids = (await _VolunteerTableDetailServices.Query(c => c.VolunteerTableId == id)).Select(c => (object)c.Id).ToArray(); + var status = await _VolunteerTableDetailServices.DeleteByIds(itemids); + if (status && data.success) + { + _unitOfWork.CommitTran(); + } + else + { + _unitOfWork.RollbackTran(); + return new MessageModel() + { + msg = "删除失败" + }; + }; + } + if (data.success) + { + data.msg = "删除成功"; + data.response = detail?.Id.ObjToString(); + } + } + return data; + } + + + + + + + } +} diff --git a/New_College.Api/Controllers/Front/VolunteerController.cs b/New_College.Api/Controllers/Front/VolunteerController.cs index e63eebd..9ba7739 100644 --- a/New_College.Api/Controllers/Front/VolunteerController.cs +++ b/New_College.Api/Controllers/Front/VolunteerController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc; using New_College.Model; using New_College.Model.ViewModels; using New_College.IServices; +using New_College.IRepository.UnitOfWork; namespace New_College.Api.Controllers.Front { @@ -16,8 +17,8 @@ namespace New_College.Api.Controllers.Front { private readonly IT_EnrollmentPlanedescServices t_EnrollmentPlanedescServices; private readonly ID_MajorClassServices d_MajorClassServices; - public VolunteerController(IT_EnrollmentPlanedescServices IT_EnrollmentPlanedescServices - , ID_MajorClassServices ID_MajorClassServices) + + public VolunteerController(IT_EnrollmentPlanedescServices IT_EnrollmentPlanedescServices, ID_MajorClassServices ID_MajorClassServices) { t_EnrollmentPlanedescServices = IT_EnrollmentPlanedescServices; d_MajorClassServices = ID_MajorClassServices; diff --git a/New_College.Api/New_College.Model.xml b/New_College.Api/New_College.Model.xml index 73f84ce..d4500a6 100644 --- a/New_College.Api/New_College.Model.xml +++ b/New_College.Api/New_College.Model.xml @@ -2442,6 +2442,21 @@ 志愿表名称 + + + 志愿填报类型(智能填报|一键填报) + + + + + 选科科目 + + + + + 填报志愿选择成绩 + + 志愿表详情 @@ -6380,6 +6395,161 @@ + + + 用户ID + + + + + 志愿表名称 + + + + + 志愿填报类型(智能填报|一键填报) + + + + + 选科科目 + + + + + 填报志愿选择成绩 + + + + + 志愿表详情列表 + + + + + 院校Id + + + + + 院校名称 + + + + + 院校编码 + + + + + 双一流 + + + + + + + + + + 计划数 + + + + + 学费 + + + + + 专业代码 + + + + + 专业组 + + + + + 专业名称 + + + + + 专业备注 + + + + + 选科组合 + + + + + 招生计划历年分数情况 + + + + + 招生计划Id + + + + + 志愿表ID-新增不传 + + + + + 用户ID + + + + + 志愿表名称 + + + + + 志愿填报类型(智能填报|一键填报) + + + + + 选科科目 + + + + + 填报志愿选择成绩 + + + + + + + + + + 院校Id + + + + + 院校名称 + + + + + 院校编码 + + + + + 招生计划Id列表逗号隔开 + + 院校Id diff --git a/New_College.Api/New_College.xml b/New_College.Api/New_College.xml index 2fd051b..85e0c34 100644 --- a/New_College.Api/New_College.xml +++ b/New_College.Api/New_College.xml @@ -517,6 +517,46 @@ + + + PC志愿表管理 + + + + + Pc端查询我的志愿列表 + + + + + + + Pc查询单个志愿表详情信息 + + 志愿表Id + + + + + PC志愿表新增 + + + + + + + Pc修改志愿表 + + + + + + + Pc删除志愿表 + + + + 获取省市区 diff --git a/New_College.Api/appsettings.json b/New_College.Api/appsettings.json index 37c2ef4..5a5fb8d 100644 --- a/New_College.Api/appsettings.json +++ b/New_College.Api/appsettings.json @@ -26,7 +26,7 @@ "Name": "New_College" } }, - "urls": "http://*:8083", // IIS 部署,注释掉 + "urls": "http://*:8082", // IIS 部署,注释掉 "AllowedHosts": "*", "AppSettings": { "RedisCachingAOP": { diff --git a/New_College.Model/Models/U_VolunteerTable.cs b/New_College.Model/Models/U_VolunteerTable.cs index d877ff1..54a970e 100644 --- a/New_College.Model/Models/U_VolunteerTable.cs +++ b/New_College.Model/Models/U_VolunteerTable.cs @@ -1,4 +1,5 @@ -using System; +using SqlSugar; +using System; using System.Collections.Generic; using System.Text; @@ -18,5 +19,25 @@ namespace New_College.Model.Models /// 志愿表名称 /// public string VolunteerTableName { get; set; } + + + /// + /// 志愿填报类型(智能填报|一键填报) + /// + [SugarColumn(IsNullable = true)] + public string Type { get; set; } + + /// + /// 选科科目 + /// + [SugarColumn(IsNullable = true)] + public string SubjectClaim { get; set; } + + /// + ///填报志愿选择成绩 + /// + public float Score { get; set; } + + } } diff --git a/New_College.Model/ViewModels/VolunteerTableDtoView.cs b/New_College.Model/ViewModels/VolunteerTableDtoView.cs new file mode 100644 index 0000000..45b2c23 --- /dev/null +++ b/New_College.Model/ViewModels/VolunteerTableDtoView.cs @@ -0,0 +1,204 @@ +using New_College.Model.Models; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace New_College.Model.ViewModels +{ + + + public class VolunteerTableDetailDtoView + { + + /// + /// 用户ID + /// + public int CustomerId { get; set; } + + /// + /// 志愿表名称 + /// + public string VolunteerTableName { get; set; } + + + /// + /// 志愿填报类型(智能填报|一键填报) + /// + public string Type { get; set; } + + /// + /// 选科科目 + /// + public string SubjectClaim { get; set; } + + /// + ///填报志愿选择成绩 + /// + public float Score { get; set; } + + /// + /// 志愿表详情列表 + /// + public List tableDetailItemsViews { get; set; } + + } + + public class VolunteerTableDetailItemsView + { + /// + /// 院校Id + /// + public int UniversityId { get; set; } + + /// + /// 院校名称 + /// + public string UniversityName { get; set; } + + /// + /// 院校编码 + /// + public string UniversityCode { get; set; } + + + public string _985 { get; set; } + + + public string _211 { get; set; } + + /// + /// 双一流 + /// + public string _SYL { get; set; } + + /// + /// + /// + public List planMajorItems { get; set; } + } + + + public class VolunteerTablePlanMajorItem + { + /// + /// 计划数 + /// + public int planCount { get; set; } + + /// + /// 学费 + /// + public string fee { get; set; } + + + /// + /// 专业代码 + /// + public string MajorCode { get; set; } + /// + /// 专业组 + /// + public string MajorGroup { get; set; } + /// + /// 专业名称 + /// + public string Major { get; set; } + + /// + /// 专业备注 + /// + public string MajorRemark { get; set; } + + /// + /// 选科组合 + /// + public string SubjectClam { get; set; } + + /// + ///招生计划历年分数情况 + /// + public List PlanItems { get; set; } + + /// + /// 招生计划Id + /// + public int PlanId { get; set; } + + } + + public class VolunteerTableRequestView : BasePageRequest + { + public int CustomerId { get; set; } + + } + + public class VolunteerTableDtoView + { + /// + /// 志愿表ID-新增不传 + /// + public int VId { get; set; } + /// + /// 用户ID + /// + public int CustomerId { get; set; } + + /// + /// 志愿表名称 + /// + public string VolunteerTableName { get; set; } + + + /// + /// 志愿填报类型(智能填报|一键填报) + /// + public string Type { get; set; } + + /// + /// 选科科目 + /// + public string SubjectClaim { get; set; } + + /// + ///填报志愿选择成绩 + /// + public float Score { get; set; } + + /// + /// + /// + public List volunteerTableDetailViews { get; set; } + + } + + + + + public class VolunteerTableDetailView + { + /// + /// 院校Id + /// + public int UniversityId { get; set; } + + /// + /// 院校名称 + /// + public string UniversityName { get; set; } + + /// + /// 院校编码 + /// + public string UniversityCode { get; set; } + + /// + /// 招生计划Id列表逗号隔开 + /// + public string PlanMajorIds { get; set; } + } + + +}