From 59ec65018146b21cffd66a08161978dda992b881 Mon Sep 17 00:00:00 2001 From: cheng19920620 <511180749@qq.com> Date: Thu, 14 Sep 2023 11:13:18 +0800 Subject: [PATCH] =?UTF-8?q?--=E6=96=87=E4=BB=B6=E7=AE=A1=E7=90=86=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A7=E5=88=B6=E5=90=8E=E5=8F=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MinioController/MinioApiController.cs | 797 ++++++++++++++++++ .../MinioController/RequstStoragePath.cs | 38 + 2 files changed, 835 insertions(+) create mode 100644 IBKLinker-Minio/Entity/MinioController/RequstStoragePath.cs diff --git a/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs b/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs index 0a431ed..999b26c 100644 --- a/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs +++ b/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs @@ -168,5 +168,802 @@ namespace IBKLinker_Minio.Controller.MinioController } return result; } + + + + #region minio权限表 + /// + /// 添加minio权限表 + /// + /// 合金配比策略一基表Model + [HttpPost, Route("AddAuthority")] + public RequestEntity AddAuthority(MinioAuthority cS_B04_PL_STEEL_ROW_COMP) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长的值赋值给自增长主键pk + cS_B04_PL_STEEL_ROW_COMP.Id = getPk("S_MINIO_AUTHORITY", "MINIO_AUTHORITY"); + ///给创建时间赋值 + cS_B04_PL_STEEL_ROW_COMP.CreatorTime = DateTime.Now; + + ///把需要添加的数据同步到数据库 + db.Insert(cS_B04_PL_STEEL_ROW_COMP); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_AUTHORITY,minio权限表添加数据失败,错误原因:{0}", ex); + } + return request; + } + /// + /// 修改minio权限表 + /// + /// 修改数据 + [HttpPost, Route("UpdateAuthority")] + public RequestEntity UpdateAuthority(IList data) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + ///启动事务 + db.BeginTransaction(); + ///给修改时间赋值 + DateTime time = DateTime.Now; + db.Update(data); + db.Commit(); + request.code = "0"; + } + catch (Exception ex) + { + request.code = "1"; + db.Rollback(); + ///把错误日志写到日志文件 + logger.ErrorFormat("主表:MINIO_AUTHORITY,修改minio权限表失败,错误原因:{0}", ex); + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_AUTHORITY,创建数据库连接对象,错误原因:{0}", ex); + } + return request; + } + + /// + /// 删除minio权限表 + /// + /// 需要删除的数据 + [HttpPost, Route("RemoveAuthority")] + public RequestEntity RemoveAuthority(IList master) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + db.BeginTransaction(); + + db.Delete(master); + + db.Commit(); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + + logger.ErrorFormat("主表:MINIO_AUTHORITY,创建数据库连接对象失败,错误原因:{0}", ex); + } + return request; + } + + + /// + /// 查询minio权限表 + /// + /// + [HttpPost, Route("GetAuthority")] + public RequestEntity GetAuthority(MinioAuthority minioAuthority) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + IList result = new List(); + if (!string.IsNullOrEmpty(minioAuthority.LimitsAuthorityId.ToString())) + { + sql += " and LIMITS_AUTHORITY_ID ='" + minioAuthority.LimitsAuthorityId +"'"; + } + + request.data = db.Query("select * from MINIO_AUTHORITY where 1=1 " + sql + " ORDER BY PK"); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_AUTHORITY,查询minio权限表失败,错误原因:{0}", ex); + } + return request; + } + + #endregion + + #region minio角色表 + /// + /// 添加minio角色表 + /// + /// 合金配比策略一基表Model + [HttpPost, Route("AddUSER")] + public RequestEntity AddUSER(MinioUser minioUser) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长的值赋值给自增长主键pk + minioUser.UserId = getPk("S_MINIO_USER", "MINIO_USER"); + ///给创建时间赋值 + minioUser.CreatorTime = DateTime.Now; + + ///把需要添加的数据同步到数据库 + db.Insert(minioUser); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_USER,minio角色表添加数据失败,错误原因:{0}", ex); + } + return request; + } + /// + /// 修改minio角色表 + /// + /// 修改数据 + [HttpPost, Route("UpdateUSER")] + public RequestEntity UpdateUSER(IList data) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + ///启动事务 + db.BeginTransaction(); + ///给修改时间赋值 + DateTime time = DateTime.Now; + db.Update(data); + db.Commit(); + request.code = "0"; + } + catch (Exception ex) + { + request.code = "1"; + db.Rollback(); + ///把错误日志写到日志文件 + logger.ErrorFormat("主表:MINIO_USER,修改minio角色表失败,错误原因:{0}", ex); + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_USER,创建数据库连接对象,错误原因:{0}", ex); + } + return request; + } + + /// + /// 删除minio角色表 + /// + /// 需要删除的数据 + [HttpPost, Route("RemoveUSER")] + public RequestEntity RemoveUSER(IList master) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + db.BeginTransaction(); + + db.Delete(master); + + db.Commit(); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + + logger.ErrorFormat("主表:MINIO_USER,创建数据库连接对象失败,错误原因:{0}", ex); + } + return request; + } + + + /// + /// 查询minio角色表 + /// + /// + [HttpPost, Route("GetUSER")] + public RequestEntity GetUSER(MinioUser minioUser) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + IList result = new List(); + if (!string.IsNullOrEmpty(minioUser.UserName.ToString())) + { + sql += " and USER_NAME ='" + minioUser.UserName+"'"; + } + + request.data = db.Query("select * from MINIO_USER where 1=1 " + sql + " ORDER BY PK"); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_USER,查询minio角色表失败,错误原因:{0}", ex); + } + return request; + } + + #endregion + + #region minio文件关联表表 + /// + /// 添加minio角色表 + /// + /// 合金配比策略一基表Model + [HttpPost, Route("AddFileassociation")] + public RequestEntity AddFileassociation(MinioFileassociation minioFileassociation) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长的值赋值给自增长主键pk + minioFileassociation.Pk = getPk("S_MINIO_FILEASSOCIATION", "MINIO_FILEASSOCIATION"); + ///给创建时间赋值 + minioFileassociation.CreatorTime = DateTime.Now; + + ///把需要添加的数据同步到数据库 + db.Insert(minioFileassociation); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_FILEASSOCIATION,minio文件关联表表添加数据失败,错误原因:{0}", ex); + } + return request; + } + /// + /// 修改minio角色表 + /// + /// 修改数据 + [HttpPost, Route("UpdateFileassociation")] + public RequestEntity UpdateFileassociation(IList data) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + ///启动事务 + db.BeginTransaction(); + ///给修改时间赋值 + DateTime time = DateTime.Now; + db.Update(data); + db.Commit(); + request.code = "0"; + } + catch (Exception ex) + { + request.code = "1"; + db.Rollback(); + ///把错误日志写到日志文件 + logger.ErrorFormat("主表:MINIO_FILEASSOCIATION,修改minio文件关联表表失败,错误原因:{0}", ex); + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_FILEASSOCIATION,创建数据库连接对象,错误原因:{0}", ex); + } + return request; + } + + /// + /// 删除minio角色表 + /// + /// 需要删除的数据 + [HttpPost, Route("RemoveFileassociation")] + public RequestEntity RemoveFileassociation(IList master) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + db.BeginTransaction(); + + db.Delete(master); + + db.Commit(); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + + logger.ErrorFormat("主表:MINIO_FILEASSOCIATION,创建数据库连接对象失败,错误原因:{0}", ex); + } + return request; + } + + + /// + /// 查询minio角色表 + /// + /// + [HttpPost, Route("GetFileassociation")] + public RequestEntity GetFileassociation(MinioFileassociation minioFileassociation) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + IList result = new List(); + if (!string.IsNullOrEmpty(minioFileassociation.FileName.ToString())) + { + sql += " and FILE_NAME ='" + minioFileassociation.FileName+"'"; + } + + request.data = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 " + sql + " ORDER BY PK"); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_FILEASSOCIATION,查询minio文件关联表表失败,错误原因:{0}", ex); + } + return request; + } + + #endregion + + #region minio角色权限表 + /// + /// 添加minio角色权限表 + /// + /// minio角色权限表 + [HttpPost, Route("AddRolePermission")] + public RequestEntity AddRolePermission(MinioRolePermission minioRolePermission) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长的值赋值给自增长主键pk + minioRolePermission.Pk = getPk("S_MINIO_ROLE_PERMISSION", "MINIO_ROLE_PERMISSION"); + ///给创建时间赋值 + minioRolePermission.CreatorTime = DateTime.Now; + + ///把需要添加的数据同步到数据库 + db.Insert(minioRolePermission); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,minio角色权限表添加数据失败,错误原因:{0}", ex); + } + return request; + } + /// + /// 修改minio角色表 + /// + /// 修改数据 + [HttpPost, Route("UpdateRolePermission")] + public RequestEntity UpdateRolePermission(IList data) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + ///启动事务 + db.BeginTransaction(); + ///给修改时间赋值 + DateTime time = DateTime.Now; + db.Update(data); + db.Commit(); + request.code = "0"; + } + catch (Exception ex) + { + request.code = "1"; + db.Rollback(); + ///把错误日志写到日志文件 + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,修改minio角色权限表表失败,错误原因:{0}", ex); + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,创建数据库连接对象,错误原因:{0}", ex); + } + return request; + } + + /// + /// 删除minio角色表 + /// + /// 需要删除的数据 + [HttpPost, Route("RemoveRolePermission")] + public RequestEntity RemoveRolePermission(IList master) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + db.BeginTransaction(); + + db.Delete(master); + + db.Commit(); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,创建数据库连接对象失败,错误原因:{0}", ex); + } + return request; + } + + + /// + /// 查询minio角色表 + /// + /// + [HttpPost, Route("GetRolePermission")] + public RequestEntity GetRolePermission(MinioRolePermission minioRolePermission) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + IList result = new List(); + if (!string.IsNullOrEmpty(minioRolePermission.Id.ToString())) + { + sql += " and ID =" + minioRolePermission.Id; + } + + request.data = db.Query("select * from MINIO_ROLE_PERMISSION where 1=1 " + sql + " ORDER BY PK"); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,查询minio角色权限表失败,错误原因:{0}", ex); + } + return request; + } + + #endregion + + #region minio文件文件夹路径表 + /// + /// 添加minio文件文件夹路径表 + /// + /// minio文件文件夹路径表 + [HttpPost, Route("AddStoragePath")] + public RequestEntity AddStoragePath(MinioStoragePath minioStoragePath) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长的值赋值给自增长主键pk + minioStoragePath.Pk = getPk("S_MINIO_STORAGE_PATH", "MINIO_STORAGE_PATH"); + ///给创建时间赋值 + minioStoragePath.CreatorTime = DateTime.Now; + + ///把需要添加的数据同步到数据库 + db.Insert(minioStoragePath); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_STORAGE_PATH,minio文件文件夹路径表添加数据失败,错误原因:{0}", ex); + } + return request; + } + /// + /// 修改minio文件文件夹路径 + /// + /// 修改数据 + [HttpPost, Route("UpdateStoragePath")] + public RequestEntity UpdateStoragePath(IList data) + { + RequestEntity request = new RequestEntity(); + try + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + ///启动事务 + db.BeginTransaction(); + ///给修改时间赋值 + DateTime time = DateTime.Now; + db.Update(data); + db.Commit(); + request.code = "0"; + } + catch (Exception ex) + { + request.code = "1"; + db.Rollback(); + ///把错误日志写到日志文件 + logger.ErrorFormat("主表:MINIO_STORAGE_PATH,修改minio文件文件夹路径表失败,错误原因:{0}", ex); + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_STORAGE_PATH,创建数据库连接对象,错误原因:{0}", ex); + } + return request; + } + + /// + /// 删除minio文件文件夹路径表 + /// + /// 需要删除的数据 + [HttpPost, Route("RemoveStoragePath")] + public RequestEntity RemoveStoragePath(IList master) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + db.BeginTransaction(); + + db.Delete(master); + + db.Commit(); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + + logger.ErrorFormat("主表:MINIO_ROLE_PERMISSION,创建数据库连接对象失败,错误原因:{0}", ex); + } + return request; + } + + + /// + /// 查询minio文件文件夹路径表 + /// + /// + [HttpPost, Route("GetStoragePath")] + public RequestEntity GetStoragePath(MinioStoragePath minioStoragePath) + { + RequestEntity request = new RequestEntity(); + try + { + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + IList result = new List(); + if (!string.IsNullOrEmpty(minioStoragePath.FileName.ToString())) + { + sql += " and FILE_NAME ='" + minioStoragePath.FileName+"'"; + } + + request.data = db.Query("select * from MINIO_STORAGE_PATH where 1=1 " + sql + " ORDER BY PK"); + request.code = "0"; + } + } + catch (Exception ex) + { + request.code = "1"; + logger.ErrorFormat("主表:MINIO_STORAGE_PATH,查询minio文件文件夹路径表失败,错误原因:{0}", ex); + } + return request; + } + + #endregion + + #region minio文件菜单递归和权限判断 + /// + /// 根据ID查询子菜单 + /// + /// + /// + public List GetMenuTree(string PK = "") + { + + List date = new List(); + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + + if (!string.IsNullOrEmpty(PK)) + { + sql += " and UPK =" +int.Parse(PK); + } + + date = db.Query("select * from MINIO_STORAGE_PATH where 1=1 " + sql + " ORDER BY PK").ToList(); + + } + return date; + } + /// + /// 获取根目录和根目录下一级得菜单信息 + /// + /// + public RequestEntity GetRecursion() + { + RequestEntity request = new RequestEntity(); + try + { + //拿到根目录 + List requstStoragePaths = new List(); + List date = new List(); + using (IDbContext db = ObjectContainer.GetObject("db")) + { + string sql = string.Empty; + + + date = db.Query("select * from MINIO_STORAGE_PATH ORDER BY PK").ToList(); + + } + if (date.Count > 0) + { + foreach (var item in date) + { + RequstStoragePath model = new RequstStoragePath(); + model.Pk = item.Pk; + model.FileName = item.FileName; + model.FilePate = item.FilePate; + model.FileType = item.FileType; + model.requstStoragePaths = new List(); + List ds = GetMenuTree(item.Pk.ToString()); + foreach (var items in ds) + { + StoragePath models = new StoragePath(); + models.Pk = items.Pk; + models.FileName = items.FileName; + models.FilePate = items.FilePate; + models.FileType = items.FileType; + model.requstStoragePaths.Add(models); + } + requstStoragePaths.Add(model); + } + } + request.data = requstStoragePaths; + request.code = "0"; + } + catch (Exception) + { + request.code = "1"; + throw; + } + + return request; + } + + public bool GetEmpower(string UserID,string FileName,string EmpowerType) + { + //用户ID,文件ID,文件操作类型(查看/移动) + //通过用户ID查询用户得角色ID, + //判断当前角色是否有操作权限 + //通过角色ID查询用户有权限得文件夹 + + return false; + } + #endregion + #region 公用方法 + /// + /// 矫正pk值 + /// + /// + /// + /// + public Int32 getPk(String sequenceName, String tableName) + { + ///创建数据库连接上下文对象 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + ///拿到表自增长序列最大pk值 + int pk_SequenceCurrentMax = Convert.ToInt32(db.QueryScalar("select " + sequenceName + ".nextval from dual")); + ///拿到表目前最大pk值 + Object pk_TableCurrentMaxObj = db.QueryScalar("select t.pk from " + tableName + " t where rownum <=1 order by t.pk desc"); + int pk_TableCurrentMax = pk_SequenceCurrentMax; + //如果表最大值查询结果不为空进行对比, + if (pk_TableCurrentMaxObj != null) + { + pk_TableCurrentMax = Convert.ToInt32(pk_TableCurrentMaxObj); + //拿到表中最大值和序列最大值之间的差值 + int num_BetweenTableSequence = pk_TableCurrentMax - pk_SequenceCurrentMax + 1; + //更改序列递增规则,使下一次拿到的序列号比表中最大pk大1 + db.QueryScalar("alter sequence " + sequenceName + " increment by " + num_BetweenTableSequence.ToString()); + //执行nexval拿到下一个序列号 + pk_TableCurrentMax = Convert.ToInt32(db.QueryScalar("select " + sequenceName + ".nextval from dual")); + //更改序列递增规则为每次递增一个。 + db.QueryScalar("alter sequence " + sequenceName + " increment by 1"); + } + return pk_TableCurrentMax; + } + } + #endregion + } } diff --git a/IBKLinker-Minio/Entity/MinioController/RequstStoragePath.cs b/IBKLinker-Minio/Entity/MinioController/RequstStoragePath.cs new file mode 100644 index 0000000..e8248a7 --- /dev/null +++ b/IBKLinker-Minio/Entity/MinioController/RequstStoragePath.cs @@ -0,0 +1,38 @@ +using SOA.Persistent; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IBKLinker_Minio.Entity.MinioController +{ + public class StoragePath + { + /// + /// 主键 + /// + public int Pk { get; set; } + /// + ///文件名称 + /// + public string FileName { get; set; } + + /// + ///文件类型 + /// + public int FileType { get; set; } + + /// + ///文件路径 + /// + public string FilePate { get; set; } + } + public class RequstStoragePath: StoragePath + { + + + public List requstStoragePaths { get; set; } + } +}