@@ -0,0 +1,41 @@ | |||
[*.cs] | |||
#### Naming styles #### | |||
# Naming rules | |||
dotnet_naming_rule.const_should_be_all_upper.severity = suggestion | |||
dotnet_naming_rule.const_should_be_all_upper.symbols = const | |||
dotnet_naming_rule.const_should_be_all_upper.style = all_upper | |||
dotnet_naming_rule.static_readonly_field_should_be_all_upper.severity = suggestion | |||
dotnet_naming_rule.static_readonly_field_should_be_all_upper.symbols = static_readonly_field | |||
dotnet_naming_rule.static_readonly_field_should_be_all_upper.style = all_upper | |||
dotnet_naming_rule.private_or_internal_field_should_be_private_field.severity = suggestion | |||
dotnet_naming_rule.private_or_internal_field_should_be_private_field.symbols = private_or_internal_field | |||
dotnet_naming_rule.private_or_internal_field_should_be_private_field.style = private_field | |||
# Symbol specifications | |||
dotnet_naming_symbols.const.applicable_kinds = field | |||
dotnet_naming_symbols.const.applicable_accessibilities = * | |||
dotnet_naming_symbols.const.required_modifiers = const | |||
dotnet_naming_symbols.static_readonly_field.applicable_kinds = field | |||
dotnet_naming_symbols.static_readonly_field.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected | |||
dotnet_naming_symbols.static_readonly_field.required_modifiers = readonly, static | |||
dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field | |||
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private, private_protected | |||
dotnet_naming_symbols.private_or_internal_field.required_modifiers = | |||
# Naming styles | |||
dotnet_naming_style.private_field.required_prefix = _ | |||
dotnet_naming_style.private_field.required_suffix = | |||
dotnet_naming_style.private_field.word_separator = | |||
dotnet_naming_style.private_field.capitalization = camel_case | |||
dotnet_naming_style.all_upper.required_prefix = | |||
dotnet_naming_style.all_upper.required_suffix = | |||
dotnet_naming_style.all_upper.word_separator = _ | |||
dotnet_naming_style.all_upper.capitalization = all_upper | |||
# Add copyright file header | |||
#file_header_template = Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛\n\nSafeCampus 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:\n1.请不要删除和修改根目录下的LICENSE文件。\n2.请不要删除和修改SafeCampus源码头部的版权声明。\n3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SafeCampus\n4.基于本软件的作品,只能使用 SafeCampus 作为后台服务,除外情况不可商用且不允许二次分发或开源。\n5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。\n6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。 |
@@ -0,0 +1,13 @@ | |||
<Project> | |||
<PropertyGroup> | |||
<TargetFrameworks>net6.0;net7.0;net8.0;</TargetFrameworks> | |||
<NoWarn>1701;1702;8616;1591;8618;8619;8629;8602;8603;8604;8625;8765</NoWarn> | |||
<Version>3.0.0</Version> | |||
<ImplicitUsings>enable</ImplicitUsings> | |||
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages> | |||
</PropertyGroup> | |||
<PropertyGroup> | |||
<DocumentationFile>$(MSBuildProjectName).xml</DocumentationFile> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,19 @@ | |||
namespace SafeCampus.Application; | |||
public class ApplicationConst | |||
{ | |||
#region 别称 | |||
/// <summary> | |||
/// 机构 | |||
/// </summary> | |||
public const string BIZ_ORG = "机构"; | |||
/// <summary> | |||
/// 岗位 | |||
/// </summary> | |||
public const string BIZ_POS = "岗位"; | |||
#endregion 别称 | |||
} |
@@ -0,0 +1,16 @@ | |||
| |||
global using MoYu; | |||
global using MoYu.DependencyInjection; | |||
global using MoYu.FriendlyException; | |||
global using Mapster; | |||
global using Microsoft.AspNetCore.Builder; | |||
global using Microsoft.AspNetCore.Hosting; | |||
global using Microsoft.AspNetCore.Mvc; | |||
global using Microsoft.Extensions.DependencyInjection; | |||
global using SafeCampus.Cache; | |||
global using SafeCampus.Core; | |||
global using SafeCampus.Core.Extension; | |||
global using SafeCampus.SqlSugar; | |||
global using SafeCampus.System; | |||
global using SqlSugar; | |||
global using System.Reflection; |
@@ -0,0 +1,530 @@ | |||
using System.Drawing; | |||
using System.Drawing.Imaging; | |||
using System.Net.WebSockets; | |||
using System.Text; | |||
using Masuit.Tools.Systems; | |||
using MoYu.DataEncryption; | |||
using MoYu.RemoteRequest.Extensions; | |||
using MoYu.Templates; | |||
using NewLife.Caching; | |||
using Newtonsoft.Json; | |||
using Newtonsoft.Json.Linq; | |||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | |||
using SafeCampus.Application.Services.Business.Warn.Dto; | |||
using SafeCampus.Application.Services.Business.Warn.Service; | |||
namespace SafeCampus.Application.Manager.DeepelephManager; | |||
/// <summary> | |||
/// 深象智能对接实现 | |||
/// </summary> | |||
public class DeepelephManager : IDeepelephManager, IScoped | |||
{ | |||
private CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); | |||
private bool _isConnected = false; | |||
private Timer _pingTimer; | |||
private List<ClientWebSocket> webScokets=new List<ClientWebSocket>(); | |||
private readonly ISimpleCacheService _simpleCacheService; | |||
public DeepelephManager(ISimpleCacheService simpleCacheService) | |||
{ | |||
_simpleCacheService = simpleCacheService; | |||
} | |||
//获取地址 | |||
//建立请求,发送订阅参数 | |||
//遍历等待接收消息 | |||
public string GetToken() | |||
{ | |||
var cacheToken = _simpleCacheService.Get<string>(AuthConstants.SXTOKEN); | |||
if (cacheToken != null) return cacheToken; | |||
return GenSXToken(); | |||
} | |||
/// <summary> | |||
/// 获取深象智能Token | |||
/// </summary> | |||
/// <returns></returns> | |||
private string GenSXToken() | |||
{ | |||
var token = ""; | |||
var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var nonce = Guid.NewGuid().ToString("N"); | |||
var timestamp =DateTimeOffset.Now.ToUnixTimeMilliseconds(); | |||
var list = $"{setting.SXAPIURL}/user/center/v1/login/client" | |||
.SetBody(new | |||
{ | |||
appKey = setting.AppKey, | |||
appSecret = setting.AppSecret, | |||
nonce , | |||
timestamp, | |||
sign = MD5Encryption.Encrypt($"{setting.AppSecret}appKey{setting.AppKey}nonce{nonce}timestamp{timestamp}{setting.AppSecret}",true) | |||
}) | |||
.SetContentType("application/json") | |||
.PostAsAsync<string>().Result; | |||
var model = JsonConvert.DeserializeObject<JObject>(list); | |||
if (model["success"]!=null) | |||
{ | |||
if ((bool)model["success"]) | |||
{ | |||
token = model["data"]["token"].ToString(); | |||
//token有效期2小时,提前20分钟失效 | |||
_simpleCacheService.Set(AuthConstants.SXTOKEN, token, 100*60); | |||
} | |||
else | |||
{ | |||
LogHelper.WriteToLog("token请求失败", model["message"].ToString()); | |||
} | |||
} | |||
return token; | |||
} | |||
/// <summary> | |||
/// 订阅预警更新 | |||
/// </summary> | |||
/// <returns></returns> | |||
public async Task SubscribeAlarm() | |||
{ | |||
var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(); | |||
var url = GetWebSocketUrl(AuthConstants.SXALARM, AuthConstants.SXALARM_Grpup); | |||
var subscribeJson = JsonConvert.SerializeObject(new | |||
{ | |||
token = GetToken(), | |||
type = "subscribe", | |||
timestamp, | |||
payload = new | |||
{ | |||
topic = AuthConstants.SXALARM, consumerGroup = AuthConstants.SXALARM_Grpup, tags = setting.TenantCode | |||
} | |||
}); | |||
ClientWebSocket _webSocket = new ClientWebSocket(); | |||
webScokets.Add(_webSocket); | |||
await _webSocket.ConnectAsync(new Uri(url), CancellationToken.None); | |||
LogHelper.WriteToLog($"预警WebSocket 已连接:{url}"); | |||
await _webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(subscribeJson)), WebSocketMessageType.Text, true, CancellationToken.None); | |||
byte[] buffer = new byte[1024*8]; | |||
while (_webSocket.State == WebSocketState.Open) | |||
{ | |||
//try | |||
//{ | |||
// var jsonstr = | |||
// " {\"body\":{\"extend\":\"{\\\"trackId\\\":\\\"12937198411611620608\\\",\\\"genderScore\\\":[0.85385144,0.14504793,8.212863E-4],\\\"faceSnapshot\\\":\\\"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/acp/quanjiang/DEMO00001/20240712/edge/group/SXT001_book_wm_1720744889834_2.jpg?Expires=1720752090&OSSAccessKeyId=STS.NT4L37rDr91kevRbXXzw6nfMD&Signature=G2bEhgR7yQFP67upY9xhV6rH6AM%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5eBB4mDn5tTjvOAZ1DjhlgNdvgagaPmpjz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4yZbWXDm0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxFTF%2Bmp%2BKWf0Jz1CnuYdie64csaEylVu4cUzwVR2okivFuX%2By5hlD5o57dNqxAQQCz4KifNxiqzxO%2BBHrfsIeBqAAVdLFq9YtSjPudclLSqdxoekyznbYEtkERJY1iOmTBUChk2ja1KRSUvYSbtTl9r6MTksWA0mlqHfJP416rLsDCoCUhEtZ5OIJ9uobmwBlOhNJOmvNLKts9UatFZKf8fpoabQDjZVOrlt5SGCat11TstwJxt%2Fqk4KlR1z2%2Fvgjk36IAA%3D\\\",\\\"faceSnapshotPath\\\":\\\"deepvision:acp/quanjiang/DEMO00001/20240712/edge/group/SXT001_book_wm_1720744889834_2.jpg\\\",\\\"faceScore\\\":21.902344}\",\"alarmType\":\"hat_detect\",\"func\":\"hat_detect\",\"cameraId\":\"SXT001\",\"alarmId\":\"4fe123dc469c47919f1bb2e83469f088\",\"snapshotUrl\":\"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/acp/quanjiang/DEMO00001/20240712/edge/group/SXT001/SXT001_d051f448-690e-4135-9659-40dfef3238fb_wm_2.jpg?Expires=1720752090&OSSAccessKeyId=STS.NT4L37rDr91kevRbXXzw6nfMD&Signature=Mq39eyfB5E2sdJ58lT03HMz9QnI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5eBB4mDn5tTjvOAZ1DjhlgNdvgagaPmpjz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4yZbWXDm0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxFTF%2Bmp%2BKWf0Jz1CnuYdie64csaEylVu4cUzwVR2okivFuX%2By5hlD5o57dNqxAQQCz4KifNxiqzxO%2BBHrfsIeBqAAVdLFq9YtSjPudclLSqdxoekyznbYEtkERJY1iOmTBUChk2ja1KRSUvYSbtTl9r6MTksWA0mlqHfJP416rLsDCoCUhEtZ5OIJ9uobmwBlOhNJOmvNLKts9UatFZKf8fpoabQDjZVOrlt5SGCat11TstwJxt%2Fqk4KlR1z2%2Fvgjk36IAA%3D\",\"rects\":[{\"top\":656,\"left\":1642,\"width\":285,\"height\":767}],\"poiId\":\"DEMO00001\",\"tenantCode\":\"quanjiang\",\"tick\":1720744890634},\"bornTimestamp\":1720744890762,\"consumerGroup\":\"GID_quanjiang_risk\",\"keys\":\"4fe123dc469c47919f1bb2e83469f088\",\"messageId\":\"AC14058A00017A07C5B43A83698A5378\",\"queueId\":1,\"queueOffset\":418623,\"tags\":\"quanjiang\",\"topic\":\"ECOLOGY_PAAS_RISK_ALARM\",\"type\":\"msg\"}"; | |||
// var json = JsonConvert.DeserializeObject<JObject>(jsonstr); | |||
// if (json["type"].ToString() == "msg") | |||
// { | |||
// var body = json["body"]; | |||
// if (body != null) | |||
// { | |||
// PersonType personEnum; | |||
// if (!Enum.TryParse(body["alarmType"].ToString(), out AlarmType dayEnum)) | |||
// { | |||
// dayEnum = AlarmType.visual_fence; | |||
// } | |||
// if (body["extend"]!=null) | |||
// { | |||
// var extend= JsonConvert.DeserializeObject<JObject>(body["extend"].ToString()); | |||
// if (extend["personType"] != null) | |||
// { | |||
// if (!Enum.TryParse(body["extend"]?["personType"]?.ToString(), out personEnum)) | |||
// { | |||
// personEnum = PersonType.unkonwn; | |||
// } | |||
// } | |||
// else | |||
// { | |||
// personEnum = PersonType.unkonwn; | |||
// } | |||
// } | |||
// else | |||
// { | |||
// personEnum = PersonType.unkonwn; | |||
// } | |||
// var model = new WarnInfoDto | |||
// { | |||
// TenantCode = body["tenantCode"]?.ToString(), | |||
// PoiId = body["poiId"]?.ToString(), | |||
// AlarmId = body["alarmId"]?.ToString(), | |||
// AlarmType = body["alarmType"]?.ToString(), | |||
// AlarmTypeDesc = dayEnum.GetDescription(), | |||
// CameraId = body["cameraId"]?.ToString(), | |||
// Tick = TimestampToDateTime(body["tick"].ToString()), | |||
// SnapshotUrl = body["snapshotUrl"]?.ToString(), | |||
// Rects = body["rects"]?.ToString(), | |||
// Tags = body["tags"]?.ToString(), | |||
// Extend = body["extend"]?.ToString(), | |||
// PersonType = personEnum.GetDescription(), | |||
// WarnHand = 0, | |||
// }; | |||
// var signImg = Path.Combine(Directory.GetCurrentDirectory(), "Files", App.Configuration["AppInfo:AlarmImg"], model.AlarmId + ".jpg"); | |||
// var steam = await model.SnapshotUrl.GetAsByteArrayAsync(); | |||
// model.SnapshotUrl = $"http://192.168.10.186:8003/Files/alarmImg/{model.AlarmId}.jpg"; | |||
// using (MemoryStream ms = new MemoryStream(steam)) | |||
// { | |||
// using (Bitmap bmp = new Bitmap(ms)) | |||
// { | |||
// using (Graphics g = Graphics.FromImage(bmp)) | |||
// { | |||
// using (Pen pen = new Pen(Color.Red, 3)) | |||
// { | |||
// foreach (var item in body["rects"]) | |||
// { | |||
// Rectangle rect = new Rectangle((int)item["left"], (int)item["top"], (int)item["width"], (int)item["height"]); | |||
// g.DrawRectangle(pen, rect); | |||
// } | |||
// } | |||
// } | |||
// bmp.Save(signImg, ImageFormat.Jpeg); | |||
// } | |||
// } | |||
// //await model.SnapshotUrl.GetToSaveAsync(signImg); | |||
// Scoped.Create((_, scope) => | |||
// { | |||
// var services = scope.ServiceProvider; | |||
// var _repository = services.GetService<IWarnInfoService>(); | |||
// _repository.Add(model); | |||
// }); | |||
// } | |||
// } | |||
//} | |||
//catch (Exception e) | |||
//{ | |||
//} | |||
WebSocketReceiveResult result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); | |||
if (result.MessageType == WebSocketMessageType.Text) | |||
{ | |||
try | |||
{ | |||
string message = Encoding.UTF8.GetString(buffer, 0, result.Count); | |||
LogHelper.WriteToLog($"收到: {message}"); | |||
var json = JsonConvert.DeserializeObject<JObject>(message); | |||
if (json["type"].ToString() == "msg") | |||
{ | |||
var body = json["body"]; | |||
if (body != null) | |||
{ | |||
PersonType personEnum; | |||
if (!Enum.TryParse(body["alarmType"].ToString(), out AlarmType dayEnum)) | |||
{ | |||
dayEnum = AlarmType.visual_fence; | |||
} | |||
if (body["extend"] != null) | |||
{ | |||
var extend = JsonConvert.DeserializeObject<JObject>(body["extend"].ToString()); | |||
if (extend["personType"] != null) | |||
{ | |||
if (!Enum.TryParse(body["extend"]?["personType"]?.ToString(), out personEnum)) | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
} | |||
else | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
} | |||
else | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
var model = new WarnInfoDto | |||
{ | |||
TenantCode = body["tenantCode"]?.ToString(), | |||
PoiId = body["poiId"]?.ToString(), | |||
AlarmId = body["alarmId"]?.ToString(), | |||
AlarmType = body["alarmType"]?.ToString(), | |||
AlarmTypeDesc = dayEnum.GetDescription(), | |||
CameraId = body["cameraId"]?.ToString(), | |||
Tick = TimestampToDateTime(body["tick"].ToString()), | |||
SnapshotUrl = body["snapshotUrl"]?.ToString(), | |||
Rects = body["rects"]?.ToString(), | |||
Tags = body["tags"]?.ToString(), | |||
Extend = body["extend"]?.ToString(), | |||
PersonType = personEnum.GetDescription(), | |||
WarnHand = 0, | |||
}; | |||
var signImg = Path.Combine(Directory.GetCurrentDirectory(), "Files", App.Configuration["AppInfo:AlarmImg"], model.AlarmId + ".jpg"); | |||
//await model.SnapshotUrl.GetToSaveAsync(signImg); | |||
var steam = await model.SnapshotUrl.GetAsByteArrayAsync(); | |||
model.SnapshotUrl = $"http://192.168.10.186:8003/Files/alarmImg/{model.AlarmId}.jpg"; | |||
using (MemoryStream ms = new MemoryStream(steam)) | |||
{ | |||
using (Bitmap bmp = new Bitmap(ms)) | |||
{ | |||
using (Graphics g = Graphics.FromImage(bmp)) | |||
{ | |||
using (Pen pen = new Pen(Color.Red, 3)) | |||
{ | |||
foreach (var item in body["rects"]) | |||
{ | |||
Rectangle rect = new Rectangle((int)item["left"], (int)item["top"], (int)item["width"], (int)item["height"]); | |||
g.DrawRectangle(pen, rect); | |||
} | |||
} | |||
} | |||
bmp.Save(signImg, ImageFormat.Jpeg); | |||
} | |||
} | |||
Scoped.Create((_, scope) => | |||
{ | |||
var services = scope.ServiceProvider; | |||
var _repository = services.GetService<IWarnInfoService>(); | |||
_repository.Add(model); | |||
}); | |||
} | |||
} | |||
} | |||
catch (Exception e) | |||
{ | |||
LogHelper.WriteToLog( "预警webSocket处理异常"); | |||
LogHelper.WriteToLog(e, "预警webSocket处理异常"); | |||
} | |||
} | |||
else if (result.MessageType == WebSocketMessageType.Close) | |||
{ | |||
LogHelper.WriteToLog("WebSocket 连接已被服务器关闭"); | |||
break; | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 订阅点名事件 | |||
/// </summary> | |||
/// <returns></returns> | |||
public async Task SubscriberRoomCall() | |||
{ | |||
var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(); | |||
var url = GetWebSocketUrl(AuthConstants.SXROOM_CALL, AuthConstants.SXROOM_CAL_Group); | |||
var subscribeJson = JsonConvert.SerializeObject(new | |||
{ | |||
token = GetToken(), | |||
type = "subscribe", | |||
timestamp, | |||
payload = new | |||
{ | |||
topic = AuthConstants.SXROOM_CALL, consumerGroup = AuthConstants.SXROOM_CAL_Group, tags = setting.TenantCode | |||
} | |||
}); | |||
ClientWebSocket _webSocket = new ClientWebSocket(); | |||
webScokets.Add(_webSocket); | |||
await _webSocket.ConnectAsync(new Uri(url), CancellationToken.None); | |||
LogHelper.WriteToLog($"点名WebSocket 已连接:{url}"); | |||
await _webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(subscribeJson)), WebSocketMessageType.Text, true, CancellationToken.None); | |||
byte[] buffer = new byte[1024*8]; | |||
while (_webSocket.State == WebSocketState.Open) | |||
{ | |||
WebSocketReceiveResult result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); | |||
if (result.MessageType == WebSocketMessageType.Text) | |||
{ | |||
string message = Encoding.UTF8.GetString(buffer, 0, result.Count); | |||
LogHelper.WriteToLog($"收到: {message}"); | |||
var json = JsonConvert.DeserializeObject<JObject>(message); | |||
if (json["type"].ToString() == "msg") | |||
{ | |||
var body = json["body"]; | |||
if (body != null) | |||
{ | |||
//TODO 由于未知道数据格式暂不写处理 | |||
} | |||
} | |||
} | |||
else if (result.MessageType == WebSocketMessageType.Close) | |||
{ | |||
LogHelper.WriteToLog("WebSocket 连接已被服务器关闭"); | |||
break; | |||
} | |||
} | |||
} | |||
public async Task SubscriberAttendance() | |||
{ | |||
var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(); | |||
var url = GetWebSocketUrl(AuthConstants.SXECOLOGY_ATTENDANCE, AuthConstants.SXECOLOGY_ATTENDANCE_Group); | |||
var subscribeJson = JsonConvert.SerializeObject(new | |||
{ | |||
token = GetToken(), | |||
type = "subscribe", | |||
timestamp, | |||
payload = new | |||
{ | |||
topic = AuthConstants.SXECOLOGY_ATTENDANCE, | |||
consumerGroup = AuthConstants.SXECOLOGY_ATTENDANCE_Group, | |||
tags = setting.TenantCode | |||
} | |||
}); | |||
ClientWebSocket _webSocket = new ClientWebSocket(); | |||
webScokets.Add(_webSocket); | |||
await _webSocket.ConnectAsync(new Uri(url), CancellationToken.None); | |||
LogHelper.WriteToLog($"考勤WebSocket 已连接:{url}"); | |||
await _webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(subscribeJson)), WebSocketMessageType.Text, true, CancellationToken.None); | |||
byte[] buffer = new byte[1024 * 8]; | |||
while (_webSocket.State == WebSocketState.Open) | |||
{ | |||
WebSocketReceiveResult result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); | |||
if (result.MessageType == WebSocketMessageType.Text) | |||
{ | |||
string message = Encoding.UTF8.GetString(buffer, 0, result.Count); | |||
LogHelper.WriteToLog($"收到: {message}"); | |||
var json = JsonConvert.DeserializeObject<JObject>(message); | |||
if (json["type"].ToString() == "msg") | |||
{ | |||
var body = json["body"]; | |||
if (body != null) | |||
{ | |||
//TODO 由于未知道数据格式暂不写处理 | |||
} | |||
} | |||
} | |||
else if (result.MessageType == WebSocketMessageType.Close) | |||
{ | |||
LogHelper.WriteToLog("WebSocket 连接已被服务器关闭"); | |||
break; | |||
} | |||
} | |||
} | |||
private async Task GetWebSocketData(string url, string json) | |||
{ | |||
ClientWebSocket _webSocket = new ClientWebSocket(); | |||
while (!_cancellationTokenSource.IsCancellationRequested) | |||
{ | |||
try | |||
{ | |||
await _webSocket.ConnectAsync(new Uri(url), CancellationToken.None); | |||
LogHelper.WriteToLog("WebSocket 已连接"); | |||
_isConnected = true; | |||
//订阅预警消息 | |||
await _webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(json)), WebSocketMessageType.Text, true, CancellationToken.None); | |||
//_pingTimer = new Timer(async (state) => | |||
//{ | |||
// if (_webSocket.State == WebSocketState.Open) | |||
// { | |||
// try | |||
// { | |||
// LogHelper.WriteToLog("发送 ping..."); | |||
// byte[] emptyPingMessage = Array.Empty<byte>(); | |||
// await _webSocket.SendAsync(new ArraySegment<byte>(emptyPingMessage), WebSocketMessageType.Binary, true, CancellationToken.None); | |||
// //byte[] pingMessage = Encoding.UTF8.GetBytes("pong"); | |||
// //await _webSocket.SendAsync(new ArraySegment<byte>(pingMessage), WebSocketMessageType.Text, true, CancellationToken.None); | |||
// } | |||
// catch (Exception ex) | |||
// { | |||
// LogHelper.WriteToLog($"发送ping失败: {ex.Message}"); | |||
// } | |||
// } | |||
//}, null, TimeSpan.Zero, TimeSpan.FromSeconds(30)); | |||
await ReceiveLoop(_webSocket); | |||
_isConnected = false; | |||
LogHelper.WriteToLog("WebSocket 连接已关闭,正在重连。。。"); | |||
} | |||
catch (Exception ex) | |||
{ | |||
LogHelper.WriteToLog($"WebSocket连接失败: {ex.Message}"); | |||
} | |||
await Task.Delay(GetReconnectInterval()); | |||
} | |||
} | |||
private async Task ReceiveLoop(ClientWebSocket _webSocket) | |||
{ | |||
byte[] buffer = new byte[1024]; | |||
while (_webSocket.State == WebSocketState.Open) | |||
{ | |||
WebSocketReceiveResult result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); | |||
if (result.MessageType == WebSocketMessageType.Text) | |||
{ | |||
string message = Encoding.UTF8.GetString(buffer, 0, result.Count); | |||
LogHelper.WriteToLog($"收到: {message}"); | |||
var json= JsonConvert.DeserializeObject<JObject>(message); | |||
if (json["type"].ToString()=="msg") | |||
{ | |||
var body = json["body"]; | |||
if (body!=null) | |||
{ | |||
} | |||
} | |||
} | |||
else if (result.MessageType == WebSocketMessageType.Close) | |||
{ | |||
LogHelper.WriteToLog("WebSocket 连接已被服务器关闭"); | |||
break; | |||
} | |||
} | |||
} | |||
private TimeSpan GetReconnectInterval() | |||
{ | |||
// You can implement your own logic for calculating reconnect interval, e.g., exponential backoff | |||
return TimeSpan.FromSeconds(10); // Example: Attempt to reconnect every 10 seconds | |||
} | |||
public async Task DisconnectAsync() | |||
{ | |||
foreach (var clientWebSocket in webScokets.Where(clientWebSocket => clientWebSocket.State == WebSocketState.Open)) | |||
{ | |||
await clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None); | |||
} | |||
} | |||
private string GetWebSocketUrl(string topic, string consumerGroup) | |||
{ | |||
var serverAddr = ""; | |||
var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var list = $"{setting.SXAPIURL}/emitter/connection/get" | |||
.SetBody(new | |||
{ | |||
token = GetToken(), | |||
topic , | |||
consumerGroup, | |||
}) | |||
.SetContentType("application/json") | |||
.PostAsAsync<string>().Result; | |||
var model = JsonConvert.DeserializeObject<JObject>(list); | |||
if (model["data"]["serverAddr"]!=null) | |||
{ | |||
serverAddr = model["data"]["serverAddr"].ToString(); | |||
} | |||
return serverAddr; | |||
} | |||
//public async Task<bool> GetData() | |||
//{ | |||
// //var setting = App.GetOptionsMonitor<AppInfoOptions>(); | |||
// //var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(); | |||
// ////订阅预警消息 | |||
// //var warnUrl = GetWebSocketUrl(AuthConstants.SXALARM, AuthConstants.SXALARM_Grpup); | |||
// //GetWebSocketData(warnUrl, | |||
// // JsonConvert.SerializeObject(new | |||
// // { | |||
// // token = GetToken(), type = "subscribe", timestamp, | |||
// // payload = new { topic = AuthConstants.SXALARM, consumerGroup= AuthConstants.SXALARM_Grpup, tags= setting.TenantCode } | |||
// // })); | |||
// //订阅预警更新消息 | |||
// await SubscribeAlarm(); | |||
// //订阅点名事件 | |||
// //await SubscriberRoomCall(); | |||
// return true; | |||
//} | |||
/// <summary> | |||
/// 时间戳转本时区日期时间 | |||
/// </summary> | |||
/// <param name="timeStamp"></param> | |||
/// <returns></returns> | |||
public static DateTime TimestampToDateTime(string timeStamp) | |||
{ | |||
DateTimeOffset utcDateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(timeStamp)); | |||
return utcDateTimeOffset.LocalDateTime; | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
namespace SafeCampus.Application.Manager.DeepelephManager; | |||
/// <summary> | |||
/// 深象对接接口 | |||
/// </summary> | |||
public interface IDeepelephManager | |||
{ | |||
/// <summary> | |||
/// 获取token | |||
/// </summary> | |||
/// <returns></returns> | |||
public string GetToken(); | |||
/// <summary> | |||
/// 启动预警订阅 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task SubscribeAlarm(); | |||
/// <summary> | |||
/// 释放连接 | |||
/// </summary> | |||
/// <returns></returns> | |||
public Task DisconnectAsync(); | |||
/// <summary> | |||
/// 启动点名订阅 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task SubscriberRoomCall(); | |||
/// <summary> | |||
/// 开启无感考勤订阅 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task SubscriberAttendance(); | |||
} |
@@ -0,0 +1,10 @@ | |||
using MoYu.ConfigurableOptions; | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 系统配置 | |||
/// </summary> | |||
public class ApplicationSettingsOptions : BaseOptions, IConfigurableOptions | |||
{ | |||
} |
@@ -0,0 +1,28 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<ItemGroup> | |||
<None Remove="applicationsettings.Development.json" /> | |||
<None Remove="applicationsettings.Production.json" /> | |||
<None Remove="SafeCampus.Application.xml" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\SafeCampus.System\SafeCampus.System.csproj" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Update="Application.Development.json"> | |||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||
</None> | |||
<None Update="Application.Production.json"> | |||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||
</None> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Entity\" /> | |||
<Folder Include="Manager\DeepelephManager\Dto\" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup> | |||
<ActiveDebugFramework>net7.0</ActiveDebugFramework> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,875 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Application</name> | |||
</assembly> | |||
<members> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_ORG"> | |||
<summary> | |||
机构 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_POS"> | |||
<summary> | |||
岗位 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager"> | |||
<summary> | |||
深象智能对接实现 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.GenSXToken"> | |||
<summary> | |||
获取深象智能Token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
订阅预警更新 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
订阅点名事件 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.TimestampToDateTime(System.String)"> | |||
<summary> | |||
时间戳转本时区日期时间 | |||
</summary> | |||
<param name="timeStamp"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager"> | |||
<summary> | |||
深象对接接口 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.GetToken"> | |||
<summary> | |||
获取token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
启动预警订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.DisconnectAsync"> | |||
<summary> | |||
释放连接 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
启动点名订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberAttendance"> | |||
<summary> | |||
开启无感考勤订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.ApplicationSettingsOptions"> | |||
<summary> | |||
系统配置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.alarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.beginTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.endTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.cameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.VideoUrl"> | |||
<summary> | |||
预警关联视频(有些报警有,有些没有) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tags"> | |||
<summary> | |||
场景标签 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Extend"> | |||
<summary> | |||
额外数据,每个预警类型不同 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Remark"> | |||
<summary> | |||
处理意见 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.StartTick"> | |||
<summary> | |||
事件发生时间开始 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.EndTick"> | |||
<summary> | |||
事件发生时间结束 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.HandWarn(System.Int64,System.String)"> | |||
<summary> | |||
处理预警 | |||
</summary> | |||
<param name="id"></param> | |||
<param name="remark"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetListNoPage(SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch)"> | |||
<summary> | |||
获取列表不分页 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetWarnType"> | |||
<summary> | |||
获取告警分离列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Add(`0)"> | |||
<summary> | |||
添加 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Delete(System.Int64)"> | |||
<summary> | |||
删除 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Update(`0)"> | |||
<summary> | |||
修改 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetInfo(System.Int64)"> | |||
<summary> | |||
根据id获取信息 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetList(`2)"> | |||
<summary> | |||
获取列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.IOrgService"> | |||
<summary> | |||
机构服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<summary> | |||
添加机构 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<summary> | |||
复制机构 | |||
</summary> | |||
<param name="input">机构复制参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除机构 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<summary> | |||
编辑机构 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<summary> | |||
机构分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<summary> | |||
机构树结构 | |||
</summary> | |||
<param name="input">机构选择器</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
机构详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.OrgService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IOrgService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.CheckInput(SafeCampus.System.SysOrg,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysOrg">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="T:SafeCampus.Application.IPositionService"> | |||
<summary> | |||
岗位管理 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<summary> | |||
添加岗位 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除岗位 | |||
</summary> | |||
<param name="input">id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<summary> | |||
编辑岗位 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<summary> | |||
岗位分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<summary> | |||
岗位选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
岗位详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<summary> | |||
岗位树形结构 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.PositionService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IPositionService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.CheckInput(SafeCampus.System.SysPosition,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysPosition">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<summary> | |||
角色拥有资源 | |||
</summary> | |||
<param name="input">角色id</param> | |||
<param name="category">资源类型</param> | |||
<returns>角色拥有资源信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取角色下的用户 | |||
</summary> | |||
<param name="input">角色ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<summary> | |||
分页查询角色 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<summary> | |||
获取角色树 | |||
</summary> | |||
<param name="input">角色树</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
角色详情 | |||
</summary> | |||
<param name="input">角色Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.ResourceTreeSelector"> | |||
<summary> | |||
资源树选择器 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<summary> | |||
添加角色 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<summary> | |||
编辑角色 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<summary> | |||
给角色授权 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<summary> | |||
给角色授权用户 | |||
</summary> | |||
<param name="input">授权信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除角色 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.RoleService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IRoleService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.ResourceTreeSelector"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.CheckInput(SafeCampus.System.SysRole)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysRole"></param> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GetRoleGrantResourceMenus(System.Int64,System.Collections.Generic.List{SafeCampus.System.SysResource},System.Collections.Generic.List{SafeCampus.System.SysResource})"> | |||
<summary> | |||
获取授权菜单 | |||
</summary> | |||
<param name="moduleId">模块Id</param> | |||
<param name="ownMenuList">拥有菜单列表</param> | |||
<param name="ownButtonList">拥有权限按钮列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserImportInput"> | |||
<summary> | |||
业务用户导入 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserExportOutput"> | |||
<summary> | |||
业务用户导出 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.IUserService"> | |||
<summary> | |||
人员管理服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<summary> | |||
人员选择器 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>人员列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Page(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
用户分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>用户分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取用户拥有角色 | |||
</summary> | |||
<param name="input">用户ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
人员详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Add(SafeCampus.System.UserAddInput)"> | |||
<summary> | |||
添加用户 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<summary> | |||
编辑 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
禁用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
启用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
重置密码 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<summary> | |||
给用户授权角色 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除用户 | |||
</summary> | |||
<param name="input">Id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<summary> | |||
导入预览 | |||
</summary> | |||
<param name="input">导入参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Template"> | |||
<summary> | |||
获取导入模板 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Export(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
导出 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<summary> | |||
导入数据 | |||
</summary> | |||
<param name="input">数据</param> | |||
<returns>导入结果</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<summary> | |||
批量编辑 | |||
</summary> | |||
<param name="input">编辑字段信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.UserService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IUserService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Page(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Add(SafeCampus.System.UserAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Template"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Export(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(SafeCampus.System.SysUser,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysUser"></param> | |||
<param name="operate">操作类型</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(System.Int64,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="userId">用户ID</param> | |||
<param name="operate">操作</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckImport(System.Collections.Generic.List{SafeCampus.Application.BizUserImportInput},System.Collections.Generic.List{System.Int64},System.Boolean)"> | |||
<summary> | |||
检查导入数据 | |||
</summary> | |||
<param name="data">数据</param> | |||
<param name="dataScope">数据范围ID数组</param> | |||
<param name="clearError">是否初始化错误</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GetQuery(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
获取查询条件 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,21 @@ | |||
namespace SafeCampus.Application.Services.Business.Dto; | |||
public class AlarmSearch: BasePageInput | |||
{ | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string alarmType { get; set; } | |||
/// <summary> | |||
/// 开始时间 | |||
/// </summary> | |||
public DateTime? beginTime { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime? endTime { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string cameraId { get; set; } | |||
} |
@@ -0,0 +1,80 @@ | |||
using Newtonsoft.Json.Linq; | |||
namespace SafeCampus.Application.Services.Business.Warn.Dto; | |||
public class WarnInfoDto | |||
{ | |||
public long? ID { get; set; } | |||
/// <summary> | |||
/// 租户id | |||
/// </summary> | |||
public string TenantCode { get; set; } | |||
/// <summary> | |||
/// 门店id | |||
/// </summary> | |||
public string PoiId { get; set; } | |||
/// <summary> | |||
/// 预警id | |||
/// </summary> | |||
public string AlarmId { get; set; } | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 预警类型名称 | |||
/// </summary> | |||
public string AlarmTypeDesc { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 摄像头名称 | |||
/// </summary> | |||
public string CameraName { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 预警关联视频(有些报警有,有些没有) | |||
/// </summary> | |||
public string VideoUrl { get; set; } | |||
/// <summary> | |||
/// 目标在快照中的位置 | |||
/// </summary> | |||
public string Rects { get; set; } | |||
/// <summary> | |||
/// 人员名称 | |||
/// </summary> | |||
public string PersonName { get; set; } | |||
/// <summary> | |||
/// 人员类型 | |||
/// </summary> | |||
public string PersonType { get; set; } | |||
/// <summary> | |||
///场景标签 | |||
/// </summary> | |||
public string Tags { get; set; } | |||
/// <summary> | |||
/// 额外数据,每个预警类型不同 | |||
/// </summary> | |||
public string Extend { get; set; } | |||
/// <summary> | |||
/// 预警处理状态 | |||
/// </summary> | |||
public int WarnHand { get; set; } | |||
/// <summary> | |||
/// 处理意见 | |||
/// </summary> | |||
public string Remark { get; set; } | |||
/// <summary> | |||
/// 处理时间 | |||
/// </summary> | |||
public DateTime? HandTime { get; set; } | |||
} |
@@ -0,0 +1,61 @@ | |||
using AngleSharp.Dom; | |||
namespace SafeCampus.Application.Services.Business.Warn.Dto; | |||
public class WarnInfoList | |||
{ | |||
public int ID { get; set; } | |||
/// <summary> | |||
/// 预警id | |||
/// </summary> | |||
public string AlarmId { get; set; } | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 预警类型名称 | |||
/// </summary> | |||
public string AlarmTypeDesc { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 摄像头名称 | |||
/// </summary> | |||
public string CameraName { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人员名称 | |||
/// </summary> | |||
public string PersonName { get; set; } | |||
/// <summary> | |||
/// 人员类型 | |||
/// </summary> | |||
public string PersonType { get; set; } | |||
/// <summary> | |||
/// 预警处理状态 | |||
/// </summary> | |||
public int WarnHand { get; set; } | |||
/// <summary> | |||
/// 处理时间 | |||
/// </summary> | |||
public DateTime? HandTime { get; set; } | |||
} | |||
public class WarnInfoListMapper : IRegister | |||
{ | |||
public void Register(TypeAdapterConfig config) | |||
{ | |||
config.ForType<WarnInfo, WarnInfoList>() | |||
.Map(dest => dest.CameraName, src => src.CameraId.GetDescriptionByEnum<CameraType>()); | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
namespace SafeCampus.Application.Services.Business.Warn.Dto; | |||
public class WarnInfoSearch:BasePageInput | |||
{ | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 事件发生时间开始 | |||
/// </summary> | |||
public DateTime? StartTick { get; set; } | |||
/// <summary> | |||
/// 事件发生时间结束 | |||
/// </summary> | |||
public DateTime? EndTick { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 预警处理状态 | |||
/// </summary> | |||
public int? WarnHand { get; set; } | |||
} |
@@ -0,0 +1,7 @@ | |||
namespace SafeCampus.Application.Services.Business; | |||
public class WarnType | |||
{ | |||
public string Name { get; set; } | |||
public string Code { get; set; } | |||
} |
@@ -0,0 +1,24 @@ | |||
using SafeCampus.Application.Services.Business.Warn.Dto; | |||
namespace SafeCampus.Application.Services.Business.Warn.Service; | |||
public interface IWarnInfoService:IApiBaseInterface<WarnInfoDto, WarnInfoList, WarnInfoSearch> | |||
{ | |||
/// <summary> | |||
/// 处理预警 | |||
/// </summary> | |||
/// <param name="id"></param> | |||
/// <param name="remark"></param> | |||
/// <returns></returns> | |||
Task<bool> HandWarn(long id,string remark); | |||
/// <summary> | |||
/// 获取列表不分页 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<WarnInfo>> GetListNoPage(WarnInfoSearch search); | |||
/// <summary> | |||
/// 获取告警分离列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<WarnType>> GetWarnType(); | |||
} |
@@ -0,0 +1,147 @@ | |||
using Mapster; | |||
using MoYu.DependencyInjection; | |||
using MoYu.FriendlyException; | |||
using SafeCampus.Application.Services.Business; | |||
using SafeCampus.Application.Services.Business.Warn.Dto; | |||
using SafeCampus.Application.Services.Business.Warn.Service; | |||
namespace SafeCampus.Web.Core.Controllers.Application.Business.Warn.Service; | |||
public class WarnInfoService:DbRepository<WarnInfo>, IWarnInfoService,ITransient | |||
{ | |||
private readonly ISimpleCacheService _simpleCacheService; | |||
public WarnInfoService(ISimpleCacheService simpleCacheService) | |||
{ | |||
_simpleCacheService = simpleCacheService; | |||
} | |||
public async Task<bool> Add(WarnInfoDto vm) | |||
{ | |||
var model = vm.Adapt<WarnInfo>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Delete(long Id) | |||
{ | |||
var model = await GetFirstAsync(x=>x.Id==Id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
await DeleteAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Update(WarnInfoDto vm) | |||
{ | |||
if (!vm.ID.HasValue) | |||
{ | |||
throw Oops.Oh("请填写ID"); | |||
} | |||
var model = await GetFirstAsync(p => p.Id == vm.ID); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
var res = vm.Adapt(model); | |||
await UpdateAsync(res); | |||
return true; | |||
} | |||
public async Task<WarnInfoDto> GetInfo(long Id) | |||
{ | |||
var model = await GetFirstAsync(p => p.Id == Id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在!"); | |||
} | |||
return model.Adapt<WarnInfoDto>(); | |||
} | |||
public async Task<SqlSugarPagedList<WarnInfoList>> GetList(WarnInfoSearch search) | |||
{ | |||
var config = _simpleCacheService.Get<List<WarnGroupInfo>>(SafeCampusConst.WarnGroup); | |||
var guolvIds = new List<long>(); | |||
if (config!=null) | |||
{ | |||
var guolv = Context.Queryable<WarnInfo>(); | |||
foreach (var warnGroupInfo in config) | |||
{ | |||
if (warnGroupInfo.State) | |||
{ | |||
foreach (var warnGroupSubset in warnGroupInfo.Subset) | |||
{ | |||
if (!warnGroupSubset.State) | |||
{ | |||
guolvIds.AddRange(await guolv | |||
.Where(x => warnGroupInfo.CameraId.Contains(x.CameraId) && | |||
x.AlarmType == warnGroupSubset.Code).Select(x => x.Id).ToListAsync()); | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
guolvIds.AddRange(await guolv | |||
.Where(x => warnGroupInfo.CameraId.Contains(x.CameraId)).Select(x => x.Id).ToListAsync()); | |||
} | |||
} | |||
} | |||
var query = Context.Queryable<WarnInfo>() | |||
.WhereIF(search.WarnHand.HasValue, x => x.WarnHand == search.WarnHand) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType),x => x.AlarmType == search.AlarmType) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(search.StartTick.HasValue,x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick) | |||
.WhereIF(guolvIds.Any(),x=>!guolvIds.Contains(x.Id)); | |||
var list=await query.OrderByDescending(x=>x.Tick) | |||
.ToPagedListAsyncMapster<WarnInfo,WarnInfoList>(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
public async Task<bool> HandWarn(long id, string remark) | |||
{ | |||
var model = await GetFirstAsync(p => p.Id == id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在!"); | |||
} | |||
model.Remark = remark; | |||
model.WarnHand = 1; | |||
model.HandTime = DateTime.Now; | |||
await UpdateAsync(model); | |||
return true; | |||
} | |||
public async Task<List<WarnInfo>> GetListNoPage(WarnInfoSearch search) | |||
{ | |||
var query = Context.Queryable<WarnInfo>() | |||
.WhereIF(search.WarnHand.HasValue, x => x.WarnHand == search.WarnHand) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick); | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToListAsync(); | |||
return list; | |||
} | |||
public async Task<List<WarnType>>GetWarnType() | |||
{ | |||
var query = Context.Queryable<WarnInfo>() | |||
.GroupBy(x => new { x.AlarmType, x.AlarmTypeDesc }) | |||
.Select(xx => new WarnType | |||
{ | |||
Name = xx.AlarmTypeDesc, | |||
Code = xx.AlarmType | |||
}); | |||
return await query.ToListAsync(); | |||
} | |||
} |
@@ -0,0 +1,36 @@ | |||
namespace SafeCampus.Application.Services; | |||
public interface IApiBaseInterface<T, TList, in TS> where TS : BasePageInput where T : class where TList : class | |||
{ | |||
/// <summary> | |||
/// 添加 | |||
/// </summary> | |||
/// <param name="vm"></param> | |||
/// <returns></returns> | |||
public Task<bool> Add(T vm); | |||
/// <summary> | |||
/// 删除 | |||
/// </summary> | |||
/// <param name="Id"></param> | |||
/// <returns></returns> | |||
public Task<bool> Delete(long Id); | |||
/// <summary> | |||
/// 修改 | |||
/// </summary> | |||
/// <param name="vm"></param> | |||
/// <returns></returns> | |||
public Task<bool> Update(T vm); | |||
/// <summary> | |||
/// 根据id获取信息 | |||
/// </summary> | |||
/// <param name="Id"></param> | |||
/// <returns></returns> | |||
public Task<T> GetInfo(long Id); | |||
/// <summary> | |||
/// 获取列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
public Task<SqlSugarPagedList<TList>> GetList(TS search); | |||
} |
@@ -0,0 +1,57 @@ | |||
| |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 机构服务 | |||
/// </summary> | |||
public interface IOrgService : ITransient | |||
{ | |||
/// <summary> | |||
/// 添加机构 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task Add(SysOrgAddInput input); | |||
/// <summary> | |||
/// 复制机构 | |||
/// </summary> | |||
/// <param name="input">机构复制参数</param> | |||
/// <returns></returns> | |||
Task Copy(SysOrgCopyInput input); | |||
/// <summary> | |||
/// 删除机构 | |||
/// </summary> | |||
/// <param name="input">删除参数</param> | |||
/// <returns></returns> | |||
Task Delete(BaseIdListInput input); | |||
/// <summary> | |||
/// 编辑机构 | |||
/// </summary> | |||
/// <param name="input">编辑参数</param> | |||
/// <returns></returns> | |||
Task Edit(SysOrgEditInput input); | |||
/// <summary> | |||
/// 机构分页查询 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns>分页信息</returns> | |||
Task<SqlSugarPagedList<SysOrg>> Page(SysOrgPageInput input); | |||
/// <summary> | |||
/// 机构树结构 | |||
/// </summary> | |||
/// <param name="input">机构选择器</param> | |||
/// <returns></returns> | |||
Task<List<SysOrg>> Tree(SysOrgTreeInput input = null); | |||
/// <summary> | |||
/// 机构详情 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<SysOrg> Detail(BaseIdInput input); | |||
} |
@@ -0,0 +1,140 @@ | |||
| |||
namespace SafeCampus.Application; | |||
/// <inheritdoc cref="IOrgService"/> | |||
public class OrgService : DbRepository<SysOrg>, IOrgService | |||
{ | |||
private readonly ISysOrgService _sysOrgService; | |||
private readonly ISysUserService _sysUserService; | |||
public OrgService(ISysOrgService sysOrgService, ISysUserService sysUserService) | |||
{ | |||
_sysOrgService = sysOrgService; | |||
_sysUserService = sysUserService; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<SqlSugarPagedList<SysOrg>> Page(SysOrgPageInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
dataScope?.Remove(UserManager.OrgId); | |||
//构建查询 | |||
var query = Context.Queryable<SysOrg>() | |||
.WhereIF(dataScope != null, it => dataScope.Contains(it.Id))//机构ID查询 | |||
.WhereIF(input.ParentId > 0, | |||
it => it.ParentId == input.ParentId || SqlFunc.JsonLike(it.ParentIdList, input.ParentId.ToString()))//父级 | |||
.WhereIF(!string.IsNullOrEmpty(input.Name), it => it.Name.Contains(input.Name))//根据名称查询 | |||
.WhereIF(!string.IsNullOrEmpty(input.Code), it => it.Code.Contains(input.Code))//根据编码查询 | |||
.WhereIF(!string.IsNullOrEmpty(input.Status), it => it.Status == input.Status)//根据状态查询 | |||
.OrderByIF(!string.IsNullOrEmpty(input.SortField), $"{input.SortField} {input.SortOrder}").OrderBy(it => it.SortCode) | |||
.OrderBy(it => it.CreateTime);//排序 | |||
var pageInfo = await query.ToPagedListAsync(input.PageNum, input.PageSize);//分页 | |||
return pageInfo; | |||
} | |||
/// <inheritdoc /> | |||
public async Task<List<SysOrg>> Tree(SysOrgTreeInput input = null) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
//构建机构树 | |||
var result = await _sysOrgService.Tree(dataScope, input); | |||
return result; | |||
} | |||
/// <inheritdoc /> | |||
public async Task Add(SysOrgAddInput input) | |||
{ | |||
await CheckInput(input, SystemConst.ADD);//检查参数 | |||
await _sysOrgService.Add(input, ApplicationConst.BIZ_ORG); | |||
} | |||
/// <inheritdoc /> | |||
public async Task Edit(SysOrgEditInput input) | |||
{ | |||
await CheckInput(input, SystemConst.EDIT);//检查参数 | |||
await _sysOrgService.Edit(input, ApplicationConst.BIZ_ORG); | |||
} | |||
/// <inheritdoc /> | |||
public async Task Copy(SysOrgCopyInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope == null || dataScope.Count > 0)//如果有机构 | |||
{ | |||
if (dataScope is { Count: > 0 } && (!dataScope.ContainsAll(input.Ids) || !dataScope.Contains(input.TargetId)))//判断目标机构和需要复制的机构是否都在数据范围里面 | |||
throw Oops.Bah("您没有权限复制这些机构"); | |||
await _sysOrgService.Copy(input);//复制操作 | |||
} | |||
} | |||
/// <inheritdoc /> | |||
public async Task Delete(BaseIdListInput input) | |||
{ | |||
//获取所有ID | |||
var ids = input.Ids; | |||
//获取要删除的机构列表 | |||
var orgList = (await _sysOrgService.GetListAsync()).Where(it => ids.Contains(it.Id)).ToList(); | |||
if (orgList.Any(it => it.Category == CateGoryConst.ORG_COMPANY))//如果有公司{ | |||
throw Oops.Bah("不能删除根机构"); | |||
//检查数据范围 | |||
var orgIds = orgList.Select(it => it.Id).ToList(); | |||
var createUserIds = orgList.Select(it => it.CreateUserId.GetValueOrDefault()).ToList(); | |||
await _sysUserService.CheckApiDataScope(orgIds, createUserIds, "您没有权限删除这些机构"); | |||
await _sysOrgService.Delete(input, ApplicationConst.BIZ_ORG);//删除操作 | |||
} | |||
/// <inheritdoc /> | |||
public async Task<SysOrg> Detail(BaseIdInput input) | |||
{ | |||
var org = await _sysOrgService.GetSysOrgById(input.Id);//获取机构 | |||
var errorMessage = "您没有权限查看该机构"; | |||
//判断数据范围 | |||
await _sysUserService.CheckApiDataScope(org.Id, org.CreateUserId.GetValueOrDefault(), errorMessage); | |||
return org; | |||
} | |||
#region 方法 | |||
/// <summary> | |||
/// 检查输入参数 | |||
/// </summary> | |||
/// <param name="sysOrg">参数</param> | |||
/// <param name="operate">操作名称</param> | |||
private async Task CheckInput(SysOrg sysOrg, string operate) | |||
{ | |||
sysOrg.Category = CateGoryConst.ORG_DEPT;//设置分类为部门,业务只能操作部门 | |||
if (sysOrg.ParentId == SafeCampusConst.ZERO) | |||
{ | |||
throw Oops.Bah($"不能{operate}根机构"); | |||
} | |||
var errorMessage = $"您没有权限{operate}该机构"; | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope is { Count: > 0 })//如果有机构 | |||
{ | |||
if (sysOrg.Id > 0 && !dataScope.Contains(sysOrg.Id))//如果id不为0判断是否在数据范围 | |||
throw Oops.Bah(errorMessage); | |||
if (!dataScope.Contains(sysOrg.ParentId))//判断父ID是否在数据范围 | |||
throw Oops.Bah($"{errorMessage}下的机构"); | |||
} | |||
else if (dataScope is { Count: 0 }) | |||
{ | |||
//如果id大于0表示编辑 | |||
if (sysOrg.Id > 0) | |||
{ | |||
var org = await _sysOrgService.GetSysOrgById(sysOrg.Id);//获取机构 | |||
if (org.CreateUserId != UserManager.UserId) | |||
throw Oops.Bah(errorMessage);//机构的创建人不是自己则报错 | |||
} | |||
else | |||
{ | |||
throw Oops.Bah(errorMessage); | |||
} | |||
} | |||
} | |||
#endregion 方法 | |||
} |
@@ -0,0 +1,66 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 岗位管理 | |||
/// </summary> | |||
public interface IPositionService : ITransient | |||
{ | |||
/// <summary> | |||
/// 添加岗位 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task Add(PositionAddInput input); | |||
/// <summary> | |||
/// 删除岗位 | |||
/// </summary> | |||
/// <param name="input">id列表</param> | |||
/// <returns></returns> | |||
Task Delete(BaseIdListInput input); | |||
/// <summary> | |||
/// 编辑岗位 | |||
/// </summary> | |||
/// <param name="input">编辑参数</param> | |||
/// <returns></returns> | |||
Task Edit(PositionEditInput input); | |||
/// <summary> | |||
/// 岗位分页查询 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns>分页列表</returns> | |||
Task<SqlSugarPagedList<SysPosition>> Page(PositionPageInput input); | |||
/// <summary> | |||
/// 岗位选择器 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<List<PositionSelectorOutput>> Selector(PositionSelectorInput input); | |||
/// <summary> | |||
/// 岗位详情 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<SysPosition> Detail(BaseIdInput input); | |||
/// <summary> | |||
/// 岗位树形结构 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<List<PositionTreeOutput>> Tree(PositionTreeInput input); | |||
} |
@@ -0,0 +1,131 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// <inheritdoc cref="IPositionService"/> | |||
/// </summary> | |||
public class PositionService : DbRepository<SysPosition>, IPositionService | |||
{ | |||
private readonly ISysUserService _sysUserService; | |||
private readonly ISysPositionService _sysPositionService; | |||
public PositionService(ISysUserService sysUserService, ISysPositionService sysPositionService) | |||
{ | |||
_sysUserService = sysUserService; | |||
_sysPositionService = sysPositionService; | |||
} | |||
#region 查询 | |||
/// <inheritdoc /> | |||
public async Task<SqlSugarPagedList<SysPosition>> Page(PositionPageInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope; | |||
//分页查询 | |||
var pageInfo = await _sysPositionService.Page(input); | |||
return pageInfo; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<PositionTreeOutput>> Tree(PositionTreeInput input) | |||
{ | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope; | |||
var result = await _sysPositionService.Tree(input); | |||
return result; | |||
} | |||
#endregion | |||
#region 新增 | |||
/// <inheritdoc /> | |||
public async Task Add(PositionAddInput input) | |||
{ | |||
await CheckInput(input, SystemConst.ADD);//检查参数 | |||
await _sysPositionService.Add(input, ApplicationConst.BIZ_POS);//添加岗位 | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<PositionSelectorOutput>> Selector(PositionSelectorInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope;//赋值机构列表 | |||
var result = await _sysPositionService.Selector(input);//查询 | |||
return result; | |||
} | |||
/// <inheritdoc /> | |||
public async Task<SysPosition> Detail(BaseIdInput input) | |||
{ | |||
var position = await _sysPositionService.GetSysPositionById(input.Id); | |||
//判断数据范围 | |||
await _sysUserService.CheckApiDataScope(position.OrgId, position.CreateUserId.GetValueOrDefault(), "您没有权限查看该机构"); | |||
return position; | |||
} | |||
#endregion | |||
#region 编辑 | |||
/// <inheritdoc /> | |||
public async Task Edit(PositionEditInput input) | |||
{ | |||
await CheckInput(input, SystemConst.EDIT);//检查参数 | |||
await _sysPositionService.Edit(input, ApplicationConst.BIZ_POS);//编辑 | |||
} | |||
#endregion | |||
#region 删除 | |||
/// <inheritdoc /> | |||
public async Task Delete(BaseIdListInput input) | |||
{ | |||
//获取所有ID | |||
var ids = input.Ids; | |||
//获取要删除的岗位列表 | |||
var positions = (await _sysPositionService.GetListAsync()).Where(it => ids.Contains(it.Id)).ToList(); | |||
//检查数据范围 | |||
var orgIds = positions.Select(it => it.OrgId).ToList(); | |||
var createUserIds = positions.Select(it => it.CreateUserId.GetValueOrDefault()).ToList(); | |||
await _sysUserService.CheckApiDataScope(orgIds, createUserIds, "您没有权限删除该机构"); | |||
await _sysPositionService.Delete(input, ApplicationConst.BIZ_ORG);//删除岗位 | |||
} | |||
#endregion | |||
#region 方法 | |||
/// <summary> | |||
/// 检查输入参数 | |||
/// </summary> | |||
/// <param name="sysPosition">参数</param> | |||
/// <param name="operate">操作名称</param> | |||
private async Task CheckInput(SysPosition sysPosition, string operate) | |||
{ | |||
var errorMessage = $"您没有权限在该机构下{operate}岗位"; | |||
//如果id大于0表示编辑 | |||
if (sysPosition.Id > 0) | |||
{ | |||
var position = await _sysPositionService.GetSysPositionById(sysPosition.Id);//获取机构 | |||
sysPosition.CreateUserId = position.CreateUserId; | |||
} | |||
await _sysUserService.CheckApiDataScope(sysPosition.OrgId, sysPosition.CreateUserId.GetValueOrDefault(), errorMessage); | |||
} | |||
#endregion 方法 | |||
} |
@@ -0,0 +1,115 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
public interface IRoleService : ITransient | |||
{ | |||
#region 查询 | |||
/// <summary> | |||
/// 角色拥有资源 | |||
/// </summary> | |||
/// <param name="input">角色id</param> | |||
/// <param name="category">资源类型</param> | |||
/// <returns>角色拥有资源信息</returns> | |||
Task<RoleOwnResourceOutput> OwnResource(BaseIdInput input, string category); | |||
/// <summary> | |||
/// 获取角色下的用户 | |||
/// </summary> | |||
/// <param name="input">角色ID</param> | |||
/// <returns></returns> | |||
Task<List<UserSelectorOutPut>> OwnUser(BaseIdInput input); | |||
/// <summary> | |||
/// 分页查询角色 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<SysRole>> Page(RolePageInput input); | |||
/// <summary> | |||
/// 角色选择器 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<RoleSelectorOutPut>> RoleSelector(RoleSelectorInput input); | |||
/// <summary> | |||
/// 获取角色树 | |||
/// </summary> | |||
/// <param name="input">角色树</param> | |||
/// <returns></returns> | |||
Task<List<RoleTreeOutput>> Tree(RoleTreeInput input); | |||
/// <summary> | |||
/// 角色详情 | |||
/// </summary> | |||
/// <param name="input">角色Id</param> | |||
/// <returns></returns> | |||
Task<SysRole> Detail(BaseIdInput input); | |||
/// <summary> | |||
/// 资源树选择器 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<ResTreeSelector>> ResourceTreeSelector(); | |||
#endregion | |||
#region 新增 | |||
/// <summary> | |||
/// 添加角色 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task Add(RoleAddInput input); | |||
#endregion | |||
#region 编辑 | |||
/// <summary> | |||
/// 编辑角色 | |||
/// </summary> | |||
/// <param name="input">编辑参数</param> | |||
/// <returns></returns> | |||
Task Edit(RoleEditInput input); | |||
/// <summary> | |||
/// 给角色授权 | |||
/// </summary> | |||
/// <param name="input">授权参数</param> | |||
/// <returns></returns> | |||
Task GrantResource(GrantResourceInput input); | |||
/// <summary> | |||
/// 给角色授权用户 | |||
/// </summary> | |||
/// <param name="input">授权信息</param> | |||
/// <returns></returns> | |||
Task GrantUser(GrantUserInput input); | |||
#endregion | |||
#region 删除 | |||
/// <summary> | |||
/// 删除角色 | |||
/// </summary> | |||
/// <param name="input">删除参数</param> | |||
/// <returns></returns> | |||
Task Delete(BaseIdListInput input); | |||
#endregion | |||
} |
@@ -0,0 +1,286 @@ | |||
| |||
// | |||
using Microsoft.Extensions.Logging; | |||
using NewLife.Serialization; | |||
namespace SafeCampus.Application; | |||
/// <inheritdoc cref="IRoleService"/> | |||
public class RoleService : IRoleService | |||
{ | |||
private readonly ILogger<RoleService> _logger; | |||
private readonly ISysUserService _sysUserService; | |||
private readonly ISysRoleService _sysRoleService; | |||
private readonly IResourceService _resourceService; | |||
private readonly IRelationService _relationService; | |||
public RoleService(ILogger<RoleService> logger, ISysUserService sysUserService, ISysRoleService sysRoleService, | |||
IResourceService resourceService, IRelationService relationService) | |||
{ | |||
_logger = logger; | |||
_sysUserService = sysUserService; | |||
_sysRoleService = sysRoleService; | |||
_resourceService = resourceService; | |||
_relationService = relationService; | |||
} | |||
#region 查询 | |||
/// <inheritdoc/> | |||
public async Task<RoleOwnResourceOutput> OwnResource(BaseIdInput input, string category) | |||
{ | |||
return await _sysRoleService.OwnResource(input, category); | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<UserSelectorOutPut>> OwnUser(BaseIdInput input) | |||
{ | |||
return await _sysRoleService.OwnUser(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task<SqlSugarPagedList<SysRole>> Page(RolePageInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope; | |||
input.Category = CateGoryConst.ROLE_ORG;//只查询机构角色 | |||
//分页查询 | |||
var pageInfo = await _sysRoleService.Page(input); | |||
return pageInfo; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<SqlSugarPagedList<RoleSelectorOutPut>> RoleSelector(RoleSelectorInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope; | |||
return await _sysRoleService.RoleSelector(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<RoleTreeOutput>> Tree(RoleTreeInput input) | |||
{ | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
input.OrgIds = dataScope; | |||
return await _sysRoleService.Tree(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task<SysRole> Detail(BaseIdInput input) | |||
{ | |||
var role = await _sysRoleService.Detail(input); | |||
var errorMessage = "您没有权限查看该角色"; | |||
await _sysUserService.CheckApiDataScope(role.OrgId, role.CreateUserId, errorMessage); | |||
return role; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<ResTreeSelector>> ResourceTreeSelector() | |||
{ | |||
var resourceTreeSelectors = new List<ResTreeSelector>();//定义结果 | |||
var user = await _sysUserService.GetUserById(UserManager.UserId);//获取用户 | |||
//获取角色资源关系 | |||
var relations = | |||
await _relationService.GetRelationListByObjectIdListAndCategory(user.RoleIdList, CateGoryConst.RELATION_SYS_ROLE_HAS_RESOURCE); | |||
var menuIds = new HashSet<long>();//菜单ID集合 | |||
var buttonIds = new HashSet<long>();//按钮ID集合 | |||
relations.ForEach(it => | |||
{ | |||
var resources = it.ExtJson.ToJsonEntity<RelationRoleResource>();//转换为对象获取资源 | |||
menuIds.Add(resources.MenuId);//添加菜单ID | |||
resources.ButtonInfo.ForEach(b => buttonIds.Add(b));//添加按钮ID | |||
}); | |||
var menuList = await _resourceService.GetListByCategory(CateGoryConst.RESOURCE_MENU);//获取所有菜单 | |||
var buttonList = await _resourceService.GetListByCategory(CateGoryConst.RESOURCE_BUTTON);//获取所有按钮 | |||
var moduleList = await _resourceService.GetListByCategory(CateGoryConst.RESOURCE_MODULE);//获取所有模块 | |||
var ownMenuList = menuList.Where(it => menuIds.Contains(it.Id)).ToList();//已拥有的菜单 | |||
var parentMenuList = menuList.Where(it => ownMenuList.Select(m => m.ParentId).Contains(it.Id)).ToList();//获取所有父级菜单 | |||
ownMenuList.AddRange(parentMenuList);//将父级菜单加入到拥有菜单列表 | |||
var ownButtonList = buttonList.Where(it => buttonIds.Contains(it.Id)).ToList();//已拥有的按钮 | |||
var moduleIds = ownMenuList.Select(it => it.Module.GetValueOrDefault()).Distinct().ToList();//模块ID集合 | |||
var ownModuleList = moduleList.Where(it => moduleIds.Contains(it.Id)).ToList();//已拥有的模块 | |||
//遍历模块 | |||
foreach (var module in ownModuleList) | |||
{ | |||
//将实体转换为ResourceTreeSelectorOutPut获取基本信息 | |||
var resourceTreeSelector = module.Adapt<ResTreeSelector>(); | |||
resourceTreeSelector.Menu = await GetRoleGrantResourceMenus(module.Id, ownMenuList, ownButtonList);//获取授权菜单 | |||
resourceTreeSelectors.Add(resourceTreeSelector); | |||
} | |||
return resourceTreeSelectors; | |||
} | |||
#endregion | |||
#region 增加 | |||
/// <inheritdoc/> | |||
public async Task Add(RoleAddInput input) | |||
{ | |||
await CheckInput(input);//检查参数 | |||
await _sysRoleService.Add(input); | |||
} | |||
#endregion | |||
#region 编辑 | |||
/// <inheritdoc/> | |||
public async Task Edit(RoleEditInput input) | |||
{ | |||
await CheckInput(input);//检查参数 | |||
await _sysRoleService.Edit(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task GrantResource(GrantResourceInput input) | |||
{ | |||
await _sysRoleService.GrantResource(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task GrantUser(GrantUserInput input) | |||
{ | |||
await _sysRoleService.GrantUser(input); | |||
} | |||
#endregion | |||
#region 删除 | |||
/// <inheritdoc/> | |||
public async Task Delete(BaseIdListInput input) | |||
{ | |||
//获取所有ID | |||
var ids = input.Ids; | |||
//获取要删除的机构列表 | |||
var roleList = (await _sysRoleService.GetListAsync()).Where(it => ids.Contains(it.Id)).ToList(); | |||
if (roleList.Any(it => it.Category == CateGoryConst.ROLE_GLOBAL))//如果有全局角色 | |||
throw Oops.Bah("不能删除全局角色"); | |||
//检查数据范围 | |||
var orgIds = roleList.Select(it => it.OrgId.GetValueOrDefault()).ToList(); | |||
var createUserIds = roleList.Select(it => it.CreateUserId.GetValueOrDefault()).ToList(); | |||
await _sysUserService.CheckApiDataScope(orgIds, createUserIds, "您没有权限删除这些角色"); | |||
await _sysRoleService.Delete(input); | |||
} | |||
#endregion | |||
#region 方法 | |||
/// <summary> | |||
/// 检查输入参数 | |||
/// </summary> | |||
/// <param name="sysRole"></param> | |||
private async Task CheckInput(SysRole sysRole) | |||
{ | |||
sysRole.Category = CateGoryConst.ROLE_ORG; | |||
if (sysRole.DefaultDataScope.ScopeCategory == CateGoryConst.SCOPE_ALL) | |||
throw Oops.Bah("不能添加全局数据范围的角色"); | |||
await _sysUserService.CheckApiDataScope(sysRole.OrgId, sysRole.CreateUserId.GetValueOrDefault(), "您没有权限添加该角色"); | |||
} | |||
/// <summary> | |||
/// 获取授权菜单 | |||
/// </summary> | |||
/// <param name="moduleId">模块Id</param> | |||
/// <param name="ownMenuList">拥有菜单列表</param> | |||
/// <param name="ownButtonList">拥有权限按钮列表</param> | |||
/// <returns></returns> | |||
public async Task<List<ResTreeSelector.RoleGrantResourceMenu>> GetRoleGrantResourceMenus(long moduleId, List<SysResource> ownMenuList, | |||
List<SysResource> ownButtonList) | |||
{ | |||
var roleGrantResourceMenus = new List<ResTreeSelector.RoleGrantResourceMenu>();//定义结果 | |||
var parentMenuList = ownMenuList.Where(it => it.ParentId == SafeCampusConst.ZERO).ToList();//获取一级目录 | |||
//遍历一级目录 | |||
foreach (var parent in parentMenuList) | |||
{ | |||
//如果是目录则去遍历下级 | |||
if (parent.MenuType == SysResourceConst.CATALOG) | |||
{ | |||
//获取所有下级菜单 | |||
var menuList = _resourceService.GetChildListById(ownMenuList, parent.Id, false); | |||
if (menuList.Count > 0)//如果有菜单 | |||
{ | |||
//遍历下级菜单 | |||
foreach (var menu in menuList) | |||
{ | |||
//如果菜单类型是菜单 | |||
if (menu.MenuType is SysResourceConst.MENU or SysResourceConst.SUBSET) | |||
{ | |||
//获取菜单下按钮集合并转换成对应实体 | |||
var buttonList = ownButtonList.Where(it => it.ParentId == menu.Id).ToList(); | |||
var buttons = buttonList.Adapt<List<ResTreeSelector.RoleGrantResourceButton>>(); | |||
roleGrantResourceMenus.Add(new ResTreeSelector.RoleGrantResourceMenu | |||
{ | |||
Id = menu.Id, | |||
ParentId = parent.Id, | |||
ParentName = parent.Title, | |||
Module = moduleId, | |||
Title = _resourceService.GetRoleGrantResourceMenuTitle(menuList, menu),//菜单名称需要特殊处理因为有二级菜单 | |||
Button = buttons | |||
}); | |||
} | |||
else if (menu.MenuType == SysResourceConst.LINK || menu.MenuType == SysResourceConst.IFRAME)//如果是内链或者外链 | |||
{ | |||
//直接加到资源列表 | |||
roleGrantResourceMenus.Add(new ResTreeSelector.RoleGrantResourceMenu | |||
{ | |||
Id = menu.Id, | |||
ParentId = parent.Id, | |||
ParentName = parent.Title, | |||
Module = moduleId, | |||
Title = menu.Title | |||
}); | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
//否则就将自己加到一级目录里面 | |||
roleGrantResourceMenus.Add(new ResTreeSelector.RoleGrantResourceMenu | |||
{ | |||
Id = parent.Id, | |||
ParentId = parent.Id, | |||
ParentName = parent.Title, | |||
Module = moduleId | |||
}); | |||
} | |||
} | |||
else | |||
{ | |||
//就将自己加到一级目录里面 | |||
var roleGrantResourcesButtons = new ResTreeSelector.RoleGrantResourceMenu | |||
{ | |||
Id = parent.Id, | |||
ParentId = parent.Id, | |||
ParentName = parent.Title, | |||
Module = moduleId, | |||
Title = parent.Title | |||
}; | |||
//如果菜单类型是菜单 | |||
if (parent.MenuType == SysResourceConst.MENU) | |||
{ | |||
//获取菜单下按钮集合并转换成对应实体 | |||
var buttonList = ownButtonList.Where(it => it.ParentId == parent.Id).ToList(); | |||
roleGrantResourcesButtons.Button = buttonList.Adapt<List<ResTreeSelector.RoleGrantResourceButton>>(); | |||
} | |||
roleGrantResourceMenus.Add(roleGrantResourcesButtons); | |||
} | |||
} | |||
return roleGrantResourceMenus; | |||
} | |||
#endregion | |||
} |
@@ -0,0 +1,18 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 业务用户导入 | |||
/// </summary> | |||
public class BizUserImportInput : SysUserImportInput | |||
{ | |||
} |
@@ -0,0 +1,18 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 业务用户导出 | |||
/// </summary> | |||
public class BizUserExportOutput : SysUserExportOutput | |||
{ | |||
} |
@@ -0,0 +1,155 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// 人员管理服务 | |||
/// </summary> | |||
public interface IUserService : ITransient | |||
{ | |||
#region 查询 | |||
/// <summary> | |||
/// 人员选择器 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns>人员列表</returns> | |||
Task<SqlSugarPagedList<UserSelectorOutPut>> Selector(UserSelectorInput input); | |||
/// <summary> | |||
/// 用户分页查询 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns>用户分页列表</returns> | |||
Task<SqlSugarPagedList<SysUser>> Page(UserPageInput input); | |||
/// <summary> | |||
/// 获取用户拥有角色 | |||
/// </summary> | |||
/// <param name="input">用户ID</param> | |||
/// <returns></returns> | |||
Task<List<RoleSelectorOutPut>> OwnRole(BaseIdInput input); | |||
/// <summary> | |||
/// 角色选择器 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<RoleSelectorOutPut>> RoleSelector(RoleSelectorInput input); | |||
/// <summary> | |||
/// 人员详情 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<SysUser> Detail(BaseIdInput input); | |||
#endregion 查询 | |||
#region 添加 | |||
/// <summary> | |||
/// 添加用户 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task Add(UserAddInput input); | |||
#endregion 添加 | |||
#region 编辑 | |||
/// <summary> | |||
/// 编辑 | |||
/// </summary> | |||
/// <param name="input">编辑参数</param> | |||
/// <returns></returns> | |||
Task Edit(UserEditInput input); | |||
/// <summary> | |||
/// 禁用用户 | |||
/// </summary> | |||
/// <param name="input">用户Id</param> | |||
/// <returns></returns> | |||
Task DisableUser(BaseIdInput input); | |||
/// <summary> | |||
/// 启用用户 | |||
/// </summary> | |||
/// <param name="input">用户Id</param> | |||
/// <returns></returns> | |||
Task EnableUser(BaseIdInput input); | |||
/// <summary> | |||
/// 重置密码 | |||
/// </summary> | |||
/// <param name="input">用户Id</param> | |||
/// <returns></returns> | |||
Task ResetPassword(BaseIdInput input); | |||
/// <summary> | |||
/// 给用户授权角色 | |||
/// </summary> | |||
/// <param name="input">授权参数</param> | |||
/// <returns></returns> | |||
Task GrantRole(UserGrantRoleInput input); | |||
#endregion 编辑 | |||
#region 删除 | |||
/// <summary> | |||
/// 删除用户 | |||
/// </summary> | |||
/// <param name="input">Id列表</param> | |||
/// <returns></returns> | |||
Task Delete(BaseIdListInput input); | |||
#endregion 删除 | |||
#region 导入导出 | |||
/// <summary> | |||
/// 导入预览 | |||
/// </summary> | |||
/// <param name="input">导入参数</param> | |||
/// <returns></returns> | |||
Task<dynamic> Preview(ImportPreviewInput input); | |||
/// <summary> | |||
/// 获取导入模板 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<FileStreamResult> Template(); | |||
/// <summary> | |||
/// 导出 | |||
/// </summary> | |||
/// <param name="input">查询参数</param> | |||
/// <returns></returns> | |||
Task<dynamic> Export(UserPageInput input); | |||
/// <summary> | |||
/// 导入数据 | |||
/// </summary> | |||
/// <param name="input">数据</param> | |||
/// <returns>导入结果</returns> | |||
Task<ImportResultOutPut<BizUserImportInput>> Import(ImportResultInput<BizUserImportInput> input); | |||
/// <summary> | |||
/// 批量编辑 | |||
/// </summary> | |||
/// <param name="input">编辑字段信息</param> | |||
/// <returns></returns> | |||
Task Edits(BatchEditInput input); | |||
#endregion 导入导出 | |||
} |
@@ -0,0 +1,332 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// <inheritdoc cref="IUserService"/> | |||
/// </summary> | |||
public class UserService : DbRepository<SysUser>, IUserService | |||
{ | |||
private readonly ISysUserService _sysUserService; | |||
private readonly ISysRoleService _sysRoleService; | |||
private readonly IImportExportService _importExportService; | |||
public UserService(ISysUserService sysUserService, ISysRoleService sysRoleService, IImportExportService importExportService) | |||
{ | |||
_sysUserService = sysUserService; | |||
_sysRoleService = sysRoleService; | |||
_importExportService = importExportService; | |||
} | |||
#region 查询 | |||
/// <inheritdoc/> | |||
public async Task<SqlSugarPagedList<SysUser>> Page(UserPageInput input) | |||
{ | |||
var query = await GetQuery(input); | |||
//分页查询 | |||
var pageInfo = await _sysUserService.Page(query); | |||
return pageInfo; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<List<RoleSelectorOutPut>> OwnRole(BaseIdInput input) | |||
{ | |||
return await _sysUserService.OwnRole(input);//获取角色 | |||
} | |||
/// <inheritdoc/> | |||
public async Task<SqlSugarPagedList<UserSelectorOutPut>> Selector(UserSelectorInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope == null) | |||
return await _sysUserService.Selector(input);//查询 | |||
if (dataScope.Count > 0) | |||
{ | |||
input.OrgIds = dataScope;//赋值机构列表 | |||
return await _sysUserService.Selector(input);//查询 | |||
} | |||
//返回自己 | |||
return new SqlSugarPagedList<UserSelectorOutPut> | |||
{ | |||
Total = 1, | |||
Pages = 1, | |||
HasPrevPages = false, | |||
HasNextPages = false, | |||
List = new[] | |||
{ | |||
new UserSelectorOutPut | |||
{ | |||
Account = UserManager.UserAccount, Id = UserManager.UserId, | |||
Name = UserManager.Name, OrgId = UserManager.OrgId | |||
} | |||
} | |||
}; | |||
} | |||
/// <inheritdoc /> | |||
public async Task<SqlSugarPagedList<RoleSelectorOutPut>> RoleSelector(RoleSelectorInput input) | |||
{ | |||
var sysRoles = new SqlSugarPagedList<RoleSelectorOutPut> | |||
{ | |||
Total = 1, | |||
Pages = 1, | |||
HasPrevPages = false, | |||
HasNextPages = false, | |||
List = new List<RoleSelectorOutPut>() | |||
}; | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope == null) | |||
sysRoles = await _sysRoleService.RoleSelector(input);//获取角色选择器列表 | |||
else if (dataScope.Count > 0)//如果有机构 | |||
{ | |||
input.OrgIds = dataScope;//将数据范传进去 | |||
sysRoles = await _sysRoleService.RoleSelector(input);//获取角色选择器列表 | |||
} | |||
return sysRoles; | |||
} | |||
/// <inheritdoc /> | |||
public async Task<SysUser> Detail(BaseIdInput input) | |||
{ | |||
var user = await _sysUserService.Detail(input); | |||
var errorMessage = "您没有权限查看该人员"; | |||
//判断数据范围 | |||
await _sysUserService.CheckApiDataScope(user.OrgId, user.CreateUserId, errorMessage); | |||
return user; | |||
} | |||
#endregion 查询 | |||
#region 新增 | |||
/// <inheritdoc/> | |||
public async Task Add(UserAddInput input) | |||
{ | |||
await CheckInput(input, SystemConst.ADD);//检查参数 | |||
await _sysUserService.Add(input);//添加 | |||
} | |||
#endregion 新增 | |||
#region 编辑 | |||
/// <inheritdoc/> | |||
public async Task Edit(UserEditInput input) | |||
{ | |||
await CheckInput(input, SystemConst.EDIT);//检查参数 | |||
await _sysUserService.Edit(input);//编辑 | |||
} | |||
/// <inheritdoc/> | |||
public async Task Edits(BatchEditInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
var ids = input.Ids; | |||
var sysUsers = await GetListAsync(it => ids.Contains(it.Id), | |||
it => new SysUser { OrgId = it.OrgId, CreateUserId = it.CreateUserId });//根据用户ID获取机构id、 | |||
sysUsers.ForEach(it => | |||
{ | |||
if (dataScope != null && !dataScope.Contains(it.OrgId) && it.CreateUserId != UserManager.UserId) | |||
throw Oops.Bah(ErrorCodeEnum.A0004);//如果不包含机构id并且不是自己创建的 | |||
}); | |||
await _sysUserService.Edits(input); | |||
} | |||
/// <inheritdoc/> | |||
public async Task DisableUser(BaseIdInput input) | |||
{ | |||
await CheckInput(input.Id, SystemConst.DISABLE);//检查权限 | |||
await _sysUserService.DisableUser(input);//禁用 | |||
} | |||
/// <inheritdoc/> | |||
public async Task EnableUser(BaseIdInput input) | |||
{ | |||
await CheckInput(input.Id, SystemConst.ENABLE);//检查权限 | |||
await _sysUserService.EnableUser(input);//启用 | |||
} | |||
/// <inheritdoc/> | |||
public async Task GrantRole(UserGrantRoleInput input) | |||
{ | |||
await CheckInput(input.Id, SystemConst.DISABLE);//检查权限 | |||
await _sysUserService.GrantRole(input);//授权 | |||
} | |||
/// <inheritdoc/> | |||
public async Task ResetPassword(BaseIdInput input) | |||
{ | |||
await CheckInput(input.Id, SystemConst.RESET_PWD);//检查权限 | |||
await _sysUserService.ResetPassword(input);//重置密码 | |||
} | |||
#endregion 编辑 | |||
#region 删除 | |||
/// <inheritdoc/> | |||
public async Task Delete(BaseIdListInput input) | |||
{ | |||
//获取所有ID | |||
var ids = input.Ids; | |||
//获取用户下信息 | |||
var users = await GetListAsync(it => ids.Contains(it.Id), it => new SysUser { OrgId = it.OrgId, Id = it.Id }); | |||
//检查数据范围 | |||
var orgIds = users.Select(it => it.OrgId).ToList(); | |||
var createUserIds = users.Select(it => it.CreateUserId.GetValueOrDefault()).ToList(); | |||
await _sysUserService.CheckApiDataScope(orgIds, createUserIds, "您没有权限删除这些人员"); | |||
await _sysUserService.Delete(input);//删除 | |||
} | |||
#endregion 删除 | |||
#region 导入导出 | |||
/// <inheritdoc/> | |||
public async Task<FileStreamResult> Template() | |||
{ | |||
var templateName = "人员信息.xlsx"; | |||
//var result = _importExportService.GenerateLocalTemplate(templateName); | |||
var result = await _importExportService.GenerateTemplate<BizUserImportInput>(templateName); | |||
return result; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<dynamic> Preview(ImportPreviewInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope == null || dataScope.Count > 0) | |||
{ | |||
var importPreview = await _importExportService.GetImportPreview<BizUserImportInput>(input.File); | |||
importPreview.Data = await CheckImport(importPreview.Data, dataScope);//检查导入数据 | |||
return importPreview; | |||
} | |||
throw Oops.Bah("您无权导入用户"); | |||
} | |||
/// <inheritdoc/> | |||
public async Task<dynamic> Export(UserPageInput input) | |||
{ | |||
var query = await GetQuery(input); | |||
var users = await _sysUserService.List(query); | |||
var data = users.Adapt<List<SysUserExportOutput>>();//转为Dto | |||
var result = await _importExportService.Export(data, "人员信息"); | |||
return result; | |||
} | |||
/// <inheritdoc/> | |||
public async Task<ImportResultOutPut<BizUserImportInput>> Import(ImportResultInput<BizUserImportInput> input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
if (dataScope.Count > 0) | |||
{ | |||
var data = await CheckImport(input.Data, dataScope, true);//检查数据格式 | |||
var result = _importExportService.GetImportResultPreview(data, out var importData); | |||
var sysUsers = importData.Adapt<List<SysUser>>();//转实体 | |||
await _sysUserService.SetUserDefault(sysUsers);//设置用户默认值 | |||
await InsertOrBulkCopy(sysUsers);// 数据导入 | |||
return result; | |||
} | |||
throw Oops.Bah("您无权导入用户"); | |||
} | |||
#endregion 导入导出 | |||
#region 方法 | |||
/// <summary> | |||
/// 检查输入参数 | |||
/// </summary> | |||
/// <param name="sysUser"></param> | |||
/// <param name="operate">操作类型</param> | |||
private async Task CheckInput(SysUser sysUser, string operate) | |||
{ | |||
var errorMessage = $"您没有权限{operate}该机构下的人员"; | |||
if (sysUser.Id != SafeCampusConst.ZERO) | |||
{ | |||
var user = await _sysUserService.GetUserById(sysUser.Id); | |||
sysUser.CreateUserId = user.CreateUserId; | |||
} | |||
//检查数据范围 | |||
await _sysUserService.CheckApiDataScope(sysUser.OrgId, sysUser.CreateUserId.GetValueOrDefault(), errorMessage); | |||
} | |||
/// <summary> | |||
/// 检查输入参数 | |||
/// </summary> | |||
/// <param name="userId">用户ID</param> | |||
/// <param name="operate">操作</param> | |||
private async Task CheckInput(long userId, string operate) | |||
{ | |||
var errorMessage = $"您没有权限{operate}该机构下的人员"; | |||
var sysUser = await _sysUserService.GetUserById(userId); | |||
//检查数据范围 | |||
await _sysUserService.CheckApiDataScope(sysUser.OrgId, sysUser.CreateUserId.GetValueOrDefault(), errorMessage); | |||
} | |||
/// <summary> | |||
/// 检查导入数据 | |||
/// </summary> | |||
/// <param name="data">数据</param> | |||
/// <param name="dataScope">数据范围ID数组</param> | |||
/// <param name="clearError">是否初始化错误</param> | |||
/// <returns></returns> | |||
public async Task<List<BizUserImportInput>> CheckImport(List<BizUserImportInput> data, List<long> dataScope, bool clearError = false) | |||
{ | |||
var errorMessage = "没有权限"; | |||
//先经过系统用户检查 | |||
var bizUsers = await _sysUserService.CheckImport(data, clearError); | |||
bizUsers.ForEach(it => | |||
{ | |||
//如果机构没有错误 | |||
if (!it.ErrorInfo.ContainsKey(nameof(it.OrgName))) | |||
{ | |||
//判断是否包含数据范围,如果不包含 | |||
if (dataScope != null && !dataScope.Contains(it.OrgId)) | |||
{ | |||
it.ErrorInfo.Add(nameof(it.OrgName), errorMessage); | |||
if (!it.ErrorInfo.ContainsKey(nameof(it.PositionName)))//如果机构没错 | |||
it.ErrorInfo.Add(nameof(it.PositionName), errorMessage); | |||
} | |||
} | |||
if (it.ErrorInfo.Count > 0) it.HasError = true;//如果错误信息数量大于0则表示有错误 | |||
}); | |||
bizUsers = bizUsers.OrderByDescending(it => it.HasError).ToList();//排序 | |||
return bizUsers; | |||
} | |||
/// <summary> | |||
/// 获取查询条件 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
public async Task<UserPageInput> GetQuery(UserPageInput input) | |||
{ | |||
//获取数据范围 | |||
var dataScope = await _sysUserService.GetLoginUserApiDataScope(); | |||
//动态查询条件 | |||
var exp = Expressionable.Create<SysUser>(); | |||
exp.And(u => u.Account != SysRoleConst.SUPER_ADMIN); | |||
exp.AndIF(dataScope is { Count: > 0 }, u => dataScope.Contains(u.OrgId));//用户机构在数据范围内 | |||
exp.AndIF(dataScope is { Count: 0 }, u => u.Id == UserManager.UserId);//用户ID等于自己 | |||
input.Expression = exp; | |||
return input; | |||
} | |||
#endregion 方法 | |||
} |
@@ -0,0 +1,38 @@ | |||
| |||
// | |||
namespace SafeCampus.Application; | |||
/// <summary> | |||
/// AppStartup启动类 | |||
/// </summary> | |||
public class Startup : AppStartup | |||
{ | |||
/// <summary> | |||
/// ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
/// 服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
/// 正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
/// </summary> | |||
/// <param name="services"></param> | |||
public void ConfigureServices(IServiceCollection services) | |||
{ | |||
//业务配置转实体 | |||
services.AddConfigurableOptions<ApplicationSettingsOptions>(); | |||
services.AddConfigurableOptions<AppInfoOptions>(); | |||
} | |||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) | |||
{ | |||
var fullName = Assembly.GetExecutingAssembly().FullName;//获取程序集全名 | |||
//通过 App.GetOptions<TOptions> 获取选项 | |||
var settings = App.GetOptions<ApplicationSettingsOptions>(); | |||
CodeFirstUtils.CodeFirst(settings, fullName);//CodeFirst | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,12 @@ | |||
{ | |||
//缓存设置 | |||
"CacheSettings": { | |||
"UseRedis": true, //启用redis | |||
"RedisSettings": { | |||
"Address": "127.0.0.1:6379", //地址 | |||
"Password": "wxh@0000", //Redis服务密码 | |||
"Db": 1, //默认库 | |||
"ClearRedis": false //是否每次启动都清除Redis缓存 | |||
} | |||
} | |||
} |
@@ -0,0 +1,12 @@ | |||
{ | |||
//缓存设置 | |||
"CacheSettings": { | |||
"UseRedis": true, //启用redis | |||
"RedisSettings": { | |||
"Address": "127.0.0.1:6379", //地址 | |||
"Password": "wxh@0000", //Redis服务密码 | |||
"Db": 1, //默认库 | |||
"ClearRedis": false //是否每次启动都清除Redis缓存 | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
//秘钥配置 | |||
"Cryptogram": { | |||
//SM2国密配置 | |||
"SM2": { | |||
"PublicKey": "04BD62406DF6789B1FBE8C457AECAE6D7C806CDB39316F190519905C24DF395E8952C47798D76ADECF8CA28C935702AFCDD9B17DE77121FA6448F0EDEFBD8365D6", //公钥 | |||
"PrivateKey": "00F908E5ED9C2059A960E3A58056F69E0CF75299182CEB93B74CD1FDC633FCA0E5" //私钥 | |||
} | |||
}, | |||
//日志配置 | |||
"Logging": { | |||
"Monitor": { | |||
"Write": false, //是否文件写入LoggingMonitor日志 | |||
"Console": false, //是否控制台输出LoggingMonitor日志 | |||
}, | |||
"MessageFormat": true, //是否格式化日志 | |||
"LogLevel": { | |||
"Default": "Debug", //默认日志级别 | |||
"Max": "Error", //最大日志级别 | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information" | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
//秘钥配置 | |||
"Cryptogram": { | |||
//SM2国密配置 | |||
"SM2": { | |||
"PublicKey": "04BD62406DF6789B1FBE8C457AECAE6D7C806CDB39316F190519905C24DF395E8952C47798D76ADECF8CA28C935702AFCDD9B17DE77121FA6448F0EDEFBD8365D6", //公钥 | |||
"PrivateKey": "00F908E5ED9C2059A960E3A58056F69E0CF75299182CEB93B74CD1FDC633FCA0E5" //私钥 | |||
} | |||
}, | |||
//日志配置 | |||
"Logging": { | |||
"Monitor": { | |||
"Write": false, //是否文件写入LoggingMonitor日志 | |||
"Console": false, //是否控制台输出LoggingMonitor日志 | |||
}, | |||
"MessageFormat": true, //是否格式化日志 | |||
"LogLevel": { | |||
"Default": "Information", //默认日志级别 | |||
"Max": "Error", //最大日志级别 | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information" | |||
} | |||
} | |||
} |
@@ -0,0 +1,875 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Application</name> | |||
</assembly> | |||
<members> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_ORG"> | |||
<summary> | |||
机构 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_POS"> | |||
<summary> | |||
岗位 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager"> | |||
<summary> | |||
深象智能对接实现 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.GenSXToken"> | |||
<summary> | |||
获取深象智能Token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
订阅预警更新 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
订阅点名事件 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.TimestampToDateTime(System.String)"> | |||
<summary> | |||
时间戳转本时区日期时间 | |||
</summary> | |||
<param name="timeStamp"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager"> | |||
<summary> | |||
深象对接接口 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.GetToken"> | |||
<summary> | |||
获取token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
启动预警订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.DisconnectAsync"> | |||
<summary> | |||
释放连接 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
启动点名订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberAttendance"> | |||
<summary> | |||
开启无感考勤订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.ApplicationSettingsOptions"> | |||
<summary> | |||
系统配置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.alarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.beginTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.endTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.cameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.VideoUrl"> | |||
<summary> | |||
预警关联视频(有些报警有,有些没有) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tags"> | |||
<summary> | |||
场景标签 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Extend"> | |||
<summary> | |||
额外数据,每个预警类型不同 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Remark"> | |||
<summary> | |||
处理意见 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.StartTick"> | |||
<summary> | |||
事件发生时间开始 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.EndTick"> | |||
<summary> | |||
事件发生时间结束 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.HandWarn(System.Int64,System.String)"> | |||
<summary> | |||
处理预警 | |||
</summary> | |||
<param name="id"></param> | |||
<param name="remark"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetListNoPage(SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch)"> | |||
<summary> | |||
获取列表不分页 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetWarnType"> | |||
<summary> | |||
获取告警分离列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Add(`0)"> | |||
<summary> | |||
添加 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Delete(System.Int64)"> | |||
<summary> | |||
删除 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Update(`0)"> | |||
<summary> | |||
修改 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetInfo(System.Int64)"> | |||
<summary> | |||
根据id获取信息 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetList(`2)"> | |||
<summary> | |||
获取列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.IOrgService"> | |||
<summary> | |||
机构服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<summary> | |||
添加机构 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<summary> | |||
复制机构 | |||
</summary> | |||
<param name="input">机构复制参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除机构 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<summary> | |||
编辑机构 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<summary> | |||
机构分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<summary> | |||
机构树结构 | |||
</summary> | |||
<param name="input">机构选择器</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
机构详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.OrgService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IOrgService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.CheckInput(SafeCampus.System.SysOrg,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysOrg">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="T:SafeCampus.Application.IPositionService"> | |||
<summary> | |||
岗位管理 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<summary> | |||
添加岗位 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除岗位 | |||
</summary> | |||
<param name="input">id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<summary> | |||
编辑岗位 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<summary> | |||
岗位分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<summary> | |||
岗位选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
岗位详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<summary> | |||
岗位树形结构 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.PositionService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IPositionService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.CheckInput(SafeCampus.System.SysPosition,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysPosition">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<summary> | |||
角色拥有资源 | |||
</summary> | |||
<param name="input">角色id</param> | |||
<param name="category">资源类型</param> | |||
<returns>角色拥有资源信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取角色下的用户 | |||
</summary> | |||
<param name="input">角色ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<summary> | |||
分页查询角色 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<summary> | |||
获取角色树 | |||
</summary> | |||
<param name="input">角色树</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
角色详情 | |||
</summary> | |||
<param name="input">角色Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.ResourceTreeSelector"> | |||
<summary> | |||
资源树选择器 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<summary> | |||
添加角色 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<summary> | |||
编辑角色 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<summary> | |||
给角色授权 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<summary> | |||
给角色授权用户 | |||
</summary> | |||
<param name="input">授权信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除角色 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.RoleService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IRoleService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.ResourceTreeSelector"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.CheckInput(SafeCampus.System.SysRole)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysRole"></param> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GetRoleGrantResourceMenus(System.Int64,System.Collections.Generic.List{SafeCampus.System.SysResource},System.Collections.Generic.List{SafeCampus.System.SysResource})"> | |||
<summary> | |||
获取授权菜单 | |||
</summary> | |||
<param name="moduleId">模块Id</param> | |||
<param name="ownMenuList">拥有菜单列表</param> | |||
<param name="ownButtonList">拥有权限按钮列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserImportInput"> | |||
<summary> | |||
业务用户导入 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserExportOutput"> | |||
<summary> | |||
业务用户导出 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.IUserService"> | |||
<summary> | |||
人员管理服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<summary> | |||
人员选择器 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>人员列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Page(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
用户分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>用户分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取用户拥有角色 | |||
</summary> | |||
<param name="input">用户ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
人员详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Add(SafeCampus.System.UserAddInput)"> | |||
<summary> | |||
添加用户 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<summary> | |||
编辑 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
禁用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
启用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
重置密码 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<summary> | |||
给用户授权角色 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除用户 | |||
</summary> | |||
<param name="input">Id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<summary> | |||
导入预览 | |||
</summary> | |||
<param name="input">导入参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Template"> | |||
<summary> | |||
获取导入模板 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Export(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
导出 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<summary> | |||
导入数据 | |||
</summary> | |||
<param name="input">数据</param> | |||
<returns>导入结果</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<summary> | |||
批量编辑 | |||
</summary> | |||
<param name="input">编辑字段信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.UserService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IUserService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Page(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Add(SafeCampus.System.UserAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Template"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Export(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(SafeCampus.System.SysUser,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysUser"></param> | |||
<param name="operate">操作类型</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(System.Int64,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="userId">用户ID</param> | |||
<param name="operate">操作</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckImport(System.Collections.Generic.List{SafeCampus.Application.BizUserImportInput},System.Collections.Generic.List{System.Int64},System.Boolean)"> | |||
<summary> | |||
检查导入数据 | |||
</summary> | |||
<param name="data">数据</param> | |||
<param name="dataScope">数据范围ID数组</param> | |||
<param name="clearError">是否初始化错误</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GetQuery(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
获取查询条件 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,516 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Cache</name> | |||
</assembly> | |||
<members> | |||
<member name="T:SafeCampus.Cache.CacheConst"> | |||
<summary> | |||
Redis常量 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_PREFIX_WEB"> | |||
<summary> | |||
Redis Key前缀(可删除) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_PREFIX"> | |||
<summary> | |||
Redis Key前缀(需要持久化,不随系统重启删除) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_HASH"> | |||
<summary> | |||
Redis Hash类型 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_USER_TOKEN"> | |||
<summary> | |||
用户Token缓存Key | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.ISimpleCacheService"> | |||
<summary> | |||
缓存服务 | |||
</summary> | |||
<summary> | |||
缓存服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<summary> | |||
添加一条数据到HashMap | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="hashKey">hash列表里的Key</param> | |||
<param name="value">值</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<summary> | |||
添加多条数据到HashMap | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="dic">键值对字典</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashDel``1(System.String,System.String[])"> | |||
<summary> | |||
从HashMap中删除数据 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="fields">hash键列表</param> | |||
<returns>执行结果</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGet``1(System.String,System.String[])"> | |||
<summary> | |||
根据键获取hash列表中的值 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="fields">hash键列表</param> | |||
<returns>数据列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGetOne``1(System.String,System.String)"> | |||
<summary> | |||
根据键获取hash列表中的值 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="field">hash键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGetAll``1(System.String)"> | |||
<summary> | |||
获取所有键值对 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<returns>数据字典</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.ContainsKey(System.String)"> | |||
<summary>是否包含缓存项</summary> | |||
<param name="key"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<summary>设置缓存项</summary> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<summary>设置缓存项</summary> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Get``1(System.String)"> | |||
<summary>获取缓存项</summary> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Remove(System.String[])"> | |||
<summary>批量移除缓存项</summary> | |||
<param name="keys">键集合</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Clear"> | |||
<summary>清空所有缓存项</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<summary>设置缓存项有效期</summary> | |||
<param name="key">键</param> | |||
<param name="expire">过期时间</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetExpire(System.String)"> | |||
<summary>获取缓存项有效期</summary> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.DelByPattern(System.String)"> | |||
<summary> | |||
模糊删除 | |||
</summary> | |||
<param name="pattern">匹配关键字</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<summary>批量获取缓存项</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="keys"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<summary>批量设置缓存项</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="values"></param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetList``1(System.String)"> | |||
<summary>获取列表</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetDictionary``1(System.String)"> | |||
<summary>获取哈希</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetQueue``1(System.String)"> | |||
<summary>获取队列</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetStack``1(System.String)"> | |||
<summary>获取栈</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetSet``1(System.String)"> | |||
<summary>获取Set</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<summary>添加,已存在时不更新</summary> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Replace``1(System.String,``0)"> | |||
<summary>设置新值并获取旧值,原子操作</summary> | |||
<remarks> | |||
常常配合Increment使用,用于累加到一定数后重置归零,又避免多线程冲突。 | |||
</remarks> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.TryGetValue``1(System.String,``0@)"> | |||
<summary>尝试获取指定键,返回是否包含值。有可能缓存项刚好是默认值,或者只是反序列化失败,解决缓存穿透问题</summary> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值。即使有值也不一定能够返回,可能缓存项刚好是默认值,或者只是反序列化失败</param> | |||
<returns>返回是否包含值,即使反序列化失败</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Increment(System.String,System.Int64)"> | |||
<summary>累加,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Increment(System.String,System.Double)"> | |||
<summary>累加,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Decrement(System.String,System.Int64)"> | |||
<summary>递减,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Decrement(System.String,System.Double)"> | |||
<summary>递减,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Commit"> | |||
<summary>提交变更。部分提供者需要刷盘</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.AcquireLock(System.String,System.Int32)"> | |||
<summary>申请分布式锁</summary> | |||
<param name="key">要锁定的key</param> | |||
<param name="msTimeout">锁等待时间,单位毫秒</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<summary>申请分布式锁</summary> | |||
<param name="key">要锁定的key</param> | |||
<param name="msTimeout">锁等待时间,申请加锁时如果遇到冲突则等待的最大时间,单位毫秒</param> | |||
<param name="msExpire">锁过期时间,超过该时间如果没有主动释放则自动释放锁,必须整数秒,单位毫秒</param> | |||
<param name="throwOnFailure">失败时是否抛出异常,如果不抛出异常,可通过返回null得知申请锁失败</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Cache.CacheSettingsOptions"> | |||
<summary> | |||
缓存设置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.CacheSettingsOptions.UseRedis"> | |||
<summary> | |||
使用Redis | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.CacheSettingsOptions.RedisSettings"> | |||
<summary> | |||
Redis设置 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.RedisSettings"> | |||
<summary> | |||
Redis设置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Address"> | |||
<summary> | |||
连接地址 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Password"> | |||
<summary> | |||
密码 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Db"> | |||
<summary> | |||
数据库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.ClearRedis"> | |||
<summary> | |||
是否每次启动都清空 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.MemoryCacheService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
内存缓存 | |||
</summary> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
内存缓存 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashDel``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGet``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGetOne``1(System.String,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGetAll``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Get``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Remove(System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetExpire(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.ContainsKey(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Clear"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.DelByPattern(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetDictionary``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetQueue``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetStack``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetSet``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetList``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Replace``1(System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.TryGetValue``1(System.String,``0@)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Decrement(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Decrement(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Increment(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Increment(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Commit"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.AcquireLock(System.String,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:SafeCampus.Cache.RedisCacheService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
Redis缓存 | |||
</summary> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
Redis缓存 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashDel``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGet``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGetOne``1(System.String,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGetAll``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Get``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Remove(System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetExpire(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.ContainsKey(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Clear"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.DelByPattern(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetDictionary``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetQueue``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetStack``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetSet``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetList``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Replace``1(System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.TryGetValue``1(System.String,``0@)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Decrement(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Decrement(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Increment(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Increment(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Commit"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.AcquireLock(System.String,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:SafeCampus.Cache.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,134 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Plugin.Aop</name> | |||
</assembly> | |||
<members> | |||
<member name="T:SafeCampus.Plugin.Aop.GlobalDispatchProxy"> | |||
<summary> | |||
Aop | |||
这里没有继承IGlobalDispatchProxy是因为IGlobalDispatchProxy会把一些没有必要的方法也aop了 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.GlobalDispatchProxy.Target"> | |||
<summary> | |||
当前服务实例 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.GlobalDispatchProxy.Services"> | |||
<summary> | |||
服务提供器,可以用来解析服务,如:Services.GetService() | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.Invoke(System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
方法 | |||
</summary> | |||
<param name="method"></param> | |||
<param name="args"></param> | |||
<returns></returns> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.InvokeAsync(System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
异步无返回值 | |||
</summary> | |||
<param name="method"></param> | |||
<param name="args"></param> | |||
<returns></returns> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.InvokeAsyncT``1(System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
异步带返回值 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="method"></param> | |||
<param name="args"></param> | |||
<returns></returns> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.After(System.Reflection.MethodInfo,System.Object,System.Object[])"> | |||
<summary> | |||
方法执行之后 | |||
</summary> | |||
<param name="method">方法</param> | |||
<param name="returnValue">返回值</param> | |||
<param name="args">参数列表</param> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.Before(System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
方法执行之前 | |||
</summary> | |||
<param name="method">方法</param> | |||
<param name="args">参数列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.CheckCache(System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
检查缓存里是否有数据 | |||
</summary> | |||
<param name="method">方法</param> | |||
<param name="args">参数列表</param> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.RecordCache(System.Reflection.MethodInfo,System.Object[],System.Object)"> | |||
<summary> | |||
写数据到缓存 | |||
</summary> | |||
<param name="method">方法</param> | |||
<param name="args">参数列表</param> | |||
<param name="returnValue">返回值</param> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GlobalDispatchProxy.CustomCacheKey(System.String,System.Reflection.MethodInfo,System.Object[])"> | |||
<summary> | |||
自定义缓存Key | |||
</summary> | |||
<param name="prefix">前缀</param> | |||
<param name="method">方法</param> | |||
<param name="args">参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Plugin.Aop.GetCacheKey"> | |||
<summary> | |||
获取缓存Key | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Plugin.Aop.GetCacheKey.GetArgumentValue(System.Object)"> | |||
<summary> | |||
object 转 string | |||
</summary> | |||
<param name="arg"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Plugin.Aop.CacheAttribute"> | |||
<summary> | |||
缓存结果特性 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.CacheAttribute.KeyPrefix"> | |||
<summary> | |||
RedisKey前缀 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.CacheAttribute.AbsoluteExpiration"> | |||
<summary> | |||
过期时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.CacheAttribute.CustomKeyValue"> | |||
<summary> | |||
自定义KEY | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.CacheAttribute.IsDelete"> | |||
<summary> | |||
是否删除 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Plugin.Aop.CacheAttribute.StoreType"> | |||
<summary> | |||
存储类型 | |||
</summary> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,665 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.SqlSugar</name> | |||
</assembly> | |||
<members> | |||
<member name="T:SafeCampus.SqlSugar.CommonStatusConst"> | |||
<summary> | |||
通用状态常量 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.CommonStatusConst.ENABLE"> | |||
<summary> | |||
启用 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.CommonStatusConst.DISABLED"> | |||
<summary> | |||
停用 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.EffTypeConst"> | |||
<summary> | |||
前端控件作用类型常量 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.INPUT"> | |||
<summary> | |||
输入框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.TEXTAREA"> | |||
<summary> | |||
文本框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.SELECT"> | |||
<summary> | |||
下拉框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.RADIO"> | |||
<summary> | |||
单选框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.CHECKBOX"> | |||
<summary> | |||
复选框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.DATEPICKER"> | |||
<summary> | |||
日期选择器 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.TIMEPICKER"> | |||
<summary> | |||
时间选择器 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.INPUT_NUMBER"> | |||
<summary> | |||
数字输入框 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.SLIDER"> | |||
<summary> | |||
滑动数字条 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.EffTypeConst.SWITCH"> | |||
<summary> | |||
下拉框 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarConst"> | |||
<summary> | |||
SqlSugar系统常量类 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.DB_DEFAULT"> | |||
<summary> | |||
默认库ConfigId | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.DB_PRIMARY_KEY"> | |||
<summary> | |||
默认表主键 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.N_VAR_CHAR_MAX"> | |||
<summary> | |||
varchar(max) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.N_VAR_CHAR_4000"> | |||
<summary> | |||
varchar(4000) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.N_VAR_CHAR_20"> | |||
<summary> | |||
varchar(20) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.LONG_TEXT"> | |||
<summary> | |||
mysql的longtext | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarConst.TEXT"> | |||
<summary> | |||
sqlite的text | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.DbContext"> | |||
<summary> | |||
数据库上下文对象 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.DbContext.DB_CONFIGS"> | |||
<summary> | |||
读取配置文件中的 ConnectionStrings:SqlSugar 配置节点 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.DbContext.DB"> | |||
<summary> | |||
SqlSugar 数据库实例 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbContext.ExternalServicesSetting(SqlSugar.SqlSugarScopeProvider,SafeCampus.SqlSugar.SqlSugarConfig)"> | |||
<summary> | |||
实体拓展配置,自定义类型多库兼容 | |||
</summary> | |||
<param name="db"></param> | |||
<param name="config"></param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbContext.AopSetting(SqlSugar.SqlSugarScopeProvider)"> | |||
<summary> | |||
Aop设置 | |||
</summary> | |||
<param name="db"></param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbContext.MoreSetting(SqlSugar.SqlSugarScopeProvider,SqlSugar.DbType)"> | |||
<summary> | |||
实体更多配置 | |||
</summary> | |||
<param name="db">db</param> | |||
<param name="dbType">数据库类型</param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbContext.FilterSetting(SqlSugar.SqlSugarScopeProvider)"> | |||
<summary> | |||
过滤器设置 | |||
</summary> | |||
<param name="db"></param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbContext.LogicDeletedEntityFilter(SqlSugar.SqlSugarScopeProvider)"> | |||
<summary> | |||
假删除过滤器 | |||
</summary> | |||
<param name="db"></param> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.DbRepository`1"> | |||
<summary> | |||
仓储模式对象 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.InsertOrBulkCopy(System.Collections.Generic.List{`0},System.Int32)"> | |||
<summary> | |||
批量插入判断走普通导入还是大数据 | |||
</summary> | |||
<param name="data">数据</param> | |||
<param name="threshold">阈值</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetListAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{`0,`0}})"> | |||
<summary> | |||
获取列表指定多个字段 | |||
</summary> | |||
<param name="whereExpression">查询条件</param> | |||
<param name="selectExpression">查询字段</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetListAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{`0,System.String}})"> | |||
<summary> | |||
获取列表指定单个字段 | |||
</summary> | |||
<param name="whereExpression">查询条件</param> | |||
<param name="selectExpression">查询字段</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetListAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{`0,System.Int64}})"> | |||
<summary> | |||
获取列表指定单个字段 | |||
</summary> | |||
<param name="whereExpression">查询条件</param> | |||
<param name="selectExpression">查询字段</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetFirstAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{`0,System.String}})"> | |||
<summary> | |||
获取指定表的单个字段 | |||
</summary> | |||
<param name="whereExpression">查询条件</param> | |||
<param name="selectExpression">查询字段</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetFirstAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{`0,System.Int64}})"> | |||
<summary> | |||
获取指定表的单个字段 | |||
</summary> | |||
<param name="whereExpression">查询条件</param> | |||
<param name="selectExpression">查询字段</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetFirstSplitTableAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.DateTime,System.DateTime)"> | |||
<summary> | |||
根据条件查询获取自动分表的单个数据 | |||
</summary> | |||
<param name="whereExpression">条件表达式</param> | |||
<param name="startTime">开始时间</param> | |||
<param name="endTime">结束时间</param> | |||
<returns>实体</returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.DbRepository`1.GetFirstSplitTableAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Func{System.Collections.Generic.List{SqlSugar.SplitTableInfo},System.Collections.Generic.IEnumerable{SqlSugar.SplitTableInfo}})"> | |||
<summary> | |||
根据条件查询获取自动分表的单个数据 | |||
</summary> | |||
<param name="whereExpression">条件表达式</param> | |||
<param name="getTableNamesFunc">分表查询表达式</param> | |||
<returns>实体</returns> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarConfig"> | |||
<summary> | |||
SqlSugar数据库配置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarConfig.IsUnderLine"> | |||
<summary> | |||
是否驼峰转下划线 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.LinqPagedList`1"> | |||
<summary> | |||
Linq分页泛型集合 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.PrimaryKeyEntity"> | |||
<summary> | |||
主键实体基类 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.PrimaryKeyEntity.Id"> | |||
<summary> | |||
主键Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.PrimaryKeyEntity.ExtJson"> | |||
<summary> | |||
拓展信息 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.BaseEntity"> | |||
<summary> | |||
框架实体基类 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.UpdateTime"> | |||
<summary> | |||
更新时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.CreateUserId"> | |||
<summary> | |||
创建者Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.UpdateUserId"> | |||
<summary> | |||
修改者Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.CreateUser"> | |||
<summary> | |||
创建人 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.UpdateUser"> | |||
<summary> | |||
更新人 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.BaseEntity.IsDelete"> | |||
<summary> | |||
软删除 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.DataEntityBase"> | |||
<summary> | |||
业务数据实体基类(数据权限) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.DataEntityBase.CreateOrgId"> | |||
<summary> | |||
创建者部门Id | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.ISqlSugarEntitySeedData`1"> | |||
<summary> | |||
实体种子数据接口 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.ISqlSugarEntitySeedData`1.SeedData"> | |||
<summary> | |||
种子数据 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarPageExtension"> | |||
<summary> | |||
SqlSugar分页拓展类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.ToPagedList``1(SqlSugar.ISugarQueryable{``0},System.Int32,System.Int32)"> | |||
<summary> | |||
SqlSugar分页扩展 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
<param name="queryable"></param> | |||
<param name="pageNum"></param> | |||
<param name="pageSize"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.ToPagedListAsync``1(SqlSugar.ISugarQueryable{``0},System.Int32,System.Int32)"> | |||
<summary> | |||
SqlSugar分页扩展 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
<param name="queryable"></param> | |||
<param name="pageNum"></param> | |||
<param name="pageSize"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.ToPagedListAsyncMapster``2(SqlSugar.ISugarQueryable{``0},System.Int32,System.Int32)"> | |||
<summary> | |||
SqlSugar分页扩展 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
<param name="queryable"></param> | |||
<param name="pageNum"></param> | |||
<param name="pageSize"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.ToPagedList``2(SqlSugar.ISugarQueryable{``0},System.Int32,System.Int32,System.Linq.Expressions.Expression{System.Func{``0,``1}})"> | |||
<summary> | |||
SqlSugar分页扩展 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
<typeparam name="TResult"></typeparam> | |||
<param name="queryable"></param> | |||
<param name="pageNum"></param> | |||
<param name="pageSize"></param> | |||
<param name="expression"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.ToPagedListAsync``2(SqlSugar.ISugarQueryable{``0},System.Int32,System.Int32,System.Linq.Expressions.Expression{System.Func{``0,``1}})"> | |||
<summary> | |||
SqlSugar分页扩展 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
<typeparam name="TResult"></typeparam> | |||
<param name="queryable"></param> | |||
<param name="pageNum"></param> | |||
<param name="pageSize"></param> | |||
<param name="expression"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarPageExtension.LinqPagedList``1(System.Collections.Generic.List{``0},System.Int32,System.Int32)"> | |||
<summary> | |||
分页查询 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="list">数据列表</param> | |||
<param name="pageNum">当前页</param> | |||
<param name="pageSize">每页数量</param> | |||
<returns>分页集合</returns> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarPagedList`1"> | |||
<summary> | |||
SqlSugar 分页泛型集合 | |||
</summary> | |||
<typeparam name="TEntity"></typeparam> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.PageNum"> | |||
<summary> | |||
页码 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.PageSize"> | |||
<summary> | |||
数量 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.Total"> | |||
<summary> | |||
总条数 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.Pages"> | |||
<summary> | |||
总页数 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.List"> | |||
<summary> | |||
当前页集合 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.HasPrevPages"> | |||
<summary> | |||
是否有上一页 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarPagedList`1.HasNextPages"> | |||
<summary> | |||
是否有下一页 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarUnitOfWork"> | |||
<summary> | |||
SqlSugar 事务和工作单元 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.SqlSugar.SqlSugarUnitOfWork._sqlSugarClient"> | |||
<summary> | |||
SqlSugar 对象 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUnitOfWork.#ctor(SqlSugar.ISqlSugarClient,Microsoft.Extensions.Logging.ILogger{SafeCampus.SqlSugar.SqlSugarUnitOfWork})"> | |||
<summary> | |||
构造函数 | |||
</summary> | |||
<param name="sqlSugarClient"></param> | |||
<param name="logger"></param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUnitOfWork.BeginTransaction(Microsoft.AspNetCore.Mvc.Filters.FilterContext,MoYu.DatabaseAccessor.UnitOfWorkAttribute)"> | |||
<summary> | |||
开启工作单元处理 | |||
</summary> | |||
<param name="context"></param> | |||
<param name="unitOfWork"></param> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUnitOfWork.CommitTransaction(Microsoft.AspNetCore.Mvc.Filters.FilterContext,MoYu.DatabaseAccessor.UnitOfWorkAttribute)"> | |||
<summary> | |||
提交工作单元处理 | |||
</summary> | |||
<param name="resultContext"></param> | |||
<param name="unitOfWork"></param> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUnitOfWork.RollbackTransaction(Microsoft.AspNetCore.Mvc.Filters.FilterContext,MoYu.DatabaseAccessor.UnitOfWorkAttribute)"> | |||
<summary> | |||
回滚工作单元处理 | |||
</summary> | |||
<param name="resultContext"></param> | |||
<param name="unitOfWork"></param> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUnitOfWork.OnCompleted(Microsoft.AspNetCore.Mvc.Filters.FilterContext,Microsoft.AspNetCore.Mvc.Filters.FilterContext)"> | |||
<summary> | |||
执行完毕(无论成功失败) | |||
</summary> | |||
<param name="context"></param> | |||
<param name="resultContext"></param> | |||
<exception cref="T:System.NotImplementedException"></exception> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.Startup.CheckSameConfigId"> | |||
<summary> | |||
检查是否有相同的ConfigId | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.CodeFirstUtils"> | |||
<summary> | |||
CodeFirst功能类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.CodeFirst(SafeCampus.Core.BaseOptions,System.String)"> | |||
<summary> | |||
CodeFirst生成数据库表结构和种子数据 | |||
</summary> | |||
<param name="options">codefirst选项</param> | |||
<param name="assemblyName">程序集名称</param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.InitTable(System.String)"> | |||
<summary> | |||
初始化数据库表结构 | |||
</summary> | |||
<param name="assemblyName">程序集名称</param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.InitSeedData(System.String)"> | |||
<summary> | |||
初始化种子数据 | |||
</summary> | |||
<param name="assemblyName">程序集名称</param> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.HasImplementedRawGeneric(System.Type,System.Type)"> | |||
<summary> | |||
判断类型是否实现某个泛型 | |||
</summary> | |||
<param name="type">类型</param> | |||
<param name="generic">泛型类型</param> | |||
<returns>bool</returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.ToDataTable``1(System.Collections.Generic.List{``0})"> | |||
<summary> | |||
List转DataTable | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="list"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.CodeFirstUtils.IsIgnoreColumn(System.Reflection.PropertyInfo)"> | |||
<summary> | |||
排除SqlSugar忽略的列 | |||
</summary> | |||
<param name="pi"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarColumnInfo"> | |||
<summary> | |||
SqlSugar字段信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarColumnInfo.ColumnName"> | |||
<summary> | |||
字段名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarColumnInfo.IsPrimaryKey"> | |||
<summary> | |||
是否主键 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarColumnInfo.DataType"> | |||
<summary> | |||
字段类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarColumnInfo.ColumnDescription"> | |||
<summary> | |||
字段注释 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarTableInfo"> | |||
<summary> | |||
SqlSugar表信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarTableInfo.ConfigId"> | |||
<summary> | |||
所属库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarTableInfo.TableName"> | |||
<summary> | |||
表名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarTableInfo.EntityName"> | |||
<summary> | |||
实体名 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarTableInfo.TableDescription"> | |||
<summary> | |||
表注释 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SqlSugarTableInfo.Columns"> | |||
<summary> | |||
表字段 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SeedDataUtil"> | |||
<summary> | |||
种子数据工具类 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SeedDataRecords`1"> | |||
<summary> | |||
种子数据格式实体类,遵循Navicat导出json格式 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
</member> | |||
<member name="P:SafeCampus.SqlSugar.SeedDataRecords`1.Records"> | |||
<summary> | |||
数据 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.SqlSugar.SqlSugarUtils"> | |||
<summary> | |||
SqlSugar通用功能 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUtils.GetTablesByAttribute``1"> | |||
<summary> | |||
根据特性获取所有表信息 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUtils.GetTableColumns(System.String,System.String)"> | |||
<summary> | |||
获取字段信息 | |||
</summary> | |||
<param name="configId"></param> | |||
<param name="tableName"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUtils.ConvertDataType(System.String)"> | |||
<summary> | |||
数据库字段类型转.NET类型 | |||
</summary> | |||
<param name="dataType">字段类型</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUtils.DataTypeToEff(System.String)"> | |||
<summary> | |||
数据类型转显示类型 | |||
</summary> | |||
<param name="dataType"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.SqlSugar.SqlSugarUtils.IsCommonColumn(System.String)"> | |||
<summary> | |||
是否通用字段 | |||
</summary> | |||
<param name="columnName">字段名</param> | |||
<returns></returns> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,233 @@ | |||
[ | |||
{ | |||
"Name": "明厨亮灶", | |||
"Code": "MCLZ", | |||
"CameraId": [ "SXT001" ], | |||
"State": true, | |||
"Subset": [ | |||
{ | |||
"Name": "烟火告警", | |||
"Code": "fire_smoke", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "猫鼠检测", | |||
"Code": "animal_break_in", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "未戴口罩检测", | |||
"Code": "mask_detect", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "未穿工作服检测", | |||
"Code": "cloth_detect", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "抽烟检测", | |||
"Code": "person_smoke", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "未戴帽子检测", | |||
"Code": "hat_detect", | |||
"State": false | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "智慧课堂", | |||
"Code": "ZHKT", | |||
"State": true, | |||
"CameraId": [ "SXT002" ], | |||
"Subset": [ | |||
{ | |||
"Name": "教室点名", | |||
"Code": "class_room_call", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "趴桌子", | |||
"Code": "lie_on_table", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "烟火告警", | |||
"Code": "fire_smoke", | |||
"State": true | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "学生归寝", | |||
"Code": "XSGQ", | |||
"State": true, | |||
"CameraId": [ "SXT004" ], | |||
"Subset": [ | |||
{ | |||
"Name": "无感考勤", | |||
"Code": "attendance", | |||
"State": true | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "校园防霸凌", | |||
"Code": "XYFBL", | |||
"State": true, | |||
"CameraId": [ "SXT003" ], | |||
"Subset": [ | |||
{ | |||
"Name": "抽烟检测", | |||
"Code": "person_smoke", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "人群聚集", | |||
"Code": "crowd", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "奔跑", | |||
"Code": "run", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "追逐", | |||
"Code": "chase", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "摔倒", | |||
"Code": "fall_down", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "打闹检测", | |||
"Code": "fight", | |||
"State": true | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "校园安全", | |||
"Code": "XYAQ", | |||
"State": true, | |||
"CameraId": [ "SXT005" ], | |||
"Subset": [ | |||
{ | |||
"Name": "可疑徘徊", | |||
"Code": "wander", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "重点人员布控", | |||
"Code": "blacklist", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "人群聚集", | |||
"Code": "crowd", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "人员跟踪", | |||
"Code": "vision", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "翻越", | |||
"Code": "climb_over", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "周界入侵", | |||
"Code": "visual_fence", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "摔倒", | |||
"Code": "fall_down", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "奔跑", | |||
"Code": "run", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "追逐", | |||
"Code": "chase", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "打闹检测", | |||
"Code": "fight", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "车辆违停", | |||
"Code": "vehicle_parking", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "车辆超速", | |||
"Code": "vehicle_speeding", | |||
"State": true | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "区域管控", | |||
"Code": "QYGK", | |||
"CameraId": [ "SXT006" ], | |||
"State": true, | |||
"Subset": [ | |||
{ | |||
"Name": "跨线", | |||
"Code": "cross_line", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "周界入侵", | |||
"Code": "visual_fence", | |||
"State": false | |||
}, | |||
{ | |||
"Name": "可疑徘徊", | |||
"Code": "wander", | |||
"State": true | |||
} | |||
] | |||
}, | |||
{ | |||
"Name": "安保巡逻", | |||
"Code": "ABXL", | |||
"State": true, | |||
"CameraId": [ "SXT007" ], | |||
"Subset": [ | |||
{ | |||
"Name": "重点人员布控", | |||
"Code": "blacklist", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "巡更检测", | |||
"Code": "patrol", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "离岗检测", | |||
"Code": "off_duty", | |||
"State": true | |||
}, | |||
{ | |||
"Name": "未穿工作服检测", | |||
"Code": "cloth_detect", | |||
"State": true | |||
} | |||
] | |||
} | |||
] |
@@ -0,0 +1,764 @@ | |||
{ | |||
"RECORDS": [ | |||
{ | |||
"Id": "252885263003720", | |||
"ParentId": "0", | |||
"DirectorId": "212725263002001", | |||
"Name": "果冻科技有限公司", | |||
"Names": "果冻科技有限公司", | |||
"Code": "4fuFapeKGy", | |||
"Category": "COMPANY", | |||
"SortCode": "1", | |||
"CreateTime": "2023-8-14 16:19:29.15", | |||
"UpdateTime": "2024-2-20 11:48:36.8", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[]" | |||
}, | |||
{ | |||
"Id": "252885263003721", | |||
"ParentId": "252885263003720", | |||
"DirectorId": "", | |||
"Name": "科技部", | |||
"Names": "果冻科技有限公司/科技部", | |||
"Code": "5JOEG44G62", | |||
"Category": "DEPT", | |||
"SortCode": "2", | |||
"CreateTime": "2023-8-14 16:19:29.15", | |||
"UpdateTime": "2024-2-20 11:35:55.68", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720]" | |||
}, | |||
{ | |||
"Id": "252885263003722", | |||
"ParentId": "252885263003720", | |||
"DirectorId": "359177888051269", | |||
"Name": "生产部", | |||
"Names": "果冻科技有限公司/生产部", | |||
"Code": "aln9y4tno6", | |||
"Category": "DEPT", | |||
"SortCode": "3", | |||
"CreateTime": "2023-8-14 16:19:29.15", | |||
"UpdateTime": "2024-2-20 11:36:08.417", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720]" | |||
}, | |||
{ | |||
"Id": "359569393872965", | |||
"ParentId": "0", | |||
"DirectorId": "", | |||
"Name": "萝卜科技有限公司", | |||
"Names": "萝卜科技有限公司", | |||
"Code": "l77v30V3yG", | |||
"Category": "COMPANY", | |||
"SortCode": "1", | |||
"CreateTime": "2023-8-14 16:19:29.153", | |||
"UpdateTime": "2024-2-20 11:48:39.067", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[]" | |||
}, | |||
{ | |||
"Id": "360642028625989", | |||
"ParentId": "252885263003720", | |||
"DirectorId": "", | |||
"Name": "销售部", | |||
"Names": "果冻科技有限公司/销售部", | |||
"Code": "dihhtLuWG1", | |||
"Category": "DEPT", | |||
"SortCode": "4", | |||
"CreateTime": "2023-8-14 16:19:29.153", | |||
"UpdateTime": "2024-2-20 11:36:20.28", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720]" | |||
}, | |||
{ | |||
"Id": "361404296994885", | |||
"ParentId": "359569393872965", | |||
"DirectorId": "", | |||
"Name": "研发部", | |||
"Names": "萝卜科技有限公司/研发部", | |||
"Code": "fLOhh7s091", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-8-14 16:19:29.153", | |||
"UpdateTime": "2024-2-20 11:36:34.157", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[359569393872965]" | |||
}, | |||
{ | |||
"Id": "361404346445893", | |||
"ParentId": "359569393872965", | |||
"DirectorId": "", | |||
"Name": "财务部", | |||
"Names": "萝卜科技有限公司/财务部", | |||
"Code": "tmDWFRfXuQ", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-8-14 16:19:29.153", | |||
"UpdateTime": "2024-2-20 11:36:36.517", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[359569393872965]" | |||
}, | |||
{ | |||
"Id": "464837351616581", | |||
"ParentId": "252885263003721", | |||
"DirectorId": "", | |||
"Name": "科技一部", | |||
"Names": "果冻科技有限公司/科技部/科技一部", | |||
"Code": "Mzv2sj1MEo", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-9-25 22:08:03.567", | |||
"UpdateTime": "2024-2-20 11:36:38.753", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720,252885263003721]" | |||
}, | |||
{ | |||
"Id": "464837557956677", | |||
"ParentId": "464837351616581", | |||
"DirectorId": "", | |||
"Name": "科技一部1组", | |||
"Names": "果冻科技有限公司/科技部/科技一部/科技一部1组", | |||
"Code": "g6R7zuMMk4", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-9-25 22:08:53.943", | |||
"UpdateTime": "2024-2-20 11:36:41.05", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720,252885263003721,464837351616581]" | |||
}, | |||
{ | |||
"Id": "479974472933445", | |||
"ParentId": "359569393872965", | |||
"DirectorId": "", | |||
"Name": "销售部", | |||
"Names": "萝卜科技有限公司/销售部", | |||
"Code": "jjQ1i8btel", | |||
"Category": "DEPT", | |||
"SortCode": "4", | |||
"CreateTime": "2023-11-7 16:41:09.83", | |||
"UpdateTime": "2024-2-20 11:36:24.013", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[359569393872965]" | |||
}, | |||
{ | |||
"Id": "485978445475909", | |||
"ParentId": "252885263003722", | |||
"DirectorId": "", | |||
"Name": "生产一部", | |||
"Names": "果冻科技有限公司/生产部/生产一部", | |||
"Code": "fHsgj48J0D", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-11-24 15:51:23.437", | |||
"UpdateTime": "2024-2-20 11:36:53.813", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720,252885263003722]" | |||
}, | |||
{ | |||
"Id": "487320043610181", | |||
"ParentId": "359569393872965", | |||
"DirectorId": "", | |||
"Name": "科技部", | |||
"Names": "萝卜科技有限公司/科技部", | |||
"Code": "1QWox5893Q", | |||
"Category": "DEPT", | |||
"SortCode": "2", | |||
"CreateTime": "2023-11-28 10:50:49.177", | |||
"UpdateTime": "2024-2-20 11:35:58.283", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[359569393872965]" | |||
}, | |||
{ | |||
"Id": "487320070803525", | |||
"ParentId": "487320043610181", | |||
"DirectorId": "", | |||
"Name": "科技一部", | |||
"Names": "萝卜科技有限公司/科技部/科技一部", | |||
"Code": "fIaBZ15osx", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2023-11-28 10:50:49.18", | |||
"UpdateTime": "2024-2-20 11:36:56.13", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[359569393872965,487320043610181]" | |||
}, | |||
{ | |||
"Id": "510752889880645", | |||
"ParentId": "0", | |||
"DirectorId": "", | |||
"Name": "旺仔科技有限公司", | |||
"Names": "旺仔科技有限公司", | |||
"Code": "wz", | |||
"Category": "COMPANY", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 15:58:51.777", | |||
"UpdateTime": "2024-2-20 11:37:00.727", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[]" | |||
}, | |||
{ | |||
"Id": "510753093025861", | |||
"ParentId": "0", | |||
"DirectorId": "", | |||
"Name": "达达科技有限公司", | |||
"Names": "达达科技有限公司", | |||
"Code": "dd", | |||
"Category": "COMPANY", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 15:59:41.373", | |||
"UpdateTime": "2024-2-20 11:37:04.16", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[]" | |||
}, | |||
{ | |||
"Id": "510753219502149", | |||
"ParentId": "0", | |||
"DirectorId": "", | |||
"Name": "杰尼科技有限公司", | |||
"Names": "杰尼科技有限公司", | |||
"Code": "jn", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:00:12.25", | |||
"UpdateTime": "2024-2-20 11:37:06.52", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[]" | |||
}, | |||
{ | |||
"Id": "510753479417925", | |||
"ParentId": "510752889880645", | |||
"DirectorId": "", | |||
"Name": "科技部", | |||
"Names": "旺仔科技有限公司/科技部", | |||
"Code": "oNSxenwpqn", | |||
"Category": "DEPT", | |||
"SortCode": "2", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:36:00.973", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645]" | |||
}, | |||
{ | |||
"Id": "510753479422021", | |||
"ParentId": "510753479417925", | |||
"DirectorId": "", | |||
"Name": "科技一部", | |||
"Names": "旺仔科技有限公司/科技部/科技一部", | |||
"Code": "j83kVrfVD0", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:37:11.12", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645,510753479417925]" | |||
}, | |||
{ | |||
"Id": "510753479422022", | |||
"ParentId": "510753479422021", | |||
"DirectorId": "", | |||
"Name": "科技一部1组", | |||
"Names": "旺仔科技有限公司/科技部/科技一部/科技一部1组", | |||
"Code": "93BGNo5HXE", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:37:13.623", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645,510753479417925,510753479422021]" | |||
}, | |||
{ | |||
"Id": "510753479422023", | |||
"ParentId": "510752889880645", | |||
"DirectorId": "359177888051269", | |||
"Name": "生产部", | |||
"Names": "旺仔科技有限公司/生产部", | |||
"Code": "2l3276Q5Tg", | |||
"Category": "DEPT", | |||
"SortCode": "3", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:36:11.103", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645]" | |||
}, | |||
{ | |||
"Id": "510753479426117", | |||
"ParentId": "510753479422023", | |||
"DirectorId": "", | |||
"Name": "生产一部", | |||
"Names": "旺仔科技有限公司/生产部/生产一部", | |||
"Code": "298gdc2Oy6", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:37:09.003", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645,510753479422023]" | |||
}, | |||
{ | |||
"Id": "510753479430213", | |||
"ParentId": "510752889880645", | |||
"DirectorId": "", | |||
"Name": "销售部", | |||
"Names": "旺仔科技有限公司/销售部", | |||
"Code": "qEB7a8wtP3", | |||
"Category": "DEPT", | |||
"SortCode": "4", | |||
"CreateTime": "2024-2-2 16:01:15.713", | |||
"UpdateTime": "2024-2-20 11:36:26.34", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645]" | |||
}, | |||
{ | |||
"Id": "510753515745349", | |||
"ParentId": "510753093025861", | |||
"DirectorId": "", | |||
"Name": "科技部", | |||
"Names": "达达科技有限公司/科技部", | |||
"Code": "LMB0GjrOM8", | |||
"Category": "DEPT", | |||
"SortCode": "2", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:36:03.33", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861]" | |||
}, | |||
{ | |||
"Id": "510753515745350", | |||
"ParentId": "510753515745349", | |||
"DirectorId": "", | |||
"Name": "科技一部", | |||
"Names": "达达科技有限公司/科技部/科技一部", | |||
"Code": "mgd2SJ35jH", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:37:18.99", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861,510753515745349]" | |||
}, | |||
{ | |||
"Id": "510753515745351", | |||
"ParentId": "510753515745350", | |||
"DirectorId": "", | |||
"Name": "科技一部1组", | |||
"Names": "达达科技有限公司/科技部/科技一部/科技一部1组", | |||
"Code": "jQ5ymWaxz1", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:38:17.223", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861,510753515745349,510753515745350]" | |||
}, | |||
{ | |||
"Id": "510753515749445", | |||
"ParentId": "510753093025861", | |||
"DirectorId": "359177888051269", | |||
"Name": "生产部", | |||
"Names": "达达科技有限公司/生产部", | |||
"Code": "nNmBAfO2dG", | |||
"Category": "DEPT", | |||
"SortCode": "3", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:36:13.883", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861]" | |||
}, | |||
{ | |||
"Id": "510753515749446", | |||
"ParentId": "510753515749445", | |||
"DirectorId": "", | |||
"Name": "生产一部", | |||
"Names": "达达科技有限公司/生产部/生产一部", | |||
"Code": "D37d9K1QMn", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:37:16.313", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861,510753515749445]" | |||
}, | |||
{ | |||
"Id": "510753515749447", | |||
"ParentId": "510753093025861", | |||
"DirectorId": "", | |||
"Name": "销售部", | |||
"Names": "达达科技有限公司/销售部", | |||
"Code": "Jt6ZJfT4g2", | |||
"Category": "DEPT", | |||
"SortCode": "4", | |||
"CreateTime": "2024-2-2 16:01:24.577", | |||
"UpdateTime": "2024-2-20 11:36:29.453", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753093025861]" | |||
}, | |||
{ | |||
"Id": "510753541705799", | |||
"ParentId": "510753219502149", | |||
"DirectorId": "359177888051269", | |||
"Name": "生产部", | |||
"Names": "杰尼科技有限公司/生产部", | |||
"Code": "LuOvsCpXL9", | |||
"Category": "DEPT", | |||
"SortCode": "3", | |||
"CreateTime": "2024-2-2 16:01:30.917", | |||
"UpdateTime": "2024-2-20 11:36:17.613", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149]" | |||
}, | |||
{ | |||
"Id": "510753541709893", | |||
"ParentId": "510753541705799", | |||
"DirectorId": "", | |||
"Name": "生产一部", | |||
"Names": "杰尼科技有限公司/生产部/生产一部", | |||
"Code": "3jz7oH2YdB", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-2 16:01:30.92", | |||
"UpdateTime": "2024-2-20 11:38:19.807", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149,510753541705799]" | |||
}, | |||
{ | |||
"Id": "510753541709894", | |||
"ParentId": "510753219502149", | |||
"DirectorId": "", | |||
"Name": "销售部", | |||
"Names": "杰尼科技有限公司/销售部", | |||
"Code": "1175P8fpKj", | |||
"Category": "DEPT", | |||
"SortCode": "4", | |||
"CreateTime": "2024-2-2 16:01:30.92", | |||
"UpdateTime": "2024-2-20 11:36:31.727", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149]" | |||
}, | |||
{ | |||
"Id": "516762847445061", | |||
"ParentId": "510753219502149", | |||
"DirectorId": "", | |||
"Name": "科技部", | |||
"Names": "杰尼科技有限公司/科技部", | |||
"Code": "aixpW3fg7h", | |||
"Category": "DEPT", | |||
"SortCode": "2", | |||
"CreateTime": "2024-2-19 15:33:26.577", | |||
"UpdateTime": "2024-2-20 11:36:05.66", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149]" | |||
}, | |||
{ | |||
"Id": "516762847465541", | |||
"ParentId": "516762847445061", | |||
"DirectorId": "", | |||
"Name": "科技一部", | |||
"Names": "杰尼科技有限公司/科技部/科技一部", | |||
"Code": "8IGvu1YbVv", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-19 15:33:26.58", | |||
"UpdateTime": "2024-2-20 11:38:22.127", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149,516762847445061]" | |||
}, | |||
{ | |||
"Id": "516762847465542", | |||
"ParentId": "516762847465541", | |||
"DirectorId": "", | |||
"Name": "科技一部1组", | |||
"Names": "杰尼科技有限公司/科技部/科技一部/科技一部1组", | |||
"Code": "7i2xo2x63S", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-19 15:33:26.58", | |||
"UpdateTime": "2024-2-20 11:38:24.433", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149,516762847445061,516762847465541]" | |||
}, | |||
{ | |||
"Id": "517088662995013", | |||
"ParentId": "510752889880645", | |||
"DirectorId": "", | |||
"Name": "研发部", | |||
"Names": "旺仔科技有限公司/研发部", | |||
"Code": "28s3SaDA24", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-20 13:39:11.383", | |||
"UpdateTime": "", | |||
"CreateUserId": "511724553736261", | |||
"UpdateUserId": "", | |||
"CreateUser": "旺仔科技管理员", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510752889880645]" | |||
}, | |||
{ | |||
"Id": "517125532377157", | |||
"ParentId": "510753219502149", | |||
"DirectorId": "212725263002001", | |||
"Name": "果冻科技有限公司", | |||
"Names": "杰尼科技有限公司/果冻科技有限公司", | |||
"Code": "1wfUJ6288S", | |||
"Category": "COMPANY", | |||
"SortCode": "1", | |||
"CreateTime": "2024-2-20 16:09:12.727", | |||
"UpdateTime": "", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149]" | |||
}, | |||
{ | |||
"Id": "517129906487365", | |||
"ParentId": "510753219502149", | |||
"DirectorId": "", | |||
"Name": "研发部", | |||
"Names": "杰尼科技有限公司/研发部", | |||
"Code": "OMkYEanrD3", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-20 16:27:02.277", | |||
"UpdateTime": "", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[510753219502149]" | |||
}, | |||
{ | |||
"Id": "517130541625413", | |||
"ParentId": "252885263003720", | |||
"DirectorId": "", | |||
"Name": "研发部", | |||
"Names": "果冻科技有限公司/研发部", | |||
"Code": "Ql894KJrdb", | |||
"Category": "DEPT", | |||
"SortCode": "99", | |||
"CreateTime": "2024-2-20 16:29:35.677", | |||
"UpdateTime": "", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE", | |||
"ParentIdList": "[252885263003720]" | |||
} | |||
] | |||
} |
@@ -0,0 +1,328 @@ | |||
{ | |||
"RECORDS": [ | |||
{ | |||
"Id": "212725263003001", | |||
"OrgId": "252885263003720", | |||
"Name": "董事长", | |||
"Code": "rsz5dmh762", | |||
"Category": "HIGH", | |||
"SortCode": "1", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.213", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "212725263003002", | |||
"OrgId": "252885263003720", | |||
"Name": "总经理", | |||
"Code": "wo1araqs2z", | |||
"Category": "HIGH", | |||
"SortCode": "2", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "212725263003003", | |||
"OrgId": "252885263003720", | |||
"Name": "副总经理", | |||
"Code": "asqvwbsc16", | |||
"Category": "HIGH", | |||
"SortCode": "3", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "212725263003004", | |||
"OrgId": "252885263003720", | |||
"Name": "总经理助理", | |||
"Code": "aln9y4tno6", | |||
"Category": "HIGH", | |||
"SortCode": "4", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "212725263003005", | |||
"OrgId": "252885263003720", | |||
"Name": "部门经理", | |||
"Code": "krq0kj7oio", | |||
"Category": "MIDDLE", | |||
"SortCode": "5", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "359569658515525", | |||
"OrgId": "359569393872965", | |||
"Name": "总经理", | |||
"Code": "4fuFapeKGy", | |||
"Category": "MIDDLE", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "360728646910021", | |||
"OrgId": "360642028625989", | |||
"Name": "销售主管", | |||
"Code": "Zq1KvX44WN", | |||
"Category": "MIDDLE", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "361407055544389", | |||
"OrgId": "252885263003720", | |||
"Name": "普通员工", | |||
"Code": "1Cy6JUDzeL", | |||
"Category": "LOW", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "361414036955205", | |||
"OrgId": "361404296994885", | |||
"Name": "研发人员", | |||
"Code": "AImZqb6j2X", | |||
"Category": "LOW", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "361414093332549", | |||
"OrgId": "361404346445893", | |||
"Name": "财务总监", | |||
"Code": "5JOEG44G62", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "361415094177861", | |||
"OrgId": "361404296994885", | |||
"Name": "项目经理", | |||
"Code": "AmOE17p37x", | |||
"Category": "MIDDLE", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.217", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "485593012985925", | |||
"OrgId": "464837557956677", | |||
"Name": "组长", | |||
"Code": "YWUz4Fc794", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-11-23 13:43:03.707", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "511723823370309", | |||
"OrgId": "510752889880645", | |||
"Name": "职工", | |||
"Code": "2KVZ6Uz3ne", | |||
"Category": "LOW", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-5 09:49:36.083", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "511723919061061", | |||
"OrgId": "510753093025861", | |||
"Name": "董事长", | |||
"Code": "4RbqYeVTG7", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-5 09:49:59.447", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "511723963043909", | |||
"OrgId": "510753219502149", | |||
"Name": "董事长", | |||
"Code": "50wshEGBxd", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-5 09:50:10.187", | |||
"UpdateTime": "2024-2-18 15:53:24.117", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "517095081300037", | |||
"OrgId": "517088662995013", | |||
"Name": "研发部经理", | |||
"Code": "KXs5l2W2v9", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "510752889880645", | |||
"CreateTime": "2024-2-20 14:05:18.353", | |||
"UpdateTime": "", | |||
"CreateUserId": "511724553736261", | |||
"UpdateUserId": "", | |||
"CreateUser": "旺仔科技管理员", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "517129906495557", | |||
"OrgId": "517129906487365", | |||
"Name": "研发部经理", | |||
"Code": "KXs5A2W3v9", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-20 16:27:02.323", | |||
"UpdateTime": "2024-2-20 16:29:21.22", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "superAdmin", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "517130541629509", | |||
"OrgId": "517130541625413", | |||
"Name": "研发部经理", | |||
"Code": "0EyfLIDRJC", | |||
"Category": "HIGH", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-20 16:29:35.687", | |||
"UpdateTime": "", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
} | |||
] | |||
} |
@@ -0,0 +1,175 @@ | |||
{ | |||
"RECORDS": [ | |||
{ | |||
"Id": "212725263001001", | |||
"OrgId": "", | |||
"Name": "超级管理员", | |||
"Code": "superAdmin", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":5,\"ScopeCategory\":\"SCOPE_ALL\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "1", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.82", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "212725263001002", | |||
"OrgId": "", | |||
"Name": "业务管理员", | |||
"Code": "bizAdmin", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":5,\"ScopeCategory\":\"SCOPE_ALL\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "1", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.9", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "359567292014661", | |||
"OrgId": "", | |||
"Name": "所属组织及以下角色", | |||
"Code": "41fP9R7YZI", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":4,\"ScopeCategory\":\"SCOPE_ORG_CHILD\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.9", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "360645671104581", | |||
"OrgId": "", | |||
"Name": "所属组织角色", | |||
"Code": "KtIpet8uq0", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":2,\"ScopeCategory\":\"SCOPE_ORG\",\"ScopeDefineOrgIdList\":[360642028625989,361404296994885]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.9", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "360646281904197", | |||
"OrgId": "", | |||
"Name": "自定义组织角色", | |||
"Code": "9b774qzY92", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":3,\"ScopeCategory\":\"SCOPE_ORG_DEFINE\",\"ScopeDefineOrgIdList\":[360642028625989,361404296994885,360642028625989,361404296994885]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.903", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "212725263002001", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "360646662586437", | |||
"OrgId": "", | |||
"Name": "仅自己角色", | |||
"Code": "182293I1ZC", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":1,\"ScopeCategory\":\"SCOPE_SELF\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "0", | |||
"CreateTime": "2023-8-14 16:19:29.903", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "363084914917445", | |||
"OrgId": "361404296994885", | |||
"Name": "研发部管理员", | |||
"Code": "sfEg40KhpZ", | |||
"Category": "ORG", | |||
"DefaultDataScope": "{\"Level\":4,\"ScopeCategory\":\"SCOPE_ORG_CHILD\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2023-8-14 16:19:29.903", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "511793641513029", | |||
"OrgId": "", | |||
"Name": "租户管理员", | |||
"Code": "1q8bMS9rgF", | |||
"Category": "GLOBAL", | |||
"DefaultDataScope": "{\"Level\":4,\"ScopeCategory\":\"SCOPE_ORG_CHILD\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "252885263003720", | |||
"CreateTime": "2024-2-5 14:33:41.53", | |||
"UpdateTime": "2024-2-18 15:53:24.833", | |||
"CreateUserId": "212725263002001", | |||
"UpdateUserId": "", | |||
"CreateUser": "superAdmin", | |||
"UpdateUser": "", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
}, | |||
{ | |||
"Id": "517794467639365", | |||
"OrgId": "510752889880645", | |||
"Name": "测试", | |||
"Code": "pwrxO3v8X5", | |||
"Category": "ORG", | |||
"DefaultDataScope": "{\"Level\":4,\"ScopeCategory\":\"SCOPE_ORG_CHILD\",\"ScopeDefineOrgIdList\":[]}", | |||
"SortCode": "99", | |||
"CreateOrgId": "510752889880645", | |||
"CreateTime": "2024-2-22 13:31:06.97", | |||
"UpdateTime": "2024-2-23 15:54:27.833", | |||
"CreateUserId": "511724553736261", | |||
"UpdateUserId": "511724553736261", | |||
"CreateUser": "旺仔科技管理员", | |||
"UpdateUser": "旺仔科技管理员", | |||
"IsDelete": "0", | |||
"ExtJson": "", | |||
"Status": "ENABLE" | |||
} | |||
] | |||
} |
@@ -0,0 +1,36 @@ | |||
{ | |||
//sqlSugar设置 | |||
"SqlSugarSettings": { | |||
//SqlSugar连接字符串配置 | |||
"ConnectionStrings": [ | |||
{ | |||
"ConfigId": "SafeCampus", //租户ID | |||
"ConnectionString": "PORT=5432;DATABASE=SafeCampus;HOST=1.14.43.23;PASSWORD=wxh@9695;USER ID=postgres;", //连接字符串 | |||
"DbType": "PostgreSQL", //数据库类型 | |||
"IsAutoCloseConnection": true, //是否自动释放 | |||
"IsUnderLine": false //是否驼峰转下划线 | |||
}, | |||
//{ | |||
// "ConfigId": "SafeCampus", //租户ID | |||
// "ConnectionString": "Data Source=./SafeCampus.db", //连接字符串 | |||
// "DbType": "Sqlite", //数据库类型 | |||
// "IsAutoCloseConnection": true, //是否自动释放 | |||
// "IsUnderLine": false //是否驼峰转下划线 | |||
//} | |||
// { | |||
// "ConfigId": "SafeCampus", //租户ID | |||
// "ConnectionString": "server=192.168.1.3;Database=SafeCampus;Uid=root;Pwd=123456;CharSet=utf8mb4;", //连接字符串 | |||
// "DbType": "MySql", //数据库类型 | |||
// "IsAutoCloseConnection": true, //是否自动释放 | |||
// "IsUnderLine": false //是否驼峰转下划线 | |||
// }, | |||
// { | |||
// "ConfigId": "SafeCampus", //租户ID | |||
// "ConnectionString": "Server=192.168.1.16;Database=SafeCampus;User=sa;Password=123456;MultipleActiveResultSets=True;", //连接字符串 | |||
// "DbType": "SqlServer", //数据库类型 | |||
// "IsAutoCloseConnection": true, //是否自动释放 | |||
// "IsUnderLine": false //是否驼峰转下划线 | |||
// } | |||
] | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
{ | |||
//sqlsugar设置 | |||
"SqlSugarSettings": { | |||
//SqlSugar连接字符串配置 | |||
"ConnectionStrings": [ | |||
{ | |||
"ConfigId": "SafeCampus", //租户ID | |||
"ConnectionString": "PORT=5432;DATABASE=SafeCampus;HOST=1.14.43.23;PASSWORD=wxh@9695;USER ID=postgres;", //连接字符串 | |||
"DbType": "PostgreSQL", //数据库类型 | |||
"IsAutoCloseConnection": true, //是否自动释放 | |||
"IsUnderLine": false //是否驼峰转下划线 | |||
} | |||
// { | |||
// "ConfigId": "SafeCampus", //租户ID | |||
// "ConnectionString": "server=192.168.1.3;Database=SafeCampus;Uid=root;Pwd=123456;CharSet=utf8mb4;", //连接字符串 | |||
// "DbType": "MySql", //数据库类型 | |||
// "IsAutoCloseConnection": true, //是否自动释放 | |||
// }, | |||
// { | |||
// "ConfigId": "SafeCampus", //租户ID | |||
// "ConnectionString": "Server=192.168.1.16;Database=SafeCampus;User=sa;Password=123456;MultipleActiveResultSets=True;", //连接字符串 | |||
// "DbType": "SqlServer", //数据库类型 | |||
// "IsAutoCloseConnection": true, //是否自动释放 | |||
// } | |||
] | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
{ | |||
//swagger分组设置 | |||
"[openapi:Default]": { | |||
"Order": 99, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "权限模块", //配置分组标题,string 类型 | |||
"Description": "开发更简单,更通用,更流行。", | |||
"Version": "1.0.0", //配置分组版本,默认 1.0 | |||
"TermsOfService": "https://www.cnblogs.com/huguodong/", //配置相关链接地址,Uri 类型 | |||
"Contact": { | |||
//配置联系方式 | |||
"Name": "王晓寒", | |||
"Url": "https://gitee.com/", | |||
"Email": "823756726@qq.com" | |||
}, | |||
"License": { | |||
//配置协议,OpenApiLicense 类型 | |||
"Name": "Apache-2.0", | |||
"Url": "https://gitee.com/" | |||
} | |||
}, | |||
//系统层设置 | |||
"SystemSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
"SuperAdminViewAllData": true //是否超级管理员可以查看所有数据 | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
{ | |||
//swagger分组设置 | |||
"[openapi:Default]": { | |||
"Order": 99, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "权限模块", //配置分组标题,string 类型 | |||
"Description": "开发更简单,更通用,更流行。", | |||
"Version": "1.0.0", //配置分组版本,默认 1.0 | |||
"TermsOfService": "https://www.cnblogs.com/huguodong/", //配置相关链接地址,Uri 类型 | |||
"Contact": { | |||
//配置联系方式 | |||
"Name": "王晓寒", | |||
"Url": "https://gitee.com/", | |||
"Email": "823756726@qq.com" | |||
}, | |||
"License": { | |||
//配置协议,OpenApiLicense 类型 | |||
"Name": "Apache-2.0", | |||
"Url": "https://gitee.com/" | |||
} | |||
}, | |||
//系统层设置 | |||
"SystemSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
"SuperAdminViewAllData": true //是否超级管理员可以查看所有数据 | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
{ | |||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", | |||
//swagger分组设置 | |||
"[openapi:Application]": { | |||
"Order": 90, //分组排序,int 类型,数字越大排前面,默认 0 | |||
"Title": "业务模块" //配置分组标题,string 类型 | |||
}, | |||
//系统层设置 | |||
"ApplicationSettings": { | |||
"InitTable": false, //是否初始化表结构 | |||
"InitSeedData": false, //是否初始化种子数据 | |||
} | |||
} |
@@ -0,0 +1,12 @@ | |||
{ | |||
//缓存设置 | |||
"CacheSettings": { | |||
"UseRedis": true, //启用redis | |||
"RedisSettings": { | |||
"Address": "127.0.0.1:6379", //地址 | |||
"Password": "wxh@0000", //Redis服务密码 | |||
"Db": 1, //默认库 | |||
"ClearRedis": false //是否每次启动都清除Redis缓存 | |||
} | |||
} | |||
} |
@@ -0,0 +1,12 @@ | |||
{ | |||
//缓存设置 | |||
"CacheSettings": { | |||
"UseRedis": true, //启用redis | |||
"RedisSettings": { | |||
"Address": "127.0.0.1:6379", //地址 | |||
"Password": "wxh@0000", //Redis服务密码 | |||
"Db": 1, //默认库 | |||
"ClearRedis": false //是否每次启动都清除Redis缓存 | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
//秘钥配置 | |||
"Cryptogram": { | |||
//SM2国密配置 | |||
"SM2": { | |||
"PublicKey": "04BD62406DF6789B1FBE8C457AECAE6D7C806CDB39316F190519905C24DF395E8952C47798D76ADECF8CA28C935702AFCDD9B17DE77121FA6448F0EDEFBD8365D6", //公钥 | |||
"PrivateKey": "00F908E5ED9C2059A960E3A58056F69E0CF75299182CEB93B74CD1FDC633FCA0E5" //私钥 | |||
} | |||
}, | |||
//日志配置 | |||
"Logging": { | |||
"Monitor": { | |||
"Write": false, //是否文件写入LoggingMonitor日志 | |||
"Console": false, //是否控制台输出LoggingMonitor日志 | |||
}, | |||
"MessageFormat": true, //是否格式化日志 | |||
"LogLevel": { | |||
"Default": "Debug", //默认日志级别 | |||
"Max": "Error", //最大日志级别 | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information" | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
//秘钥配置 | |||
"Cryptogram": { | |||
//SM2国密配置 | |||
"SM2": { | |||
"PublicKey": "04BD62406DF6789B1FBE8C457AECAE6D7C806CDB39316F190519905C24DF395E8952C47798D76ADECF8CA28C935702AFCDD9B17DE77121FA6448F0EDEFBD8365D6", //公钥 | |||
"PrivateKey": "00F908E5ED9C2059A960E3A58056F69E0CF75299182CEB93B74CD1FDC633FCA0E5" //私钥 | |||
} | |||
}, | |||
//日志配置 | |||
"Logging": { | |||
"Monitor": { | |||
"Write": false, //是否文件写入LoggingMonitor日志 | |||
"Console": false, //是否控制台输出LoggingMonitor日志 | |||
}, | |||
"MessageFormat": true, //是否格式化日志 | |||
"LogLevel": { | |||
"Default": "Information", //默认日志级别 | |||
"Max": "Error", //最大日志级别 | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information", | |||
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information" | |||
} | |||
} | |||
} |
@@ -0,0 +1,875 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Application</name> | |||
</assembly> | |||
<members> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_ORG"> | |||
<summary> | |||
机构 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Application.ApplicationConst.BIZ_POS"> | |||
<summary> | |||
岗位 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager"> | |||
<summary> | |||
深象智能对接实现 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.GenSXToken"> | |||
<summary> | |||
获取深象智能Token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
订阅预警更新 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
订阅点名事件 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.DeepelephManager.TimestampToDateTime(System.String)"> | |||
<summary> | |||
时间戳转本时区日期时间 | |||
</summary> | |||
<param name="timeStamp"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager"> | |||
<summary> | |||
深象对接接口 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.GetToken"> | |||
<summary> | |||
获取token | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscribeAlarm"> | |||
<summary> | |||
启动预警订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.DisconnectAsync"> | |||
<summary> | |||
释放连接 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberRoomCall"> | |||
<summary> | |||
启动点名订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Manager.DeepelephManager.IDeepelephManager.SubscriberAttendance"> | |||
<summary> | |||
开启无感考勤订阅 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.ApplicationSettingsOptions"> | |||
<summary> | |||
系统配置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.alarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.beginTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.endTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.cameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.VideoUrl"> | |||
<summary> | |||
预警关联视频(有些报警有,有些没有) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Tags"> | |||
<summary> | |||
场景标签 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Extend"> | |||
<summary> | |||
额外数据,每个预警类型不同 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.Remark"> | |||
<summary> | |||
处理意见 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmId"> | |||
<summary> | |||
预警id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.AlarmTypeDesc"> | |||
<summary> | |||
预警类型名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.SnapshotUrl"> | |||
<summary> | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonType"> | |||
<summary> | |||
人员类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.HandTime"> | |||
<summary> | |||
处理时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.StartTick"> | |||
<summary> | |||
事件发生时间开始 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.EndTick"> | |||
<summary> | |||
事件发生时间结束 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch.WarnHand"> | |||
<summary> | |||
预警处理状态 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.HandWarn(System.Int64,System.String)"> | |||
<summary> | |||
处理预警 | |||
</summary> | |||
<param name="id"></param> | |||
<param name="remark"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetListNoPage(SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoSearch)"> | |||
<summary> | |||
获取列表不分页 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.Warn.Service.IWarnInfoService.GetWarnType"> | |||
<summary> | |||
获取告警分离列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Add(`0)"> | |||
<summary> | |||
添加 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Delete(System.Int64)"> | |||
<summary> | |||
删除 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.Update(`0)"> | |||
<summary> | |||
修改 | |||
</summary> | |||
<param name="vm"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetInfo(System.Int64)"> | |||
<summary> | |||
根据id获取信息 | |||
</summary> | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.IApiBaseInterface`3.GetList(`2)"> | |||
<summary> | |||
获取列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.IOrgService"> | |||
<summary> | |||
机构服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<summary> | |||
添加机构 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<summary> | |||
复制机构 | |||
</summary> | |||
<param name="input">机构复制参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除机构 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<summary> | |||
编辑机构 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<summary> | |||
机构分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<summary> | |||
机构树结构 | |||
</summary> | |||
<param name="input">机构选择器</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IOrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
机构详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.OrgService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IOrgService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Page(SafeCampus.System.SysOrgPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Tree(SafeCampus.System.SysOrgTreeInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Add(SafeCampus.System.SysOrgAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Edit(SafeCampus.System.SysOrgEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Copy(SafeCampus.System.SysOrgCopyInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.OrgService.CheckInput(SafeCampus.System.SysOrg,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysOrg">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="T:SafeCampus.Application.IPositionService"> | |||
<summary> | |||
岗位管理 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<summary> | |||
添加岗位 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除岗位 | |||
</summary> | |||
<param name="input">id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<summary> | |||
编辑岗位 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<summary> | |||
岗位分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<summary> | |||
岗位选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
岗位详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IPositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<summary> | |||
岗位树形结构 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.PositionService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IPositionService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Page(SafeCampus.System.PositionPageInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Tree(SafeCampus.System.PositionTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Add(SafeCampus.System.PositionAddInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Selector(SafeCampus.System.PositionSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Edit(SafeCampus.System.PositionEditInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.PositionService.CheckInput(SafeCampus.System.SysPosition,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysPosition">参数</param> | |||
<param name="operate">操作名称</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<summary> | |||
角色拥有资源 | |||
</summary> | |||
<param name="input">角色id</param> | |||
<param name="category">资源类型</param> | |||
<returns>角色拥有资源信息</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取角色下的用户 | |||
</summary> | |||
<param name="input">角色ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<summary> | |||
分页查询角色 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<summary> | |||
获取角色树 | |||
</summary> | |||
<param name="input">角色树</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
角色详情 | |||
</summary> | |||
<param name="input">角色Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.ResourceTreeSelector"> | |||
<summary> | |||
资源树选择器 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<summary> | |||
添加角色 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<summary> | |||
编辑角色 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<summary> | |||
给角色授权 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<summary> | |||
给角色授权用户 | |||
</summary> | |||
<param name="input">授权信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IRoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除角色 | |||
</summary> | |||
<param name="input">删除参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.RoleService"> | |||
<inheritdoc cref="T:SafeCampus.Application.IRoleService"/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnResource(SafeCampus.Core.BaseIdInput,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.OwnUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Page(SafeCampus.System.RolePageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Tree(SafeCampus.System.RoleTreeInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.ResourceTreeSelector"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Add(SafeCampus.System.RoleAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Edit(SafeCampus.System.RoleEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantResource(SafeCampus.System.GrantResourceInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GrantUser(SafeCampus.System.GrantUserInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.CheckInput(SafeCampus.System.SysRole)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysRole"></param> | |||
</member> | |||
<member name="M:SafeCampus.Application.RoleService.GetRoleGrantResourceMenus(System.Int64,System.Collections.Generic.List{SafeCampus.System.SysResource},System.Collections.Generic.List{SafeCampus.System.SysResource})"> | |||
<summary> | |||
获取授权菜单 | |||
</summary> | |||
<param name="moduleId">模块Id</param> | |||
<param name="ownMenuList">拥有菜单列表</param> | |||
<param name="ownButtonList">拥有权限按钮列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserImportInput"> | |||
<summary> | |||
业务用户导入 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.BizUserExportOutput"> | |||
<summary> | |||
业务用户导出 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Application.IUserService"> | |||
<summary> | |||
人员管理服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<summary> | |||
人员选择器 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>人员列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Page(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
用户分页查询 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns>用户分页列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
获取用户拥有角色 | |||
</summary> | |||
<param name="input">用户ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<summary> | |||
角色选择器 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
人员详情 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Add(SafeCampus.System.UserAddInput)"> | |||
<summary> | |||
添加用户 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<summary> | |||
编辑 | |||
</summary> | |||
<param name="input">编辑参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
禁用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
启用用户 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<summary> | |||
重置密码 | |||
</summary> | |||
<param name="input">用户Id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<summary> | |||
给用户授权角色 | |||
</summary> | |||
<param name="input">授权参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<summary> | |||
删除用户 | |||
</summary> | |||
<param name="input">Id列表</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<summary> | |||
导入预览 | |||
</summary> | |||
<param name="input">导入参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Template"> | |||
<summary> | |||
获取导入模板 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Export(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
导出 | |||
</summary> | |||
<param name="input">查询参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<summary> | |||
导入数据 | |||
</summary> | |||
<param name="input">数据</param> | |||
<returns>导入结果</returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.IUserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<summary> | |||
批量编辑 | |||
</summary> | |||
<param name="input">编辑字段信息</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.UserService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Application.IUserService"/> | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Page(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.OwnRole(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Selector(SafeCampus.System.UserSelectorInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.RoleSelector(SafeCampus.System.RoleSelectorInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Detail(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc /> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Add(SafeCampus.System.UserAddInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edit(SafeCampus.System.UserEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Edits(SafeCampus.System.BatchEditInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.DisableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.EnableUser(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GrantRole(SafeCampus.System.UserGrantRoleInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.ResetPassword(SafeCampus.Core.BaseIdInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Delete(SafeCampus.Core.BaseIdListInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Template"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Preview(SafeCampus.System.ImportPreviewInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Export(SafeCampus.System.UserPageInput)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.Import(SafeCampus.System.ImportResultInput{SafeCampus.Application.BizUserImportInput})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(SafeCampus.System.SysUser,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="sysUser"></param> | |||
<param name="operate">操作类型</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckInput(System.Int64,System.String)"> | |||
<summary> | |||
检查输入参数 | |||
</summary> | |||
<param name="userId">用户ID</param> | |||
<param name="operate">操作</param> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.CheckImport(System.Collections.Generic.List{SafeCampus.Application.BizUserImportInput},System.Collections.Generic.List{System.Int64},System.Boolean)"> | |||
<summary> | |||
检查导入数据 | |||
</summary> | |||
<param name="data">数据</param> | |||
<param name="dataScope">数据范围ID数组</param> | |||
<param name="clearError">是否初始化错误</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.UserService.GetQuery(SafeCampus.System.UserPageInput)"> | |||
<summary> | |||
获取查询条件 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Application.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
</members> | |||
</doc> |
@@ -0,0 +1,516 @@ | |||
<?xml version="1.0"?> | |||
<doc> | |||
<assembly> | |||
<name>SafeCampus.Cache</name> | |||
</assembly> | |||
<members> | |||
<member name="T:SafeCampus.Cache.CacheConst"> | |||
<summary> | |||
Redis常量 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_PREFIX_WEB"> | |||
<summary> | |||
Redis Key前缀(可删除) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_PREFIX"> | |||
<summary> | |||
Redis Key前缀(需要持久化,不随系统重启删除) | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_HASH"> | |||
<summary> | |||
Redis Hash类型 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Cache.CacheConst.CACHE_USER_TOKEN"> | |||
<summary> | |||
用户Token缓存Key | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.ISimpleCacheService"> | |||
<summary> | |||
缓存服务 | |||
</summary> | |||
<summary> | |||
缓存服务 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<summary> | |||
添加一条数据到HashMap | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="hashKey">hash列表里的Key</param> | |||
<param name="value">值</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<summary> | |||
添加多条数据到HashMap | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="dic">键值对字典</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashDel``1(System.String,System.String[])"> | |||
<summary> | |||
从HashMap中删除数据 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="fields">hash键列表</param> | |||
<returns>执行结果</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGet``1(System.String,System.String[])"> | |||
<summary> | |||
根据键获取hash列表中的值 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="fields">hash键列表</param> | |||
<returns>数据列表</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGetOne``1(System.String,System.String)"> | |||
<summary> | |||
根据键获取hash列表中的值 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<param name="field">hash键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.HashGetAll``1(System.String)"> | |||
<summary> | |||
获取所有键值对 | |||
</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key">键</param> | |||
<returns>数据字典</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.ContainsKey(System.String)"> | |||
<summary>是否包含缓存项</summary> | |||
<param name="key"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<summary>设置缓存项</summary> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<summary>设置缓存项</summary> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Get``1(System.String)"> | |||
<summary>获取缓存项</summary> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Remove(System.String[])"> | |||
<summary>批量移除缓存项</summary> | |||
<param name="keys">键集合</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Clear"> | |||
<summary>清空所有缓存项</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<summary>设置缓存项有效期</summary> | |||
<param name="key">键</param> | |||
<param name="expire">过期时间</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetExpire(System.String)"> | |||
<summary>获取缓存项有效期</summary> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.DelByPattern(System.String)"> | |||
<summary> | |||
模糊删除 | |||
</summary> | |||
<param name="pattern">匹配关键字</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<summary>批量获取缓存项</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="keys"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<summary>批量设置缓存项</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="values"></param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetList``1(System.String)"> | |||
<summary>获取列表</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetDictionary``1(System.String)"> | |||
<summary>获取哈希</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetQueue``1(System.String)"> | |||
<summary>获取队列</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetStack``1(System.String)"> | |||
<summary>获取栈</summary> | |||
<typeparam name="T">元素类型</typeparam> | |||
<param name="key">键</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.GetSet``1(System.String)"> | |||
<summary>获取Set</summary> | |||
<typeparam name="T"></typeparam> | |||
<param name="key"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<summary>添加,已存在时不更新</summary> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<param name="expire">过期时间,秒。小于0时采用默认缓存时间</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Replace``1(System.String,``0)"> | |||
<summary>设置新值并获取旧值,原子操作</summary> | |||
<remarks> | |||
常常配合Increment使用,用于累加到一定数后重置归零,又避免多线程冲突。 | |||
</remarks> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.TryGetValue``1(System.String,``0@)"> | |||
<summary>尝试获取指定键,返回是否包含值。有可能缓存项刚好是默认值,或者只是反序列化失败,解决缓存穿透问题</summary> | |||
<typeparam name="T">值类型</typeparam> | |||
<param name="key">键</param> | |||
<param name="value">值。即使有值也不一定能够返回,可能缓存项刚好是默认值,或者只是反序列化失败</param> | |||
<returns>返回是否包含值,即使反序列化失败</returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Increment(System.String,System.Int64)"> | |||
<summary>累加,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Increment(System.String,System.Double)"> | |||
<summary>累加,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Decrement(System.String,System.Int64)"> | |||
<summary>递减,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Decrement(System.String,System.Double)"> | |||
<summary>递减,原子操作</summary> | |||
<param name="key">键</param> | |||
<param name="value">变化量</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.Commit"> | |||
<summary>提交变更。部分提供者需要刷盘</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.AcquireLock(System.String,System.Int32)"> | |||
<summary>申请分布式锁</summary> | |||
<param name="key">要锁定的key</param> | |||
<param name="msTimeout">锁等待时间,单位毫秒</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Cache.ISimpleCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<summary>申请分布式锁</summary> | |||
<param name="key">要锁定的key</param> | |||
<param name="msTimeout">锁等待时间,申请加锁时如果遇到冲突则等待的最大时间,单位毫秒</param> | |||
<param name="msExpire">锁过期时间,超过该时间如果没有主动释放则自动释放锁,必须整数秒,单位毫秒</param> | |||
<param name="throwOnFailure">失败时是否抛出异常,如果不抛出异常,可通过返回null得知申请锁失败</param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Cache.CacheSettingsOptions"> | |||
<summary> | |||
缓存设置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.CacheSettingsOptions.UseRedis"> | |||
<summary> | |||
使用Redis | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.CacheSettingsOptions.RedisSettings"> | |||
<summary> | |||
Redis设置 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.RedisSettings"> | |||
<summary> | |||
Redis设置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Address"> | |||
<summary> | |||
连接地址 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Password"> | |||
<summary> | |||
密码 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.Db"> | |||
<summary> | |||
数据库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Cache.RedisSettings.ClearRedis"> | |||
<summary> | |||
是否每次启动都清空 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Cache.MemoryCacheService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
内存缓存 | |||
</summary> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
内存缓存 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashDel``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGet``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGetOne``1(System.String,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.HashGetAll``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Get``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Remove(System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetExpire(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.ContainsKey(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Clear"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.DelByPattern(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetDictionary``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetQueue``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetStack``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetSet``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.GetList``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Replace``1(System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.TryGetValue``1(System.String,``0@)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Decrement(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Decrement(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Increment(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Increment(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.Commit"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.AcquireLock(System.String,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.MemoryCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:SafeCampus.Cache.RedisCacheService"> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
Redis缓存 | |||
</summary> | |||
<summary> | |||
<inheritdoc cref="T:SafeCampus.Cache.ISimpleCacheService"/> | |||
Redis缓存 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashAdd``1(System.String,System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashSet``1(System.String,System.Collections.Generic.Dictionary{System.String,``0})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashDel``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGet``1(System.String,System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGetOne``1(System.String,System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.HashGetAll``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Get``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Remove(System.String[])"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Set``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Set``1(System.String,``0,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.SetExpire(System.String,System.TimeSpan)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetExpire(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.ContainsKey(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Clear"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.DelByPattern(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetAll``1(System.Collections.Generic.IEnumerable{System.String})"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0},System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetDictionary``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetQueue``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetStack``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetSet``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Add``1(System.String,``0,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.GetList``1(System.String)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Replace``1(System.String,``0)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.TryGetValue``1(System.String,``0@)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Decrement(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Decrement(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Increment(System.String,System.Int64)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Increment(System.String,System.Double)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.Commit"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.AcquireLock(System.String,System.Int32)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:SafeCampus.Cache.RedisCacheService.AcquireLock(System.String,System.Int32,System.Int32,System.Boolean)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:SafeCampus.Cache.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Cache.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)"> | |||
<summary> | |||
ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 | |||
服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! | |||
正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了 | |||
</summary> | |||
<param name="services"></param> | |||
</member> | |||
</members> | |||
</doc> |