From 2653d8ab94b4de165d2187a7cb148e41a5d95a66 Mon Sep 17 00:00:00 2001 From: sunliang <593170460@qq.com> Date: Fri, 15 Mar 2024 17:34:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=87=E7=89=87=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=85=B3?= =?UTF-8?q?=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MinioController/MinioApiController.cs | 428 ++++++++++++++++-- .../MinioController/MinioFileassociation.cs | 14 +- .../MinioController/SliceUploadModel.cs | 120 +++++ 3 files changed, 520 insertions(+), 42 deletions(-) create mode 100644 IBKLinker-Minio/Entity/MinioController/SliceUploadModel.cs diff --git a/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs b/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs index dc55799..ad3cb76 100644 --- a/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs +++ b/IBKLinker-Minio/Controller/MinioController/MinioApiController.cs @@ -40,6 +40,9 @@ using NPOI.SS.Formula.Atp; using Org.BouncyCastle.Asn1.Pkcs; using System.Windows.Forms; using Org.BouncyCastle.Asn1.Ocsp; +using System.Data; +using System.Web.WebSockets; +using System.Security.Cryptography; namespace IBKLinker_Minio.Controller.MinioController { @@ -55,6 +58,7 @@ namespace IBKLinker_Minio.Controller.MinioController /// 调用log日志文件 /// private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public static List SliceUploadData = new List(); #region minio权限表 @@ -350,15 +354,25 @@ namespace IBKLinker_Minio.Controller.MinioController { try { + bool Asstion = true;//定义是否执行关联 IList SelMFdata = new List(); - SelMFdata = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 and FILE_PK='"+ minioFileassociation.FilePk+ "' and ASSOCIATION_FILE_PK='"+ minioFileassociation.AssociationFilePk+ "'"); + SelMFdata = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 and (FILE_PK='" + minioFileassociation.FilePk + "' or ASSOCIATION_FILE_PK='" + minioFileassociation.FilePk + "')"); //查询当前被关联文件是否已经被关联过 if (SelMFdata.Count > 0) { - request.code = "1"; - request.msg = "当前文件已经被关联过,请勿重复关联!"; + foreach (var item in SelMFdata) + { + if (item.FilePk == minioFileassociation.FilePk && item.AssociationFilePk == minioFileassociation.AssociationFilePk) //如果当前要关联的pk 等于已有的关联pk 被关联pk 等于已有的被关联pk + { + Asstion = false; + } + if (item.FilePk == minioFileassociation.AssociationFilePk && item.AssociationFilePk == minioFileassociation.FilePk) //如果当前要关联的pk 等于已有的被关联pk 被关联pk 等于已有的关联pk + { + Asstion = false; + } + } } - else + if (Asstion) { db.BeginTransaction();//启动事务 ///拿到表自增长的值赋值给自增长主键pk @@ -371,6 +385,11 @@ namespace IBKLinker_Minio.Controller.MinioController request.code = "0"; request.msg = "关联成功!"; } + else + { + request.code = "1"; + request.msg = "当前文件已经被关联过,请勿重复关联!"; + } } catch (Exception ex) { @@ -439,9 +458,27 @@ namespace IBKLinker_Minio.Controller.MinioController { if (master != null) { + bool Asstion = true; + List Deldata = new List(); + IList SelMFdata = new List(); + SelMFdata = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 and (FILE_PK='" + master.FilePk + "' or ASSOCIATION_FILE_PK='" + master.FilePk + "')"); + //查询当前被关联文件是否已经被关联过 + if (SelMFdata.Count > 0) + { + foreach (var item in SelMFdata) + { + if (item.FilePk == master.FilePk && item.AssociationFilePk == master.AssociationFilePk) //如果当前要关联的pk 等于已有的关联pk 被关联pk 等于已有的被关联pk + { + Deldata.Add(item);//向需要删除的list中追加数据 + } + if (item.FilePk == master.AssociationFilePk && item.AssociationFilePk == master.FilePk) //如果当前要关联的pk 等于已有的被关联pk 被关联pk 等于已有的关联pk + { + Deldata.Add(item);//向需要删除的list中追加数据 + } + } + } db.BeginTransaction();//启动事务 - string sql = string.Format("delete from MINIO_FILEASSOCIATION where 1=1 and PK={0}", master.Pk); - db.Execute(sql); + db.Delete(Deldata); db.Commit();//提交事务 request.code = "0"; request.msg = "删除成功!"; @@ -477,28 +514,9 @@ namespace IBKLinker_Minio.Controller.MinioController { if (FilePk != null) { - string sql = string.Empty; - //先通过文件ID拿到文件的类型是技术协议还是质量要点或者工艺卡 - MinioStoragePath ds = db.Query("select * from MINIO_STORAGE_PATH where PK= " + int.Parse(FilePk) + " and CLEAR_FLAG='0' ORDER BY PK").FirstOrDefault(); - if (ds != null) - { - if (ds.DocumentType == "1") - { - sql += string.Format(" and FILE_PK ={0}", int.Parse(FilePk)); - } - else if (ds.DocumentType == "2") - { - sql += string.Format(" and FILE_PK ={0} or ASSOCIATION_FILE_PK ={0}", int.Parse(FilePk)); - } - else - { - sql += string.Format(" and ASSOCIATION_FILE_PK ={0}", int.Parse(FilePk)); - } - } - //通过文件类型判断是查文件的下一级还是查文件的上下级 IList SelMFdata = new List(); IList result = new List(); - SelMFdata = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 " + sql + " ORDER BY PK"); + SelMFdata = db.Query("select * from MINIO_FILEASSOCIATION where 1=1 and (FILE_PK='" + int.Parse(FilePk) + "' or ASSOCIATION_FILE_PK='" + int.Parse(FilePk) + "') ORDER BY PK"); if (SelMFdata.Count > 0) //如果有数据 { foreach (var item in SelMFdata) @@ -553,7 +571,7 @@ namespace IBKLinker_Minio.Controller.MinioController request.data = result; request.code = "0"; } - else + else { request.code = "0"; @@ -753,7 +771,7 @@ namespace IBKLinker_Minio.Controller.MinioController { sql += " and ID ='" + minioRolePermission.Id + "'"; } - if (!string.IsNullOrEmpty(minioRolePermission.RoleName)) + if (!string.IsNullOrEmpty(minioRolePermission.RoleName)) { sql += " and ROLE_NAME like'%" + minioRolePermission.RoleName + "%'"; } @@ -966,6 +984,7 @@ namespace IBKLinker_Minio.Controller.MinioController date.ModifyTime = time;//修改时间 date.ClearFlag = "0";//删除标记 0未删除 1删除 date.DocumentType = item.DocumentType;//文件种类 + date.Version = item.Version;//版本 if (item.Bate64 != null)//如果是修改文件 { var contentType = item.FileCategory; @@ -1226,7 +1245,7 @@ namespace IBKLinker_Minio.Controller.MinioController string sql = string.Empty; if (!string.IsNullOrEmpty(UserID)) { - sql += "and a.USER_ID='"+UserID+"'"; + sql += "and a.USER_ID='" + UserID + "'"; } if (!string.IsNullOrEmpty(FileName)) { @@ -1288,7 +1307,7 @@ namespace IBKLinker_Minio.Controller.MinioController #region minio文件下载及预览 /// - /// 件下载及预览接口 + /// 文件下载及预览接口 /// [HttpPost, Route("FileDownload")] public RequestEntity FileDownload(List minioStoragePath) @@ -1296,6 +1315,7 @@ namespace IBKLinker_Minio.Controller.MinioController MinioBusinessLogic bb = new MinioBusinessLogic();//定义业务逻辑方法 RequestEntity request = new RequestEntity();//定义返回集合 List data = new List();//定义输出下载的list + string NewFileName = ""; using (IDbContext db = ObjectContainer.GetObject("db")) { try @@ -1306,7 +1326,15 @@ namespace IBKLinker_Minio.Controller.MinioController { MinioStoragePath date = new MinioStoragePath();//定义单条返回数据 string BuckName = bb.GetBuckName();//调用取桶名称方法 - string NewFileName = item.FileName.Replace(".pdf","_") + item.Version + ".pdf"; + NewFileName = item.FileName; + if (item.Version != null && item.FileName.IndexOf(".pdf") > 0)//判断是否是pdf文件并且有版本做处理 + { + NewFileName = item.FileName.Replace(".pdf", "_") + item.Version + ".pdf"; + } + if (item.Version != null && item.FileName.IndexOf(".PDF") > 0)//判断是否是pdf文件并且有版本做处理 + { + NewFileName = item.FileName.Replace(".PDF", "_") + item.Version + ".PDF"; + } var uploadTask = bb.Download(BuckName, NewFileName);//异步取base64 uploadTask.Wait();//等待取值 if (uploadTask.Status == TaskStatus.RanToCompletion && !uploadTask.IsFaulted) //判读是否有数值 @@ -1356,18 +1384,18 @@ namespace IBKLinker_Minio.Controller.MinioController /// /// [HttpPost, Route("GetMinioBusinessLogic")] - public RequestEntity GetMinioBusinessLogic() + public RequestEntity GetMinioBusinessLogic() { RequestEntity request = new RequestEntity(); try { - using (IDbContext db = ObjectContainer.GetObject("db")) + using (IDbContext db = ObjectContainer.GetObject("db")) { request.data = db.Query("select * from MINIO_OPERATIONLOG where 1=1 order by OPERATE_TIME desc"); request.code = "0"; } } - catch (Exception ex) + catch (Exception ex) { request.code = "1"; logger.ErrorFormat("主表:MINIO_OPERATIONLOG,查询minio文件操作日志表失败,错误原因:{0}", ex); @@ -1544,6 +1572,336 @@ namespace IBKLinker_Minio.Controller.MinioController } #endregion - + #region 切片上传 + /// + /// 接收切片 + /// + [HttpPost, Route("SliceUpload")] + public async Task SliceUploadAsync()//string FileName,string SliceQuantity,string FileNum, string FileId,string Size,string Upk, string FileType, string FilePath, string CreatorUser, string DownloadNum, string FileLevel, string FileCategory + { + Dictionary dic = new Dictionary(); + SliceUploadModel master = new SliceUploadModel(); + RequestEntity request = new RequestEntity();//定义返回集合 + try + { + var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync(); + foreach (var content in multipartMemoryStreamProvider.Contents) + { + if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName)) + { + using (Stream stream = await content.ReadAsStreamAsync()) + { + if (stream.CanSeek) // 确保流支持查询长度和定位 + { + long length = stream.Length; + byte[] bytes = new byte[length]; + int offset = 0; + int bytesRead; + while ((bytesRead = stream.Read(bytes, offset, bytes.Length - offset)) > 0) + { + offset += bytesRead; + } + // bytes 数组现在包含了整个流的内容 + master.FileBase64 = bytes; + } + } + } + else + { + string val = await content.ReadAsStringAsync(); + dic.Add(content.Headers.ContentDisposition.Name.Replace("\"", ""), System.Web.HttpUtility.UrlDecode(val)); + } + } + + + master.FileName = dic["FileName"].ToString();//文件名称 + master.SliceQuantity = dic["SliceQuantity"].ToString();//切片总数量 + master.FileNum = dic["FileNum"].ToString(); + master.FileId = dic["FileId"].ToString(); + master.Upk = Convert.ToInt32( dic["Upk"].ToString()); + master.FileType = Convert.ToInt32(dic["FileType"].ToString()); + master.FilePath = dic["FilePath"].ToString(); + master.CreatorUser = dic["CreatorUser"].ToString(); + master.DownloadNum = Convert.ToInt32(dic["DownloadNum"].ToString()); + master.FileLevel = Convert.ToInt32(dic["FileLevel"].ToString()); + master.FileCategory = dic["FileCategory"].ToString(); + SliceUploadData.Add(master); + request.code = "0"; + request.msg = "已接收切片"; + } + catch (Exception ex) + { + request.code = "1"; + logger.InfoFormat(ex.ToString()); + } + return request; + } + /// + /// 拼接上传切片文件 + /// + [HttpPost, Route("SliceUploadOrver")] + public RequestEntity SliceUploadOrver(SliceUploadModel master) + { + RequestEntity request = new RequestEntity();//定义返回集合 + MinioBusinessLogic bb = new MinioBusinessLogic();//定义业务逻辑方法 + using (IDbContext db = ObjectContainer.GetObject("db")) + { + try + { + #region 定义minio + MinioClient minio = bb.ConnectMinIO();//调用连接minio数据库方法 + string BuckName = bb.GetBuckName();//调用取桶名称方法 + var bucket = minio.BucketExistsAsync(BuckName);//判断桶是否存在 + if (bucket.Result == false) //不存在就创建 + { + minio.MakeBucketAsync(BuckName);//创建桶 + } + #endregion + string base64 = ""; + string Operate = "";//操作 + MinioStoragePath date = new MinioStoragePath(); + var file = SliceUploadData.Where(a => a.FileId == master.FileId).OrderBy(a => a.FileNum).ToList();//查询已经传完的唯一标识数据并以切片顺序排序 + if (file.Count != 0)//如果查询数据不为0 + { + if (file.Count.ToString() == master.SliceQuantity)//如果已经缓存的文件条数与总条数相等 + { + List combinedList = new List(); + foreach (var item in file) + { + combinedList.AddRange(item.FileBase64); + } + var contentType = file[0].FileCategory;//获取文件类型 + //byte[] bt = Convert.FromBase64String(base64);//获取html base64 + byte[] bt = combinedList.ToArray(); + var uploadTask = minio.PutObjectAsync(BuckName, "/" + file[0].FileName, new MemoryStream(bt), bt.Length, contentType);//上传文件到minio数据库 + uploadTask.Wait(); + if (uploadTask.Status == TaskStatus.RanToCompletion && !uploadTask.IsFaulted)//判断是否上传成功 + { + #region 文件文件夹路径表字段赋值 + date.Pk = Convert.ToInt32(db.QueryScalar("select S_MINIO_STORAGE_PATH.nextval from dual"));///拿到表自增长的值赋值给自增长主键pk + date.Upk = file[0].Upk;//子文件夹的父级id(如果是根目录默认父级id为0) + date.FileName = file[0].FileName;//文件名称 + date.FileType = file[0].FileType;//文件类型 + date.FilePath = file[0].FilePath;//文件路径 + date.CreatorUser = file[0].CreatorUser;//创建者 + date.CreatorTime = DateTime.Now;//创建时间 + date.ClearFlag = "0";//删除状态为未删除 + date.FileLevel = file[0].FileLevel + 1;//层级 + date.DocumentType = file[0].DocumentType;//文件种类 + #endregion + db.Insert(date); + request.msg = "文件上传成功!"; + request.code = "0"; + #region 记录日志 + Operate = " 上传了一个新的文档,"; + bb.MinioOperationLog(file[0].CreatorUser, file[0].FileName, Operate, date.Pk.ToString(), date.Upk.ToString(), db); + #endregion + SliceUploadData.RemoveAll(a => a.FileId == master.FileId);//清除已经上传文件的缓存 + } + else + { + request.msg = "文件上传失败,请检查文件是否正确!"; + request.code = "1"; + } + } + else + { + SliceUploadData.RemoveAll(a => a.FileId == master.FileId);//清除已经上传文件的缓存 + request.msg = "文件数量上传失败,请重试!"; + request.code = "1"; + } + } + } + catch (Exception ex) + { + request.code = "1"; + logger.InfoFormat(ex.ToString()); + } + } + return request; + } + #endregion + + #region 同步关联 + [HttpPost, Route("UdpDlsync")] + public RequestEntity UdpDlsync(string master) + { + RequestEntity request = new RequestEntity();//定义返回集合 + List data = new List();//定义输出下载的list + List newdata = new List();//定义输出下载的list + List dldata = new List();//定义输出下载的list + List datan = new List(); + List mfcion = new List(); + DataTable dt = new DataTable(); + using (IDbContext db = ObjectContainer.GetObject("db")) + { + using (IDbContext filedb = ObjectContainer.GetObject("filedb")) + { + string sql = ""; + data = db.Query("select * from minio_storage_path where file_type='1' and upk='" + master + "' order by CREATOR_TIME asc").ToList(); + foreach (var item in data) + { + //sql = string.Format("select g.title from ASSETENTRY g where entryid in (select entryid2 from ASSETLINK t where entryid1 = (select t.entryid from ASSETENTRY t ,(select p.fileid from DLSYNC p where p.name = '{0}' and (p.event='add' or p.event = 'update') )o where t.classpk = o.fileid))", item.FileName); + sql = string.Format("select g.title,g.username,g.createdate from ASSETENTRY g where entryid in (select entryid2 from ASSETLINK t where entryid1 = (select t.entryid from ASSETENTRY t ,(select p.fileid from DLSYNC p where p.name = '{0}' and (p.event='add' or p.event = 'update') and p.version='{1}' and ROWNUM = 1 order by p.version desc)o where t.classpk = o.fileid)) ", item.FileName, item.Version); + dt = filedb.Query(sql); + if (dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + MinioFileassociation dc = new MinioFileassociation(); + datan = db.Query("select * from minio_storage_path where file_name='" + dt.Rows[i]["title"].ToString() + "'").ToList(); + if (datan.Count != 0) + { + + + if (item.DocumentType == "1") + { + if (datan[0].DocumentType == "2" || datan[0].DocumentType == "4") + { + dc.Pk = Convert.ToInt32(db.QueryScalar("select S_MINIO_FILEASSOCIATION.nextval from dual")); + dc.FilePk = item.Pk; + dc.FileName = item.FileName; + dc.CreatorUser = dt.Rows[i]["username"].ToString().Replace(" ", ""); + dc.CreatorTime = dt.Rows[i]["createdate"].ToString().ToDateTime(); + dc.FilePath = item.FilePath; + dc.FileLevel = item.FileLevel; + dc.DownloadNum = item.DownloadNum; + dc.FileType = item.FileType; + dc.Version = item.Version; + dc.AssociationFilePk = datan[0].Pk; + dc.AssociationFileName = datan[0].FileName; + dc.AssorciationFilePath = datan[0].FilePath; + dc.AssociationFileType = datan[0].FileType; + dc.AssociationFileLevel = datan[0].FileLevel; + dc.AssociationDownloadNum = datan[0].DownloadNum; + dc.AssociationVersion = datan[0].Version; + mfcion.Add(dc); + } + + } + if (item.DocumentType == "2") + { + if (datan[0].DocumentType == "3" || datan[0].DocumentType == "4") + { + dc.Pk = Convert.ToInt32(db.QueryScalar("select S_MINIO_FILEASSOCIATION.nextval from dual")); + dc.FilePk = item.Pk; + dc.FileName = item.FileName; + dc.CreatorUser = dt.Rows[i]["username"].ToString().Replace(" ", ""); + dc.CreatorTime = dt.Rows[i]["createdate"].ToString().ToDateTime(); + dc.FilePath = item.FilePath; + dc.FileLevel = item.FileLevel; + dc.DownloadNum = item.DownloadNum; + dc.FileType = item.FileType; + dc.Version = item.Version; + dc.AssociationFilePk = datan[0].Pk; + dc.AssociationFileName = datan[0].FileName; + dc.AssorciationFilePath = datan[0].FilePath; + dc.AssociationFileType = datan[0].FileType; + dc.AssociationFileLevel = datan[0].FileLevel; + dc.AssociationDownloadNum = datan[0].DownloadNum; + dc.AssociationVersion = datan[0].Version; + mfcion.Add(dc); + } + } + if (item.DocumentType == "3") + { + if (datan[0].DocumentType == "4") + { + dc.Pk = Convert.ToInt32(db.QueryScalar("select S_MINIO_FILEASSOCIATION.nextval from dual")); + dc.FilePk = item.Pk; + dc.FileName = item.FileName; + dc.CreatorUser = dt.Rows[i]["username"].ToString().Replace(" ", ""); + dc.CreatorTime = dt.Rows[i]["createdate"].ToString().ToDateTime(); + dc.FilePath = item.FilePath; + dc.FileLevel = item.FileLevel; + dc.DownloadNum = item.DownloadNum; + dc.FileType = item.FileType; + dc.Version = item.Version; + dc.AssociationFilePk = datan[0].Pk; + dc.AssociationFileName = datan[0].FileName; + dc.AssorciationFilePath = datan[0].FilePath; + dc.AssociationFileType = datan[0].FileType; + dc.AssociationFileLevel = datan[0].FileLevel; + dc.AssociationDownloadNum = datan[0].DownloadNum; + dc.AssociationVersion = datan[0].Version; + mfcion.Add(dc); + } + } + } + } + } + } + db.Insert(mfcion); + } + + } + return request; + } + #endregion + + #region + [HttpPost, Route("UdpDlsyncFile")] + public RequestEntity UdpDlsyncFile(string master,string parentfolderid, string DocumentType) + { + RequestEntity request = new RequestEntity();//定义返回集合 + List data = new List();//定义输出下载的list + List newdata = new List();//定义输出下载的list + List dldata = new List();//定义输出下载的list + List datan = new List(); + List mfcion = new List(); + DataTable dt = new DataTable(); + DataTable dta = new DataTable(); + string ctime = ""; + string mtime = ""; + using (IDbContext db = ObjectContainer.GetObject("db")) + { + using (IDbContext filedb = ObjectContainer.GetObject("filedb")) + { + string sql = ""; + data = db.Query("select * from minio_storage_path where file_type='1' and upk='" + master + "' order by CREATOR_TIME desc").ToList(); + + //foreach (var item in data) + //{ + //sql = string.Format("select g.title from ASSETENTRY g where entryid in (select entryid2 from ASSETLINK t where entryid1 = (select t.entryid from ASSETENTRY t ,(select p.fileid from DLSYNC p where p.name = '{0}' and (p.event='add' or p.event = 'update') )o where t.classpk = o.fileid))", item.FileName); + sql = string.Format("select * from DLSYNC where parentfolderid='{0}' and (event='update' or event='add') ", parentfolderid, data[0].CreatorTime); + dt = filedb.Query(sql); + string sel = string.Format("select * from minio_storage_path where pk='{0}'", master); ; + dta = db.Query(sel); + if (dt.Rows.Count > 0) + { + for (int i = 0; i < dt.Rows.Count; i++) + { + ctime = dt.Rows[i]["CREATEDATE"].ToString(); + mtime = dt.Rows[i]["MODIFIEDDATE"].ToString(); + MinioStoragePath dc = new MinioStoragePath(); + datan = db.Query("select * from minio_storage_path where file_name='" + dt.Rows[i]["NAME"].ToString() + "'").ToList(); + if (datan.Count < 1) + { + dc.Pk = Convert.ToInt32(db.QueryScalar("select s_minio_storage_path.nextval from dual")); + dc.Upk = Convert.ToInt32(master); + dc.FileName = dt.Rows[i]["NAME"].ToString(); + dc.FileType = 1; + dc.FilePath = dta.Rows[0]["FILE_PATH"].ToString()+"/"+ dt.Rows[i]["NAME"].ToString(); + dc.CreatorUser = "sunliang"; + dc.CreatorTime = ctime.ToDateTime(); + dc.DownloadNum = 0; + dc.FileLevel = Convert.ToInt32( dta.Rows[0]["FILE_LEVEL"].ToString())+1; + dc.ModifyTime = mtime.ToDateTime(); + dc.ClearFlag = "0"; + dc.DocumentType = DocumentType; + dc.Version = dt.Rows[i]["VERSION"].ToString(); + newdata.Add(dc); + } + } + } + //} + db.Insert(newdata); + } + + } + return request; + } + #endregion + } } diff --git a/IBKLinker-Minio/Entity/MinioController/MinioFileassociation.cs b/IBKLinker-Minio/Entity/MinioController/MinioFileassociation.cs index 0422e0a..9ec1652 100644 --- a/IBKLinker-Minio/Entity/MinioController/MinioFileassociation.cs +++ b/IBKLinker-Minio/Entity/MinioController/MinioFileassociation.cs @@ -38,14 +38,14 @@ namespace IBKLinker_Minio.Entity.MinioController ///文件类型 /// [Persistent("FILE_TYPE"), DisplayName("文件类型")] - public string FileType { get; set; } + public int FileType { get; set; } /// ///文件下载次数 /// [Persistent("DOWNLOAD_NUM"), DisplayName("文件下载次数")] - public string DownloadNum { get; set; } + public int DownloadNum { get; set; } @@ -53,7 +53,7 @@ namespace IBKLinker_Minio.Entity.MinioController ///文件层级 /// [Persistent("FILE_LEVEL"), DisplayName("文件层级")] - public string FileLevel { get; set; } + public int FileLevel { get; set; } /// @@ -81,14 +81,14 @@ namespace IBKLinker_Minio.Entity.MinioController ///关联文件类型 /// [Persistent("ASSOCIATION_FILE_TYPE"), DisplayName("关联文件类型")] - public string AssociationFileType { get; set; } + public int AssociationFileType { get; set; } /// ///关联文件下载次数 /// [Persistent("ASSOCIATION_DOWNLOAD_NUM"), DisplayName("关联文件下载次数")] - public string AssociationDownloadNum { get; set; } + public int AssociationDownloadNum { get; set; } @@ -96,7 +96,7 @@ namespace IBKLinker_Minio.Entity.MinioController ///关联文件层级 /// [Persistent("ASSOCIATION_FILE_LEVEL"), DisplayName("关联文件层级")] - public string AssociationFileLevel { get; set; } + public int AssociationFileLevel { get; set; } /// ///关联文件路径 @@ -129,7 +129,7 @@ namespace IBKLinker_Minio.Entity.MinioController /// ///关联文件版本 /// - [Persistent("ASSOCIATION_VERSION"), DisplayName("创建时间")] + [Persistent("ASSOCIATION_VERSION"), DisplayName("关联文件版本")] public string AssociationVersion { get; set; } diff --git a/IBKLinker-Minio/Entity/MinioController/SliceUploadModel.cs b/IBKLinker-Minio/Entity/MinioController/SliceUploadModel.cs new file mode 100644 index 0000000..adc77a3 --- /dev/null +++ b/IBKLinker-Minio/Entity/MinioController/SliceUploadModel.cs @@ -0,0 +1,120 @@ +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 +{ + /// + /// 文件上传前端发送model + /// + public class SliceUploadModel + { + /// + /// 文件唯一标识 + /// + public string FileId { get; set; } + + + /// + /// 文件序号 + /// + public string FileNum { get; set; } + + + /// + /// 切片总数量 + /// + public string SliceQuantity { get; set; } + + /// + /// 文件大小 + /// + public string Size { get; set; } + + /// + ///子文件夹的父ID + /// + public int Upk { get; set; } + + + /// + ///文件名称 + /// + public string FileName { get; set; } + + + /// + ///文件类型 + /// + public int FileType { get; set; } + + + /// + ///文件路径 + /// + public string FilePath { get; set; } + + + /// + ///创建者 + /// + public string CreatorUser { get; set; } + + + /// + ///创建时间 + /// + public DateTime? CreatorTime { get; set; } + + + /// + ///下载次数 + /// + public int DownloadNum { get; set; } + + + /// + ///层级 + /// + public int FileLevel { get; set; } + + + /// + ///修改用户 + /// + public string ModifyUsers { get; set; } + + + /// + ///修改时间 + /// + public DateTime? ModifyTime { get; set; } + + + + /// + ///文件种类 主要分为1、技术协议、2、质量要点、3、工艺卡 4、其他 用于关联文件使用 + /// + public string DocumentType { get; set; } + + /// + ///版本 + /// + public string Version { get; set; } + + + /// + ///文件格式 + /// + public string FileCategory { get; set; } + + /// + ///文件流数据 + /// + public byte[] FileBase64 { get; set; } + } +}