课程管理 课程场景/课件名称/课程负责人 新增可多选查询,查询优化

master
xiaochanghai 11 months ago
parent 6d898d9695
commit 71eecae0bd
  1. 2
      Tiobon.Core.Common/Attribute/QueryFilter.cs
  2. 19
      Tiobon.Core.Services/BASE/BaseServices.cs
  3. 39
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  4. 4
      Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs
  5. 2
      Tiobon.Core.Services/Ghre/Ghre_SchoolServices.cs

@ -101,7 +101,7 @@ public class QueryBody
}
public class JsonParam
{
public string columnValue { get; set; }
public object columnValue { get; set; }
public string operationKey { get; set; }
public string token { get; set; }

@ -3,7 +3,6 @@ using System.Dynamic;
using System.Linq.Expressions;
using AgileObjects.AgileMapper;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tiobon.Core.Common;
@ -764,7 +763,7 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
continue;
if (!string.IsNullOrWhiteSpace(value))
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
var jsonParam = JsonHelper.JsonToObj<JsonParam>(value);
switch (jsonParam.operationKey)
{
@ -798,6 +797,22 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
case "Less"://小于
conditions += $" AND {name} <'{jsonParam.columnValue}'";
break;
case "EqualAny"://
if (jsonParam.columnValue != null)
{
var ids = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
conditions += $" AND {name} IN ({string.Join(",", ids.Select(id => "'" + id + "'"))})";
}
break;
case "NotEqualAny"://
if (jsonParam.columnValue != null)
{
var ids = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
conditions += $" AND {name} NOT IN ({string.Join(",", ids.Select(id => "'" + id + "'"))})";
}
break;
default:
break;
}

@ -38,15 +38,16 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
RefAsync<int> totalCount = 0;
string sql = @"SELECT *
FROM (SELECT A.*,
D.SceneName CourseSceneName,
E.CourseWareName,
F.StaffName ManagerStaffName,
D.SceneName + ' (' + D.SceneNo + ')' CourseSceneName,
E.CourseWareName + ' (' + E.CourseWareNo + ')' CourseWareName,
F.StaffName + ' (' + F.StaffNo + ')' ManagerStaffName,
G.UserName CreateName,
H.UserName UpdateName,
CASE A.InOrOut
WHEN 'In' THEN F.StaffName
WHEN 'Out' THEN J.TeacherName
END TeacherName, ISNULL(A.UpdateTime, A.CreateTime) CreateTime1
END TeacherName,
ISNULL (A.UpdateTime, A.CreateTime) CreateTime1
FROM Ghre_Course A
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
@ -107,6 +108,34 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
case "NotEqual":
conditions += $" AND {name} !='{jsonParam.columnValue}'";
break;
case "GreaterOrEqual"://大于等于
conditions += $" AND {name} >='{jsonParam.columnValue}'";
break;
case "Greater"://大于
conditions += $" AND {name} >'{jsonParam.columnValue}'";
break;
case "LessOrEqual"://小于等于
conditions += $" AND {name} <='{jsonParam.columnValue}'";
break;
case "Less"://小于
conditions += $" AND {name} <'{jsonParam.columnValue}'";
break;
case "EqualAny"://
if (jsonParam.columnValue != null)
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
conditions += $" AND {name} IN ({string.Join(",", ids1.Select(id => "'" + id + "'"))})";
}
break;
case "NotEqualAny"://
if (jsonParam.columnValue != null)
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
conditions += $" AND ({name} NOT IN ({string.Join(",", ids1.Select(id => "'" + id + "'"))}) OR {name} IS NULL)";
}
break;
default:
break;
}
@ -139,7 +168,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
x.IsOPenLabel = x.IsOPen == true ? "是" : "否";
var courseClass = classs.Where(a => x.CourseClassId.Contains(a.Id.ToString())).ToList();
x.CourseClassName = string.Join(",", courseClass.Select(a => a.ClassName));
x.CourseClassName = string.Join(",", courseClass.Select(a => a.ClassName + " (" + a.ClassNo + ")"));
});
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);

@ -74,11 +74,11 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt
switch (jsonParam.operationKey)
{
case "Include":
var ids = await Db.Queryable<Ghre_Course>().Where(x => x.CourseName.Contains(jsonParam.columnValue)).Select(x => x.Id).ToListAsync();
var ids = await Db.Queryable<Ghre_Course>().Where(x => x.CourseName.Contains(jsonParam.columnValue.ToString())).Select(x => x.Id).ToListAsync();
query = query.Where(x => x.CourseId != null && ids.Contains(x.CourseId.Value));
break;
case "NotInclude":
var ids1 = await Db.Queryable<Ghre_Course>().Where(x => x.CourseName.Contains(jsonParam.columnValue)).Select(x => x.Id).ToListAsync();
var ids1 = await Db.Queryable<Ghre_Course>().Where(x => x.CourseName.Contains(jsonParam.columnValue.ToString())).Select(x => x.Id).ToListAsync();
query = query.Where(x => x.CourseId != null && !ids1.Contains(x.CourseId.Value));
break;
case "IsNull":

@ -42,7 +42,7 @@ public class Ghre_SchoolServices : BaseServices<Ghre_School, Ghre_SchoolDto, Ins
if (name == "SchoolNo1")
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
schoolNo1 = jsonParam?.columnValue;
schoolNo1 = jsonParam?.columnValue?.ToString();
}
}
var condition = string.Empty;

Loading…
Cancel
Save