yanjinhui
2025-04-03 5d6ba8e6b477a0ed540e1c3267c2618939a5356b
人脸识别优化
已修改3个文件
31 ■■■■ 文件已修改
项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_ISystemServices/ISys_UserService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_SystemServices/Sys_UserService.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/WIDESEAWCS_ISystemServices/ISys_UserService.cs
@@ -88,6 +88,12 @@
        /// <returns></returns>
        WebResponseContent CleanUnusedImages();
        /// <summary>
        /// ä¿å­˜äººè„¸ç™»å…¥æ—¶çš„图片
        /// </summary>
        /// <param name="files"></param>
        /// <returns></returns>
        WebResponseContent SaveFaceFiles(IFormCollection files);
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -67,6 +67,7 @@
    <ItemGroup>
      <Folder Include="Controllers\BasicInfo\" />
      <Folder Include="wwwroot\UploadfaceImage\" />
    </ItemGroup>
</Project>
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/WIDESEAWCS_SystemServices/Sys_UserService.cs
@@ -881,22 +881,29 @@
            try
            {
                // èŽ·å–æ–‡ä»¶çš„å®Œæ•´è·¯å¾„
                string pathimage = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "UploadfaceImage");
                string pathimage = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "image");
                // å¦‚果文件夹不存在,返回错误信息
                if (!Directory.Exists(pathimage))
                {
                    return new WebResponseContent { Status = false, Message = "图片文件夹不存在" };
                }
                //获取数据库中所有的图片(排除为空) çŽ°åœ¨å›¾ç‰‡åªä¿å­˜äº†æ–‡ä»¶å
                var userImage = BaseDal.QueryData(x => !string.IsNullOrEmpty(x.HeadImageUrl)).Select(x => x.HeadImageUrl).ToList();
                // **使用 HashSet æé«˜æŸ¥æ‰¾æ•ˆçއ**
                var userImageSet = BaseDal.QueryData(x => !string.IsNullOrEmpty(x.HeadImageUrl))
                                          .Select(x => x.HeadImageUrl)
                                          .ToHashSet(); // **提升查询速度**
                //获取文件夹中所有的图片文件
                var imageFiles = Directory.GetFiles(pathimage).Select(Path.GetFileName).ToList();
                // èŽ·å–æ–‡ä»¶å¤¹ä¸­çš„æ‰€æœ‰å›¾ç‰‡æ–‡ä»¶ï¼ˆæ–‡ä»¶åï¼‰
                var imageFiles = Directory.GetFiles(pathimage)
                                          .Select(Path.GetFileName)
                                          .ToList();
                int deletedCount = 0;
                foreach (var file in imageFiles)
                {
                    if (!userImage.Contains(file))
                    // **HashSet æŸ¥è¯¢ O(1)**
                    if (!userImageSet.Contains(file))
                    {
                        string filePath = Path.Combine(pathimage, file);
                        try
@@ -910,16 +917,15 @@
                        }
                    }
                }
                return new WebResponseContent { Status = true, Message = $"清理完成,删除了 {deletedCount} å¼ æœªä½¿ç”¨çš„图片" };
                return new WebResponseContent { Status = true, Message = $"清理完成,删除了 {deletedCount} å¼ æœªä½¿ç”¨çš„图片" };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = $"清理失败: {ex.Message}" };
            }
        }
    }
}