|
|
|
@ -1,5 +1,4 @@ |
|
|
|
|
using NPOI.SS.UserModel; |
|
|
|
|
using Tiobon.Core.IServices; |
|
|
|
|
using static Tiobon.Core.Model.Consts; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
@ -1314,6 +1313,108 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 查询课程、课程场景 |
|
|
|
|
public async Task<ServicePageResult<CourseAndScene>> QueryCourseAndScene(QueryBody filter) |
|
|
|
|
{ |
|
|
|
|
RefAsync<int> totalCount = 0; |
|
|
|
|
string sql = @"SELECT Id,
|
|
|
|
|
CourseNo, |
|
|
|
|
CourseName, |
|
|
|
|
Type from Ghre_CourseScene_V A";
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(filter.orderBy)) |
|
|
|
|
filter.orderBy = "CourseNo ASC"; |
|
|
|
|
|
|
|
|
|
string conditions = " WHERE 1=1"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (filter.jsonParam != null) |
|
|
|
|
foreach (JProperty jProperty in filter.jsonParam.Properties()) |
|
|
|
|
{ |
|
|
|
|
var name = jProperty.Name; |
|
|
|
|
var value = jProperty.Value.ToString(); |
|
|
|
|
if (name == "page" || name == "pageSize") |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(value)) |
|
|
|
|
{ |
|
|
|
|
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value); |
|
|
|
|
|
|
|
|
|
if (name == "CourseNoOrName") |
|
|
|
|
{ |
|
|
|
|
conditions += $" AND ( CourseNo LIKE '%{jsonParam.columnValue}%' OR CourseName LIKE '%{jsonParam.columnValue}%')"; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (jsonParam.operationKey) |
|
|
|
|
{ |
|
|
|
|
case "Include": |
|
|
|
|
conditions += $" AND {name} LIKE '%{jsonParam.columnValue}%'"; |
|
|
|
|
break; |
|
|
|
|
case "NotInclude": |
|
|
|
|
conditions += $" AND {name} NOT LIKE '%{jsonParam.columnValue}%'"; |
|
|
|
|
break; |
|
|
|
|
case "IsNull": |
|
|
|
|
conditions += $" AND {name} IS NULL"; |
|
|
|
|
break; |
|
|
|
|
case "NotNull": |
|
|
|
|
conditions += $" AND {name} IS NOT NULL"; |
|
|
|
|
break; |
|
|
|
|
case "Equal": |
|
|
|
|
conditions += $" AND {name} ='{jsonParam.columnValue}'"; |
|
|
|
|
break; |
|
|
|
|
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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (filter.pageSize == 0) |
|
|
|
|
filter.pageSize = 10000; |
|
|
|
|
sql += conditions; |
|
|
|
|
|
|
|
|
|
var sql1 = GetQueryString(sql, filter.pageNum, filter.pageSize, filter.orderBy); |
|
|
|
|
|
|
|
|
|
var data = DbAccess.QueryList<CourseAndScene>(sql1); |
|
|
|
|
|
|
|
|
|
totalCount = await Db.Ado.GetIntAsync("SELECT COUNT(0) from Ghre_CourseScene_V A WHERE 1=1"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new ServicePageResult<CourseAndScene>(filter.pageNum, totalCount, filter.pageSize, data); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 课程统计 |
|
|
|
|
/// <summary> |
|
|
|
|
/// 课程统计 |
|
|
|
|