Parcourir la source

共享文件Api初始化

yuanrf il y a 1 mois
Parent
commit
6cbf945967

+ 1 - 1
OASystem/EntitySync/Program.cs

@@ -153,6 +153,6 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Sys_FormTemp), //表单模板
     //typeof(Grp_OrderPreInfo), //团组下单前信息
     //typeof(Grp_OrderPreItem), //团组下单前信息Item
-    typeof(GroupShareFile),//团组共享文件
+    typeof(Grp_GroupShareFile),//团组共享文件
 }); 
 Console.WriteLine("数据库结构同步完成!");

+ 243 - 148
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -4982,6 +4982,10 @@ FROM
             }
         }
 
+        #endregion
+
+        #region 票据上传
+
         /// <summary>
         /// 团组模块文件上传
         /// </summary>
@@ -5097,153 +5101,6 @@ FROM
             return Ok(jw);
         }
 
-        [HttpPost]
-        public IActionResult SharedFileUpload([FromForm] SharedFileUploadDto dto)
-        {
-            if (dto.Files == null || dto.Files.Count == 0)
-            {
-                return Ok(JsonView(false, "无文件信息!"));
-            }
-
-            if (dto.Files.Sum(x => x.Length) > 20 * 1024 * 1024)
-            {
-                return Ok(JsonView(false, "文件大小超过20M!"));
-            }
-
-            if(dto.Userid < 1)
-            {
-                return Ok(JsonView(false, "请传入有效的Userid!"));
-            }
-
-            var jobInfo = _sqlSugar.Queryable<Sys_Users, Sys_JobPost>((u, j) => u.JobPostId == j.Id && j.IsDel == 0)
-                                    .Where(u => u.IsDel == 0 && u.Id == dto.Userid)
-                                    .Select((u,j)=> new
-                                    {
-                                        u.CnName,
-                                        UserId = u.Id,
-                                        j.JobName,
-                                    })
-                                    .First();
-
-            if (jobInfo == null)
-            {
-                return Ok(JsonView(false, "请传入有效的Userid!"));
-            }
-
-            List<string> commonFileExtensions = new List<string>
-            {
-                // 文本文件
-                ".txt", ".doc", ".docx", ".odt", ".pdf", ".rtf", ".md", ".log",
-            
-                // 图片文件
-                ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".svg",
-            
-                // 视频文件
-                ".mp4", ".avi", ".mov", ".mkv", ".wmv", ".flv", ".mpg", ".mpeg",
-            
-                // 音频文件
-                ".mp3", ".wav", ".ogg", ".aac", ".flac",
-            
-                // 压缩文件
-                ".zip", ".rar", ".7z", ".tar", ".gz", ".bz2",
-            
-                // 数据文件
-                ".csv", ".xls", ".xlsx", ".json", ".xml", ".yaml", ".ini",
-            };
-
-            try
-            {
-                var setting = _sqlSugar.Queryable<Sys_SetData>().First(x => x.Id == 1416);
-                var settingExtend = JsonConvert.DeserializeObject<List<string>>(setting.Remark);
-                commonFileExtensions.AddRange(settingExtend);
-            }
-            catch (Exception)
-            {}
-
-            var setdata = _sqlSugar.Queryable<Sys_SetData>().First(x => x.Id == dto.FileType);
-
-            if (setdata == null)
-            {
-                return Ok(JsonView(false, "请传入有效的FileType!"));
-            }
-
-            List<GroupShareFile> insertList = new List<GroupShareFile>();
-
-            string winPath = AppSettingsHelper.Get("ShareFileBasePath") + $"\\{setdata.Name}\\";
-
-            if (!Directory.Exists(winPath))
-            {
-                Directory.CreateDirectory(winPath);
-            }
-
-            foreach (var item in dto.Files)
-            {
-                var houzui = Path.GetExtension(item.FileName);
-
-                if (!commonFileExtensions.Contains(houzui))
-                {
-                    return Ok(JsonView(false, "未知后缀名称!"));
-                }
-
-                var fileName = $"{jobInfo.JobName}-{jobInfo.CnName}-{item.FileName}";
-                var saveFilePath = winPath + fileName;
-
-                using (FileStream fs = System.IO.File.Create(saveFilePath))
-                {
-                    item.CopyTo(fs);
-                    fs.Flush();
-                }
-
-                var fileDetail = new GroupShareFile()
-                {
-                    CreateUserId = dto.Userid,
-                    CreateTime = DateTime.Now,
-                    UploadJob = jobInfo.JobName,
-                    FileName = fileName,
-                    FileType = dto.FileType,
-                    Diid = dto.Diid,
-                    FilePath = winPath + fileName,
-                };
-
-                insertList.Add(fileDetail);
-            }
-
-            _sqlSugar.Insertable<GroupShareFile>(insertList).ExecuteCommand();
-
-            return Ok(JsonView(true,"保存成功!"));
-            
-        }
-
-        [HttpPost]
-        public IActionResult QuerySharedFile(QuerySharedFileDto dto) 
-        {
-            var queryExpression = Expressionable.Create<GroupShareFile>()
-                .AndIF(dto.Diid != 0, x => x.Diid == dto.Diid)
-                .AndIF(dto.FileType != 0, x => x.FileType == dto.FileType)
-                .And(x => x.IsDel == 0);
-
-            int totalCount = 0;
-            var dbQuery = _sqlSugar.Queryable<GroupShareFile>()
-                        .Where(queryExpression.ToExpression())
-                        .Select(x => new
-                        {
-                            x.Id,
-                            FilePath = AppSettingsHelper.Get("ShareFileBaseUrl") + x.FilePath.Replace(AppSettingsHelper.Get("ShareFileBasePath"), AppSettingsHelper.Get("ShareFileFtpPath")),
-                            x.FileName,
-                            x.FileType,
-                            x.CreateTime,
-                        })
-                        .ToPageList(dto.PageIndex, dto.PageSize, ref totalCount);
-
-            return Ok(JsonView(true, "success", new
-            {
-                FileList = dbQuery,
-                dto.PageSize,
-                dto.PageIndex,
-                totalCount
-            }));
-        }
-
         /// <summary>
         /// 查询各模块已保存文件
         /// </summary>
@@ -5474,6 +5331,244 @@ FROM
 
         #endregion
 
+        #region 共享文件上传
+
+        /// <summary>
+        /// 共享文件数据初始化
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public IActionResult SharedFileInit()
+        {
+            var dropDownType = _sqlSugar.Queryable<Sys_SetData>()
+                .Where(x => x.STid == 111 && x.IsDel == 0)
+                .Select(x => new
+                {
+                    x.Name,
+                    x.Id,
+                }).ToList();
+
+            var dropDownGroupList = _sqlSugar.Queryable<Grp_DelegationInfo>()
+                .Where(x => x.IsDel == 0)
+                .Select(x => new
+                {
+                    x.TeamName,
+                    x.Id,
+                }).ToList();
+
+            return Ok(JsonView(true, "SUCCESS!", new
+            {
+                dropDownType,
+                dropDownGroupList
+            }));
+        }
+
+        /// <summary>
+        /// 共享文件上传
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult SharedFileUpload([FromForm] SharedFileUploadDto dto)
+        {
+            var isGroup = new List<int> { 1412 };
+
+            if (isGroup.Contains(dto.FileType) && dto.Diid < 1)
+            {
+                return Ok(JsonView(false, "该文件需要关联团组!"));
+            }
+
+            if (dto.Files == null || dto.Files.Count == 0)
+            {
+                return Ok(JsonView(false, "无文件信息!"));
+            }
+
+            if (dto.Files.Sum(x => x.Length) > 20 * 1024 * 1024)
+            {
+                return Ok(JsonView(false, "文件大小超过20M!"));
+            }
+
+            if (dto.Userid < 1)
+            {
+                return Ok(JsonView(false, "请传入有效的Userid!"));
+            }
+
+            var jobInfo = _sqlSugar.Queryable<Sys_Users, Sys_JobPost>((u, j) => u.JobPostId == j.Id && j.IsDel == 0)
+                                    .Where(u => u.IsDel == 0 && u.Id == dto.Userid)
+                                    .Select((u, j) => new
+                                    {
+                                        u.CnName,
+                                        UserId = u.Id,
+                                        j.JobName,
+                                    })
+                                    .First();
+
+            if (jobInfo == null)
+            {
+                return Ok(JsonView(false, "请传入有效的Userid!"));
+            }
+
+            List<string> commonFileExtensions = new List<string>
+            {
+                // 文本文件
+                ".txt", ".doc", ".docx", ".odt", ".pdf", ".rtf", ".md", ".log",
+
+                // 图片文件
+                ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".svg",
+
+                // 视频文件
+                ".mp4", ".avi", ".mov", ".mkv", ".wmv", ".flv", ".mpg", ".mpeg",
+
+                // 音频文件
+                ".mp3", ".wav", ".ogg", ".aac", ".flac",
+
+                // 压缩文件
+                ".zip", ".rar", ".7z", ".tar", ".gz", ".bz2",
+
+                // 数据文件
+                ".csv", ".xls", ".xlsx", ".json", ".xml", ".yaml", ".ini",
+            };
+
+            try
+            {
+                var setting = _sqlSugar.Queryable<Sys_SetData>().First(x => x.Id == 1416);
+                var settingExtend = JsonConvert.DeserializeObject<List<string>>(setting.Remark);
+                commonFileExtensions.AddRange(settingExtend);
+            }
+            catch (Exception)
+            { }
+
+            var setdata = _sqlSugar.Queryable<Sys_SetData>().First(x => x.Id == dto.FileType);
+
+            if (setdata == null)
+            {
+                return Ok(JsonView(false, "请传入有效的FileType!"));
+            }
+
+            List<Grp_GroupShareFile> insertList = new List<Grp_GroupShareFile>();
+
+            string winPath = AppSettingsHelper.Get("ShareFileBasePath") + $"/{setdata.Name}/";
+
+            if (!Directory.Exists(winPath))
+            {
+                Directory.CreateDirectory(winPath);
+            }
+
+            foreach (var item in dto.Files)
+            {
+                var houzui = Path.GetExtension(item.FileName);
+
+                if (!commonFileExtensions.Contains(houzui))
+                {
+                    return Ok(JsonView(false, "未知后缀名称!"));
+                }
+
+                var fileName = $"{jobInfo.JobName}-{jobInfo.CnName}-{item.FileName}";
+                var saveFilePath = winPath + fileName;
+
+                using (FileStream fs = System.IO.File.Create(saveFilePath))
+                {
+                    item.CopyTo(fs);
+                    fs.Flush();
+                }
+
+                var fileDetail = new Grp_GroupShareFile()
+                {
+                    CreateUserId = dto.Userid,
+                    CreateTime = DateTime.Now,
+                    UploadJob = jobInfo.JobName,
+                    FileName = fileName,
+                    FileType = dto.FileType,
+                    Diid = dto.Diid,
+                    FilePath = winPath + fileName,
+                };
+
+                insertList.Add(fileDetail);
+            }
+
+            _sqlSugar.Insertable<Grp_GroupShareFile>(insertList).ExecuteCommand();
+
+            return Ok(JsonView(true, "保存成功!"));
+
+        }
+
+        /// <summary>
+        /// 查询共享文件列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult QuerySharedFile(QuerySharedFileDto dto)
+        {
+            var isGroup = new List<int> { 1412 };
+            if (!isGroup.Contains(dto.FileType)) dto.Diid = 0;
+
+            var queryExpression = Expressionable.Create<Grp_GroupShareFile>()
+                .And(x => x.Diid == dto.Diid)
+                .And(x => x.FileType == dto.FileType)
+                .And(x => x.IsDel == 0);
+
+            int totalCount = 0;
+            var dbQuery = _sqlSugar.Queryable<Grp_GroupShareFile>()
+                        .Where(queryExpression.ToExpression())
+                        .Select(x => new
+                        {
+                            x.Id,
+                            FilePath = AppSettingsHelper.Get("ShareFileBaseUrl") + x.FilePath.Replace(AppSettingsHelper.Get("ShareFileBasePath"), AppSettingsHelper.Get("ShareFileFtpPath")),
+                            x.FileName,
+                            x.FileType,
+                            x.CreateTime,
+                        })
+                        .ToPageList(dto.PageIndex, dto.PageSize, ref totalCount);
+
+            return Ok(JsonView(true, "SUCCESS!", new
+            {
+                FileList = dbQuery,
+                dto.PageSize,
+                dto.PageIndex,
+                totalCount
+            }));
+        }
+
+        /// <summary>
+        /// 删除共享文件模块下的指定文件
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult DeleteSharedFile(DeleteGroupFileDto dto)
+        {
+            var jw = JsonView(false);
+            var sing = _sqlSugar.Queryable<Grp_GroupShareFile>().First(x => x.Id == dto.Id && x.IsDel == 0);
+            if (sing == null)
+            {
+                jw.Msg = "暂无文件信息!";
+                return Ok(jw);
+            }
+
+            if (System.IO.File.Exists(sing.FilePath))
+            {
+                try
+                {
+                    System.IO.File.Delete(sing.FilePath);
+                }
+                catch (Exception ex)
+                {
+                    jw.Msg = "删除失败!" + ex.Message;
+                    return Ok(jw);
+                }
+            }
+
+            sing.IsDel = 1;
+            sing.DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            sing.DeleteUserId = dto.UserId;
+            _sqlSugar.Updateable<Grp_GroupShareFile>(sing).ExecuteCommand();
+            jw = JsonView(true, "删除成功!");
+            return Ok(jw);
+        }
+
+        #endregion
+
         #region 团组英文资料
         /// <summary>
         /// 查询团组英文所有资料
@@ -22366,7 +22461,7 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
                             //trip += $"从{start_Object.AirPort}搭乘{aircompany.CnName}{flightcode}飞往{end_Object.City}。\r\n({start_Object.AirPort}/{end_Object.AirPort}  机型:{airModel}  飞行时间{flightTime});\r\n";
 
                             //乘坐四川航空3U3901次航班由成都飞往加德满都,3小时25分钟
-                            trip += $"乘坐{aircompany.CnName}{flightcode}次航班由{start_Object.City}飞往{end_Object.City},{flightTime}";
+                            trip += $"乘坐{aircompany.CnName}{flightcode}次航班由{start_Object.City}飞往{end_Object.City}{flightTime}";
 
                             isTrade = Convert.ToBoolean(item["isTransitShipment"]);
 

+ 1 - 1
OASystem/OASystem.Domain/Entities/Groups/GroupShareFile.cs

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace OASystem.Domain.Entities.Groups
 {
-    public class GroupShareFile:EntityBase
+    public class Grp_GroupShareFile:EntityBase
     {
         /// <summary>
         /// 文件名称