Browse Source

init

master
王晓寒 9 months ago
commit
7b594c62a2
100 changed files with 35696 additions and 0 deletions
  1. +41
    -0
      SafeCampus.API/.editorconfig
  2. BIN
      SafeCampus.API/.vs/ProjectEvaluation/safecampus.metadata.v7.bin
  3. BIN
      SafeCampus.API/.vs/ProjectEvaluation/safecampus.projects.v7.bin
  4. BIN
      SafeCampus.API/.vs/ProjectEvaluation/safecampus.strings.v8.bin
  5. BIN
      SafeCampus.API/.vs/SafeCampus/DesignTimeBuild/.dtbcache.v2
  6. BIN
      SafeCampus.API/.vs/SafeCampus/FileContentIndex/1513e796-e839-4665-825a-90c7b1870da6.vsidx
  7. BIN
      SafeCampus.API/.vs/SafeCampus/FileContentIndex/3d41c0cf-4b19-489e-bc55-bf02c1e652d4.vsidx
  8. BIN
      SafeCampus.API/.vs/SafeCampus/FileContentIndex/6852e100-1186-4015-931b-68ddcbfff7b7.vsidx
  9. BIN
      SafeCampus.API/.vs/SafeCampus/FileContentIndex/694c2172-b757-4eeb-93b3-e8b5aa54b066.vsidx
  10. BIN
      SafeCampus.API/.vs/SafeCampus/FileContentIndex/d0d73008-58e8-4d75-b6eb-1cc547763c6e.vsidx
  11. +1021
    -0
      SafeCampus.API/.vs/SafeCampus/config/applicationhost.config
  12. BIN
      SafeCampus.API/.vs/SafeCampus/v17/.futdcache.v2
  13. BIN
      SafeCampus.API/.vs/SafeCampus/v17/.suo
  14. +1093
    -0
      SafeCampus.API/.vs/SafeCampus/v17/DocumentLayout.json
  15. BIN
      SafeCampus.API/.vs/SafeCampus/v17/HierarchyCache.v1.txt
  16. BIN
      SafeCampus.API/.vs/SafeCampus/v17/fileList.bin
  17. +13
    -0
      SafeCampus.API/Directory.Build.props
  18. +13
    -0
      SafeCampus.API/SafeCampus.Application/Application.Development.json
  19. +13
    -0
      SafeCampus.API/SafeCampus.Application/Application.Production.json
  20. +19
    -0
      SafeCampus.API/SafeCampus.Application/Const/ApplicationConst.cs
  21. +16
    -0
      SafeCampus.API/SafeCampus.Application/GlobalUsings.cs
  22. +530
    -0
      SafeCampus.API/SafeCampus.Application/Manager/DeepelephManager/DeepelephManager.cs
  23. +33
    -0
      SafeCampus.API/SafeCampus.Application/Manager/DeepelephManager/IDeepelephManager.cs
  24. +10
    -0
      SafeCampus.API/SafeCampus.Application/Options/ApplicationSettingsOptions.cs
  25. +28
    -0
      SafeCampus.API/SafeCampus.Application/SafeCampus.Application.csproj
  26. +6
    -0
      SafeCampus.API/SafeCampus.Application/SafeCampus.Application.csproj.user
  27. +875
    -0
      SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml
  28. +21
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Dto/AlarmSearch.cs
  29. +80
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoDto.cs
  30. +61
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoList.cs
  31. +25
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoSearch.cs
  32. +7
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnType.cs
  33. +24
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Service/IWarnInfoService.cs
  34. +147
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Service/WarnInfoService.cs
  35. +36
    -0
      SafeCampus.API/SafeCampus.Application/Services/IApiBaseInterface.cs
  36. +57
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Org/IOrgService.cs
  37. +140
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Org/OrgService.cs
  38. +66
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Position/IPositionService.cs
  39. +131
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Position/PositionService.cs
  40. +115
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Role/IRoleService.cs
  41. +286
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/Role/RoleService.cs
  42. +18
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/User/Dto/UserInput.cs
  43. +18
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/User/Dto/UserOutput.cs
  44. +155
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/User/IUserService.cs
  45. +332
    -0
      SafeCampus.API/SafeCampus.Application/Services/Organization/User/UserService.cs
  46. +38
    -0
      SafeCampus.API/SafeCampus.Application/Startup.cs
  47. +13
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Application.Development.json
  48. +13
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Application.Production.json
  49. +12
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Cache.Development.json
  50. +12
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Cache.Production.json
  51. +25
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Core.Development.json
  52. +25
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Core.Production.json
  53. +3393
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.deps.json
  54. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.dll
  55. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.pdb
  56. +875
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.xml
  57. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.dll
  58. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.pdb
  59. +516
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.xml
  60. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.dll
  61. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.pdb
  62. +1840
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.xml
  63. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.dll
  64. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.pdb
  65. +134
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.xml
  66. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.dll
  67. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.pdb
  68. +665
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.xml
  69. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.dll
  70. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.pdb
  71. +7371
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.xml
  72. +233
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/WarnGroup.json
  73. +616
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_config.json
  74. +1245
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_dict.json
  75. +764
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_org.json
  76. +328
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_position.json
  77. +2713
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_relation.json
  78. +1654
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_resource.json
  79. +175
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_role.json
  80. +788
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_user.json
  81. +36
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SqlSugar.Development.json
  82. +27
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SqlSugar.Production.json
  83. +27
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/System.Development.json
  84. +27
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/System.Production.json
  85. +13
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Application.Development.json
  86. +13
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Application.Production.json
  87. +12
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Cache.Development.json
  88. +12
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Cache.Production.json
  89. +25
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Core.Development.json
  90. +25
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Core.Production.json
  91. +3370
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.deps.json
  92. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.dll
  93. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.pdb
  94. +875
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.xml
  95. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.dll
  96. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.pdb
  97. +516
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.xml
  98. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.dll
  99. BIN
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.pdb
  100. +1840
    -0
      SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.xml

+ 41
- 0
SafeCampus.API/.editorconfig View File

@@ -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.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。

BIN
SafeCampus.API/.vs/ProjectEvaluation/safecampus.metadata.v7.bin View File


BIN
SafeCampus.API/.vs/ProjectEvaluation/safecampus.projects.v7.bin View File


BIN
SafeCampus.API/.vs/ProjectEvaluation/safecampus.strings.v8.bin View File


BIN
SafeCampus.API/.vs/SafeCampus/DesignTimeBuild/.dtbcache.v2 View File


BIN
SafeCampus.API/.vs/SafeCampus/FileContentIndex/1513e796-e839-4665-825a-90c7b1870da6.vsidx View File


BIN
SafeCampus.API/.vs/SafeCampus/FileContentIndex/3d41c0cf-4b19-489e-bc55-bf02c1e652d4.vsidx View File


BIN
SafeCampus.API/.vs/SafeCampus/FileContentIndex/6852e100-1186-4015-931b-68ddcbfff7b7.vsidx View File


BIN
SafeCampus.API/.vs/SafeCampus/FileContentIndex/694c2172-b757-4eeb-93b3-e8b5aa54b066.vsidx View File


BIN
SafeCampus.API/.vs/SafeCampus/FileContentIndex/d0d73008-58e8-4d75-b6eb-1cc547763c6e.vsidx View File


+ 1021
- 0
SafeCampus.API/.vs/SafeCampus/config/applicationhost.config
File diff suppressed because it is too large
View File


BIN
SafeCampus.API/.vs/SafeCampus/v17/.futdcache.v2 View File


BIN
SafeCampus.API/.vs/SafeCampus/v17/.suo View File


+ 1093
- 0
SafeCampus.API/.vs/SafeCampus/v17/DocumentLayout.json
File diff suppressed because it is too large
View File


BIN
SafeCampus.API/.vs/SafeCampus/v17/HierarchyCache.v1.txt View File


BIN
SafeCampus.API/.vs/SafeCampus/v17/fileList.bin View File


+ 13
- 0
SafeCampus.API/Directory.Build.props View File

@@ -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>

+ 13
- 0
SafeCampus.API/SafeCampus.Application/Application.Development.json View File

@@ -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, //是否初始化种子数据
}
}

+ 13
- 0
SafeCampus.API/SafeCampus.Application/Application.Production.json View File

@@ -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, //是否初始化种子数据
}
}

+ 19
- 0
SafeCampus.API/SafeCampus.Application/Const/ApplicationConst.cs View File

@@ -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 别称
}

+ 16
- 0
SafeCampus.API/SafeCampus.Application/GlobalUsings.cs View File

@@ -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;

+ 530
- 0
SafeCampus.API/SafeCampus.Application/Manager/DeepelephManager/DeepelephManager.cs View File

@@ -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;
}

}

+ 33
- 0
SafeCampus.API/SafeCampus.Application/Manager/DeepelephManager/IDeepelephManager.cs View File

@@ -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();
}

+ 10
- 0
SafeCampus.API/SafeCampus.Application/Options/ApplicationSettingsOptions.cs View File

@@ -0,0 +1,10 @@
using MoYu.ConfigurableOptions;

namespace SafeCampus.Application;

/// <summary>
/// 系统配置
/// </summary>
public class ApplicationSettingsOptions : BaseOptions, IConfigurableOptions
{
}

+ 28
- 0
SafeCampus.API/SafeCampus.Application/SafeCampus.Application.csproj View File

@@ -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>

+ 6
- 0
SafeCampus.API/SafeCampus.Application/SafeCampus.Application.csproj.user View File

@@ -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>

+ 875
- 0
SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml View File

@@ -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>

+ 21
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Dto/AlarmSearch.cs View File

@@ -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; }
}

+ 80
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoDto.cs View File

@@ -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; }
}

+ 61
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoList.cs View File

@@ -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>());
}
}

+ 25
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnInfoSearch.cs View File

@@ -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; }
}

+ 7
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Dto/WarnType.cs View File

@@ -0,0 +1,7 @@
namespace SafeCampus.Application.Services.Business;

public class WarnType
{
public string Name { get; set; }
public string Code { get; set; }
}

+ 24
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Service/IWarnInfoService.cs View File

@@ -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();
}

+ 147
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/Warn/Service/WarnInfoService.cs View File

@@ -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();
}
}

+ 36
- 0
SafeCampus.API/SafeCampus.Application/Services/IApiBaseInterface.cs View File

@@ -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);
}

+ 57
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Org/IOrgService.cs View File

@@ -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);
}

+ 140
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Org/OrgService.cs View File

@@ -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 方法
}

+ 66
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Position/IPositionService.cs View File

@@ -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);
}

+ 131
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Position/PositionService.cs View File

@@ -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 方法
}

+ 115
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Role/IRoleService.cs View File

@@ -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
}

+ 286
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/Role/RoleService.cs View File

@@ -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
}

+ 18
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/User/Dto/UserInput.cs View File

@@ -0,0 +1,18 @@

//








namespace SafeCampus.Application;

/// <summary>
/// 业务用户导入
/// </summary>
public class BizUserImportInput : SysUserImportInput
{
}

+ 18
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/User/Dto/UserOutput.cs View File

@@ -0,0 +1,18 @@

//








namespace SafeCampus.Application;

/// <summary>
/// 业务用户导出
/// </summary>
public class BizUserExportOutput : SysUserExportOutput
{
}

+ 155
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/User/IUserService.cs View File

@@ -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 导入导出
}

+ 332
- 0
SafeCampus.API/SafeCampus.Application/Services/Organization/User/UserService.cs View File

@@ -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 方法
}

+ 38
- 0
SafeCampus.API/SafeCampus.Application/Startup.cs View File

@@ -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
}
}

+ 13
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Application.Development.json View File

@@ -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, //是否初始化种子数据
}
}

+ 13
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Application.Production.json View File

@@ -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, //是否初始化种子数据
}
}

+ 12
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Cache.Development.json View File

@@ -0,0 +1,12 @@
{
//缓存设置
"CacheSettings": {
"UseRedis": true, //启用redis
"RedisSettings": {
"Address": "127.0.0.1:6379", //地址
"Password": "wxh@0000", //Redis服务密码
"Db": 1, //默认库
"ClearRedis": false //是否每次启动都清除Redis缓存
}
}
}

+ 12
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Cache.Production.json View File

@@ -0,0 +1,12 @@
{
//缓存设置
"CacheSettings": {
"UseRedis": true, //启用redis
"RedisSettings": {
"Address": "127.0.0.1:6379", //地址
"Password": "wxh@0000", //Redis服务密码
"Db": 1, //默认库
"ClearRedis": false //是否每次启动都清除Redis缓存
}
}
}

+ 25
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Core.Development.json View File

@@ -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"
}
}
}

+ 25
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/Core.Production.json View File

@@ -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"
}
}
}

+ 3393
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.deps.json
File diff suppressed because it is too large
View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.pdb View File


+ 875
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Application.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.pdb View File


+ 516
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Cache.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.pdb View File


+ 1840
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Core.xml
File diff suppressed because it is too large
View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.pdb View File


+ 134
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.Plugin.Aop.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.pdb View File


+ 665
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.SqlSugar.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.pdb View File


+ 7371
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SafeCampus.System.xml
File diff suppressed because it is too large
View File


+ 233
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/WarnGroup.json View File

@@ -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
}
]
}
]

+ 616
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_config.json
File diff suppressed because it is too large
View File


+ 1245
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_dict.json
File diff suppressed because it is too large
View File


+ 764
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_org.json View File

@@ -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]"
}
]
}

+ 328
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_position.json View File

@@ -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"
}
]
}

+ 2713
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_relation.json
File diff suppressed because it is too large
View File


+ 1654
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_resource.json
File diff suppressed because it is too large
View File


+ 175
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_role.json View File

@@ -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"
}
]
}

+ 788
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SeedData/Json/seed_sys_user.json
File diff suppressed because it is too large
View File


+ 36
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SqlSugar.Development.json View File

@@ -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 //是否驼峰转下划线
// }
]
}
}

+ 27
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/SqlSugar.Production.json View File

@@ -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, //是否自动释放
// }
]
}
}

+ 27
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/System.Development.json View File

@@ -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 //是否超级管理员可以查看所有数据
}
}

+ 27
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net6.0/System.Production.json View File

@@ -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 //是否超级管理员可以查看所有数据
}
}

+ 13
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Application.Development.json View File

@@ -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, //是否初始化种子数据
}
}

+ 13
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Application.Production.json View File

@@ -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, //是否初始化种子数据
}
}

+ 12
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Cache.Development.json View File

@@ -0,0 +1,12 @@
{
//缓存设置
"CacheSettings": {
"UseRedis": true, //启用redis
"RedisSettings": {
"Address": "127.0.0.1:6379", //地址
"Password": "wxh@0000", //Redis服务密码
"Db": 1, //默认库
"ClearRedis": false //是否每次启动都清除Redis缓存
}
}
}

+ 12
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Cache.Production.json View File

@@ -0,0 +1,12 @@
{
//缓存设置
"CacheSettings": {
"UseRedis": true, //启用redis
"RedisSettings": {
"Address": "127.0.0.1:6379", //地址
"Password": "wxh@0000", //Redis服务密码
"Db": 1, //默认库
"ClearRedis": false //是否每次启动都清除Redis缓存
}
}
}

+ 25
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Core.Development.json View File

@@ -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"
}
}
}

+ 25
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/Core.Production.json View File

@@ -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"
}
}
}

+ 3370
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.deps.json
File diff suppressed because it is too large
View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.pdb View File


+ 875
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Application.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.pdb View File


+ 516
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Cache.xml View File

@@ -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>

BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.dll View File


BIN
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.pdb View File


+ 1840
- 0
SafeCampus.API/SafeCampus.Application/bin/Debug/net7.0/SafeCampus.Core.xml
File diff suppressed because it is too large
View File


Some files were not shown because too many files changed in this diff

||||||
x
 
000:0
Loading…
Cancel
Save