😎代码清理

This commit is contained in:
zuohuaijun 2025-07-25 00:28:07 +08:00
parent 45b8e46935
commit 86dfa73d25
5 changed files with 174 additions and 175 deletions

View File

@ -1,160 +1,160 @@
{ {
"LLM": { "LLM": {
"ModelProvider": "DeepSeek", // 使ProvidersProductName "ModelProvider": "DeepSeek", // 使ProvidersProductName
"InitSystemChatMessage": "你是一个经验丰富的 Admin.NET 人工智能助手,请根据用户的问题给出准确的回答。- **回答请以markdown格式输出**;- **适当加入emoji表达人类情感使内容更易于理解与传播。**", "InitSystemChatMessage": "你是一个经验丰富的 Admin.NET 人工智能助手,请根据用户的问题给出准确的回答。- **回答请以markdown格式输出**;- **适当加入emoji表达人类情感使内容更易于理解与传播。**",
"UserCanSwitchLLM": true, // "UserCanSwitchLLM": true, //
"TargetCount": 10, // TargetCount+ThresholdCounttoken "TargetCount": 10, // TargetCount+ThresholdCounttoken
"ThresholdCount": 3, // TargetCount+ThresholdCounttoken "ThresholdCount": 3, // TargetCount+ThresholdCounttoken
"IsUserProxy": false, // 使openai,claudetruefalse,LLM "IsUserProxy": false, // 使openai,claudetruefalse,LLM
"ProxyUrl": "http://127.0.0.1:10809", // IsUserProxytrue "ProxyUrl": "http://127.0.0.1:10809", // IsUserProxytrue
"LogEnabled": false, // http. "LogEnabled": false, // http.
"Providers": [ "Providers": [
{ {
"ProductName": "OpenAI", // LLM "ProductName": "OpenAI", // LLM
"LLMType": "OpenAI_Compatible", "LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A", "ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com/v1", "ApiEndpoint": "https://api.openai.com/v1",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "gpt-4o", "ModelId": "gpt-4o",
"SupportModelIds": [ "SupportModelIds": [
"gpt-4o", "gpt-4o",
"gpt-4o-mini" "gpt-4o-mini"
] ]
}, },
"Embedding": { "Embedding": {
"ModelId": "text-embedding-ada-002", "ModelId": "text-embedding-ada-002",
"SupportModelIds": [ "SupportModelIds": [
"text-embedding-ada-002", "text-embedding-ada-002",
"text-embedding-3-small" "text-embedding-3-small"
] ]
} }
}, },
{ {
"ProductName": "Azure", "ProductName": "Azure",
"LLMType": "AzureOpenAI", "LLMType": "AzureOpenAI",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A", "ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://my-openapi.openai.azure.com/", "ApiEndpoint": "https://my-openapi.openai.azure.com/",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "gpt-4o", "ModelId": "gpt-4o",
"SupportModelIds": [ "SupportModelIds": [
"gpt-4o", "gpt-4o",
"gpt-4o-mini" "gpt-4o-mini"
] ]
}, },
"Embedding": { "Embedding": {
"ModelId": "text-embedding-ada-002", "ModelId": "text-embedding-ada-002",
"SupportModelIds": [ "SupportModelIds": [
"text-embedding-ada-002", "text-embedding-ada-002",
"text-embedding-3-small" "text-embedding-3-small"
] ]
} }
}, },
{ {
"ProductName": "DeepSeek", "ProductName": "DeepSeek",
"LLMType": "OpenAI_Compatible", "LLMType": "OpenAI_Compatible",
"ApiKey": "sk-c1f8ca9b3b524d65a817200681f3241e", "ApiKey": "sk-c1f8ca9b3b524d65a817200681f3241e",
"ApiEndpoint": "https://api.deepseek.com/v1", "ApiEndpoint": "https://api.deepseek.com/v1",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "deepseek-chat", "ModelId": "deepseek-chat",
"SupportModelIds": [ "SupportModelIds": [
"deepseek-chat", "deepseek-chat",
"deepseek-reasoner" "deepseek-reasoner"
] ]
} }
}, },
{ {
"ProductName": "google", "ProductName": "google",
"LLMType": "google", "LLMType": "google",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A", "ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com", "ApiEndpoint": "https://api.openai.com",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "gemini-1.5-flash", "ModelId": "gemini-1.5-flash",
"SupportModelIds": [ "SupportModelIds": [
"gemini-1.5-flash", "gemini-1.5-flash",
"gemini-1.5-pro" "gemini-1.5-pro"
] ]
}, },
"Embedding": { "Embedding": {
"ModelId": "text-embedding-3-small", "ModelId": "text-embedding-3-small",
"SupportModelIds": [ "SupportModelIds": [
"text-embedding-3-small", "text-embedding-3-small",
"text-embedding-3-large" "text-embedding-3-large"
] ]
} }
}, },
{ {
"ProductName": "Ollama", "ProductName": "Ollama",
"LLMType": "Ollama", "LLMType": "Ollama",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A", "ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "http://127.0.0.1:11434", "ApiEndpoint": "http://127.0.0.1:11434",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "llama3.1", "ModelId": "llama3.1",
"SupportModelIds": [ "SupportModelIds": [
"llama3.1", "llama3.1",
"llama3.1:8b", "llama3.1:8b",
"llama3.1:70b" "llama3.1:70b"
] ]
} }
}, },
{ {
"ProductName": "OpenRouter", "ProductName": "OpenRouter",
"LLMType": "OpenAI_Compatible", "LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A", "ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://openrouter.ai/api/v1", "ApiEndpoint": "https://openrouter.ai/api/v1",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "deepseek/deepseek-r1:free", "ModelId": "deepseek/deepseek-r1:free",
"SupportModelIds": [ "SupportModelIds": [
"deepseek/deepseek-chat-v3-0324:free", "deepseek/deepseek-chat-v3-0324:free",
"deepseek/deepseek-r1:free", "deepseek/deepseek-r1:free",
"google/gemini-2.0-flash-exp:free", "google/gemini-2.0-flash-exp:free",
"google/gemma-3-27b-it:free" "google/gemma-3-27b-it:free"
] ]
} }
}, },
{ {
"ProductName": "Claude", "ProductName": "Claude",
"LLMType": "Claude", "LLMType": "Claude",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000", "ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.anthropic.com/v1", "ApiEndpoint": "https://api.anthropic.com/v1",
"Region": "us-east-1", "Region": "us-east-1",
"ApiSecret": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000", "ApiSecret": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "claude-3-7-sonnet-20250219", "ModelId": "claude-3-7-sonnet-20250219",
"SupportModelIds": [ "SupportModelIds": [
"claude-3-5-sonnet-20240620", "claude-3-5-sonnet-20240620",
"claude-3-7-sonnet-20250219", "claude-3-7-sonnet-20250219",
"claude-opus-4-20250514", "claude-opus-4-20250514",
"claude-sonnet-4-20250514" "claude-sonnet-4-20250514"
] ]
} }
}, },
{ {
"ProductName": "智谱", "ProductName": "智谱",
"LLMType": "OpenAI_Compatible", "LLMType": "OpenAI_Compatible",
"ApiKey": "cxxxxxxxxxx", "ApiKey": "cxxxxxxxxxx",
"ApiEndpoint": "https://open.bigmodel.cn/api/paas/v4", "ApiEndpoint": "https://open.bigmodel.cn/api/paas/v4",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "glm-4", "ModelId": "glm-4",
"SupportModelIds": [ "SupportModelIds": [
"glm-4", "glm-4",
"glm-4-6b" "glm-4-6b"
] ]
} }
}, },
{ {
"ProductName": "月之暗面", "ProductName": "月之暗面",
"LLMType": "OpenAI_Compatible", "LLMType": "OpenAI_Compatible",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000", "ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.moonshot.cn/v1", "ApiEndpoint": "https://api.moonshot.cn/v1",
"ChatCompletion": { "ChatCompletion": {
"ModelId": "moonshot-v1-8k", "ModelId": "moonshot-v1-8k",
"SupportModelIds": [ "SupportModelIds": [
"moonshot-v1-8k", "moonshot-v1-8k",
"moonshot-v1-16k", "moonshot-v1-16k",
"moonshot-v1-128k" "moonshot-v1-128k"
] ]
} }
} }
] ]
} }
} }

View File

@ -870,7 +870,7 @@ public enum ErrorCodeEnum
/// </summary> /// </summary>
[ErrorCodeItemMetadata("数据源不存在")] [ErrorCodeItemMetadata("数据源不存在")]
C1002, C1002,
/// <summary> /// <summary>
/// 编码已存在 /// 编码已存在
/// </summary> /// </summary>

View File

@ -455,5 +455,4 @@ public static class ParseExtensions
} }
#endregion Dictionary #endregion Dictionary
} }

View File

@ -140,7 +140,7 @@ public class SysRoleService : IDynamicApiController, ITransient
{ {
// 禁止删除系统内置角色 // 禁止删除系统内置角色
var sysRole = await _sysRoleRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002); var sysRole = await _sysRoleRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
if(sysRole.SysFlag == YesNoEnum.Y) throw Oops.Oh(ErrorCodeEnum.D1019); if (sysRole.SysFlag == YesNoEnum.Y) throw Oops.Oh(ErrorCodeEnum.D1019);
// 若角色有用户则禁止删除 // 若角色有用户则禁止删除
var userIds = await _sysUserRoleService.GetUserIdList(input.Id); var userIds = await _sysUserRoleService.GetUserIdList(input.Id);

View File

@ -57,7 +57,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("获取用户分页列表")] [DisplayName("获取用户分页列表")]
public virtual async Task<SqlSugarPagedList<UserOutput>> Page(PageUserInput input) public virtual async Task<SqlSugarPagedList<UserOutput>> Page(PageUserInput input)
{ {
// 获取用户拥有的机构集合 // 获取用户拥有的机构集合
@ -103,7 +103,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns> /// <returns></returns>
[UnitOfWork] [UnitOfWork]
[ApiDescriptionSettings(Name = "Add"), HttpPost] [ApiDescriptionSettings(Name = "Add"), HttpPost]
[DisplayName("增加用户")] [DisplayName("增加用户")]
public virtual async Task<long> AddUser(AddUserInput input) public virtual async Task<long> AddUser(AddUserInput input)
{ {
// 是否有权操作此账号 // 是否有权操作此账号
@ -139,7 +139,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns> /// <returns></returns>
[UnitOfWork] [UnitOfWork]
[ApiDescriptionSettings(Name = "Update"), HttpPost] [ApiDescriptionSettings(Name = "Update"), HttpPost]
[DisplayName("更新用户")] [DisplayName("更新用户")]
public virtual async Task UpdateUser(UpdateUserInput input) public virtual async Task UpdateUser(UpdateUserInput input)
{ {
var query = _sysUserRep.AsQueryable().ClearFilter().Where(u => u.Id != input.Id); var query = _sysUserRep.AsQueryable().ClearFilter().Where(u => u.Id != input.Id);
@ -190,7 +190,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns> /// <returns></returns>
[UnitOfWork] [UnitOfWork]
[ApiDescriptionSettings(Name = "Delete"), HttpPost] [ApiDescriptionSettings(Name = "Delete"), HttpPost]
[DisplayName("删除用户")] [DisplayName("删除用户")]
public virtual async Task DeleteUser(DeleteUserInput input) public virtual async Task DeleteUser(DeleteUserInput input)
{ {
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009); var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -231,7 +231,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// 查看用户基本信息 🔖 /// 查看用户基本信息 🔖
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[DisplayName("查看用户基本信息")] [DisplayName("查看用户基本信息")]
public virtual async Task<SysUser> GetBaseInfo() public virtual async Task<SysUser> GetBaseInfo()
{ {
return await _sysUserRep.GetByIdAsync(_userManager.UserId); return await _sysUserRep.GetByIdAsync(_userManager.UserId);
@ -242,7 +242,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[ApiDescriptionSettings(Name = "UpdateBaseInfo"), HttpPost] [ApiDescriptionSettings(Name = "UpdateBaseInfo"), HttpPost]
[DisplayName("更新用户基本信息")] [DisplayName("更新用户基本信息")]
public virtual async Task<int> UpdateBaseInfo(SysUser user) public virtual async Task<int> UpdateBaseInfo(SysUser user)
{ {
return await _sysUserRep.AsUpdateable(user) return await _sysUserRep.AsUpdateable(user)
@ -255,7 +255,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[UnitOfWork] [UnitOfWork]
[DisplayName("设置用户状态")] [DisplayName("设置用户状态")]
public virtual async Task<int> SetStatus(BaseStatusInput input) public virtual async Task<int> SetStatus(BaseStatusInput input)
{ {
if (_userManager.UserId == input.Id) if (_userManager.UserId == input.Id)
@ -288,7 +288,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[UnitOfWork] [UnitOfWork]
[DisplayName("授权用户角色")] [DisplayName("授权用户角色")]
public async Task GrantRole(UserRoleInput input) public async Task GrantRole(UserRoleInput input)
{ {
var user = await _sysUserRep.GetByIdAsync(input.UserId) ?? throw Oops.Oh(ErrorCodeEnum.D0009); var user = await _sysUserRep.GetByIdAsync(input.UserId) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -311,7 +311,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("修改用户密码")] [DisplayName("修改用户密码")]
public virtual async Task<int> ChangePwd(ChangePwdInput input) public virtual async Task<int> ChangePwd(ChangePwdInput input)
{ {
// 国密SM2解密前端密码传输SM2加密后的 // 国密SM2解密前端密码传输SM2加密后的
@ -376,7 +376,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("重置用户密码")] [DisplayName("重置用户密码")]
public virtual async Task<string> ResetPwd(ResetPwdUserInput input) public virtual async Task<string> ResetPwd(ResetPwdUserInput input)
{ {
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009); var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -404,7 +404,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// 验证密码有效期 🔖 /// 验证密码有效期 🔖
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[DisplayName("验证密码有效期")] [DisplayName("验证密码有效期")]
public async Task<bool> VerifyPwdExpirationTime() public async Task<bool> VerifyPwdExpirationTime()
{ {
var sysConfig = await _sysConfigService.GetConfig(ConfigConst.SysPasswordExpirationTime); var sysConfig = await _sysConfigService.GetConfig(ConfigConst.SysPasswordExpirationTime);
@ -424,7 +424,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("解除登录锁定")] [DisplayName("解除登录锁定")]
public virtual async Task UnlockLogin(BaseIdInput input) public virtual async Task UnlockLogin(BaseIdInput input)
{ {
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009); var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -442,7 +442,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("获取用户拥有角色集合")] [DisplayName("获取用户拥有角色集合")]
public async Task<GrantRoleOutput> GetOwnRoleList(long userId) public async Task<GrantRoleOutput> GetOwnRoleList(long userId)
{ {
// 获取当前用户已分配角色 // 获取当前用户已分配角色
@ -461,7 +461,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <returns></returns> /// <returns></returns>
[DisplayName("获取用户扩展机构集合")] [DisplayName("获取用户扩展机构集合")]
public async Task<List<SysUserExtOrg>> GetOwnExtOrgList(long userId) public async Task<List<SysUserExtOrg>> GetOwnExtOrgList(long userId)
{ {
return await _sysUserExtOrgService.GetUserExtOrgList(userId); return await _sysUserExtOrgService.GetUserExtOrgList(userId);