/// <summary> /// 调用摄像头门卫录入拜访人脸照片 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public void SaveFileImgForm(CarUserFileImgEntity entity) { Repository <CarUserFileImgEntity> inlogdb = new Repository <CarUserFileImgEntity>(DbFactory.Base()); CarUserFileImgEntity old = inlogdb.FindEntity(entity.ID); if (old != null) { if (string.IsNullOrEmpty(old.Userimg)) {//人脸信息未录入 #region 获取海康地址和秘钥 DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } #endregion FacedataEntity face = new FacedataEntity(); List <FacedataEntity> FaceList = new List <FacedataEntity>(); face.UserId = old.ID; face.ImgData = entity.Imgdata; FaceList.Add(face); SocketHelper.UploadFace(FaceList, baseurl, Key, Signature); } old.Userimg = entity.Userimg; old.Imgdata = entity.Imgdata; inlogdb.Update(old); } }
/// <summary> /// 单条同步更换海康人脸信息 /// </summary> public string UpdateHumanFace(TemporaryUserEntity entity, string baseUrl, string Key, string Signature) { string res = string.Empty; try { string url = "/artemis/api/resource/v2/person/advance/personList"; var model = new { personIds = entity.USERID, pageNo = 1, pageSize = 100 }; //查询人脸图片唯一标识 //string msg = SocketHelper.LoadCameraList(model, baseUrl, url, Key, Signature); HttpUtillibKbs.SetPlatformInfo(Key, Signature, baseUrl, 443, true); byte[] result = HttpUtillibKbs.HttpPost(url, JsonConvert.SerializeObject(model), 20); string msg = System.Text.Encoding.UTF8.GetString(result); UserPicEntity re = JsonConvert.DeserializeObject <UserPicEntity>(msg); if (re != null && re.data.list.Count > 0) { string picfileid = string.Empty; foreach (var item in re.data.list) { foreach (var items in item.personPhoto) { picfileid = items.personPhotoIndexCode; } } //更换人脸图片 string upurl = "/artemis/api/resource/v1/face/single/update"; var delmodel = new { faceId = picfileid, faceData = entity.ImgData }; HttpUtillibKbs.SetPlatformInfo(Key, Signature, baseUrl, 443, true); byte[] result1 = HttpUtillibKbs.HttpPost(upurl, JsonConvert.SerializeObject(delmodel), 20); msg = System.Text.Encoding.UTF8.GetString(result1); } else if (!string.IsNullOrEmpty(entity.ImgData)) {//没查到人脸唯一标示,表示人脸上传未成功就重新上传人脸信息 List <FacedataEntity> FaceList = new List <FacedataEntity>(); FacedataEntity faces = new FacedataEntity(); faces.UserId = entity.USERID; faces.ImgData = entity.ImgData; FaceList.Add(faces); res = SocketHelper.UploadFace(FaceList, baseUrl, Key, Signature, 1); } } catch (Exception) { } return(res); }
public ActionResult SaveFileImgForm(string keyValue, string imgData, string type, string NewType) { try { #region 获取海康地址和秘钥 DataItemDetailBLL data = new DataItemDetailBLL(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } #endregion if (type == "1") {//门岗管理 List <TemporaryUserEntity> list = new List <TemporaryUserEntity>(); var tempdate = Tempbll.GetEmptyUserEntity(keyValue); if (tempdate != null) { var facedata = ImgToBase64(HttpUtility.UrlDecode(imgData)); //调用海康平台接口验证人脸照片是否合格 int NewTypes = NewType == "" ? 0 : 1; string msg = SocketHelper.FaceImgIsQualified(facedata.ImgData, baseurl, Key, Signature, NewTypes); if (msg != null && !string.IsNullOrEmpty(msg)) { FaceTestingEntity ress = JsonConvert.DeserializeObject <FaceTestingEntity>(msg); if (!ress.data.checkResult) { return(Content("false", "1")); } } if (string.IsNullOrEmpty(tempdate.UserImg)) {//未授权 FacedataEntity face = new FacedataEntity(); List <FacedataEntity> FaceList = new List <FacedataEntity>(); face.UserId = tempdate.USERID; face.ImgData = facedata.ImgData; FaceList.Add(face); SocketHelper.UploadFace(FaceList, baseurl, Key, Signature, NewTypes); tempdate.UserImg = facedata.UserImg; tempdate.ImgData = facedata.ImgData; list.Add(tempdate); Tempbll.SaveTemporaryList(tempdate.USERID, list); } else if (!string.IsNullOrEmpty(tempdate.PassPost)) {//已授权 tempdate.UserImg = facedata.UserImg; tempdate.ImgData = facedata.ImgData; tempdate.Remark = "1"; if (NewTypes == 1) {//新版本https调用 new PersonNewBLL().SaveUserFace(tempdate, keyValue, true); } else { Tempbll.SaveUserFace(tempdate, keyValue, true); } } return(Success("操作成功。")); } else { return(Success("1", "1")); } } else {//拜访车辆(门卫) CarUserFileImgEntity entity = new CarUserFileImgEntity(); var facedata = ImgToBase64(HttpUtility.UrlDecode(imgData)); //调用海康平台接口验证人脸照片是否合格 string msg = SocketHelper.FaceImgIsQualified(facedata.ImgData, baseurl, Key, Signature); if (msg != null && !string.IsNullOrEmpty(msg)) { FaceTestingEntity ress = JsonConvert.DeserializeObject <FaceTestingEntity>(msg); if (!ress.data.checkResult) { return(Content("false", "1")); } } entity.ID = keyValue; entity.Userimg = facedata.UserImg; entity.Imgdata = facedata.ImgData; new CarUserBLL().SaveFileImgForm(entity); return(Success("操作成功。")); } } catch (System.Exception er) { return(Success(er.Message)); } }