|
|
|
@ -11,6 +11,12 @@ using SqlSugar; |
|
|
|
|
using Newtonsoft.Json; |
|
|
|
|
using MySqlX.XDevAPI.Common; |
|
|
|
|
using System.Data; |
|
|
|
|
using System.Dynamic; |
|
|
|
|
using Tiobon.Core.Common.DB.Dapper.Extensions; |
|
|
|
|
using AgileObjects.AgileMapper; |
|
|
|
|
using Microsoft.AspNetCore.Http; |
|
|
|
|
using Tiobon.Core.Common.UserManager; |
|
|
|
|
using Tiobon.Core.Common.Helper; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
@ -223,7 +229,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins |
|
|
|
|
return ServiceResult<int>.OprateSuccess("查询成功!", id); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
public async Task<ServiceResult<CommonSelect>> QueryTeacher(long schoolId) |
|
|
|
|
public async Task<ServiceResult<CommonSelect>> QueryTeacher(long? linkId) |
|
|
|
|
{ |
|
|
|
|
var result = new CommonSelect(); |
|
|
|
|
JArray TableColumn = new JArray(); |
|
|
|
@ -246,7 +252,10 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins |
|
|
|
|
]; |
|
|
|
|
TableColumn.Add(searchItem); |
|
|
|
|
|
|
|
|
|
sql = $"SELECT Id, TeacherNo , TeacherName FROM Ghre_Teacher WHERE IsEnable=1 AND SchoolId ='{schoolId}'"; |
|
|
|
|
sql = "SELECT Id, TeacherNo , TeacherName FROM Ghre_Teacher WHERE IsEnable=1 "; |
|
|
|
|
|
|
|
|
|
if (linkId != null) |
|
|
|
|
sql += $"AND SchoolId ='{linkId}'"; |
|
|
|
|
dt = await Db.Ado.GetDataTableAsync(sql); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++) |
|
|
|
@ -274,4 +283,240 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins |
|
|
|
|
return new ServiceResult<CommonSelect>() { Success = true, Message = "查询成功", Data = result, }; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<ServiceFormResult> QueryForm(QueryForm body) |
|
|
|
|
{ |
|
|
|
|
var result = new ServiceFormResult(); |
|
|
|
|
string sql = string.Empty; |
|
|
|
|
var dt = new DataTable(); |
|
|
|
|
|
|
|
|
|
if (body.id != null) |
|
|
|
|
{ |
|
|
|
|
Type entityType = typeof(Ghre_Course); |
|
|
|
|
sql = @$"DECLARE @langId INT = '{body.langId}',@ID BIGINT = '{body.id}';
|
|
|
|
|
|
|
|
|
|
SELECT *, |
|
|
|
|
isnull |
|
|
|
|
((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END |
|
|
|
|
FROM Ghrs_User kk |
|
|
|
|
WHERE kk.UserId = a.CreateBy), |
|
|
|
|
'') |
|
|
|
|
+ ' ' |
|
|
|
|
+ [dbo].[FLangKeyToValue] ('GHR_Common_000078', @langId, '于 ') |
|
|
|
|
+ ' ' |
|
|
|
|
+ CONVERT (NVARCHAR (16), CreateTime, 121) |
|
|
|
|
+ ' ' |
|
|
|
|
+ [dbo].[FLangKeyToValue] ('GHR_Common_000079', @langId, ' 创建') |
|
|
|
|
CreateDataInfo, |
|
|
|
|
isnull |
|
|
|
|
((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END |
|
|
|
|
FROM Ghrs_User kk |
|
|
|
|
WHERE kk.UserId = a.UpdateBy), |
|
|
|
|
'') |
|
|
|
|
+ ' ' |
|
|
|
|
+ [dbo].[FLangKeyToValue] ('GHR_Common_000078', @langId, '于') |
|
|
|
|
+ ' ' |
|
|
|
|
+ CONVERT (NVARCHAR (16), UpdateTime, 121) |
|
|
|
|
+ ' ' |
|
|
|
|
+ [dbo].[FLangKeyToValue] |
|
|
|
|
('GHR_Common_000080', @langId, ' 最后修改') |
|
|
|
|
UpdateDataInfo |
|
|
|
|
FROM {entityType.GetEntityTableName()} a |
|
|
|
|
WHERE a.Id = @ID";
|
|
|
|
|
|
|
|
|
|
var list = await Db.Ado.SqlQueryAsync<Ghre_CourseDto>(sql); |
|
|
|
|
|
|
|
|
|
list.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
x.ExamPaperIds = JsonHelper.JsonToObj<List<long>>(x.ExamPaperId); |
|
|
|
|
}); |
|
|
|
|
result.result.DT_TableDataT1 = list; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
var list = new List<Ghre_Course> |
|
|
|
|
{ |
|
|
|
|
new() |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1 = Mapper.Map(list).ToANew<List<Ghre_CourseDto>>(); |
|
|
|
|
} |
|
|
|
|
#region JM_PageFormActionsT1 |
|
|
|
|
dynamic JM_PageFormActionsT1 = new ExpandoObject(); |
|
|
|
|
|
|
|
|
|
var toolbars = await _caching.GetAsync<List<FormToolbar>>(body.menuName + "FormToolbar"); |
|
|
|
|
if (toolbars == null || (toolbars != null && !toolbars.Any())) |
|
|
|
|
{ |
|
|
|
|
sql = @$"SELECT field fnKey, [dbo].[FLangKeyToValue] (mkey, {body.langId}, label) fnTitle, icon
|
|
|
|
|
FROM Ghrs_PageSettingEdit |
|
|
|
|
WHERE IsEnable = 1 AND pageNo = '{body.menuName}' AND elementType = 'FnKey'";
|
|
|
|
|
toolbars = await Db.Ado.SqlQueryAsync<FormToolbar>(sql); |
|
|
|
|
if (toolbars.Any()) |
|
|
|
|
await _caching.SetAsync(body.menuName + "FormToolbar", toolbars); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
JM_PageFormActionsT1.Toolbar = toolbars; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region JM_TableColumnT1 |
|
|
|
|
dynamic JM_TableColumnT1 = new ExpandoObject(); |
|
|
|
|
var tableColumn = new JArray(); |
|
|
|
|
sql = @$"SELECT field,
|
|
|
|
|
[dbo].[FLangKeyToValue] (mkey, {body.langId}, label) |
|
|
|
|
label, |
|
|
|
|
required, |
|
|
|
|
editable, |
|
|
|
|
rowNum, |
|
|
|
|
colNum, |
|
|
|
|
elementType, |
|
|
|
|
dbo.FS_GetdataSourceBySet |
|
|
|
|
(dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID) |
|
|
|
|
dataSource, |
|
|
|
|
defaultHidden, |
|
|
|
|
isPrimaryKey, |
|
|
|
|
isSingleColumn,multipleSelect |
|
|
|
|
FROM Ghrs_PageSettingEdit |
|
|
|
|
WHERE IsEnable = 1 |
|
|
|
|
AND pageNo = '{body.menuName}' |
|
|
|
|
AND elementType NOT IN ('FnKey', 'PageGroup');";
|
|
|
|
|
dt = await Db.Ado.GetDataTableAsync(sql); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++) |
|
|
|
|
{ |
|
|
|
|
string dataSource = dt.Rows[i]["dataSource"].ToString(); |
|
|
|
|
string field = dt.Rows[i]["field"].ToString(); |
|
|
|
|
if (field == "SchoolTeacherId") |
|
|
|
|
dataSource = "api/Ghre_Course/GetSelect?FW=DOTNETCORE&linkId="; |
|
|
|
|
JObject item = |
|
|
|
|
[ |
|
|
|
|
new JProperty("field",field), |
|
|
|
|
new JProperty("label", dt.Rows[i]["label"].ToString()), |
|
|
|
|
new JProperty("required",!string.IsNullOrWhiteSpace(dt.Rows[i]["required"].ToString())? Convert.ToBoolean(dt.Rows[i]["required"]):null), |
|
|
|
|
new JProperty("editable",!string.IsNullOrWhiteSpace(dt.Rows[i]["editable"].ToString())? Convert.ToBoolean(dt.Rows[i]["editable"]):null), |
|
|
|
|
new JProperty("rowNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["rowNum"].ToString())? Convert.ToInt32(dt.Rows[i]["rowNum"]):null), |
|
|
|
|
new JProperty("colNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["colNum"].ToString())? Convert.ToInt32(dt.Rows[i]["colNum"]):null), |
|
|
|
|
new JProperty("elementType", dt.Rows[i]["elementType"].ToString()), |
|
|
|
|
new JProperty("dataSource", dataSource), |
|
|
|
|
new JProperty("defaultHidden", dt.Rows[i]["defaultHidden"].ToString()), |
|
|
|
|
new JProperty("isPrimaryKey", !string.IsNullOrWhiteSpace(dt.Rows[i]["isPrimaryKey"].ToString())? Convert.ToBoolean(dt.Rows[i]["isPrimaryKey"]):null), |
|
|
|
|
new JProperty("isSingleColumn",!string.IsNullOrWhiteSpace(dt.Rows[i]["isSingleColumn"].ToString())? Convert.ToInt32(dt.Rows[i]["isSingleColumn"]):null), |
|
|
|
|
new JProperty("multipleSelect",!string.IsNullOrWhiteSpace(dt.Rows[i]["multipleSelect"].ToString())? Convert.ToBoolean(dt.Rows[i]["multipleSelect"]):null), |
|
|
|
|
]; |
|
|
|
|
tableColumn.Add(item); |
|
|
|
|
} |
|
|
|
|
JM_TableColumnT1.TableColumn = tableColumn; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region JM_PageFormT1 |
|
|
|
|
dynamic JM_PageFormT1 = new ExpandoObject(); |
|
|
|
|
var pageForm = new JArray(); |
|
|
|
|
JObject pageFormItem = |
|
|
|
|
[ |
|
|
|
|
new JProperty("disabled", false), |
|
|
|
|
new JProperty("labelAlign", "right"), |
|
|
|
|
new JProperty("labelCol", "{span: 6}"), |
|
|
|
|
new JProperty("labelWidth",120), |
|
|
|
|
new JProperty("layout", "horizontal") |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
sql = $@"SELECT [dbo].[FLangKeyToValue] (MKey, {body.langId}, MenuName) pageTitle,
|
|
|
|
|
IUDProcedure apiName |
|
|
|
|
FROM Ghrs_Menu |
|
|
|
|
WHERE MenuNo = '{body.menuName}' AND IsEnable = 1";
|
|
|
|
|
dt = await Db.Ado.GetDataTableAsync(sql); |
|
|
|
|
if (dt.Rows.Count > 0) |
|
|
|
|
{ |
|
|
|
|
pageFormItem.Add(new JProperty("pageTitle", dt.Rows[0]["pageTitle"].ToString())); |
|
|
|
|
pageFormItem.Add(new JProperty("apiName", dt.Rows[0]["apiName"].ToString())); |
|
|
|
|
} |
|
|
|
|
pageForm.Add(pageFormItem); |
|
|
|
|
JM_PageFormT1.PageForm = pageForm; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region DT_PageMutiMsg |
|
|
|
|
var DT_PageMutiMsg = await _caching.GetAsync<List<DT_PageMutiMsg>>("DT_PageMutiMsg"); |
|
|
|
|
if (DT_PageMutiMsg == null || (DT_PageMutiMsg != null && !DT_PageMutiMsg.Any())) |
|
|
|
|
{ |
|
|
|
|
sql = $@"SELECT Langkey field,
|
|
|
|
|
CASE {body.langId} |
|
|
|
|
WHEN 1 THEN isnull (Value01, LangValue) |
|
|
|
|
WHEN 2 THEN isnull (Value02, LangValue) |
|
|
|
|
WHEN 3 THEN isnull (Value03, LangValue) |
|
|
|
|
WHEN 4 THEN isnull (Value04, LangValue) |
|
|
|
|
WHEN 5 THEN isnull (Value05, LangValue) |
|
|
|
|
WHEN 6 THEN isnull (Value06, LangValue) |
|
|
|
|
WHEN 7 THEN isnull (Value07, LangValue) |
|
|
|
|
WHEN 8 THEN isnull (Value08, LangValue) |
|
|
|
|
WHEN 9 THEN isnull (Value09, LangValue) |
|
|
|
|
WHEN 10 THEN isnull (Value10, LangValue) |
|
|
|
|
END label |
|
|
|
|
FROM Ghrs_LangKey |
|
|
|
|
WHERE (LangKey LIKE 'GHR_Page%' OR LangKey LIKE 'GHR_Common%') |
|
|
|
|
AND IsEnable = 1";
|
|
|
|
|
DT_PageMutiMsg = Db.Ado.SqlQuery<DT_PageMutiMsg>(sql); |
|
|
|
|
if (DT_PageMutiMsg.Any()) |
|
|
|
|
await _caching.SetAsync("DT_PageMutiMsg", DT_PageMutiMsg); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
result.result.JM_PageFormActionsT1 = JM_PageFormActionsT1; |
|
|
|
|
result.result.JM_TableColumnT1 = JM_TableColumnT1; |
|
|
|
|
result.result.JM_PageFormT1 = JM_PageFormT1; |
|
|
|
|
result.result.DT_PageMutiMsg = DT_PageMutiMsg; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult> UpdateStatus(long[] ids, string status) |
|
|
|
|
{ |
|
|
|
|
if (status != "Released" && status != "Disabled" && status != "Draft") |
|
|
|
|
throw new Exception("无效的状态"); |
|
|
|
|
|
|
|
|
|
HttpRequest request = UserContext.Context.Request; |
|
|
|
|
var api = request.Path.ObjToString().TrimEnd('/').ToLower(); |
|
|
|
|
var ip = GetUserIp(UserContext.Context); |
|
|
|
|
|
|
|
|
|
var entities = new List<Ghre_Course>(); |
|
|
|
|
foreach (var id in ids) |
|
|
|
|
{ |
|
|
|
|
if (id == null || !BaseDal.Any(id)) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
var entity = await BaseDal.QueryById(id); |
|
|
|
|
|
|
|
|
|
BasePoco ent = entity; |
|
|
|
|
ent.UpdateIP = ip; |
|
|
|
|
ent.UpdateProg = api; |
|
|
|
|
if (status == "Released" || status == "Disabled" || status == "Draft") |
|
|
|
|
{ |
|
|
|
|
entity.Status = status; |
|
|
|
|
entities.Add(entity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var result = await BaseDal.Update(entities); |
|
|
|
|
if (status == "Released") |
|
|
|
|
return ServiceResult.OprateSuccess("发布成功!"); |
|
|
|
|
else if (status == "Draft") |
|
|
|
|
return ServiceResult.OprateSuccess("取消发布成功!"); |
|
|
|
|
else |
|
|
|
|
return ServiceResult.OprateSuccess("停用成功!"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<long> Add(InsertGhre_CourseInput entity) |
|
|
|
|
{ |
|
|
|
|
entity.ExamPaperId = JsonHelper.ObjToJson(entity.ExamPaperIds); |
|
|
|
|
entity.Status = "Draft"; |
|
|
|
|
return await base.Add(entity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<bool> Update(long Id, EditGhre_CourseInput editModel) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
editModel.ExamPaperId = JsonHelper.ObjToJson(editModel.ExamPaperIds); |
|
|
|
|
return await base.Update(Id, editModel); |
|
|
|
|
} |
|
|
|
|
} |