This commit is contained in:
itcsx committed 2026-09-19 20:37:31 +08:00
1 parent 04c69d4941
commit 4f57b65451
15 files changed
+2338 -24

No files matched your search

@@ -27,26 +27,62 @@ public SecurityHelpFunctionRequest(IServiceRequest serviceRequest)
this.serviceRequest = serviceRequest;
}
public SecurityHelpFunctionEntity FindByKey(string key)
public SecurityHelpFunctionData FindByKey(string key)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionEntity>("/SecurityHelpFunction/FindByKey?key=" + key.ToString())).GetAwaiter().GetResult(); }
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData>("/SecurityHelpFunction/FindByKey?key=" + key.ToString())).GetAwaiter().GetResult(); }
public SecurityHelpFunctionData FindAll()
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData> ("/SecurityHelpFunction/FindAll")).GetAwaiter().GetResult(); }
public SecurityHelpFunctionEntity Insert(SecurityHelpFunctionEntity data)
public SecurityHelpFunctionResultData FindBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionEntity,SecurityHelpFunctionEntity>("/SecurityHelpFunction/Insert" , data)).GetAwaiter().GetResult(); }
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionSearchCriteria,SecurityHelpFunctionResultData>("/SecurityHelpFunction/FindBySearchCriteria" , criteria)).GetAwaiter().GetResult(); }
public SecurityHelpFunctionEntity Update(SecurityHelpFunctionEntity data)
public SecurityHelpFunctionResultData FindFeatureBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionEntity,SecurityHelpFunctionEntity>("/SecurityHelpFunction/Update" , data)).GetAwaiter().GetResult(); }
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionSearchCriteria,SecurityHelpFunctionResultData>("/SecurityHelpFunction/FindFeatureBySearchCriteria" , criteria)).GetAwaiter().GetResult(); }
public SecurityHelpFunctionData Insert(SecurityHelpFunctionData data)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData,SecurityHelpFunctionData>("/SecurityHelpFunction/Insert" , data)).GetAwaiter().GetResult(); }
public SecurityHelpFunctionData Update(SecurityHelpFunctionData data)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData,SecurityHelpFunctionData>("/SecurityHelpFunction/Update" , data)).GetAwaiter().GetResult(); }
public void Delete(string key)
{
Task.Run(() => serviceRequest.PostAsync("/SecurityHelpFunction/Delete?key=" + key.ToString())).GetAwaiter().GetResult(); }
public SecurityHelpFunctionData FindByFunctionName(string functionName)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData>("/SecurityHelpFunction/FindByFunctionName?functionName=" + functionName.ToString())).GetAwaiter().GetResult(); }
public SecurityHelpFunctionData SaveFunction(SecurityHelpFunctionData data)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFunctionData,SecurityHelpFunctionData>("/SecurityHelpFunction/SaveFunction" , data)).GetAwaiter().GetResult(); }
public void DeleteByFunctionName(string functionName)
{
Task.Run(() => serviceRequest.PostAsync("/SecurityHelpFunction/DeleteByFunctionName?functionName=" + functionName.ToString())).GetAwaiter().GetResult(); }
public SecurityHelpFeatureData FindByGroupCode(string groupCode)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFeatureData>("/SecurityHelpFunction/FindByGroupCode?groupCode=" + groupCode.ToString())).GetAwaiter().GetResult(); }
public SecurityHelpFeatureData SaveFeatureGroup(SecurityHelpFeatureData data)
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityHelpFeatureData,SecurityHelpFeatureData>("/SecurityHelpFunction/SaveFeatureGroup" , data)).GetAwaiter().GetResult(); }
public void DeleteByGroupCode(string groupCode)
{
Task.Run(() => serviceRequest.PostAsync("/SecurityHelpFunction/DeleteByGroupCode?groupCode=" + groupCode.ToString())).GetAwaiter().GetResult(); }
public SecurityFunctionDisplayData[] FindFunctionNameOptions()
{
return Task.Run(() => serviceRequest.PostAsJsonAsync<SecurityFunctionDisplayData[]> ("/SecurityHelpFunction/FindFunctionNameOptions")).GetAwaiter().GetResult(); }
}
}
@@ -1,11 +1,15 @@
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using CloudBuilder.Core.Extensions;
using CloudBuilder.Core.Service;
using CloudBuilder.Security.Data;
using CloudBuilder.Security.Entity;
using CloudBuilder.Security.Policy;
using CloudBuilder.Security.SearchCriteria;
using CloudBuilder.Security.Utility;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;
namespace CloudBuilder.Security.Service
{
public class SecurityHelpFunctionService : ISecurityHelpFunctionService
@@ -20,10 +24,12 @@ namespace CloudBuilder.Security.Service
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public SecurityHelpFunctionEntity FindByKey(string key)
public SecurityHelpFunctionData FindByKey(string key)
{
return repository.DetachedEntities.Where(x => x.HelpFunctionId == key).FirstOrDefault()!;
return FindByFunctionName(key);
}
[AllowAnonymous]
public SecurityHelpFunctionData FindAll()
{
@@ -42,10 +48,103 @@ namespace CloudBuilder.Security.Service
return data;
}
//[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public dynamic FindBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public SecurityHelpFunctionResultData FindBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
throw new NotImplementedException();
SecurityHelpFunctionResultData data = new SecurityHelpFunctionResultData();
SecurityHelpFunctionEntity[] list = null;
Int64 count = 0;
string sqlWhere = null;
if (criteria.Filter != null && criteria.Filter.Length > 0)
{
sqlWhere = SearchFilter.ComposeWhereClause(criteria.Filter);
}
SecurityHelpFunctionEntity entity = SecurityHelpFunctionEntity.GetInstance(repository.GetDbContext().Database.ProviderName);
string sql = entity.GetSelectTopFrom(criteria.limit, criteria.page, criteria.orderby.StringToDbField(), criteria.orderbytag, sqlWhere);
string err = null;
try
{
list = repository.FromSql(sql).ToArray();
}
catch (System.Exception ex)
{
err = ex.Message;
}
if (list != null && list.Length > 0)
{
sql = entity.GetSelectCountFrom(sqlWhere);
count = Convert.ToInt64(repository.ExecuteScalar(sql));
data.Datas = list;
}
else
{
data.Datas = null;
}
data.Limit = criteria.limit;
data.Page = criteria.page;
data.Total = count;
data.ErrorMessage = err;
return data;
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public SecurityHelpFunctionResultData FindFeatureBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
SecurityHelpFunctionResultData data = new SecurityHelpFunctionResultData();
IRepository<SecurityHelpFeatureEntity> repositoryFeature = repository.GetRepository<IRepository<SecurityHelpFeatureEntity>>();
SecurityHelpFeatureEntity[] list = null;
Int64 count = 0;
string sqlWhere = null;
if (criteria.Filter != null && criteria.Filter.Length > 0)
{
sqlWhere = SearchFilter.ComposeWhereClause(criteria.Filter);
}
SecurityHelpFeatureEntity entity = SecurityHelpFeatureEntity.GetInstance(repositoryFeature.GetDbContext().Database.ProviderName);
string sql = entity.GetSelectTopFrom(criteria.limit, criteria.page, criteria.orderby.StringToDbField(), criteria.orderbytag, sqlWhere);
string err = null;
try
{
list = repositoryFeature.FromSql(sql).ToArray();
}
catch (System.Exception ex)
{
err = ex.Message;
}
if (list != null && list.Length > 0)
{
sql = entity.GetSelectCountFrom(sqlWhere);
count = Convert.ToInt64(repositoryFeature.ExecuteScalar(sql));
data.Features = list;
}
else
{
data.Features = null;
}
data.Limit = criteria.limit;
data.Page = criteria.page;
data.Total = count;
data.ErrorMessage = err;
return data;
}
//[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Print)]
@@ -56,14 +155,14 @@ namespace CloudBuilder.Security.Service
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Insert)]
[UnitOfWork]
public SecurityHelpFunctionEntity Insert(SecurityHelpFunctionEntity data)
public SecurityHelpFunctionData Insert(SecurityHelpFunctionData data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Update)]
[UnitOfWork]
public SecurityHelpFunctionEntity Update(SecurityHelpFunctionEntity data)
public SecurityHelpFunctionData Update(SecurityHelpFunctionData data)
{
throw new NotImplementedException();
}
@@ -74,7 +173,293 @@ namespace CloudBuilder.Security.Service
public void Delete(string key)
{
var ent = repository.DetachedEntities.Where(x => x.HelpFunctionId == key).FirstOrDefault()!;
if (ent != null) { repository.DeleteNow(ent); }
if (ent == null) { throw new ValidatedException("记录不存在."); }
repository.DeleteNow(ent);
// 一并清掉关联明细,避免留下孤儿记录
DeleteSteps(ent.HelpFunctionId);
DeleteFunctionFeatures(ent.FunctionName);
}
//==================== 帮助文档维护:主表 + 步骤 + 引用的组 ====================
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public SecurityHelpFunctionData FindByFunctionName(string functionName)
{
SecurityHelpFunctionData data = new SecurityHelpFunctionData();
if (string.IsNullOrEmpty(functionName)) return data;
SecurityHelpFunctionEntity function = repository.DetachedEntities.Where(x => x.FunctionName == functionName).FirstOrDefault();
if (function == null) return data;
data.SecurityHelpFunction = function;
data.SecurityHelpSteps = repository.GetRepository<IRepository<SecurityHelpStepEntity>>()
.DetachedEntities.Where(x => x.HelpFunctionId == function.HelpFunctionId)
.OrderBy(x => x.StepNo).ToArray();
data.SecurityHelpFunctionFeatures = repository.GetRepository<IRepository<SecurityHelpFunctionFeatureEntity>>()
.DetachedEntities.Where(x => x.FunctionName == functionName)
.OrderBy(x => x.SortNo).ToArray();
return data;
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Update)]
[UnitOfWork]
public SecurityHelpFunctionData SaveFunction(SecurityHelpFunctionData data)
{
if (data == null || data.SecurityHelpFunction == null) throw new ValidatedException("没有要保存的内容.");
SecurityHelpFunctionEntity function = data.SecurityHelpFunction;
ValidateHelper.Validate(service, function, SecurityHelpFunctionEntity.DB_NAME_SECURITY_HELP_FUNCTION);
SecurityHelpFunctionEntity exist = repository.DetachedEntities.Where(x => x.FunctionName == function.FunctionName).FirstOrDefault();
if (exist == null)
{
if (string.IsNullOrEmpty(function.HelpFunctionId))
{
function.HelpFunctionId = NewId(SecurityPrefixPolicy.SECURITY_HELP_FUNCTION_ID);
}
repository.InsertNow(function);
}
else
{
ObjectCopyHelper.Copy(function, exist);
repository.UpdateNow(exist);
function = exist;
}
SaveSteps(function.HelpFunctionId, data.SecurityHelpSteps);
SaveFunctionFeatures(function.FunctionName, data.SecurityHelpFunctionFeatures);
return FindByFunctionName(function.FunctionName);
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Delete)]
[UnitOfWork]
public void DeleteByFunctionName(string functionName)
{
SecurityHelpFunctionEntity function = repository.DetachedEntities.Where(x => x.FunctionName == functionName).FirstOrDefault();
if (function == null) throw new ValidatedException("记录不存在.");
repository.DeleteNow(function);
DeleteSteps(function.HelpFunctionId);
DeleteFunctionFeatures(function.FunctionName);
}
//==================== 功能点组维护:组 + 组内功能点 ====================
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Find)]
public SecurityHelpFeatureData FindByGroupCode(string groupCode)
{
SecurityHelpFeatureData data = new SecurityHelpFeatureData();
if (string.IsNullOrEmpty(groupCode)) return data;
IRepository<SecurityHelpFeatureGroupEntity> repositoryGroup = repository.GetRepository<IRepository<SecurityHelpFeatureGroupEntity>>();
SecurityHelpFeatureGroupEntity group = repositoryGroup.DetachedEntities.Where(x => x.GroupCode == groupCode).FirstOrDefault();
if (group == null) return data;
data.SecurityHelpFeatureGroup = group;
data.SecurityHelpFeatures = repository.GetRepository<IRepository<SecurityHelpFeatureEntity>>()
.DetachedEntities.Where(x => x.HelpFeatureGroupId == group.HelpFeatureGroupId)
.OrderBy(x => x.SortNo).ToArray();
return data;
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Update)]
[UnitOfWork]
public SecurityHelpFeatureData SaveFeatureGroup(SecurityHelpFeatureData data)
{
if (data == null || data.SecurityHelpFeatureGroup == null) throw new ValidatedException("没有要保存的内容.");
IRepository<SecurityHelpFeatureGroupEntity> repositoryGroup = repository.GetRepository<IRepository<SecurityHelpFeatureGroupEntity>>();
SecurityHelpFeatureGroupEntity group = data.SecurityHelpFeatureGroup;
SecurityHelpFeatureGroupEntity exist = repositoryGroup.DetachedEntities.Where(x => x.GroupCode == group.GroupCode).FirstOrDefault();
if (exist == null)
{
if (string.IsNullOrEmpty(group.HelpFeatureGroupId))
{
group.HelpFeatureGroupId = NewId(SecurityPrefixPolicy.SECURITY_HELP_FEATURE_GROUP_ID);
}
repositoryGroup.InsertNow(group);
}
else
{
ObjectCopyHelper.Copy(group, exist);
repositoryGroup.UpdateNow(exist);
group = exist;
}
SaveFeatures(group.HelpFeatureGroupId, data.SecurityHelpFeatures);
return FindByGroupCode(group.GroupCode);
}
[PermissionOperate(name: SecurityPermissionPolicy.SecurityHelpFunction, operate: Operate.Delete)]
[UnitOfWork]
public void DeleteByGroupCode(string groupCode)
{
IRepository<SecurityHelpFeatureGroupEntity> repositoryGroup = repository.GetRepository<IRepository<SecurityHelpFeatureGroupEntity>>();
SecurityHelpFeatureGroupEntity group = repositoryGroup.DetachedEntities.Where(x => x.GroupCode == groupCode).FirstOrDefault();
if (group == null) throw new ValidatedException("记录不存在.");
repositoryGroup.DeleteNow(group);
DeleteFeatures(group.HelpFeatureGroupId);
}
//==================== 下拉选项 ====================
[AllowAnonymous]
public SecurityFunctionDisplayData[] FindFunctionNameOptions()
{
return service.ServiceProvider.GetService<ISecurityFunctionService>()!.FindMenus();
}
//==================== 私有辅助 ====================
/// <summary>
/// 生成主键,走统一的流水号服务
/// </summary>
private string NewId(string subsystemId)
{
ISecurityGeneratorNumberService generatorNumberService = service.ServiceProvider.GetService<ISecurityGeneratorNumberService>()!;
return generatorNumberService.GetNo(
SecurityPrefixPolicy.SECURITY_HELP,
subsystemId,
null,
YesNoPolicy.NO,
SecurityPrefixPolicy.SECURITY_HELP_FORMAT);
}
/// <summary>
/// 步骤整存:先清旧再插新,StepNo 按传入顺序重排
/// </summary>
private void SaveSteps(string helpFunctionId, SecurityHelpStepEntity[]? steps)
{
IRepository<SecurityHelpStepEntity> repositoryStep = repository.GetRepository<IRepository<SecurityHelpStepEntity>>();
SecurityHelpStepEntity[] olds = repositoryStep.Entities.Where(x => x.HelpFunctionId == helpFunctionId).ToArray();
if (olds != null && olds.Length > 0)
{
foreach (SecurityHelpStepEntity old in olds) repositoryStep.DeleteNow(old);
}
if (steps == null || steps.Length == 0) return;
int i = 1;
foreach (SecurityHelpStepEntity step in steps.OrderBy(x => x.StepNo).ToArray())
{
if (string.IsNullOrEmpty(step.HelpStepId))
{
step.HelpStepId = NewId(SecurityPrefixPolicy.SECURITY_HELP_STEP_ID);
}
step.HelpFunctionId = helpFunctionId;
step.StepNo = i++;
repositoryStep.InsertNow(step);
}
}
/// <summary>
/// 组合关系整存:先清旧再插新,SortNo 按传入顺序重排
/// </summary>
private void SaveFunctionFeatures(string functionName, SecurityHelpFunctionFeatureEntity[]? functionFeatures)
{
IRepository<SecurityHelpFunctionFeatureEntity> repositoryFunctionFeature = repository.GetRepository<IRepository<SecurityHelpFunctionFeatureEntity>>();
SecurityHelpFunctionFeatureEntity[] olds = repositoryFunctionFeature.Entities.Where(x => x.FunctionName == functionName).ToArray();
if (olds != null && olds.Length > 0)
{
foreach (SecurityHelpFunctionFeatureEntity old in olds) repositoryFunctionFeature.DeleteNow(old);
}
if (functionFeatures == null || functionFeatures.Length == 0) return;
int i = 1;
foreach (SecurityHelpFunctionFeatureEntity functionFeature in functionFeatures.OrderBy(x => x.SortNo).ToArray())
{
if (string.IsNullOrEmpty(functionFeature.HelpFunctionFeatureId))
{
functionFeature.HelpFunctionFeatureId = NewId(SecurityPrefixPolicy.SECURITY_HELP_FUNCTION_FEATURE_ID);
}
functionFeature.FunctionName = functionName;
functionFeature.SortNo = i++;
repositoryFunctionFeature.InsertNow(functionFeature);
}
}
/// <summary>
/// 组内功能点整存:先清旧再插新,SortNo 按传入顺序重排
/// </summary>
private void SaveFeatures(string helpFeatureGroupId, SecurityHelpFeatureEntity[]? features)
{
IRepository<SecurityHelpFeatureEntity> repositoryFeature = repository.GetRepository<IRepository<SecurityHelpFeatureEntity>>();
SecurityHelpFeatureEntity[] olds = repositoryFeature.Entities.Where(x => x.HelpFeatureGroupId == helpFeatureGroupId).ToArray();
if (olds != null && olds.Length > 0)
{
foreach (SecurityHelpFeatureEntity old in olds) repositoryFeature.DeleteNow(old);
}
if (features == null || features.Length == 0) return;
int i = 1;
foreach (SecurityHelpFeatureEntity feature in features.OrderBy(x => x.SortNo).ToArray())
{
if (string.IsNullOrEmpty(feature.HelpFeatureId))
{
feature.HelpFeatureId = NewId(SecurityPrefixPolicy.SECURITY_HELP_FEATURE_ID);
}
feature.HelpFeatureGroupId = helpFeatureGroupId;
feature.SortNo = i++;
repositoryFeature.InsertNow(feature);
}
}
private void DeleteSteps(string helpFunctionId)
{
IRepository<SecurityHelpStepEntity> repositoryStep = repository.GetRepository<IRepository<SecurityHelpStepEntity>>();
SecurityHelpStepEntity[] olds = repositoryStep.Entities.Where(x => x.HelpFunctionId == helpFunctionId).ToArray();
if (olds == null || olds.Length == 0) return;
foreach (SecurityHelpStepEntity old in olds) repositoryStep.DeleteNow(old);
}
private void DeleteFunctionFeatures(string functionName)
{
IRepository<SecurityHelpFunctionFeatureEntity> repositoryFunctionFeature = repository.GetRepository<IRepository<SecurityHelpFunctionFeatureEntity>>();
SecurityHelpFunctionFeatureEntity[] olds = repositoryFunctionFeature.Entities.Where(x => x.FunctionName == functionName).ToArray();
if (olds == null || olds.Length == 0) return;
foreach (SecurityHelpFunctionFeatureEntity old in olds) repositoryFunctionFeature.DeleteNow(old);
}
private void DeleteFeatures(string helpFeatureGroupId)
{
IRepository<SecurityHelpFeatureEntity> repositoryFeature = repository.GetRepository<IRepository<SecurityHelpFeatureEntity>>();
SecurityHelpFeatureEntity[] olds = repositoryFeature.Entities.Where(x => x.HelpFeatureGroupId == helpFeatureGroupId).ToArray();
if (olds == null || olds.Length == 0) return;
foreach (SecurityHelpFeatureEntity old in olds) repositoryFeature.DeleteNow(old);
}
}
}
@@ -0,0 +1,19 @@
using CloudBuilder.Core.Authorization;
using CloudBuilder.Security.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CloudBuilder.Security.Data
{
[TypeScript]
public class SecurityHelpFeatureData
{
public SecurityHelpFeatureGroupEntity? SecurityHelpFeatureGroup { get; set; }
public SecurityHelpFeatureEntity[]? SecurityHelpFeatures { get; set; }
}
}
@@ -12,6 +12,8 @@ namespace CloudBuilder.Security.Data
[TypeScript]
public class SecurityHelpFunctionData
{
public SecurityHelpFunctionEntity? SecurityHelpFunction { get; set; }
public SecurityHelpFeatureEntity[]? SecurityHelpFeatures { get; set; }
public SecurityHelpFeatureGroupEntity[]? SecurityHelpFeatureGroups { get; set; }
@@ -0,0 +1,19 @@
using CloudBuilder.Core.Authorization;
using CloudBuilder.Core.Service;
using CloudBuilder.Security.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CloudBuilder.Security.Data
{
[TypeScript]
public class SecurityHelpFunctionResultData : SearchCriteriaResultData
{
public SecurityHelpFunctionEntity[] Datas { get; set; } = null!;
public SecurityHelpFeatureEntity[] Features { get; set; } = null!;
}
}
@@ -12,5 +12,14 @@ namespace CloudBuilder.Security.Policy
public const string SECURITY_USER_USER_NAME = "USER_NAME";
public const string SECURITY_USER_FORMAT = "000000";
// 帮助文档相关:用于 SecurityGeneratorNumberService 生成各表主键
public const string SECURITY_HELP = "SECURITY_HELP";
public const string SECURITY_HELP_FUNCTION_ID = "HELP_FUNCTION_ID";
public const string SECURITY_HELP_STEP_ID = "HELP_STEP_ID";
public const string SECURITY_HELP_FEATURE_GROUP_ID = "HELP_FEATURE_GROUP_ID";
public const string SECURITY_HELP_FEATURE_ID = "HELP_FEATURE_ID";
public const string SECURITY_HELP_FUNCTION_FEATURE_ID = "HELP_FUNCTION_FEATURE_ID";
public const string SECURITY_HELP_FORMAT = "000000";
}
}
@@ -7,8 +7,24 @@ using CloudBuilder.Security.SearchCriteria;
namespace CloudBuilder.Security.Service
{
public interface ISecurityHelpFunctionService :IServiceBase<SecurityHelpFunctionEntity, string ,SecurityHelpFunctionSearchCriteria>
public interface ISecurityHelpFunctionService :IServiceBase<SecurityHelpFunctionData, string ,SecurityHelpFunctionSearchCriteria>
{
SecurityHelpFunctionData FindAll();
SecurityHelpFunctionResultData FindBySearchCriteria(SecurityHelpFunctionSearchCriteria tc);
SecurityHelpFunctionResultData FindFeatureBySearchCriteria(SecurityHelpFunctionSearchCriteria tc);
// 帮助文档维护:主表 + 步骤 + 引用的功能点组
SecurityHelpFunctionData FindByFunctionName(string functionName);
SecurityHelpFunctionData SaveFunction(SecurityHelpFunctionData data);
void DeleteByFunctionName(string functionName);
// 功能点组维护:组 + 组内功能点
SecurityHelpFeatureData FindByGroupCode(string groupCode);
SecurityHelpFeatureData SaveFeatureGroup(SecurityHelpFeatureData data);
void DeleteByGroupCode(string groupCode);
// 新增帮助文档时,下拉选择「给哪个功能写帮助」
SecurityFunctionDisplayData[] FindFunctionNameOptions();
}
}
@@ -71,12 +71,52 @@ this.securityHelpFunctionService= securityHelpFunctionService;
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Find")]
[HttpPost]
public dynamic FindBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
try
{
var result = securityHelpFunctionService.FindBySearchCriteria(criteria);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Find")]
[HttpPost]
public dynamic FindFeatureBySearchCriteria(SecurityHelpFunctionSearchCriteria criteria)
{
try
{
var result = securityHelpFunctionService.FindFeatureBySearchCriteria(criteria);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Insert")]
[HttpPost]
[UnitOfWork]
public dynamic Insert(SecurityHelpFunctionEntity data)
public dynamic Insert(SecurityHelpFunctionData data)
{
try
{
@@ -97,7 +137,7 @@ this.securityHelpFunctionService= securityHelpFunctionService;
[PermissionOperate(name: "SecurityHelpFunction", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic Update(SecurityHelpFunctionEntity data)
public dynamic Update(SecurityHelpFunctionData data)
{
try
{
@@ -135,6 +175,148 @@ this.securityHelpFunctionService= securityHelpFunctionService;
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Find")]
[HttpPost]
public dynamic FindByFunctionName(string functionName)
{
try
{
var result = securityHelpFunctionService.FindByFunctionName(functionName);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic SaveFunction(SecurityHelpFunctionData data)
{
try
{
var result = securityHelpFunctionService.SaveFunction(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Delete")]
[HttpPost]
[UnitOfWork]
public dynamic DeleteByFunctionName(string functionName){
try
{
securityHelpFunctionService.DeleteByFunctionName(functionName);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Find")]
[HttpPost]
public dynamic FindByGroupCode(string groupCode)
{
try
{
var result = securityHelpFunctionService.FindByGroupCode(groupCode);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic SaveFeatureGroup(SecurityHelpFeatureData data)
{
try
{
var result = securityHelpFunctionService.SaveFeatureGroup(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityHelpFunction", operate: "Delete")]
[HttpPost]
[UnitOfWork]
public dynamic DeleteByGroupCode(string groupCode){
try
{
securityHelpFunctionService.DeleteByGroupCode(groupCode);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[AllowAnonymous]
[HttpPost]
public dynamic FindFunctionNameOptions()
{
try
{
var result = securityHelpFunctionService.FindFunctionNameOptions();
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
}
}