diff --git a/ZR.Admin.WebApi/Controllers/CommonController.cs b/ZR.Admin.WebApi/Controllers/CommonController.cs index a92a718..1d8be58 100644 --- a/ZR.Admin.WebApi/Controllers/CommonController.cs +++ b/ZR.Admin.WebApi/Controllers/CommonController.cs @@ -14,6 +14,7 @@ using ZR.ServiceCore.Resources; using ZR.Service.Business.IBusinessService; using ZR.Service.Business; using System.Threading.Tasks; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityUpdateStoreRequest.Types; namespace ZR.Admin.WebApi.Controllers { @@ -32,6 +33,8 @@ namespace ZR.Admin.WebApi.Controllers private readonly IStringLocalizer _localizer; public readonly ISysDeptService _deptService; public readonly ISysDictDataService sysDictDataService; + + private string domainUrl = AppSettings.GetConfig("Upload:uploadUrl"); /// /// 工作记录接口 /// @@ -253,6 +256,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPost] [Route("/addworkrecord")] + [AllowAnonymous] public async Task AddCamWorkRecord([FromBody] CamRecordWorkDto parm) { if (parm.Workers == null || parm.Workers.Count == 0) @@ -263,40 +267,77 @@ namespace ZR.Admin.WebApi.Controllers { return ToResponse(ResultCode.PARAM_ERROR, "请上传图片"); } - // -当日所有照片 + //-当日所有照片 //- 当日根据【人名】分类的照片 //- 当日根据【工作内容】分类的照片 //- 当日根据【部门】分类的照片 var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image); var imageName = ImageConverter.GenerateImageFileName(imageprx); - var filePath = "files/" + DateTime.Now.ToString("yyyyMMdd"); - var path = Path.GetFullPath(filePath); - //try - //{ - // var path = Path.GetFullPath(filePath); - if (!Directory.Exists(path)) + var filePath = "/workfiles/" + DateTime.Now.ToString("yyyy/yyyyMMdd"); + string savePath = Path.Combine(WebHostEnvironment.WebRootPath); + var path = savePath + filePath; + var images = ImageConverter.Base64ToImageBytes(parm.Image); + if (images.Length == 0) { - Directory.CreateDirectory(path); + return ToResponse(ResultCode.CUSTOM_ERROR, "图片上传失败"); + } + var participantsUrl = $"{path}/参与人员/"; + var photosDay = $"{path}/当日照片/"; + var jobContent = $"{path}/工作内容/"; + var department = $"{path}/部门/"; + //添加当日照片 + if (!Directory.Exists(photosDay)) + { + Directory.CreateDirectory(photosDay); + } + var photosDayFileName = $"{photosDay}/{imageName}"; + using (var stream = new FileStream(photosDayFileName, FileMode.Create)) + { + await stream.WriteAsync(images, 0, images.Length); + } + //添加当日根据【人名】分类的照片 + foreach (var work in parm.Workers) + { + var participantsUrlFIleName = $"{participantsUrl}/{work}/"; + if (!Directory.Exists(participantsUrlFIleName)) + { + Directory.CreateDirectory(participantsUrlFIleName); + } + participantsUrlFIleName += imageName; + using (var stream = new FileStream(participantsUrlFIleName, FileMode.Create)) + { + await stream.WriteAsync(images, 0, images.Length); + } + } + //添加当日根据【工作内容】分类的照片 + var jobContentUrl = $"{jobContent}/{parm.Content}/"; + if (!Directory.Exists(jobContentUrl)) + { + Directory.CreateDirectory(jobContentUrl); + } + jobContentUrl += imageName; + using (var stream = new FileStream(jobContentUrl, FileMode.Create)) + { + await stream.WriteAsync(images, 0, images.Length); + } + //添加当日根据【部门】分类的照片 + var departmentUrl = $"{department}{parm.DeptName}/"; + if (!Directory.Exists(departmentUrl)) + { + Directory.CreateDirectory(departmentUrl); + } + departmentUrl += imageName; + using (var stream = new FileStream(departmentUrl, FileMode.Create)) + { + await stream.WriteAsync(images, 0, images.Length); } - // using (var stream = new FileStream(finalPath, FileMode.Create)) - // { - // await stream.WriteAsync(images, 0, images.Length); - // } - //} - //catch (Exception ex) - //{ - //} - //if (!string.IsNullOrEmpty(domainUrl)) - //{ - // finalPath = domainUrl + "/" + finalPath; - //} //备份一下本地 var modal = parm.Adapt().ToCreate(HttpContext); modal.CreateTime = DateTime.Now; modal.UpdateTime = DateTime.Now; + modal.ImageUrl = $"{domainUrl}{filePath}/当日照片/{imageName}"; modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync(); - var response = _CamWorkrecordService.AddCamWorkrecord(modal); - var workid = response.Id; + var workid = modal.Id; var workers = new List(); foreach (var item in parm.Workers) { @@ -310,7 +351,7 @@ namespace ZR.Admin.WebApi.Controllers workers.Add(worker); } _CamWorkerService.AsInsertable(workers).ExecuteCommand(); - return SUCCESS(response); + return SUCCESS(1); } } } diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index 1e55f82..18d6d97 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -48,7 +48,7 @@ "DemoMode": false, //是否演示模式 "SingleLogin": false, //是否允许多设备/浏览器登录 "workId": 1, //雪花id唯一数字 - "sqlExecutionTime": 5, //Sql执行时间超过多少秒记录日志并警报 + "sqlExecutionTime": 5, //Sql执行时间超过多少秒记录日志并警报 "Upload": { "uploadUrl": "http://localhost:8888", //本地存储资源访问路径 "localSavePath": "file", //本地上传默认文件存储目录 wwwroot diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/张三/1755531373_7849.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/张三/1755531373_7849.jpg new file mode 100644 index 0000000..9a41ca5 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/张三/1755531373_7849.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/李四/1755531373_7849.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/李四/1755531373_7849.jpg new file mode 100644 index 0000000..9a41ca5 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/李四/1755531373_7849.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/脾气/1755531044_7059.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/脾气/1755531044_7059.jpg new file mode 100644 index 0000000..63f2785 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/参与人员/脾气/1755531044_7059.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/泡三/1755531044_7059.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/泡三/1755531044_7059.jpg new file mode 100644 index 0000000..63f2785 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/泡三/1755531044_7059.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/测试1/1755531373_7849.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/测试1/1755531373_7849.jpg new file mode 100644 index 0000000..9a41ca5 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/工作内容/测试1/1755531373_7849.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531044_7059.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531044_7059.jpg new file mode 100644 index 0000000..63f2785 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531044_7059.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531373_7849.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531373_7849.jpg new file mode 100644 index 0000000..9a41ca5 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/当日照片/1755531373_7849.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531044_7059.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531044_7059.jpg new file mode 100644 index 0000000..63f2785 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531044_7059.jpg differ diff --git a/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531373_7849.jpg b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531373_7849.jpg new file mode 100644 index 0000000..9a41ca5 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/workfiles/2025/20250818/部门/研发部门/1755531373_7849.jpg differ diff --git a/ZR.Admin.WebApi/wwwrootworkfiles/2025/20250818/当日照片/1755530994_1794.jpg b/ZR.Admin.WebApi/wwwrootworkfiles/2025/20250818/当日照片/1755530994_1794.jpg new file mode 100644 index 0000000..e69de29 diff --git a/ZR.Common/ImageConverter.cs b/ZR.Common/ImageConverter.cs index 0e82bf6..643b6e7 100644 --- a/ZR.Common/ImageConverter.cs +++ b/ZR.Common/ImageConverter.cs @@ -88,7 +88,24 @@ public static class ImageConverter // 拼接文件名 return $"{timestamp}_{randomNumber}{extension}"; } + /// + /// 生成图片名称:时间戳(秒)+4位随机数字 + /// 示例:16907832451234.png + /// + /// 文件扩展名(例如 .png、.jpg),可选,默认值为 .png + /// 生成的图片文件名 + public static string GenerateImageFileNameTime(string extension = ".png") + { + // 获取当前时间戳(秒) + string now = DateTime.Now.ToString("yyyyMMddHHmmssfff"); + // 生成 4 位随机数(1000 - 9999) + Random random = new Random(); + int randomNumber = random.Next(1000, 10000); + + // 拼接文件名 + return $"{now}_{randomNumber}{extension}"; + } }