|
@@ -9,6 +9,7 @@ using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
|
|
|
using TEAMModelOS.SDK.DI;
|
|
|
using TEAMModelOS.Service.Models;
|
|
|
using System.Text.Json;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.StringHelper;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers
|
|
|
{
|
|
@@ -51,14 +52,9 @@ namespace TEAMModelOS.Controllers
|
|
|
public async Task<BaseResponse> Find(JsonElement request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- Dictionary<string, object> dict = new Dictionary<string, object>();
|
|
|
- var emobj = request.EnumerateObject();
|
|
|
- while (emobj.MoveNext())
|
|
|
- {
|
|
|
- dict[emobj.Current.Name] = emobj.Current.Value;
|
|
|
- }
|
|
|
+
|
|
|
List<Course> data = new List<Course>();
|
|
|
- if (dict.Keys.Count > 0) {
|
|
|
+ if (StringHelper.getKeyCount(request) > 0) {
|
|
|
data = await _cosmos.FindByDict<Course>(request);
|
|
|
}
|
|
|
return builder.Data(data).Extend(new Dictionary<string, object> { { "count", data.Count } }).build();
|
|
@@ -210,20 +206,20 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("upsertPlan")]
|
|
|
- public async Task<BaseResponse> UpsertPlan(JosnRequest<CoursePlan> request) {
|
|
|
+ public async Task<BaseResponse> UpsertPlan(CoursePlan request) {
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- CoursePlan datas = await _cosmos.FindByIdPk<CoursePlan>(request.@params.id,request.@params.code);
|
|
|
+ CoursePlan datas = await _cosmos.FindByIdPk<CoursePlan>(request.id,request.code);
|
|
|
if (datas!=null) {
|
|
|
- request.@params.semesterCode = datas.semesterCode;
|
|
|
- request.@params.classes.ForEach(x => {
|
|
|
+ request.semesterCode = datas.semesterCode;
|
|
|
+ request.classes.ForEach(x => {
|
|
|
datas.classes.ForEach(m => {
|
|
|
if (m.classroomCode == x.classroomCode) {
|
|
|
x.courseTimes = m.courseTimes;
|
|
|
} });
|
|
|
});
|
|
|
- await _cosmos.Update(request.@params);
|
|
|
+ await _cosmos.Update(request);
|
|
|
}
|
|
|
- return builder.Data(request.@params).build();
|
|
|
+ return builder.Data(request).build();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -232,20 +228,20 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("findPlan")]
|
|
|
- public async Task<BaseResponse> FindPlan(JosnRequest<Dictionary<string, object>> request)
|
|
|
+ public async Task<BaseResponse> FindPlan(JsonElement request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
List<CoursePlan> data = new List<CoursePlan>();
|
|
|
- if (request.@params.Keys.Count > 0
|
|
|
+ if (StringHelper.getKeyCount(request) > 0
|
|
|
&&
|
|
|
//必须保证这几个参数之一有传递
|
|
|
- (request.@params.ContainsKey("id")|| request.@params.ContainsKey("code") ||
|
|
|
- request.@params.ContainsKey("classes[*].classroomCode"))
|
|
|
+ (request.TryGetProperty("id",out _)|| request.TryGetProperty("code",out _) ||
|
|
|
+ request.TryGetProperty("classes[*].classroomCode",out _))
|
|
|
)
|
|
|
{
|
|
|
- data = await _cosmos.FindByDict<CoursePlan>(request.@params);
|
|
|
+ data = await _cosmos.FindByDict<CoursePlan>(request);
|
|
|
if (data.IsNotEmpty()) {
|
|
|
- if (request.@params.TryGetValue("classes[*].classroomCode",out object classcode)) {
|
|
|
+ if (request.TryGetProperty("classes[*].classroomCode",out JsonElement classcode)) {
|
|
|
List<CoursePlan> coursePlans = new List<CoursePlan>();
|
|
|
data.ForEach(x => {
|
|
|
x.classes.ForEach(y => {
|
|
@@ -270,15 +266,15 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("findTeach")]
|
|
|
- public async Task<BaseResponse> FindTeach(JosnRequest<string> request)
|
|
|
+ public async Task<BaseResponse> FindTeach(string request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- List<CoursePlan> data= await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "code", request.@params } }, new List<string> { "id" });
|
|
|
+ List<CoursePlan> data= await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "code", request } }, new List<string> { "id" });
|
|
|
List<Course> courses = new List<Course>();
|
|
|
if (data.IsNotEmpty()) {
|
|
|
courses= await _cosmos.FindByDict<Course>(new Dictionary<string, object> { { "id", courses.Select(x => x.id).ToArray() } });
|
|
|
}
|
|
|
- List<Course> coursesp = await _cosmos.FindByDict<Course>(new Dictionary<string, object> { { "code", request.@params } });
|
|
|
+ List<Course> coursesp = await _cosmos.FindByDict<Course>(new Dictionary<string, object> { { "code", request } });
|
|
|
if (courses.IsNotEmpty())
|
|
|
{
|
|
|
//个人教室
|
|
@@ -304,20 +300,20 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("findTeachClass")]
|
|
|
- public async Task<BaseResponse> FindPlan(JosnRequest<string> request)
|
|
|
+ public async Task<BaseResponse> FindPlan(string request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
HashSet<string> data = new HashSet<string>();
|
|
|
List<dynamic> room = new List<dynamic>();
|
|
|
- if (!string.IsNullOrEmpty(request.@params))
|
|
|
+ if (!string.IsNullOrEmpty(request))
|
|
|
{
|
|
|
var prop = new List<string> { "classes" };
|
|
|
- var teachers= await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "code",request.@params} } , prop);
|
|
|
+ var teachers= await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "code",request} } , prop);
|
|
|
if (teachers.IsNotEmpty()) {
|
|
|
teachers.Select(x => x.classes).ToList().ForEach(x => { x.ForEach(y => { data.Add(y.classroomCode); }); });
|
|
|
|
|
|
}
|
|
|
- var assistant = await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "assistant[*]", request.@params } }, prop);
|
|
|
+ var assistant = await _cosmos.FindByDict<CoursePlan>(new Dictionary<string, object> { { "assistant[*]", request } }, prop);
|
|
|
if (assistant.IsNotEmpty()) {
|
|
|
assistant.Select(x => x.classes).ToList().ForEach(x => { x.ForEach(y => { data.Add(y.classroomCode); }); });
|
|
|
}
|
|
@@ -338,23 +334,24 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("deleteTime")]
|
|
|
- public async Task<BaseResponse> DeletePlan(JosnRequest<Dictionary<string,object>> request)
|
|
|
+ public async Task<BaseResponse> DeletePlan(JsonElement request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- if (request.@params.ContainsKey("id") && request.@params.ContainsKey("code") && request.@params.ContainsKey("classroomCode") && request.@params.ContainsKey("time") && request.@params.ContainsKey("day")) {
|
|
|
- CoursePlan coursePlan = await _cosmos.FindByIdPk<CoursePlan>(request.@params["id"].ToString(), request.@params["code"].ToString());
|
|
|
+ if (request.TryGetProperty("id",out JsonElement id) && request.TryGetProperty("code",out JsonElement code) && request.TryGetProperty("classroomCode",out JsonElement classroomCode)
|
|
|
+ && request.TryGetProperty("time",out JsonElement time) && request.TryGetProperty("day",out JsonElement day)) {
|
|
|
+ CoursePlan coursePlan = await _cosmos.FindByIdPk<CoursePlan>(id.ToString(), code.ToString());
|
|
|
List<CourseTime> courseTimes = new List<CourseTime>();
|
|
|
coursePlan.classes.ForEach(x=> {
|
|
|
- if (x.classroomCode == request.@params["classroomCode"].ToString()) {
|
|
|
+ if (x.classroomCode == classroomCode.ToString()) {
|
|
|
x.courseTimes.ForEach(y => {
|
|
|
- if (y.time == request.@params["time"].ToString() && y.day == request.@params["day"].ToString())
|
|
|
+ if (y.time == time.ToString() && y.day == day.ToString())
|
|
|
{
|
|
|
courseTimes.Add(y);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
- coursePlan.classes.ForEach(x => { if (x.classroomCode == request.@params["classroomCode"].ToString()) {
|
|
|
+ coursePlan.classes.ForEach(x => { if (x.classroomCode == classroomCode.ToString()) {
|
|
|
courseTimes.ForEach(y => { x.courseTimes.Remove(y); });
|
|
|
} });
|
|
|
await _cosmos.Update(coursePlan);
|
|
@@ -368,10 +365,10 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("deletePlan")]
|
|
|
- public async Task<BaseResponse> DeletePlan(JosnRequest<IdPk> request)
|
|
|
+ public async Task<BaseResponse> DeletePlan(IdPk request)
|
|
|
{
|
|
|
ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- IdPk idPk = await _cosmos.DeleteAsync<CoursePlan>(request.@params);
|
|
|
+ IdPk idPk = await _cosmos.DeleteAsync<CoursePlan>(request);
|
|
|
return builder.Data(idPk).build();
|
|
|
}
|
|
|
}
|