mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-07-28 06:07:59 +08:00
Compare commits
5 Commits
aac40f9e67
...
d2c8f783e1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2c8f783e1 | ||
|
|
237fc49f2f | ||
|
|
684b6e0fea | ||
|
|
ea658e3cba | ||
|
|
92eda330e5 |
@@ -1,33 +1,7 @@
|
|||||||
---
|
---
|
||||||
alwaysApply: false
|
name: dev
|
||||||
|
description: OpenAuth.Net开发规范
|
||||||
---
|
---
|
||||||
# OpenAuth.Net Cursor Rules
|
|
||||||
|
|
||||||
## 项目概述
|
|
||||||
OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架,采用Martin Fowler企业级应用开发思想,集成了最新的技术栈。
|
|
||||||
|
|
||||||
## 技术栈
|
|
||||||
- **后端**: .NET 9, ASP.NET Core WebAPI
|
|
||||||
- **ORM**: SqlSugar (主要) + Entity Framework Core (兼容)
|
|
||||||
- **依赖注入**: Autofac
|
|
||||||
- **数据库**: 支持SqlServer、MySQL、Oracle、PostgreSQL
|
|
||||||
- **定时任务**: Quartz.NET
|
|
||||||
- **缓存**: Redis, MemoryCache
|
|
||||||
- **前端**: Vue2 + Element-UI
|
|
||||||
- **测试**: NUnit
|
|
||||||
- **文档**: Swagger
|
|
||||||
|
|
||||||
## 项目架构
|
|
||||||
```
|
|
||||||
📦OpenAuth.Net
|
|
||||||
┣ 📂Infrastructure # 基础设施层 - 工具类、扩展方法、帮助类
|
|
||||||
┣ 📂OpenAuth.Repository # 数据访问层 - 实体定义、数据访问
|
|
||||||
┣ 📂OpenAuth.App # 应用服务层 - 业务逻辑
|
|
||||||
┣ 📂OpenAuth.WebApi # 表示层 - WebAPI控制器
|
|
||||||
┣ 📂OpenAuth.Identity # 身份认证服务 - IdentityServer4
|
|
||||||
┣ 📂Vue2 # 前端项目
|
|
||||||
┗ 📂数据库脚本 # 数据库初始化脚本
|
|
||||||
```
|
|
||||||
|
|
||||||
## 编码规范
|
## 编码规范
|
||||||
|
|
||||||
@@ -56,6 +30,32 @@ OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架
|
|||||||
- 参数使用/// <param name="参数名">说明</param>
|
- 参数使用/// <param name="参数名">说明</param>
|
||||||
- 返回值使用/// <returns>说明</returns>
|
- 返回值使用/// <returns>说明</returns>
|
||||||
|
|
||||||
|
## 项目概述
|
||||||
|
OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架,采用Martin Fowler企业级应用开发思想,集成了最新的技术栈。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
- **后端**: .NET 9, ASP.NET Core WebAPI
|
||||||
|
- **ORM**: SqlSugar (主要) + Entity Framework Core (兼容)
|
||||||
|
- **依赖注入**: Autofac
|
||||||
|
- **数据库**: 支持SqlServer、MySQL、Oracle、PostgreSQL
|
||||||
|
- **定时任务**: Quartz.NET
|
||||||
|
- **缓存**: Redis, MemoryCache
|
||||||
|
- **前端**: Vue2 + Element-UI
|
||||||
|
- **测试**: NUnit
|
||||||
|
- **文档**: Swagger
|
||||||
|
|
||||||
|
## 项目架构
|
||||||
|
```
|
||||||
|
📦OpenAuth.Net
|
||||||
|
┣ 📂Infrastructure # 基础设施层 - 工具类、扩展方法、帮助类
|
||||||
|
┣ 📂OpenAuth.Repository # 数据访问层 - 实体定义、数据访问
|
||||||
|
┣ 📂OpenAuth.App # 应用服务层 - 业务逻辑
|
||||||
|
┣ 📂OpenAuth.WebApi # 表示层 - WebAPI控制器
|
||||||
|
┣ 📂OpenAuth.Identity # 身份认证服务 - IdentityServer4
|
||||||
|
┣ 📂Vue2 # 前端项目
|
||||||
|
┗ 📂数据库脚本 # 数据库初始化脚本
|
||||||
|
```
|
||||||
|
|
||||||
## 分层架构规则
|
## 分层架构规则
|
||||||
|
|
||||||
### Infrastructure层 (基础设施层)
|
### Infrastructure层 (基础设施层)
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"PostgreSQL": {
|
|
||||||
"command": "npx",
|
|
||||||
"args": [
|
|
||||||
"-y",
|
|
||||||
"@modelcontextprotocol/server-postgres",
|
|
||||||
"postgresql://postgres:AwxBRx1_5kljfy@172.30.144.46/openauthpro"
|
|
||||||
],
|
|
||||||
"env": {}
|
|
||||||
},
|
|
||||||
"openauthpro": {
|
|
||||||
"command": "powershell",
|
|
||||||
"args": [
|
|
||||||
"-Command",
|
|
||||||
"npx -y @f4ww4z/mcp-mysql-server"
|
|
||||||
],
|
|
||||||
"env": {
|
|
||||||
"MYSQL_HOST": "localhost",
|
|
||||||
"MYSQL_PORT": "3306",
|
|
||||||
"MYSQL_USER": "root",
|
|
||||||
"MYSQL_PASSWORD": "000000",
|
|
||||||
"MYSQL_DATABASE": "openauthpro"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -65,7 +65,8 @@ namespace Infrastructure.Middleware
|
|||||||
// 启用倒带功能,就可以让 Request.Body 可以再次读取
|
// 启用倒带功能,就可以让 Request.Body 可以再次读取
|
||||||
request.EnableBuffering();
|
request.EnableBuffering();
|
||||||
// 文件上传 记录文件信息
|
// 文件上传 记录文件信息
|
||||||
if (path.Contains("/upload"))
|
var contentType = request.ContentType?? "";
|
||||||
|
if (path.Contains("/upload") || contentType.Contains("multipart/form-data"))
|
||||||
{
|
{
|
||||||
var content = string.Join(",", request.Form.Files.Select(item => item.FileName));
|
var content = string.Join(",", request.Form.Files.Select(item => item.FileName));
|
||||||
logData.Add("request.body", $"收到上传文件:{content}");
|
logData.Add("request.body", $"收到上传文件:{content}");
|
||||||
@@ -73,7 +74,6 @@ namespace Infrastructure.Middleware
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var sr = new StreamReader(request.Body, Encoding.UTF8);
|
var sr = new StreamReader(request.Body, Encoding.UTF8);
|
||||||
//string content = sr.ReadToEnd(); //.Net Core 3.0 默认不再支持
|
|
||||||
var content = sr.ReadToEndAsync().Result;
|
var content = sr.ReadToEndAsync().Result;
|
||||||
logData.Add("request.body", content);
|
logData.Add("request.body", content);
|
||||||
request.Body.Position = 0;
|
request.Body.Position = 0;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ using Infrastructure;
|
|||||||
using Infrastructure.Extensions;
|
using Infrastructure.Extensions;
|
||||||
using Infrastructure.Helpers;
|
using Infrastructure.Helpers;
|
||||||
using Infrastructure.Utilities;
|
using Infrastructure.Utilities;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.Extensions.DependencyModel;
|
using Microsoft.Extensions.DependencyModel;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
@@ -20,12 +19,12 @@ using OpenAuth.App.Response;
|
|||||||
using OpenAuth.Repository;
|
using OpenAuth.Repository;
|
||||||
using OpenAuth.Repository.Core;
|
using OpenAuth.Repository.Core;
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class BuilderTableApp : BaseStringApp<BuilderTable, OpenAuthDBContext>
|
public class BuilderTableApp : SqlSugarBaseApp<BuilderTable>
|
||||||
{
|
{
|
||||||
private BuilderTableColumnApp _builderTableColumnApp;
|
private BuilderTableColumnApp _builderTableColumnApp;
|
||||||
private CategoryApp _categoryApp;
|
private CategoryApp _categoryApp;
|
||||||
@@ -34,9 +33,9 @@ namespace OpenAuth.App
|
|||||||
private string _startName = "";
|
private string _startName = "";
|
||||||
private IOptions<AppSetting> _appConfiguration;
|
private IOptions<AppSetting> _appConfiguration;
|
||||||
|
|
||||||
public BuilderTableApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<BuilderTable, OpenAuthDBContext> repository,
|
public BuilderTableApp(ISqlSugarClient client,
|
||||||
RevelanceManagerApp app, IAuth auth, DbExtension dbExtension, BuilderTableColumnApp builderTableColumnApp,
|
RevelanceManagerApp app, IAuth auth, DbExtension dbExtension, BuilderTableColumnApp builderTableColumnApp,
|
||||||
IOptions<AppSetting> appConfiguration, CategoryApp categoryApp) : base(unitWork, repository, auth)
|
IOptions<AppSetting> appConfiguration, CategoryApp categoryApp) : base(client, auth)
|
||||||
{
|
{
|
||||||
_dbExtension = dbExtension;
|
_dbExtension = dbExtension;
|
||||||
_builderTableColumnApp = builderTableColumnApp;
|
_builderTableColumnApp = builderTableColumnApp;
|
||||||
@@ -87,7 +86,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
var result = new PagedListDataResp<BuilderTable>();
|
var result = new PagedListDataResp<BuilderTable>();
|
||||||
var objs = UnitWork.Find<BuilderTable>(null);
|
var objs = SugarClient.Queryable<BuilderTable>();
|
||||||
if (!string.IsNullOrEmpty(request.key))
|
if (!string.IsNullOrEmpty(request.key))
|
||||||
{
|
{
|
||||||
objs = objs.Where(u => u.Id.Contains(request.key));
|
objs = objs.Where(u => u.Id.Contains(request.key));
|
||||||
@@ -126,7 +125,6 @@ namespace OpenAuth.App
|
|||||||
Check(req);
|
Check(req);
|
||||||
var obj = AddTableAndColumns(req.MapTo<BuilderTable>());
|
var obj = AddTableAndColumns(req.MapTo<BuilderTable>());
|
||||||
|
|
||||||
UnitWork.Save();
|
|
||||||
return obj.Id;
|
return obj.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,8 +141,7 @@ namespace OpenAuth.App
|
|||||||
var user = _auth.GetCurrentUser().User;
|
var user = _auth.GetCurrentUser().User;
|
||||||
obj.CreateUserId = user.Id;
|
obj.CreateUserId = user.Id;
|
||||||
obj.CreateUserName = user.Name;
|
obj.CreateUserName = user.Name;
|
||||||
UnitWork.Add(obj);
|
Repository.Insert(obj);
|
||||||
UnitWork.Save(); //需要先保存表结构,后面才能正常判定
|
|
||||||
|
|
||||||
_dbExtension.ProcessExternalDb(obj.Id); //先处理外部数据库连接
|
_dbExtension.ProcessExternalDb(obj.Id); //先处理外部数据库连接
|
||||||
var columns = _dbExtension.GetDbTableStructure(obj.TableName);
|
var columns = _dbExtension.GetDbTableStructure(obj.TableName);
|
||||||
@@ -175,7 +172,7 @@ namespace OpenAuth.App
|
|||||||
CreateUserName = user.Name,
|
CreateUserName = user.Name,
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
UnitWork.Add(builderColumn);
|
SugarClient.Insertable(builderColumn).ExecuteCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
@@ -185,7 +182,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
Check(obj);
|
Check(obj);
|
||||||
var user = _auth.GetCurrentUser().User;
|
var user = _auth.GetCurrentUser().User;
|
||||||
UnitWork.Update<BuilderTable>(u => u.Id == obj.Id, u => new BuilderTable
|
Repository.Update(u => new BuilderTable
|
||||||
{
|
{
|
||||||
TableName = obj.TableName,
|
TableName = obj.TableName,
|
||||||
Remark = obj.Remark,
|
Remark = obj.Remark,
|
||||||
@@ -204,7 +201,7 @@ namespace OpenAuth.App
|
|||||||
UpdateUserId = user.Id,
|
UpdateUserId = user.Id,
|
||||||
UpdateUserName = user.Name,
|
UpdateUserName = user.Name,
|
||||||
ExternalDataSourceId = obj.ExternalDataSourceId //外部数据源ID
|
ExternalDataSourceId = obj.ExternalDataSourceId //外部数据源ID
|
||||||
});
|
}, u => u.Id == obj.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -213,12 +210,10 @@ namespace OpenAuth.App
|
|||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
public void DelTableAndcolumns(string[] ids)
|
public void DelTableAndcolumns(string[] ids)
|
||||||
{
|
{
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
{
|
SugarClient.Deleteable<BuilderTable>().Where(u => ids.Contains(u.Id)).ExecuteCommand();
|
||||||
UnitWork.Delete<BuilderTable>(u => ids.Contains(u.Id));
|
SugarClient.Deleteable<BuilderTableColumn>().Where(u => ids.Contains(u.TableId)).ExecuteCommand();
|
||||||
UnitWork.Delete<BuilderTableColumn>(u => ids.Contains(u.TableId));
|
SugarClient.Ado.CommitTran();
|
||||||
UnitWork.Save();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -228,7 +223,7 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public void CreateEntity(CreateEntityReq req)
|
public void CreateEntity(CreateEntityReq req)
|
||||||
{
|
{
|
||||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||||
if (sysTableInfo == null
|
if (sysTableInfo == null
|
||||||
|| tableColumns == null
|
|| tableColumns == null
|
||||||
@@ -247,7 +242,7 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public void CreateBusiness(CreateBusiReq req)
|
public void CreateBusiness(CreateBusiReq req)
|
||||||
{
|
{
|
||||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||||
var mainColumns = _builderTableColumnApp.Find(req.Id);
|
var mainColumns = _builderTableColumnApp.Find(req.Id);
|
||||||
if (sysTableInfo == null
|
if (sysTableInfo == null
|
||||||
|| mainColumns == null
|
|| mainColumns == null
|
||||||
@@ -319,7 +314,7 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
string domainContent = string.Empty;
|
string domainContent = string.Empty;
|
||||||
//查找是否存在子表的情况
|
//查找是否存在子表的情况
|
||||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == sysTableInfo.Id);
|
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == sysTableInfo.Id);
|
||||||
|
|
||||||
if (subTable == null) //如果子表不存在,则用单模版生成
|
if (subTable == null) //如果子表不存在,则用单模版生成
|
||||||
{
|
{
|
||||||
@@ -386,21 +381,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
throw new Exception($"未能找到表{sysTableInfo.TableName}的主键字段");
|
throw new Exception($"未能找到表{sysTableInfo.TableName}的主键字段");
|
||||||
}
|
}
|
||||||
if (primarykey.ColumnType == "decimal" || primarykey.ColumnType == "numeric") //是否为数字
|
domainContent = domainContent.Replace("{BaseAppName}", "SqlSugarBaseApp");
|
||||||
{
|
|
||||||
if (primarykey.IsIncrement) //是否自增
|
|
||||||
{
|
|
||||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseIntAutoGenApp");
|
|
||||||
}
|
|
||||||
else //普通的雪花算法生成id
|
|
||||||
{
|
|
||||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseLongApp");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseStringApp");
|
|
||||||
}
|
|
||||||
FileHelper.WriteFile($"{appRootPath}\\{sysTableInfo.ModuleCode}", $"{sysTableInfo.ModuleCode}.cs", domainContent);
|
FileHelper.WriteFile($"{appRootPath}\\{sysTableInfo.ModuleCode}", $"{sysTableInfo.ModuleCode}.cs", domainContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,7 +446,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
//查找是否存在子表的情况
|
//查找是否存在子表的情况
|
||||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == sysTableInfo.Id);
|
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == sysTableInfo.Id);
|
||||||
|
|
||||||
if (subTable != null) //如果子表存在,需要加子表的请求参数
|
if (subTable != null) //如果子表存在,需要加子表的请求参数
|
||||||
{
|
{
|
||||||
@@ -705,7 +686,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
var types = AssemblyLoadContext.Default
|
var types = AssemblyLoadContext.Default
|
||||||
.LoadFromAssemblyName(new AssemblyName(compilation.Name))
|
.LoadFromAssemblyName(new AssemblyName(compilation.Name))
|
||||||
.GetTypes().Where(x => x.GetTypeInfo().BaseType != null
|
.GetTypes().Where(x => System.Reflection.IntrospectionExtensions.GetTypeInfo(x).BaseType != null
|
||||||
&& x.BaseType == typeof(StringEntity));
|
&& x.BaseType == typeof(StringEntity));
|
||||||
foreach (var entity in types)
|
foreach (var entity in types)
|
||||||
{
|
{
|
||||||
@@ -736,7 +717,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||||
}
|
}
|
||||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(sysTableInfo.ParentTableId))
|
if (!string.IsNullOrEmpty(sysTableInfo.ParentTableId))
|
||||||
{
|
{
|
||||||
@@ -753,7 +734,7 @@ namespace OpenAuth.App
|
|||||||
string domainContent = string.Empty;
|
string domainContent = string.Empty;
|
||||||
|
|
||||||
//查找是否存在子表额情况
|
//查找是否存在子表额情况
|
||||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == req.Id);
|
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == req.Id);
|
||||||
|
|
||||||
if (subTable == null) //如果子表不存在,则用单模版生成
|
if (subTable == null) //如果子表不存在,则用单模版生成
|
||||||
{
|
{
|
||||||
@@ -868,7 +849,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||||
}
|
}
|
||||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||||
if (sysTableInfo == null
|
if (sysTableInfo == null
|
||||||
|| tableColumns == null
|
|| tableColumns == null
|
||||||
@@ -890,7 +871,7 @@ namespace OpenAuth.App
|
|||||||
public async Task<PagedDynamicDataResp> AllMain()
|
public async Task<PagedDynamicDataResp> AllMain()
|
||||||
{
|
{
|
||||||
var result = new PagedDynamicDataResp();
|
var result = new PagedDynamicDataResp();
|
||||||
var objs = UnitWork.Find<BuilderTable>(u => string.IsNullOrEmpty(u.ParentTableId)).Select(u => new
|
var objs = SugarClient.Queryable<BuilderTable>().Where(u => string.IsNullOrEmpty(u.ParentTableId)).Select(u => new
|
||||||
{
|
{
|
||||||
Id = u.Id,
|
Id = u.Id,
|
||||||
Name = u.TableName
|
Name = u.TableName
|
||||||
|
|||||||
@@ -3,18 +3,16 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class CategoryTypeApp : BaseStringApp<CategoryType,OpenAuthDBContext>
|
public class CategoryTypeApp : SqlSugarBaseApp<CategoryType>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
@@ -24,7 +22,7 @@ namespace OpenAuth.App
|
|||||||
public async Task<PagedDynamicDataResp> Load(QueryCategoryTypeListReq request)
|
public async Task<PagedDynamicDataResp> Load(QueryCategoryTypeListReq request)
|
||||||
{
|
{
|
||||||
var result = new PagedDynamicDataResp();
|
var result = new PagedDynamicDataResp();
|
||||||
var objs = UnitWork.Find<CategoryType>(null);
|
var objs = SugarClient.Queryable<CategoryType>();
|
||||||
if (!string.IsNullOrEmpty(request.key))
|
if (!string.IsNullOrEmpty(request.key))
|
||||||
{
|
{
|
||||||
objs = objs.Where(u => u.Id.Contains(request.key) || u.Name.Contains(request.key));
|
objs = objs.Where(u => u.Id.Contains(request.key) || u.Name.Contains(request.key));
|
||||||
@@ -42,39 +40,37 @@ namespace OpenAuth.App
|
|||||||
var obj = req.MapTo<CategoryType>();
|
var obj = req.MapTo<CategoryType>();
|
||||||
//todo:补充或调整自己需要的字段
|
//todo:补充或调整自己需要的字段
|
||||||
obj.CreateTime = DateTime.Now;
|
obj.CreateTime = DateTime.Now;
|
||||||
Repository.Add(obj);
|
Repository.Insert(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(AddOrUpdateCategoryTypeReq obj)
|
public void Update(AddOrUpdateCategoryTypeReq obj)
|
||||||
{
|
{
|
||||||
var user = _auth.GetCurrentUser().User;
|
var user = _auth.GetCurrentUser().User;
|
||||||
UnitWork.Update<CategoryType>(u => u.Id == obj.Id, u => new CategoryType
|
Repository.Update(u => new CategoryType
|
||||||
{
|
{
|
||||||
Name = obj.Name,
|
Name = obj.Name,
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
//todo:补充或调整自己需要的字段
|
//todo:补充或调整自己需要的字段
|
||||||
});
|
}, u => u.Id == obj.Id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public new void Delete(string[] ids)
|
public new void Delete(string[] ids)
|
||||||
{
|
{
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
{
|
SugarClient.Deleteable<CategoryType>().Where(u=>ids.Contains(u.Id)).ExecuteCommand();
|
||||||
UnitWork.Delete<CategoryType>(u=>ids.Contains(u.Id));
|
SugarClient.Deleteable<Category>().Where(u=>ids.Contains(u.TypeId)).ExecuteCommand();
|
||||||
UnitWork.Delete<Category>(u=>ids.Contains(u.TypeId));
|
SugarClient.Ado.CommitTran();
|
||||||
UnitWork.Save();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CategoryType> AllTypes()
|
public List<CategoryType> AllTypes()
|
||||||
{
|
{
|
||||||
return UnitWork.Find<CategoryType>(null).ToList();
|
return SugarClient.Queryable<CategoryType>().ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public CategoryTypeApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<CategoryType,OpenAuthDBContext> repository,
|
public CategoryTypeApp(ISqlSugarClient client,
|
||||||
RevelanceManagerApp app, IAuth auth) : base(unitWork, repository,auth)
|
RevelanceManagerApp app, IAuth auth) : base(client, auth)
|
||||||
{
|
{
|
||||||
_revelanceApp = app;
|
_revelanceApp = app;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,31 +7,29 @@ using Infrastructure;
|
|||||||
using Infrastructure.Extensions;
|
using Infrastructure.Extensions;
|
||||||
using Infrastructure.Helpers;
|
using Infrastructure.Helpers;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 文件管理
|
/// 文件管理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileApp : BaseStringApp<UploadFile,OpenAuthDBContext>
|
public class FileApp : SqlSugarBaseApp<UploadFile>
|
||||||
{
|
{
|
||||||
private ILogger<FileApp> _logger;
|
private ILogger<FileApp> _logger;
|
||||||
private string _filePath;
|
private string _filePath;
|
||||||
private string _dbFilePath; //数据库中的文件路径
|
private string _dbFilePath; //数据库中的文件路径
|
||||||
private string _dbThumbnail; //数据库中的缩略图路径
|
private string _dbThumbnail; //数据库中的缩略图路径
|
||||||
|
|
||||||
public FileApp(IOptions<AppSetting> setOptions, IUnitWork<OpenAuthDBContext> unitWork, IRepository<UploadFile,OpenAuthDBContext> repository,
|
public FileApp(IOptions<AppSetting> setOptions, ISqlSugarClient client,
|
||||||
ILogger<FileApp> logger, IAuth auth)
|
ILogger<FileApp> logger, IAuth auth)
|
||||||
: base(unitWork, repository, auth)
|
: base(client, auth)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_filePath = setOptions.Value.UploadPath;
|
_filePath = setOptions.Value.UploadPath;
|
||||||
@@ -47,7 +45,7 @@ namespace OpenAuth.App
|
|||||||
public async Task<PagedDynamicDataResp> Load(QueryFileListReq request)
|
public async Task<PagedDynamicDataResp> Load(QueryFileListReq request)
|
||||||
{
|
{
|
||||||
var result = new PagedDynamicDataResp();
|
var result = new PagedDynamicDataResp();
|
||||||
var objs = UnitWork.Find<UploadFile>(null);
|
var objs = SugarClient.Queryable<UploadFile>();
|
||||||
if (!string.IsNullOrEmpty(request.key))
|
if (!string.IsNullOrEmpty(request.key))
|
||||||
{
|
{
|
||||||
objs = objs.Where(u => u.FileName.Contains(request.key) || u.FilePath.Contains(request.key));
|
objs = objs.Where(u => u.FileName.Contains(request.key) || u.FilePath.Contains(request.key));
|
||||||
@@ -112,7 +110,7 @@ namespace OpenAuth.App
|
|||||||
FileType = Path.GetExtension(fileName),
|
FileType = Path.GetExtension(fileName),
|
||||||
Extension = Path.GetExtension(fileName)
|
Extension = Path.GetExtension(fileName)
|
||||||
};
|
};
|
||||||
Repository.Add(filedb);
|
Repository.Insert(filedb);
|
||||||
return filedb;
|
return filedb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,9 +124,9 @@ namespace OpenAuth.App
|
|||||||
/// 删除附件
|
/// 删除附件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
public override void Delete(string[] ids)
|
public new void Delete(string[] ids)
|
||||||
{
|
{
|
||||||
var files = base.Repository.Find(u => ids.Contains(u.Id)).ToList();
|
var files = SugarClient.Queryable<UploadFile>().Where(u => ids.Contains(u.Id)).ToList();
|
||||||
for (int i = 0; i < files.Count(); i++)
|
for (int i = 0; i < files.Count(); i++)
|
||||||
{
|
{
|
||||||
var uploadPath = Path.Combine(_filePath, files[i].FilePath);
|
var uploadPath = Path.Combine(_filePath, files[i].FilePath);
|
||||||
@@ -137,7 +135,7 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
FileHelper.FileDel(Path.Combine(_filePath, files[i].Thumbnail));
|
FileHelper.FileDel(Path.Combine(_filePath, files[i].Thumbnail));
|
||||||
}
|
}
|
||||||
Repository.Delete(u =>u.Id == files[i].Id);
|
SugarClient.Deleteable<UploadFile>().Where(u =>u.Id == files[i].Id).ExecuteCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Interface;
|
|
||||||
using OpenAuth.Repository.QueryObj;
|
using OpenAuth.Repository.QueryObj;
|
||||||
|
using SqlSugar;
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -13,10 +12,10 @@ namespace OpenAuth.App
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DragForm: IForm
|
public class DragForm: IForm
|
||||||
{
|
{
|
||||||
private IUnitWork<OpenAuthDBContext> _unitWork;
|
private ISqlSugarClient _sugarClient;
|
||||||
public DragForm(IUnitWork<OpenAuthDBContext> unitWork)
|
public DragForm(ISqlSugarClient sugarClient)
|
||||||
{
|
{
|
||||||
_unitWork = unitWork;
|
_sugarClient = sugarClient;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 功能: 创建表单数据表格(基于sql server)
|
* 功能: 创建表单数据表格(基于sql server)
|
||||||
@@ -29,7 +28,7 @@ namespace OpenAuth.App
|
|||||||
var jsonArray = JsonHelper.Instance.Deserialize<JObject>(form.ContentData)["widgetList"];
|
var jsonArray = JsonHelper.Instance.Deserialize<JObject>(form.ContentData)["widgetList"];
|
||||||
string tableName = form.DbName;
|
string tableName = form.DbName;
|
||||||
//如果数据库已经存在该表,则不用创建
|
//如果数据库已经存在该表,则不用创建
|
||||||
var exist = _unitWork.FromSql<QueryStringObj>($"select '1' as value from sysobjects where name = '{tableName}' and type = 'U'").SingleOrDefault();
|
var exist = _sugarClient.Ado.SqlQuery<QueryStringObj>($"select '1' as value from sysobjects where name = '{tableName}' and type = 'U'").SingleOrDefault();
|
||||||
if (exist != null) return string.Empty;
|
if (exist != null) return string.Empty;
|
||||||
// 如果数据库没有指定的表,则创建表
|
// 如果数据库没有指定的表,则创建表
|
||||||
StringBuilder sql = new StringBuilder($"CREATE TABLE {tableName} ( [Id] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,"); //主键
|
StringBuilder sql = new StringBuilder($"CREATE TABLE {tableName} ( [Id] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,"); //主键
|
||||||
@@ -62,7 +61,7 @@ namespace OpenAuth.App
|
|||||||
var jsonArray = JsonHelper.Instance.Deserialize<JObject>(form.ContentData)["widgetList"];
|
var jsonArray = JsonHelper.Instance.Deserialize<JObject>(form.ContentData)["widgetList"];
|
||||||
string tableName = form.DbName;
|
string tableName = form.DbName;
|
||||||
//如果数据库已经存在该表,则不用创建
|
//如果数据库已经存在该表,则不用创建
|
||||||
var exist = _unitWork.FromSql<QueryStringObj>($"select distinct table_name as value from information_schema.tables where table_name ='{tableName}'").SingleOrDefault();
|
var exist = _sugarClient.Ado.SqlQuery<QueryStringObj>($"select distinct table_name as value from information_schema.tables where table_name ='{tableName}'").SingleOrDefault();
|
||||||
if (exist != null) return string.Empty;
|
if (exist != null) return string.Empty;
|
||||||
// 如果数据库没有指定的表,则创建表
|
// 如果数据库没有指定的表,则创建表
|
||||||
StringBuilder sql = new StringBuilder($"create table if not exists `{tableName}` ( Id varchar(50) not null primary key,"); //主键
|
StringBuilder sql = new StringBuilder($"create table if not exists `{tableName}` ( Id varchar(50) not null primary key,"); //主键
|
||||||
|
|||||||
@@ -4,19 +4,17 @@ using System.Threading.Tasks;
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Infrastructure.Utilities;
|
using Infrastructure.Utilities;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FormApp : BaseStringApp<Form,OpenAuthDBContext>
|
public class FormApp : SqlSugarBaseApp<Form>
|
||||||
{
|
{
|
||||||
private IOptions<AppSetting> _appConfiguration;
|
private IOptions<AppSetting> _appConfiguration;
|
||||||
private IHttpContextAccessor _httpContextAccessor;
|
private IHttpContextAccessor _httpContextAccessor;
|
||||||
@@ -44,19 +42,21 @@ namespace OpenAuth.App
|
|||||||
var user = _auth.GetCurrentUser().User;
|
var user = _auth.GetCurrentUser().User;
|
||||||
obj.CreateUserId = user.Id;
|
obj.CreateUserId = user.Id;
|
||||||
obj.CreateUserName = user.Name;
|
obj.CreateUserName = user.Name;
|
||||||
UnitWork.Add(obj);
|
Repository.Insert(obj);
|
||||||
if (!string.IsNullOrEmpty(obj.DbName))
|
if (!string.IsNullOrEmpty(obj.DbName))
|
||||||
{
|
{
|
||||||
var dbtype = _appConfiguration.Value.DbTypes[_httpContextAccessor.GetTenantId()];
|
var dbtype = _appConfiguration.Value.DbTypes[_httpContextAccessor.GetTenantId()];
|
||||||
|
var sql = FormFactory.CreateForm(obj, SugarClient).GetSql(obj, dbtype);
|
||||||
UnitWork.ExecuteSql(FormFactory.CreateForm(obj, this.UnitWork).GetSql(obj, dbtype));
|
if (!string.IsNullOrEmpty(sql))
|
||||||
|
{
|
||||||
|
SugarClient.Ado.ExecuteCommand(sql);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
UnitWork.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(Form obj)
|
public void Update(Form obj)
|
||||||
{
|
{
|
||||||
Repository.Update(u => u.Id == obj.Id, u => new Form
|
Repository.Update(u => new Form
|
||||||
{
|
{
|
||||||
FrmType = obj.FrmType,
|
FrmType = obj.FrmType,
|
||||||
ContentData = obj.ContentData,
|
ContentData = obj.ContentData,
|
||||||
@@ -69,12 +69,16 @@ namespace OpenAuth.App
|
|||||||
Description = obj.Description,
|
Description = obj.Description,
|
||||||
OrgId = obj.OrgId,
|
OrgId = obj.OrgId,
|
||||||
ModifyDate = DateTime.Now
|
ModifyDate = DateTime.Now
|
||||||
});
|
}, u => u.Id == obj.Id);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(obj.DbName))
|
if (!string.IsNullOrEmpty(obj.DbName))
|
||||||
{
|
{
|
||||||
var dbtype = _appConfiguration.Value.DbTypes[_httpContextAccessor.GetTenantId()];
|
var dbtype = _appConfiguration.Value.DbTypes[_httpContextAccessor.GetTenantId()];
|
||||||
UnitWork.ExecuteSql(FormFactory.CreateForm(obj,this.UnitWork).GetSql(obj, dbtype));
|
var sql = FormFactory.CreateForm(obj, SugarClient).GetSql(obj, dbtype);
|
||||||
|
if (!string.IsNullOrEmpty(sql))
|
||||||
|
{
|
||||||
|
SugarClient.Ado.ExecuteCommand(sql);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,8 +88,8 @@ namespace OpenAuth.App
|
|||||||
return form.MapTo<FormResp>();
|
return form.MapTo<FormResp>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<Form,OpenAuthDBContext> repository,
|
public FormApp(ISqlSugarClient client,
|
||||||
IAuth auth, IOptions<AppSetting> appConfiguration, IHttpContextAccessor httpContextAccessor) : base(unitWork, repository, auth)
|
IAuth auth, IOptions<AppSetting> appConfiguration, IHttpContextAccessor httpContextAccessor) : base(client, auth)
|
||||||
{
|
{
|
||||||
_auth = auth;
|
_auth = auth;
|
||||||
_appConfiguration = appConfiguration;
|
_appConfiguration = appConfiguration;
|
||||||
|
|||||||
@@ -1,25 +1,24 @@
|
|||||||
using System;
|
using System;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FormFactory
|
public class FormFactory
|
||||||
{
|
{
|
||||||
public static IForm CreateForm(Form form, IUnitWork<OpenAuthDBContext> unitWork)
|
public static IForm CreateForm(Form form, ISqlSugarClient sugarClient)
|
||||||
{
|
{
|
||||||
if (form.FrmType == Define.FORM_TYPE_DYNAMIC)
|
if (form.FrmType == Define.FORM_TYPE_DYNAMIC)
|
||||||
{
|
{
|
||||||
return new LeipiForm(unitWork);
|
return new LeipiForm(sugarClient);
|
||||||
}else if (form.FrmType == Define.FORM_TYPE_DEVELOP)
|
}else if (form.FrmType == Define.FORM_TYPE_DEVELOP)
|
||||||
{
|
{
|
||||||
throw new Exception("自定义表单不需要创建数据库表");
|
throw new Exception("自定义表单不需要创建数据库表");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new DragForm(unitWork);
|
return new DragForm(sugarClient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,16 @@
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Interface;
|
|
||||||
using OpenAuth.Repository.QueryObj;
|
using OpenAuth.Repository.QueryObj;
|
||||||
|
using SqlSugar;
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class LeipiForm : IForm
|
public class LeipiForm : IForm
|
||||||
{
|
{
|
||||||
private IUnitWork<OpenAuthDBContext> _unitWork;
|
private ISqlSugarClient _sugarClient;
|
||||||
public LeipiForm(IUnitWork<OpenAuthDBContext> unitWork)
|
public LeipiForm(ISqlSugarClient sugarClient)
|
||||||
{
|
{
|
||||||
_unitWork = unitWork;
|
_sugarClient = sugarClient;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 功能: 创建表单数据表格(基于sql server)
|
* 功能: 创建表单数据表格(基于sql server)
|
||||||
@@ -25,7 +24,7 @@ namespace OpenAuth.App
|
|||||||
var jsonArray = JArray.Parse(form.ContentData);
|
var jsonArray = JArray.Parse(form.ContentData);
|
||||||
// 数据库名称
|
// 数据库名称
|
||||||
string tableName = form.DbName;
|
string tableName = form.DbName;
|
||||||
var exist = _unitWork.FromSql<QueryStringObj>($"select '1' as value from sysobjects where name = '{tableName}' and type = 'U'").SingleOrDefault();
|
var exist = _sugarClient.Ado.SqlQuery<QueryStringObj>($"select '1' as value from sysobjects where name = '{tableName}' and type = 'U'").SingleOrDefault();
|
||||||
if (exist != null) return string.Empty;
|
if (exist != null) return string.Empty;
|
||||||
// 创建数据表
|
// 创建数据表
|
||||||
StringBuilder sql = new StringBuilder($"CREATE TABLE {tableName} ( [Id] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,"); //主键
|
StringBuilder sql = new StringBuilder($"CREATE TABLE {tableName} ( [Id] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,"); //主键
|
||||||
@@ -61,7 +60,7 @@ namespace OpenAuth.App
|
|||||||
var jsonArray = JArray.Parse(form.ContentData);
|
var jsonArray = JArray.Parse(form.ContentData);
|
||||||
// 数据库名称
|
// 数据库名称
|
||||||
string tableName = form.DbName;
|
string tableName = form.DbName;
|
||||||
var exist = _unitWork.FromSql<QueryStringObj>($"select distinct table_name as value from information_schema.tables where table_name ='{tableName}'").SingleOrDefault();
|
var exist = _sugarClient.Ado.SqlQuery<QueryStringObj>($"select distinct table_name as value from information_schema.tables where table_name ='{tableName}'").SingleOrDefault();
|
||||||
if (exist != null) return string.Empty;
|
if (exist != null) return string.Empty;
|
||||||
// 创建数据表
|
// 创建数据表
|
||||||
StringBuilder sql = new StringBuilder($"create table if not exists `{tableName}` ( Id varchar(50) not null primary key,"); //主键
|
StringBuilder sql = new StringBuilder($"create table if not exists `{tableName}` ( Id varchar(50) not null primary key,"); //主键
|
||||||
|
|||||||
@@ -1,17 +1,15 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FrmLeaveReqApp : BaseStringApp<FrmLeaveReq,OpenAuthDBContext>, ICustomerForm
|
public class FrmLeaveReqApp : SqlSugarBaseApp<FrmLeaveReq>, ICustomerForm
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
@@ -22,18 +20,20 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
return new PagedDynamicDataResp
|
return new PagedDynamicDataResp
|
||||||
{
|
{
|
||||||
Count = await Repository.CountAsync(null),
|
Count = await SugarClient.Queryable<FrmLeaveReq>().CountAsync(),
|
||||||
Data = await Repository.Find(request.page, request.limit, "Id desc").ToListAsync()
|
Data = await SugarClient.Queryable<FrmLeaveReq>().OrderByDescending(u => u.Id)
|
||||||
|
.Skip((request.page - 1) * request.limit)
|
||||||
|
.Take(request.limit).ToListAsync()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(FrmLeaveReq obj)
|
public void Add(FrmLeaveReq obj)
|
||||||
{
|
{
|
||||||
Repository.Add(obj);
|
Repository.Insert(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FrmLeaveReqApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<FrmLeaveReq,OpenAuthDBContext> repository,
|
public FrmLeaveReqApp(ISqlSugarClient client,
|
||||||
RevelanceManagerApp app,IAuth auth) : base(unitWork, repository, auth)
|
RevelanceManagerApp app,IAuth auth) : base(client, auth)
|
||||||
{
|
{
|
||||||
_revelanceApp = app;
|
_revelanceApp = app;
|
||||||
}
|
}
|
||||||
@@ -48,13 +48,13 @@ namespace OpenAuth.App
|
|||||||
public void Update(string flowInstanceId, string frmData)
|
public void Update(string flowInstanceId, string frmData)
|
||||||
{
|
{
|
||||||
var req = JsonHelper.Instance.Deserialize<FrmLeaveReq>(frmData);
|
var req = JsonHelper.Instance.Deserialize<FrmLeaveReq>(frmData);
|
||||||
UnitWork.Update<FrmLeaveReq>(u => u.FlowInstanceId == flowInstanceId, u => new FrmLeaveReq
|
Repository.Update(u => new FrmLeaveReq
|
||||||
{
|
{
|
||||||
UserName = req.UserName,
|
UserName = req.UserName,
|
||||||
RequestComment = req.RequestComment,
|
RequestComment = req.RequestComment,
|
||||||
RequestType = req.RequestType
|
RequestType = req.RequestType
|
||||||
//补充其他需要更新的字段
|
//补充其他需要更新的字段
|
||||||
});
|
}, u => u.FlowInstanceId == flowInstanceId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,13 +3,12 @@ using System.Linq;
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class ModuleManagerApp : BaseTreeApp<Module,OpenAuthDBContext>
|
public class ModuleManagerApp : SqlSugarBaseTreeApp<Module>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
@@ -23,7 +22,7 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
CaculateCascade(model);
|
CaculateCascade(model);
|
||||||
|
|
||||||
Repository.Add(model);
|
Repository.Insert(model);
|
||||||
|
|
||||||
AddDefaultMenus(model);
|
AddDefaultMenus(model);
|
||||||
//当前登录用户的所有角色自动分配模块
|
//当前登录用户的所有角色自动分配模块
|
||||||
@@ -52,9 +51,9 @@ namespace OpenAuth.App
|
|||||||
/// <param name="roleId">The role unique identifier.</param>
|
/// <param name="roleId">The role unique identifier.</param>
|
||||||
public IEnumerable<Module> LoadForRole(string roleId)
|
public IEnumerable<Module> LoadForRole(string roleId)
|
||||||
{
|
{
|
||||||
var moduleIds = UnitWork.Find<Relevance>(u => u.FirstId == roleId && u.RelKey == Define.ROLEMODULE)
|
var moduleIds = SugarClient.Queryable<Relevance>().Where(u => u.FirstId == roleId && u.RelKey == Define.ROLEMODULE)
|
||||||
.Select(u => u.SecondId);
|
.Select(u => u.SecondId).ToArray();
|
||||||
return UnitWork.Find<Module>(u => moduleIds.Contains(u.Id)).OrderBy(u => u.SortNo);
|
return SugarClient.Queryable<Module>().Where(u => moduleIds.Contains(u.Id)).OrderBy(u => u.SortNo).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取角色可访问的模块字段
|
//获取角色可访问的模块字段
|
||||||
@@ -68,14 +67,14 @@ namespace OpenAuth.App
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<ModuleElement> LoadMenusForRole(string moduleId, string roleId)
|
public IEnumerable<ModuleElement> LoadMenusForRole(string moduleId, string roleId)
|
||||||
{
|
{
|
||||||
var elementIds = _revelanceApp.Get(Define.ROLEELEMENT, true, roleId);
|
var elementIds = _revelanceApp.Get(Define.ROLEELEMENT, true, roleId).ToArray();
|
||||||
var query = UnitWork.Find<ModuleElement>(u => elementIds.Contains(u.Id));
|
var query = SugarClient.Queryable<ModuleElement>().Where(u => elementIds.Contains(u.Id));
|
||||||
if (!string.IsNullOrEmpty(moduleId))
|
if (!string.IsNullOrEmpty(moduleId))
|
||||||
{
|
{
|
||||||
query = query.Where(u => u.ModuleId == moduleId);
|
query = query.Where(u => u.ModuleId == moduleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return query;
|
return query.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion 用户/角色分配模块
|
#endregion 用户/角色分配模块
|
||||||
@@ -87,9 +86,9 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public IEnumerable<SysPrinterPlan> LoadPrinterPlans(string moduleId)
|
public IEnumerable<SysPrinterPlan> LoadPrinterPlans(string moduleId)
|
||||||
{
|
{
|
||||||
var planids = _revelanceApp.Get(Define.MODULEPRINTERPLAN, true, moduleId);
|
var planids = _revelanceApp.Get(Define.MODULEPRINTERPLAN, true, moduleId).ToArray();
|
||||||
var query = UnitWork.Find<SysPrinterPlan>(u => planids.Contains(u.Id));
|
var query = SugarClient.Queryable<SysPrinterPlan>().Where(u => planids.Contains(u.Id));
|
||||||
return query;
|
return query.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -99,9 +98,9 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public IEnumerable<FlowScheme> LoadFlowSchemes(string moduleId)
|
public IEnumerable<FlowScheme> LoadFlowSchemes(string moduleId)
|
||||||
{
|
{
|
||||||
var planids = _revelanceApp.Get(Define.MODULE_FLOWSCHEME, true, moduleId);
|
var planids = _revelanceApp.Get(Define.MODULE_FLOWSCHEME, true, moduleId).ToArray();
|
||||||
var query = UnitWork.Find<FlowScheme>(u => planids.Contains(u.Id));
|
var query = SugarClient.Queryable<FlowScheme>().Where(u => planids.Contains(u.Id));
|
||||||
return query;
|
return query.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -113,8 +112,7 @@ namespace OpenAuth.App
|
|||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
public void DelMenu(string[] ids)
|
public void DelMenu(string[] ids)
|
||||||
{
|
{
|
||||||
UnitWork.Delete<ModuleElement>(u => ids.Contains(u.Id));
|
SugarClient.Deleteable<ModuleElement>().Where(u => ids.Contains(u.Id)).ExecuteCommand();
|
||||||
UnitWork.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -130,9 +128,12 @@ namespace OpenAuth.App
|
|||||||
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
|
if (model.KeyIsNull())
|
||||||
{
|
{
|
||||||
UnitWork.Add(model);
|
model.GenerateDefaultKeyVal();
|
||||||
|
}
|
||||||
|
SugarClient.Insertable(model).ExecuteCommand();
|
||||||
|
|
||||||
//当前登录用户的所有角色自动分配菜单
|
//当前登录用户的所有角色自动分配菜单
|
||||||
loginContext.Roles.ForEach(u =>
|
loginContext.Roles.ForEach(u =>
|
||||||
@@ -144,14 +145,12 @@ namespace OpenAuth.App
|
|||||||
secIds = new[] {model.Id}
|
secIds = new[] {model.Id}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
UnitWork.Save();
|
SugarClient.Ado.CommitTran();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateMenu(ModuleElement model)
|
public void UpdateMenu(ModuleElement model)
|
||||||
{
|
{
|
||||||
UnitWork.Update<ModuleElement>(model);
|
SugarClient.Updateable(model).ExecuteCommand();
|
||||||
UnitWork.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//添加默认按钮
|
//添加默认按钮
|
||||||
@@ -197,8 +196,8 @@ namespace OpenAuth.App
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public ModuleManagerApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<Module,OpenAuthDBContext> repository
|
public ModuleManagerApp(ISqlSugarClient client
|
||||||
, RevelanceManagerApp app, IAuth auth) : base(unitWork, repository, auth)
|
, RevelanceManagerApp app, IAuth auth) : base(client, auth)
|
||||||
{
|
{
|
||||||
_revelanceApp = app;
|
_revelanceApp = app;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,17 +6,15 @@ using Infrastructure.Helpers;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class RevelanceManagerApp : BaseStringApp<Relevance,OpenAuthDBContext>
|
public class RevelanceManagerApp : SqlSugarBaseApp<Relevance>
|
||||||
{
|
{
|
||||||
private readonly ILogger<RevelanceManagerApp> _logger;
|
private readonly ILogger<RevelanceManagerApp> _logger;
|
||||||
public RevelanceManagerApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<Relevance,OpenAuthDBContext> repository, IAuth auth, ILogger<RevelanceManagerApp> logger) : base(unitWork,
|
public RevelanceManagerApp(ISqlSugarClient client, IAuth auth, ILogger<RevelanceManagerApp> logger) : base(client, auth)
|
||||||
repository, auth)
|
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
@@ -38,7 +36,7 @@ namespace OpenAuth.App
|
|||||||
/// <param name="idMaps"></param>
|
/// <param name="idMaps"></param>
|
||||||
public void Assign(string key, ILookup<string, string> idMaps)
|
public void Assign(string key, ILookup<string, string> idMaps)
|
||||||
{
|
{
|
||||||
UnitWork.BatchAdd((from sameVals in idMaps
|
SugarClient.Insertable((from sameVals in idMaps
|
||||||
from value in sameVals
|
from value in sameVals
|
||||||
select new Relevance
|
select new Relevance
|
||||||
{
|
{
|
||||||
@@ -46,8 +44,7 @@ namespace OpenAuth.App
|
|||||||
FirstId = sameVals.Key,
|
FirstId = sameVals.Key,
|
||||||
SecondId = value,
|
SecondId = value,
|
||||||
OperateTime = TimeHelper.Now
|
OperateTime = TimeHelper.Now
|
||||||
}).ToArray());
|
}).ToArray()).ExecuteCommand();
|
||||||
UnitWork.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -82,7 +79,7 @@ namespace OpenAuth.App
|
|||||||
_logger.LogInformation($"start=> delete {key} {sameVals.Key} {value}");
|
_logger.LogInformation($"start=> delete {key} {sameVals.Key} {value}");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UnitWork.Delete<Relevance>(u => u.RelKey == key && u.FirstId == sameVals.Key && u.SecondId == value);
|
SugarClient.Deleteable<Relevance>().Where(u => u.RelKey == key && u.FirstId == sameVals.Key && u.SecondId == value).ExecuteCommand();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -95,7 +92,7 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
public void DeleteBy(string key, params string[] firstIds)
|
public void DeleteBy(string key, params string[] firstIds)
|
||||||
{
|
{
|
||||||
UnitWork.Delete<Relevance>(u => firstIds.Contains(u.FirstId) && u.RelKey == key);
|
SugarClient.Deleteable<Relevance>().Where(u => firstIds.Contains(u.FirstId) && u.RelKey == key).ExecuteCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -110,12 +107,12 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
if (returnSecondIds)
|
if (returnSecondIds)
|
||||||
{
|
{
|
||||||
return Repository.Find(u => u.RelKey == key
|
return SugarClient.Queryable<Relevance>().Where(u => u.RelKey == key
|
||||||
&& ids.Contains(u.FirstId)).Select(u => u.SecondId).ToList();
|
&& ids.Contains(u.FirstId)).Select(u => u.SecondId).ToList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Repository.Find(u => u.RelKey == key
|
return SugarClient.Queryable<Relevance>().Where(u => u.RelKey == key
|
||||||
&& ids.Contains(u.SecondId)).Select(u => u.FirstId).ToList();
|
&& ids.Contains(u.SecondId)).Select(u => u.FirstId).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,7 +126,7 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<string> Get(string key, string firstId, string secondId)
|
public List<string> Get(string key, string firstId, string secondId)
|
||||||
{
|
{
|
||||||
return Repository.Find(u => u.RelKey == key && u.FirstId == firstId && u.SecondId == secondId)
|
return SugarClient.Queryable<Relevance>().Where(u => u.RelKey == key && u.FirstId == firstId && u.SecondId == secondId)
|
||||||
.Select(u => u.ThirdId).ToList();
|
.Select(u => u.ThirdId).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,8 +154,7 @@ namespace OpenAuth.App
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
UnitWork.BatchAdd(relevances.ToArray());
|
SugarClient.Insertable(relevances).ExecuteCommand();
|
||||||
UnitWork.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -182,10 +178,10 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
foreach (var property in request.Properties)
|
foreach (var property in request.Properties)
|
||||||
{
|
{
|
||||||
UnitWork.Delete<Relevance>(u => u.RelKey == Define.ROLEDATAPROPERTY
|
SugarClient.Deleteable<Relevance>().Where(u => u.RelKey == Define.ROLEDATAPROPERTY
|
||||||
&& u.FirstId == request.RoleId
|
&& u.FirstId == request.RoleId
|
||||||
&& u.SecondId == request.ModuleCode
|
&& u.SecondId == request.ModuleCode
|
||||||
&& u.ThirdId == property);
|
&& u.ThirdId == property).ExecuteCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,21 +192,19 @@ namespace OpenAuth.App
|
|||||||
/// <param name="request"></param>
|
/// <param name="request"></param>
|
||||||
public void AssignRoleUsers(AssignRoleUsers request)
|
public void AssignRoleUsers(AssignRoleUsers request)
|
||||||
{
|
{
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
{
|
|
||||||
//删除以前的所有用户
|
//删除以前的所有用户
|
||||||
UnitWork.Delete<Relevance>(u => u.SecondId == request.RoleId && u.RelKey == Define.USERROLE);
|
SugarClient.Deleteable<Relevance>().Where(u => u.SecondId == request.RoleId && u.RelKey == Define.USERROLE).ExecuteCommand();
|
||||||
//批量分配用户角色
|
//批量分配用户角色
|
||||||
UnitWork.BatchAdd((from firstId in request.UserIds
|
SugarClient.Insertable((from firstId in request.UserIds
|
||||||
select new Relevance
|
select new Relevance
|
||||||
{
|
{
|
||||||
RelKey = Define.USERROLE,
|
RelKey = Define.USERROLE,
|
||||||
FirstId = firstId,
|
FirstId = firstId,
|
||||||
SecondId = request.RoleId,
|
SecondId = request.RoleId,
|
||||||
OperateTime = TimeHelper.Now
|
OperateTime = TimeHelper.Now
|
||||||
}).ToArray());
|
}).ToArray()).ExecuteCommand();
|
||||||
UnitWork.Save();
|
SugarClient.Ado.CommitTran();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -219,21 +213,19 @@ namespace OpenAuth.App
|
|||||||
/// <param name="request"></param>
|
/// <param name="request"></param>
|
||||||
public void AssignOrgUsers(AssignOrgUsers request)
|
public void AssignOrgUsers(AssignOrgUsers request)
|
||||||
{
|
{
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
{
|
|
||||||
//删除以前的所有用户
|
//删除以前的所有用户
|
||||||
UnitWork.Delete<Relevance>(u => u.SecondId == request.OrgId && u.RelKey == Define.USERORG);
|
SugarClient.Deleteable<Relevance>().Where(u => u.SecondId == request.OrgId && u.RelKey == Define.USERORG).ExecuteCommand();
|
||||||
//批量分配用户角色
|
//批量分配用户角色
|
||||||
UnitWork.BatchAdd((from firstId in request.UserIds
|
SugarClient.Insertable((from firstId in request.UserIds
|
||||||
select new Relevance
|
select new Relevance
|
||||||
{
|
{
|
||||||
RelKey = Define.USERORG,
|
RelKey = Define.USERORG,
|
||||||
FirstId = firstId,
|
FirstId = firstId,
|
||||||
SecondId = request.OrgId,
|
SecondId = request.OrgId,
|
||||||
OperateTime = TimeHelper.Now
|
OperateTime = TimeHelper.Now
|
||||||
}).ToArray());
|
}).ToArray()).ExecuteCommand();
|
||||||
UnitWork.Save();
|
SugarClient.Ado.CommitTran();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -242,21 +234,19 @@ namespace OpenAuth.App
|
|||||||
/// <param name="request"></param>
|
/// <param name="request"></param>
|
||||||
public void AssignRoleResources(AssignRoleResources request)
|
public void AssignRoleResources(AssignRoleResources request)
|
||||||
{
|
{
|
||||||
UnitWork.ExecuteWithTransaction(() =>
|
SugarClient.Ado.BeginTran();
|
||||||
{
|
|
||||||
//删除以前的所有资源
|
//删除以前的所有资源
|
||||||
UnitWork.Delete<Relevance>(u => u.FirstId == request.RoleId && u.RelKey == Define.ROLERESOURCE);
|
SugarClient.Deleteable<Relevance>().Where(u => u.FirstId == request.RoleId && u.RelKey == Define.ROLERESOURCE).ExecuteCommand();
|
||||||
//批量分配角色资源
|
//批量分配角色资源
|
||||||
UnitWork.BatchAdd((from firstId in request.ResourceIds
|
SugarClient.Insertable((from firstId in request.ResourceIds
|
||||||
select new Relevance
|
select new Relevance
|
||||||
{
|
{
|
||||||
RelKey = Define.ROLERESOURCE,
|
RelKey = Define.ROLERESOURCE,
|
||||||
FirstId = request.RoleId,
|
FirstId = request.RoleId,
|
||||||
SecondId = firstId,
|
SecondId = firstId,
|
||||||
OperateTime = TimeHelper.Now
|
OperateTime = TimeHelper.Now
|
||||||
}).ToArray());
|
}).ToArray()).ExecuteCommand();
|
||||||
UnitWork.Save();
|
SugarClient.Ado.CommitTran();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class SysLogApp : BaseStringApp<SysLog,OpenAuthDBContext>
|
public class SysLogApp : SqlSugarBaseApp<SysLog>
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -20,7 +18,7 @@ namespace OpenAuth.App
|
|||||||
public async Task<PagedDynamicDataResp> Load(QuerySysLogListReq request)
|
public async Task<PagedDynamicDataResp> Load(QuerySysLogListReq request)
|
||||||
{
|
{
|
||||||
var result = new PagedDynamicDataResp();
|
var result = new PagedDynamicDataResp();
|
||||||
var objs = UnitWork.Find<SysLog>(null);
|
var objs = SugarClient.Queryable<SysLog>();
|
||||||
if (!string.IsNullOrEmpty(request.key))
|
if (!string.IsNullOrEmpty(request.key))
|
||||||
{
|
{
|
||||||
objs = objs.Where(u => u.Content.Contains(request.key) || u.Id.Contains(request.key));
|
objs = objs.Where(u => u.Content.Contains(request.key) || u.Id.Contains(request.key));
|
||||||
@@ -37,19 +35,19 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
//程序类型取入口应用的名称,可以根据自己需要调整
|
//程序类型取入口应用的名称,可以根据自己需要调整
|
||||||
obj.Application = Assembly.GetEntryAssembly().FullName.Split(',')[0];
|
obj.Application = Assembly.GetEntryAssembly().FullName.Split(',')[0];
|
||||||
Repository.Add(obj);
|
Repository.Insert(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(SysLog obj)
|
public void Update(SysLog obj)
|
||||||
{
|
{
|
||||||
UnitWork.Update<SysLog>(u => u.Id == obj.Id, u => new SysLog
|
Repository.Update(u => new SysLog
|
||||||
{
|
{
|
||||||
//todo:要修改的字段赋值
|
//todo:要修改的字段赋值
|
||||||
});
|
}, u => u.Id == obj.Id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SysLogApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<SysLog,OpenAuthDBContext> repository) : base(unitWork, repository, null)
|
public SysLogApp(ISqlSugarClient client) : base(client, null)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,20 +2,18 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using OpenAuth.App.Interface;
|
using OpenAuth.App.Interface;
|
||||||
using OpenAuth.App.Request;
|
using OpenAuth.App.Request;
|
||||||
using OpenAuth.App.Response;
|
using OpenAuth.App.Response;
|
||||||
using OpenAuth.Repository;
|
|
||||||
using OpenAuth.Repository.Domain;
|
using OpenAuth.Repository.Domain;
|
||||||
using OpenAuth.Repository.Interface;
|
|
||||||
using Infrastructure.Helpers;
|
using Infrastructure.Helpers;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class SysMessageApp : BaseStringApp<SysMessage,OpenAuthDBContext>
|
public class SysMessageApp : SqlSugarBaseApp<SysMessage>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
private readonly ILogger<SysMessageApp> _logger;
|
private readonly ILogger<SysMessageApp> _logger;
|
||||||
@@ -32,7 +30,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
var result = new PagedDynamicDataResp();
|
var result = new PagedDynamicDataResp();
|
||||||
var objs = UnitWork.Find<SysMessage>(u =>u.ToId == loginContext.User.Id && u.ToStatus != -1);
|
var objs = SugarClient.Queryable<SysMessage>().Where(u =>u.ToId == loginContext.User.Id && u.ToStatus != -1);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(request.key))
|
if (!string.IsNullOrEmpty(request.key))
|
||||||
{
|
{
|
||||||
@@ -54,7 +52,7 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
public void Add(SysMessage obj)
|
public void Add(SysMessage obj)
|
||||||
{
|
{
|
||||||
Repository.Add(obj);
|
Repository.Insert(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -75,14 +73,14 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sysUser = UnitWork.FirstOrDefault<SysUser>(u => u.Id == userId);
|
sysUser = SugarClient.Queryable<SysUser>().First(u => u.Id == userId);
|
||||||
}
|
}
|
||||||
if (sysUser == null)
|
if (sysUser == null)
|
||||||
{
|
{
|
||||||
_logger.LogError($"未能找到用户{userId},不能给该用户发送消息");
|
_logger.LogError($"未能找到用户{userId},不能给该用户发送消息");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Repository.Add(new SysMessage
|
Repository.Insert(new SysMessage
|
||||||
{
|
{
|
||||||
ToId = sysUser.Id,
|
ToId = sysUser.Id,
|
||||||
ToName = sysUser.Name,
|
ToName = sysUser.Name,
|
||||||
@@ -101,10 +99,10 @@ namespace OpenAuth.App
|
|||||||
/// <param name="msgid"></param>
|
/// <param name="msgid"></param>
|
||||||
public void Read(ReadMsgReq req)
|
public void Read(ReadMsgReq req)
|
||||||
{
|
{
|
||||||
UnitWork.Update<SysMessage>(u => u.Id == req.Id, u => new SysMessage
|
Repository.Update(u => new SysMessage
|
||||||
{
|
{
|
||||||
ToStatus = 1
|
ToStatus = 1
|
||||||
});
|
}, u => u.Id == req.Id);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 消息采用逻辑删除
|
/// 消息采用逻辑删除
|
||||||
@@ -112,15 +110,15 @@ namespace OpenAuth.App
|
|||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
public void Del(string[] ids)
|
public void Del(string[] ids)
|
||||||
{
|
{
|
||||||
UnitWork.Update<SysMessage>(u => ids.Contains(u.Id), u => new SysMessage
|
Repository.Update(u => new SysMessage
|
||||||
{
|
{
|
||||||
ToStatus = -1 //逻辑删除
|
ToStatus = -1 //逻辑删除
|
||||||
});
|
}, u => ids.Contains(u.Id));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SysMessageApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<SysMessage,OpenAuthDBContext> repository,
|
public SysMessageApp(ISqlSugarClient client,
|
||||||
RevelanceManagerApp app,IAuth auth, ILogger<SysMessageApp> logger) : base(unitWork, repository, auth)
|
RevelanceManagerApp app,IAuth auth, ILogger<SysMessageApp> logger) : base(client, auth)
|
||||||
{
|
{
|
||||||
_revelanceApp = app;
|
_revelanceApp = app;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|||||||
Reference in New Issue
Block a user