369 lines
14 KiB
C#
369 lines
14 KiB
C#
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]")]
|
|
[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("GetPage")]
|
|
public async Task<MessageModel<PageModel<VolunteerTableDtoView>>> GetPage([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, " CreateTime desc");
|
|
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,
|
|
BatchName = c.BatchName,
|
|
CreateTime = c.CreateTime,
|
|
ModifyTime = c.ModifyTime,
|
|
CP = "靠谱99%"
|
|
}).ToList();
|
|
response.pageCount = pagemodel.pageCount;
|
|
response.page = pagemodel.page;
|
|
response.PageSize = view.PageSize;
|
|
response.dataCount = pagemodel.dataCount;
|
|
return new MessageModel<PageModel<VolunteerTableDtoView>>()
|
|
{
|
|
msg = "获取成功",
|
|
success = true,
|
|
response = response
|
|
};
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Pc查询单个志愿表详情信息
|
|
/// </summary>
|
|
/// <param name="id">志愿表Id</param>
|
|
/// <returns></returns>
|
|
[HttpGet("Get")]
|
|
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));//
|
|
|
|
var location = planmajordesc.FirstOrDefault().Location;
|
|
var majorlist = planmajordesc.Select(c => c.Major).ToList();
|
|
var universityname = planmajordesc.Select(c => c.UniversityName).ToList();
|
|
var planmajorcomplist = await _planMajorDescServices.Query(c => c.Location == location && SqlFunc.ContainsArray(majorlist, c.Major) && SqlFunc.ContainsArray(universityname, c.UniversityName));//
|
|
|
|
view.VolunteerTableName = query.VolunteerTableName;
|
|
view.SubjectClaim = query.SubjectClaim;
|
|
view.CustomerId = query.CustomerId;
|
|
view.Score = query.Score;
|
|
view.Type = query.Type;
|
|
view.BatchName = query.BatchName;
|
|
view.CreateTime = query.CreateTime;
|
|
view.ModifyTime = query.ModifyTime;
|
|
var tableDetailItemsViews = new List<VolunteerTableDetailItemsView>();
|
|
|
|
items.ForEach(s =>
|
|
{
|
|
var planids = s.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(ss => int.Parse(ss)).ToList();
|
|
var uitem = new VolunteerTableDetailItemsView()
|
|
{
|
|
// Sort = s.Sort,
|
|
planMajorItems = planmajordesc.Where(ww => planids.Contains(ww.Id)).Select(c => new VolunteerTablePlanMajorItem()
|
|
{
|
|
fee = c.Free,
|
|
Major = c.Major,
|
|
MajorCode = c.MajorCode,
|
|
MajorGroup = c.MajorGroup,
|
|
MajorRemark = c.Remark,
|
|
planCount = c.PlanCount,
|
|
PlanId = c.Id,
|
|
Sort = s.OrderSort,
|
|
SubjectClam = c.SelectSubject,
|
|
PlanItems = planmajorcomplist.Where(ee => ee.UId == s.UniversityId && ee.Major == c.Major).Select(tt => new PlanItem()
|
|
{
|
|
Count = tt.PlanCount,
|
|
PlanCount = tt.PlanCount,
|
|
RankLine = tt.LowScoreRank,
|
|
Scoreline = tt.LowScore,
|
|
Year = tt.Years.ToString()
|
|
}).ToList()
|
|
}).ToList(),
|
|
UniversityId = s.UniversityId,
|
|
UniversityName = s.UniversityName,
|
|
UniversityCode = s.UniversityCode,
|
|
Sort= s.OrderSort,
|
|
_211 = planmajordesc.Where(e => e.UId == s.UniversityId).FirstOrDefault()._211,
|
|
_985 = planmajordesc.Where(e => e.UId == s.UniversityId).FirstOrDefault()._985,
|
|
_SYL = planmajordesc.Where(e => e.UId == s.UniversityId).FirstOrDefault()._SYL,
|
|
};
|
|
|
|
tableDetailItemsViews.Add(uitem);
|
|
});
|
|
|
|
view.tableDetailItemsViews=tableDetailItemsViews;
|
|
return new MessageModel<VolunteerTableDetailDtoView>()
|
|
{
|
|
msg = "获取成功",
|
|
success = true,
|
|
response = view
|
|
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// PC志愿表新增
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("Post")]
|
|
public async Task<MessageModel<string>> Post([FromBody] VolunteerTableDtoView request)
|
|
{
|
|
if (request.CustomerId <= 0)
|
|
{
|
|
return new MessageModel<string>()
|
|
{
|
|
msg = "用户Id"
|
|
};
|
|
}
|
|
|
|
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,
|
|
BatchName = request.BatchName,
|
|
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 = c.Sort,
|
|
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("Put")]
|
|
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(new U_VolunteerTable()
|
|
{
|
|
BatchName = request.BatchName,
|
|
ModifyTime = DateTime.Now,
|
|
CustomerId = request.CustomerId,
|
|
Id = request.VId,
|
|
Score = request.Score,
|
|
SubjectClaim = request.SubjectClaim,
|
|
Type = request.Type,
|
|
VolunteerTableName = request.VolunteerTableName
|
|
});
|
|
//删掉之前的志愿表,更新新的匹配进来
|
|
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 = c.Sort,
|
|
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("Delete/{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;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|