You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
531 lines
23 KiB
531 lines
23 KiB
|
|
using Tiobon.Core.IServices;
|
|
using Tiobon.Core.Model.Models;
|
|
using Tiobon.Core.Services.BASE;
|
|
using Tiobon.Core.IRepository.Base;
|
|
using Tiobon.Core.Common.Caches;
|
|
using Tiobon.Core.Common;
|
|
using Tiobon.Core.Model;
|
|
using Newtonsoft.Json.Linq;
|
|
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;
|
|
|
|
/// <summary>
|
|
/// 课程 (服务)
|
|
/// </summary>
|
|
public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, InsertGhre_CourseInput, EditGhre_CourseInput>, IGhre_CourseServices
|
|
{
|
|
private readonly IBaseRepository<Ghre_Course> _dal;
|
|
private IGhre_CourseClassServices _ghre_CourseClassServices;
|
|
public Ghre_CourseServices(IBaseRepository<Ghre_Course> dal,
|
|
ICaching caching,
|
|
IGhre_CourseClassServices ghre_CourseClassServices)
|
|
{
|
|
this._dal = dal;
|
|
base.BaseDal = dal;
|
|
_ghre_CourseClassServices = ghre_CourseClassServices;
|
|
base._caching = caching;
|
|
}
|
|
|
|
public override async Task<ServicePageResult<Ghre_CourseDto>> QueryFilterPage(QueryBody filter)
|
|
{
|
|
RefAsync<int> totalCount = 0;
|
|
string sql = @"SELECT *
|
|
FROM (SELECT A.*,
|
|
B.ClassName CourseClassName,
|
|
C.ClassName CourseClassName2,
|
|
D.SceneName CourseSceneName,
|
|
E.CourseWareName,
|
|
F.StaffName ManagerStaffName,
|
|
G.UserName CreateName,
|
|
G.UserName UpdateName,
|
|
CASE A.InOrOut
|
|
WHEN 'In' THEN F.StaffName
|
|
WHEN 'Out' THEN J.TeacherName
|
|
END TeacherName
|
|
FROM Ghre_Course A
|
|
LEFT JOIN Ghre_CourseClass B ON A.CourseClassId = B.Id
|
|
LEFT JOIN Ghre_CourseClass C ON A.CourseClassId2 = C.Id
|
|
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
|
|
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
|
|
LEFT JOIN Ghra_Staff F ON A.ManagerId = F.StaffID
|
|
LEFT JOIN Ghrs_User G ON A.CreateBy = G.UserId
|
|
LEFT JOIN Ghrs_User H ON A.UpdateBy = H.UserId
|
|
LEFT JOIN Ghra_Staff I ON A.TeacherId = I.StaffID
|
|
LEFT JOIN Ghre_Teacher J ON A.SchoolTeacherId = I.StaffID
|
|
WHERE A.IsEnable = 1) A";
|
|
|
|
if (string.IsNullOrWhiteSpace(filter.orderBy))
|
|
filter.orderBy = "CreateTime DESC";
|
|
|
|
string conditions = "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);
|
|
|
|
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;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (filter.pageSize == 0)
|
|
filter.pageSize = 10000;
|
|
var data = await Db.SqlQueryable<Ghre_CourseDto>(sql)
|
|
.OrderBy(filter.orderBy)
|
|
.ToPageListAsync(filter.pageNum, filter.pageSize, totalCount);
|
|
|
|
data.ForEach(async x =>
|
|
{
|
|
x.ChargeMethodLabel = await GetParaLabel("CourseChargeMethod", x.ChargeMethod);
|
|
x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
|
|
x.IsOPenLabel = x.IsOPen == true ? "是" : "否";
|
|
});
|
|
|
|
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);
|
|
|
|
}
|
|
|
|
|
|
public async Task<ServicePageResult<Ghre_CourseDto>> QueryList(QueryBody filter, string status)
|
|
{
|
|
RefAsync<int> totalCount = 0;
|
|
string sql = @"SELECT *
|
|
FROM (SELECT A.*,
|
|
B.ClassName CourseClassName,
|
|
C.ClassName CourseClassName2,
|
|
D.SceneName CourseSceneName,
|
|
E.CourseWareName,
|
|
F.StaffName ManagerStaffName,
|
|
G.UserName CreateName,
|
|
H.UserName UpdateName,
|
|
CASE A.InOrOut
|
|
WHEN 'In' THEN F.StaffName
|
|
WHEN 'Out' THEN J.TeacherName
|
|
END TeacherName
|
|
FROM Ghre_Course A
|
|
LEFT JOIN Ghre_CourseClass B ON A.CourseClassId = B.Id
|
|
LEFT JOIN Ghre_CourseClass C ON A.CourseClassId2 = C.Id
|
|
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
|
|
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
|
|
LEFT JOIN Ghra_Staff F ON A.ManagerId = F.StaffID
|
|
LEFT JOIN Ghrs_User G ON A.CreateBy = G.UserId
|
|
LEFT JOIN Ghrs_User H ON A.UpdateBy = H.UserId
|
|
LEFT JOIN Ghra_Staff I ON A.TeacherId = I.StaffID
|
|
LEFT JOIN Ghre_Teacher J ON A.SchoolTeacherId = I.StaffID
|
|
WHERE A.IsEnable = 1) A";
|
|
|
|
if (string.IsNullOrWhiteSpace(filter.orderBy))
|
|
filter.orderBy = "CreateTime DESC";
|
|
|
|
string conditions = " WHERE 1=1";
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(status))
|
|
conditions += $" AND Status ='{status}'";
|
|
|
|
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;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (filter.pageSize == 0)
|
|
filter.pageSize = 10000;
|
|
sql += conditions;
|
|
var data = await Db.SqlQueryable<Ghre_CourseDto>(sql)
|
|
.OrderBy(filter.orderBy)
|
|
.ToPageListAsync(filter.pageNum, filter.pageSize, totalCount);
|
|
|
|
data.ForEach(async x =>
|
|
{
|
|
x.ChargeMethodLabel = await GetParaLabel("CourseChargeMethod", x.ChargeMethod);
|
|
x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
|
|
x.IsOPenLabel = x.IsOPen == true ? "是" : "否";
|
|
});
|
|
|
|
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);
|
|
}
|
|
|
|
public async Task<ServiceResult<int>> QueryDeptID(int StaffID)
|
|
{
|
|
string sql = $"SELECT A.DeptID from Ghra_Staff A LEFT JOIN Ghro_Dept B ON A.DeptID = B.DeptID WHERE A.StaffID='{StaffID}'";
|
|
|
|
int id = await Db.Ado.GetIntAsync(sql);
|
|
return ServiceResult<int>.OprateSuccess("查询成功!", id);
|
|
|
|
}
|
|
public async Task<ServiceResult<CommonSelect>> QueryTeacher(long? linkId)
|
|
{
|
|
var result = new CommonSelect();
|
|
JArray TableColumn = new JArray();
|
|
JArray DT_TablePageInfoT1 = new JArray();
|
|
JArray DT_TableDataT1 = new JArray();
|
|
JObject searchItem = new JObject();
|
|
JObject item;
|
|
DataTable dt;
|
|
string sql;
|
|
|
|
searchItem = [
|
|
new JProperty("defaultHidden", true),
|
|
new JProperty("field","value"),
|
|
new JProperty("label","讲师ID"),
|
|
];
|
|
TableColumn.Add(searchItem);
|
|
searchItem = [
|
|
new JProperty("field","label"),
|
|
new JProperty("label","讲师名称"),
|
|
];
|
|
TableColumn.Add(searchItem);
|
|
|
|
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++)
|
|
{
|
|
item = [
|
|
new JProperty("value",long.Parse(dt.Rows[i]["Id"].ToString())),
|
|
new JProperty("label",dt.Rows[i]["TeacherNo"].ToString()+"-"+dt.Rows[i]["TeacherName"].ToString())
|
|
];
|
|
DT_TableDataT1.Add(item);
|
|
}
|
|
|
|
item = [
|
|
new JProperty("ListMax",100),
|
|
new JProperty("ListMin",10),
|
|
new JProperty("PageNum",1),
|
|
new JProperty("PageSize",99999),
|
|
new JProperty("TotalCount",dt.Rows.Count),
|
|
new JProperty("UIType","Auto")
|
|
];
|
|
DT_TablePageInfoT1.Add(item);
|
|
|
|
result.JM_TableColumnT1.TableColumn = TableColumn;
|
|
result.DT_TableDataT1 = DT_TableDataT1;
|
|
result.DT_TablePageInfoT1 = DT_TablePageInfoT1;
|
|
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 =>
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(x.ExamPaperId))
|
|
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);
|
|
|
|
if (entity.Status == "Released")
|
|
{
|
|
string sql = $"SELECT count(0) FROM Ghre_Exam WHERE CourseId='{id}' and IsEnable=1";
|
|
|
|
if (await Db.Ado.GetIntAsync(sql) > 0)
|
|
return ServiceResult.OprateFailed($"课程【{entity.CourseName}】已在考试中关联,不可{(status == "Disabled" ? "停用" : "取消发布")}!");
|
|
}
|
|
|
|
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);
|
|
}
|
|
} |