Files
xinhu/webmain/model/txcloud/renlianModel.php
2022-08-14 16:47:40 +08:00

164 lines
4.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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;
}
}