feat:PC端志愿表模块逻辑调整

develop
old易 2023-11-21 11:32:25 +08:00
parent 872f98768a
commit 1299126dd8
7 changed files with 756 additions and 4 deletions

View File

@ -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
{
/// <summary>
/// PC志愿表管理
/// </summary>
[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;
}
/// <summary>
/// Pc端查询我的志愿列表
/// </summary>
/// <param name="view"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<PageModel<VolunteerTableDtoView>>> Get([FromQuery] VolunteerTableRequestView view)
{
if (view.CustomerId <= 0)
{
return new MessageModel<PageModel<VolunteerTableDtoView>>()
{
msg = "CustomerId 为必传参数"
};
}
var response = new PageModel<VolunteerTableDtoView>();
Expression<Func<U_VolunteerTable, bool>> exp = Expressionable.Create<U_VolunteerTable>()
.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<PageModel<VolunteerTableDtoView>>()
{
msg = "获取成功",
success = true,
response = response
};
}
/// <summary>
/// Pc查询单个志愿表详情信息
/// </summary>
/// <param name="id">志愿表Id</param>
/// <returns></returns>
[HttpGet("{id}")]
public async Task<MessageModel<VolunteerTableDetailDtoView>> Get(int id = 0)
{
if (id <= 0)
{
return new MessageModel<VolunteerTableDetailDtoView>()
{
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<int>();
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<VolunteerTableDetailDtoView>()
{
msg = "获取成功",
success = true,
response = view
};
}
/// <summary>
/// PC志愿表新增
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<string>> Post([FromBody] VolunteerTableDtoView request)
{
var data = new MessageModel<string>();
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;
}
/// <summary>
/// Pc修改志愿表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPut]
public async Task<MessageModel<string>> Put([FromBody] VolunteerTableDtoView request)
{
var data = new MessageModel<string>();
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;
}
/// <summary>
/// Pc删除志愿表
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("{id}")]
public async Task<MessageModel<string>> Delete(int id = 0)
{
var data = new MessageModel<string>();
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<string>()
{
msg = "删除失败"
};
};
}
if (data.success)
{
data.msg = "删除成功";
data.response = detail?.Id.ObjToString();
}
}
return data;
}
}
}

View File

@ -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;

View File

@ -2442,6 +2442,21 @@
志愿表名称
</summary>
</member>
<member name="P:New_College.Model.Models.U_VolunteerTable.Type">
<summary>
志愿填报类型(智能填报|一键填报)
</summary>
</member>
<member name="P:New_College.Model.Models.U_VolunteerTable.SubjectClaim">
<summary>
选科科目
</summary>
</member>
<member name="P:New_College.Model.Models.U_VolunteerTable.Score">
<summary>
填报志愿选择成绩
</summary>
</member>
<member name="T:New_College.Model.Models.U_VolunteerTableDetail">
<summary>
志愿表详情
@ -6380,6 +6395,161 @@
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.CustomerId">
<summary>
用户ID
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.VolunteerTableName">
<summary>
志愿表名称
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.Type">
<summary>
志愿填报类型(智能填报|一键填报)
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.SubjectClaim">
<summary>
选科科目
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.Score">
<summary>
填报志愿选择成绩
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailDtoView.tableDetailItemsViews">
<summary>
志愿表详情列表
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailItemsView.UniversityId">
<summary>
院校Id
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailItemsView.UniversityName">
<summary>
院校名称
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailItemsView.UniversityCode">
<summary>
院校编码
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailItemsView._SYL">
<summary>
双一流
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailItemsView.planMajorItems">
<summary>
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.planCount">
<summary>
计划数
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.fee">
<summary>
学费
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.MajorCode">
<summary>
专业代码
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.MajorGroup">
<summary>
专业组
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.Major">
<summary>
专业名称
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.MajorRemark">
<summary>
专业备注
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.SubjectClam">
<summary>
选科组合
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.PlanItems">
<summary>
招生计划历年分数情况
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTablePlanMajorItem.PlanId">
<summary>
招生计划Id
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.VId">
<summary>
志愿表ID-新增不传
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.CustomerId">
<summary>
用户ID
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.VolunteerTableName">
<summary>
志愿表名称
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.Type">
<summary>
志愿填报类型(智能填报|一键填报)
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.SubjectClaim">
<summary>
选科科目
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.Score">
<summary>
填报志愿选择成绩
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDtoView.volunteerTableDetailViews">
<summary>
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailView.UniversityId">
<summary>
院校Id
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailView.UniversityName">
<summary>
院校名称
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailView.UniversityCode">
<summary>
院校编码
</summary>
</member>
<member name="P:New_College.Model.ViewModels.VolunteerTableDetailView.PlanMajorIds">
<summary>
招生计划Id列表逗号隔开
</summary>
</member>
<member name="P:New_College.Model.QualificationLineResponse.UId">
<summary>
院校Id

View File

@ -517,6 +517,46 @@
</summary>
<returns></returns>
</member>
<member name="T:New_College.Api.Controllers.Front.PcVolunteerController">
<summary>
PC志愿表管理
</summary>
</member>
<member name="M:New_College.Api.Controllers.Front.PcVolunteerController.Get(New_College.Model.ViewModels.VolunteerTableRequestView)">
<summary>
Pc端查询我的志愿列表
</summary>
<param name="view"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.PcVolunteerController.Get(System.Int32)">
<summary>
Pc查询单个志愿表详情信息
</summary>
<param name="id">志愿表Id</param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.PcVolunteerController.Post(New_College.Model.ViewModels.VolunteerTableDtoView)">
<summary>
PC志愿表新增
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.PcVolunteerController.Put(New_College.Model.ViewModels.VolunteerTableDtoView)">
<summary>
Pc修改志愿表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.PcVolunteerController.Delete(System.Int32)">
<summary>
Pc删除志愿表
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.RegionController.GetRegionList(New_College.Model.ViewModels.SysRegionQuery)">
<summary>
获取省市区

View File

@ -26,7 +26,7 @@
"Name": "New_College"
}
},
"urls": "http://*:8083", // IIS
"urls": "http://*:8082", // IIS
"AllowedHosts": "*",
"AppSettings": {
"RedisCachingAOP": {

View File

@ -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
/// 志愿表名称
/// </summary>
public string VolunteerTableName { get; set; }
/// <summary>
/// 志愿填报类型(智能填报|一键填报)
/// </summary>
[SugarColumn(IsNullable = true)]
public string Type { get; set; }
/// <summary>
/// 选科科目
/// </summary>
[SugarColumn(IsNullable = true)]
public string SubjectClaim { get; set; }
/// <summary>
///填报志愿选择成绩
/// </summary>
public float Score { get; set; }
}
}

View File

@ -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
{
/// <summary>
/// 用户ID
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 志愿表名称
/// </summary>
public string VolunteerTableName { get; set; }
/// <summary>
/// 志愿填报类型(智能填报|一键填报)
/// </summary>
public string Type { get; set; }
/// <summary>
/// 选科科目
/// </summary>
public string SubjectClaim { get; set; }
/// <summary>
///填报志愿选择成绩
/// </summary>
public float Score { get; set; }
/// <summary>
/// 志愿表详情列表
/// </summary>
public List<VolunteerTableDetailItemsView> tableDetailItemsViews { get; set; }
}
public class VolunteerTableDetailItemsView
{
/// <summary>
/// 院校Id
/// </summary>
public int UniversityId { get; set; }
/// <summary>
/// 院校名称
/// </summary>
public string UniversityName { get; set; }
/// <summary>
/// 院校编码
/// </summary>
public string UniversityCode { get; set; }
public string _985 { get; set; }
public string _211 { get; set; }
/// <summary>
/// 双一流
/// </summary>
public string _SYL { get; set; }
/// <summary>
///
/// </summary>
public List<VolunteerTablePlanMajorItem> planMajorItems { get; set; }
}
public class VolunteerTablePlanMajorItem
{
/// <summary>
/// 计划数
/// </summary>
public int planCount { get; set; }
/// <summary>
/// 学费
/// </summary>
public string fee { get; set; }
/// <summary>
/// 专业代码
/// </summary>
public string MajorCode { get; set; }
/// <summary>
/// 专业组
/// </summary>
public string MajorGroup { get; set; }
/// <summary>
/// 专业名称
/// </summary>
public string Major { get; set; }
/// <summary>
/// 专业备注
/// </summary>
public string MajorRemark { get; set; }
/// <summary>
/// 选科组合
/// </summary>
public string SubjectClam { get; set; }
/// <summary>
///招生计划历年分数情况
/// </summary>
public List<PlanItem> PlanItems { get; set; }
/// <summary>
/// 招生计划Id
/// </summary>
public int PlanId { get; set; }
}
public class VolunteerTableRequestView : BasePageRequest
{
public int CustomerId { get; set; }
}
public class VolunteerTableDtoView
{
/// <summary>
/// 志愿表ID-新增不传
/// </summary>
public int VId { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 志愿表名称
/// </summary>
public string VolunteerTableName { get; set; }
/// <summary>
/// 志愿填报类型(智能填报|一键填报)
/// </summary>
public string Type { get; set; }
/// <summary>
/// 选科科目
/// </summary>
public string SubjectClaim { get; set; }
/// <summary>
///填报志愿选择成绩
/// </summary>
public float Score { get; set; }
/// <summary>
///
/// </summary>
public List<VolunteerTableDetailView> volunteerTableDetailViews { get; set; }
}
public class VolunteerTableDetailView
{
/// <summary>
/// 院校Id
/// </summary>
public int UniversityId { get; set; }
/// <summary>
/// 院校名称
/// </summary>
public string UniversityName { get; set; }
/// <summary>
/// 院校编码
/// </summary>
public string UniversityCode { get; set; }
/// <summary>
/// 招生计划Id列表逗号隔开
/// </summary>
public string PlanMajorIds { get; set; }
}
}