yanjinhui
昨天 c6f41b547bf479dbe4d722794b308984eb0bfe03
ÏîÄ¿´úÂë/ºó¶Ë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserFaceService.cs
@@ -1,4 +1,6 @@

using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using SkiaSharp;
using System.Drawing;
using System.Drawing.Imaging;
using WIDESEAWCS_Common.Face;
@@ -7,6 +9,8 @@
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_Core.Const;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
using File = System.IO.File;
@@ -96,7 +100,7 @@
                        Message = "登录失败:" + ex.Message
                    };
                }
            }
            finally
            {
@@ -123,6 +127,15 @@
                    };
                }
                //if (App.User.IsSuperAdmin)
                //{
                //    return new WebResponseContent
                //    {
                //        Status = false,
                //        Message = "无权限"
                //    };
                //}
                string str = Environment.CurrentDirectory;
                byte[] data = Convert.FromBase64String(model.Base64Image);
@@ -139,79 +152,49 @@
                }
                string fileName = $"face_{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.jpg";
                string path = "Record\\" + fileName;
                string filePath = basePath + fileName;
                // ä½¿ç”¨å­—节数组创建MemoryStream
                //// ä½¿ç”¨å­—节数组创建MemoryStream
                using (MemoryStream ms = new MemoryStream(data))
                {
                    // ä»ŽMemoryStream创建Image对象
                    Image image = Image.FromStream(ms);
                    image.Save(curPath + fileName, ImageFormat.Png);
                    {
                        var (flag, result) = FaceHelper.FaceRecognition(basePath, curPath + fileName);
                        if (flag)
                        {
                            Sys_UserFace userFaceTemp = BaseDal.QueryFirst(x => x.UserFaceImagePath.Contains(result));
                            if (userFaceTemp != null && userFaceTemp.User_Id != App.User.UserId && userFaceTemp.UserName != App.User.UserName)
                            {
                                return new WebResponseContent
                                {
                                    Status = false,
                                    Message = "不可注册多个账号"
                                };
                            }
                        }
                    }
                    image.Save(curPath + fileName, ImageFormat.Png);
                    image.Save(filePath, ImageFormat.Png);
                }
                // èŽ·å–å½“å‰ç”¨æˆ·ä¿¡æ¯
                Sys_UserFace userFace = BaseDal.QueryFirst(x => x.UserName == App.User.UserName && x.User_Id == App.User.UserId);
                Sys_UserFace userFace = BaseDal.QueryFirst(x => x.User_Id == model.UserId);
                if (userFace != null)
                {
                    if (!string.IsNullOrEmpty(userFace.UserFaceImagePath))
                    {
                        string? firstImagePath = userFace.UserFaceImagePath.Split(',').FirstOrDefault();
                        if (!string.IsNullOrEmpty(firstImagePath))
                        {
                            var (flag, result) = FaceHelper.FaceRecognitionOne(firstImagePath, filePath);
                            if (flag)
                            {
                                userFace.UserFaceImagePath += "," + filePath;
                    userFace.UserFaceImagePath = filePath;
                    userFace.UserFaceImageName = path;
                                base.UpdateData(userFace);
                    base.UpdateData(userFace);
                                return WebResponseContent.Instance.OK("人脸录入成功", filePath);
                            }
                            else
                            {
                                return WebResponseContent.Instance.Error(result);
                            }
                        }
                    }
                    else
                    {
                        userFace.UserFaceImagePath = filePath;
                    return WebResponseContent.Instance.OK("人脸录入成功", filePath);
                        base.UpdateData(userFace);
                        return WebResponseContent.Instance.OK("人脸录入成功", filePath);
                    }
                }
                Sys_User user = _userRepository.QueryFirst(x => x.User_Id == model.UserId);
                if (user == null)
                {
                    return WebResponseContent.Instance.Error("未找到用户信息");
                }
                userFace = new Sys_UserFace
                {
                    User_Id = App.User.UserId,
                    UserName = App.User.UserName,
                    UserFaceImageName = fileName,
                    User_Id = user.User_Id,
                    UserName = user.UserName,
                    UserFaceImageName = path,
                    UserFaceImagePath = filePath
                };
                base.AddData(userFace);
                return WebResponseContent.Instance.OK(data: filePath);
            }
@@ -226,5 +209,29 @@
        }
        /// <summary>
        /// äººè„¸ç™»å…¥ç»™å‰ç«¯è¿”回账号和密码
        /// </summary>
        /// <param name="ID">用户id</param>
        /// <returns></returns>
        public WebResponseContent ReturnAccount(int ID)
        {
            var user = _userRepository.QueryData(x => x.User_Id == ID).FirstOrDefault();
            if (user == null)
            {
                return WebResponseContent.Instance.Error("没有找到该用户");
            }
            // è§£å¯†å¯†ç 
            string plainPassword = user.UserPwd.DecryptDES(AppSecret.User);
            return new WebResponseContent
            {
                Status = true,
                Data = new { Account = user.UserName, Password = plainPassword }
            };
        }
    }
}