Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 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));
     }
 }