| | |
| | |  |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; |
| | | using SkiaSharp; |
| | | using System.Drawing; |
| | | using System.Drawing.Imaging; |
| | | using WIDESEAWCS_Common.Face; |
| | |
| | | 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; |
| | |
| | | Message = "ç»å½å¤±è´¥ï¼" + ex.Message |
| | | }; |
| | | } |
| | | |
| | | |
| | | } |
| | | finally |
| | | { |
| | |
| | | }; |
| | | } |
| | | |
| | | //if (App.User.IsSuperAdmin) |
| | | //{ |
| | | // return new WebResponseContent |
| | | // { |
| | | // Status = false, |
| | | // Message = "æ æé" |
| | | // }; |
| | | //} |
| | | |
| | | string str = Environment.CurrentDirectory; |
| | | |
| | | byte[] data = Convert.FromBase64String(model.Base64Image); |
| | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /// <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 } |
| | | }; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |