| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- class txcloud_renlianClassModel extends txcloudModel
- {
-
- public function inittxCloud()
- {
- $this->settable('wxtx_renlian');
- $this->groupid = $this->option->getval('txcloud_rlroupid');
- }
-
-
-
- /**
- * 人脸检测
- */
- public function DetectFace($url)
- {
- $chul = $this->DetectFaceInit($url);
- $barr = $this->send('DetectFace', $chul[0], $chul[1]);
- return $barr;
- }
- private function DetectFaceInit($url)
- {
- $chul = $chul1 = array();
- if(substr($url,0,4)=='http'){
- $chul['Url'] = $url;
- }else{
- $chul['Image'] = base64_encode(file_get_contents($url));
- $chul1['Image'] = $chul['Image'];
- }
- return array($chul, $chul1);
- }
-
-
-
- /**
- * 获取
- */
- public function GetPersonList()
- {
- $barr = $this->send('GetPersonList', array(
- 'GroupId' => $this->groupid,
- 'Limit' => 1000
- ));
- if($barr['success']){
- $data = $barr['data'];
- $PersonInfos = $data['PersonInfos'];
- $ids = '0';
- $ren = 0;
- foreach($PersonInfos as $k=>$rs){
- $ren++;
- $PersonId = $rs['PersonId'];
- $where = "`personid`='$PersonId'";
- $id1 = (int)$this->getmou('id', $where);
- if($id1==0)$where='';
- $this->record(array(
- 'personid' => $PersonId,
- 'personname' => $rs['PersonName'],
- 'gender' => $rs['Gender'],
- 'faceids' => join(',', $rs['FaceIds'])
- ), $where);
- if($id1==0)$id1 = $this->db->insert_id();
- $ids .= ','.$id1.'';
- }
- $this->delete("`id` not in($ids)");
- return returnsuccess('共获取到'.$ren.'人');
- }
- return $barr;
- }
-
- public function GetGroupList()
- {
- $barr = $this->send('GetGroupList');
- return $barr;
- }
-
- /**
- * 删除人脸用户
- */
- public function deleteRenlian($id)
- {
- $rs = $this->getone("`id`='$id'");
- if(!$rs)return returnerror('不存在');
-
- $barr = $this->send('DeletePerson', array(
- 'PersonId' => $rs['personid']
- ));
- if($barr['success']){
- $this->delete($id);
- }
- return $barr;
- }
-
- /**
- * 创建人脸用户
- */
- public function createUser($arr)
- {
- $id = $arr['id'];
- $uid = $arr['uid'];
- $personname = $arr['personname'];
- $imgurl = $arr['imgurl'];
- if($this->rows("`uid`='$uid' and `id`<>'$id'")>0)return returnerror('该用户已经创建过了');
- $urs = m('admin')->getone("`id`='$uid' and `status`=1");
- if(!$urs)return returnerror('该用户不存在/停用了,请到用户管理查看');
-
- if($id==0 && isempt($imgurl))return returnerror('请选择人脸图片地址');
- if(!isempt($imgurl) && substr($imgurl,0,4)!='http'){
- if(!file_exists($imgurl))return returnerror('人脸图片不存在');
- list($width, $height) = getimagesize($imgurl);
- if($width< 60 || $height<60)return returnerror('人脸图片像素至少60x60,当前:'.$width.'x'.$height.'');
- $size = filesize($imgurl);
- if($size>1*1024*1024)return returnerror('人脸图片不能大于1M');
- }
-
- //检测人脸是否可以
- $barr = $this->DetectFace($imgurl);
- if(!$barr['success'])return $barr;
-
-
- if($id==0){
- $can = $this->DetectFaceInit($imgurl);
- $params = $can[0];
- $params['GroupId'] = $this->groupid;
- $params['PersonName'] = $personname;//姓名
- $params['PersonId'] = 'xinhu'.$urs['user'].'';
- $params['Gender'] = $urs['sex']=='男' ? '1': '2';
-
- //接口创建
- $barr = $this->send('CreatePerson',$params, $can[1]);
- if(!$barr)return $barr;
-
-
- $id = $this->insert(array(
- 'personname'=> $personname,
- 'personid' => $params['PersonId'],
- 'gender' => $params['Gender'],
- 'uid' => $uid,
- 'imgurl' => $imgurl,
- 'faceids' => $barr['data']['FaceId'],
- ));
- }else{
-
-
- }
-
- return returnsuccess();
- }
-
-
- /**
- * 人脸搜索,用刷脸登录
- */
- public function SearchFaces()
- {
- $can = $this->DetectFaceInit('images/wo.png');
- $params = $can[0];
- $params['GroupIds.0'] = $this->groupid;
- $barr = $this->send('SearchFaces', $params, $can[1]);
-
- return $barr;
- }
- }
|