| | |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | using Microsoft.AspNetCore.Builder; |
| | | using WIDESEAWCS_DTO.SerialPort; |
| | | using WIDESEAWCS_DTO.Telescopic; |
| | | using WIDESEAWCS_Common; |
| | | using Newtonsoft.Json; |
| | | |
| | | namespace WIDESEAWCS_SystemServices |
| | | { |
| | |
| | | private readonly ISys_RoleRepository _RoleRepository; |
| | | private readonly ILoginHistoryRepository _loginHistoryRepository; |
| | | private readonly IPutakeRepository _putakeRepository; |
| | | private readonly IFaceRecognitionRepository _faceRecognitionRepository; |
| | | |
| | | public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, |
| | | |
| | | |
| | | public Sys_UserService(IFaceRecognitionRepository faceRecognitionRepository, ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, |
| | | ICacheService cacheService, ISys_MenuService menuService, ISys_RoleRepository roleRepository, ILoginHistoryRepository loginHistoryRepository, IPutakeRepository putakeRepository) : base(repository) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _RoleRepository = roleRepository; |
| | | _loginHistoryRepository = loginHistoryRepository; |
| | | _putakeRepository = putakeRepository; |
| | | _faceRecognitionRepository = faceRecognitionRepository; |
| | | |
| | | } |
| | | |
| | | public WebResponseContent Login(LoginInfo loginInfo) |
| | |
| | | |
| | | } |
| | | #endregion |
| | | if (!string.IsNullOrEmpty(loginInfo.path)) |
| | | { |
| | | var faceResult = BaiDuFaceHelper.FaceSearch(loginInfo.path); |
| | | |
| | | if (faceResult != null && faceResult.error_code == 0) |
| | | { |
| | | // è·åæé«å¹é
度çç¨æ· |
| | | var bestMatch = faceResult.result.user_list.OrderByDescending(u => u.score).FirstOrDefault();//æ¿ç¬¬ä¸ä¸ªæé«ç |
| | | |
| | | if (bestMatch != null && double.TryParse(bestMatch.score, out double score) && score > 80) // 设å®80å为å¯ä¿¡åº¦éå¼ |
| | | { |
| | | return new WebResponseContent { Data = true }; |
| | | } |
| | | } |
| | | |
| | | return WebResponseContent.Instance.Error("人è¸è¯å«å¤±è´¥ï¼è¯·éè¯"); |
| | | } |
| | | else |
| | | { |
| | | UserInfo user = BaseDal.GetUserInfo(loginInfo.UserName, loginInfo.Password); |
| | | var disbled = BaseDal.QueryFirst(x => x.UserName == loginInfo.UserName);//æ ¹æ®è¿ä¸ªç¨æ·åæ¥æ¥çç¨æ· |
| | | if (user != null) |
| | |
| | | content = WebResponseContent.Instance.Error("è´¦å·æå¯ç é误"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¥çç¨æ·ä¿¡æ¯å人è¸è¯å«è¡¨ |
| | | /// </summary> |
| | | /// <param name="paginationDTO"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetUserFace(PaginationDTO paginationDTO) |
| | | { |
| | | try |
| | | { |
| | | int totalCount = 0; |
| | | var sys = Db.Queryable<Sys_User>(); |
| | | var face = _faceRecognitionRepository.Db.Queryable<Dt_FaceRecognition>(); |
| | | |
| | | if (face == null) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "æ°æ®ä¸ºç©º" }; |
| | | } |
| | | |
| | | var query = sys.LeftJoin<Dt_FaceRecognition>((a, b) => a.Log_id == b.ID); |
| | | if (!string.IsNullOrEmpty(paginationDTO.searchKeyword)) |
| | | { |
| | | query = query.Where((a, b) => |
| | | a.UserName.Contains(paginationDTO.searchKeyword) || |
| | | a.UserTrueName.Contains(paginationDTO.searchKeyword) || |
| | | a.PhoneNo.Contains(paginationDTO.searchKeyword) || |
| | | a.RoleName.Contains(paginationDTO.searchKeyword) || |
| | | a.Role_Id.ToString().Contains(paginationDTO.searchKeyword) |
| | | ); |
| | | } |
| | | if (paginationDTO.startDate.HasValue && paginationDTO.endDate.HasValue) |
| | | { |
| | | query = query.Where((a, b) => a.CreateDate >= paginationDTO.startDate && a.CreateDate <= paginationDTO.endDate); |
| | | } |
| | | |
| | | var result = query.Select((a, b) => new |
| | | { |
| | | a.User_Id, |
| | | a.UserName, |
| | | a.UserTrueName, |
| | | a.PhoneNo, |
| | | a.Role_Id, |
| | | a.RoleName, |
| | | a.HeadImageUrl, |
| | | a.Enable, |
| | | a.CreateDate, |
| | | a.Face_token, |
| | | b.GroupID, |
| | | }).ToPageList(paginationDTO.pageIndex, paginationDTO.pageSize, ref totalCount); |
| | | return new WebResponseContent |
| | | { |
| | | Status = true, |
| | | Data = new |
| | | { |
| | | TotalCount = totalCount,//æ»æ° |
| | | PageIndex = paginationDTO.pageIndex,//é¡µæ° |
| | | PaseSize = paginationDTO.pageSize,//ä¸é¡µå¤å°æ°æ® |
| | | Items = result//è¿ååæ®µ |
| | | } |
| | | |
| | | }; |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | |
| | | public WebResponseContent AdduserData(AddUserDTO addUserDTO) |
| | | { |
| | | try |
| | | { |
| | | |
| | | var baiduResult = BaiDuFaceHelper.AddUser(new BDUserInfo |
| | | { |
| | | ImgPath = addUserDTO.path, |
| | | user_id = addUserDTO.username, |
| | | group_id = addUserDTO.log_id // è¿éåºè¯¥å¡«ç¾åº¦äººè¸åºåç» |
| | | }); |
| | | |
| | | |
| | | // 夿ç¾åº¦è¿åæ¯å¦æå |
| | | if (baiduResult == null || baiduResult.error_code != 0) |
| | | { |
| | | return new WebResponseContent { Status = false, Data = "äººè¸æ³¨å失败ï¼" + baiduResult.error_msg }; |
| | | } |
| | | |
| | | // åå»ºç¨æ·æ°æ® |
| | | var sys = new Sys_User |
| | | { |
| | | UserName = addUserDTO.username, |
| | | HeadImageUrl=addUserDTO.path, |
| | | Log_id = addUserDTO.log_id, |
| | | Face_token = baiduResult.result.face_token, |
| | | PhoneNo = addUserDTO.phoneno, |
| | | Role_Id = addUserDTO.roleid, |
| | | RoleName = addUserDTO.rolename, |
| | | Enable = addUserDTO.enable, |
| | | UserPwd= "j79rYYvCz4vdhcboB1Ausg==" |
| | | }; |
| | | BaseDal.AddData(sys); |
| | | return new WebResponseContent { Status = true, Data = sys }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | return new WebResponseContent { Status = false, Message = "失败" + ex }; |
| | | } |
| | | |
| | | } |
| | | |
| | | public WebResponseContent UpuserData(AddUserDTO addUserDTO) |
| | | { |
| | | try |
| | | { |
| | | |
| | | var baiduResult = BaiDuFaceHelper.AddUser(new BDUserInfo |
| | | { |
| | | ImgPath = addUserDTO.path, |
| | | user_id = addUserDTO.username, |
| | | group_id = addUserDTO.log_id // è¿éåºè¯¥å¡«ç¾åº¦äººè¸åºåç» |
| | | }); |
| | | |
| | | |
| | | // 夿ç¾åº¦è¿åæ¯å¦æå |
| | | if (baiduResult == null || baiduResult.error_code != 0) |
| | | { |
| | | return new WebResponseContent { Status = false, Data = "äººè¸æ´æ°å¤±è´¥ï¼" + baiduResult.error_msg }; |
| | | } |
| | | |
| | | // æ´æ°ç¨æ·æ°æ® |
| | | var sys = new Sys_User |
| | | { |
| | | UserName = addUserDTO.username, |
| | | HeadImageUrl = addUserDTO.path, |
| | | Log_id = addUserDTO.log_id, |
| | | Face_token = baiduResult.result.face_token, |
| | | PhoneNo = addUserDTO.phoneno, |
| | | Role_Id = addUserDTO.roleid, |
| | | RoleName = addUserDTO.rolename, |
| | | Enable = addUserDTO.enable, |
| | | }; |
| | | BaseDal.UpdateData(sys); |
| | | |
| | | return new WebResponseContent { Status = true, Data = sys }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | return new WebResponseContent { Status = false, Message = "失败" + ex }; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤ |
| | | /// </summary> |
| | | /// <param name="deleteUserDTO"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent DeleteUserData(DeleteUserImg deleteUserDTO) |
| | | { |
| | | try |
| | | { |
| | | |
| | | string apiResult = BaiDuFaceHelper.DeleteUser(deleteUserDTO); |
| | | |
| | | // 2. è§£æè¿åç»æï¼å¤æå 餿¯å¦æå |
| | | dynamic resultObj = JsonConvert.DeserializeObject(apiResult); |
| | | if (resultObj.error_code == 0) |
| | | { |
| | | // ç¾åº¦å 餿ååï¼å 餿°æ®åºä¸çç¨æ· |
| | | var user = BaseDal.QueryData(deleteUserDTO.user_id); |
| | | if (user != null) |
| | | { |
| | | BaseDal.DeleteData(user); |
| | | } |
| | | return WebResponseContent.Instance.OK("ç¨æ·å 餿å"); |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error("ç¾åº¦ API å é¤å¤±è´¥ï¼" + resultObj.error_msg); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error("å é¤ç¨æ·å¤±è´¥ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |