114 lines
3.2 KiB
PHP
114 lines
3.2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace addons\cardocr\library\traits;
|
||
|
use addons\cardocr\library\Card;
|
||
|
|
||
|
trait Check
|
||
|
{
|
||
|
/**
|
||
|
* 检测重复身份证id
|
||
|
*
|
||
|
* @param string $username 身份证id
|
||
|
* @param string $id 排除身份证id
|
||
|
*/
|
||
|
public function checkidcardavailable()
|
||
|
{
|
||
|
$idnum = $this->request->request('idnum');
|
||
|
if (!$idnum) {
|
||
|
$params = $this->request->post("row/a");
|
||
|
$idnum = $params['idnum'];
|
||
|
}
|
||
|
|
||
|
// $id = (int)$this->request->request('id');
|
||
|
$count = \addons\cardocr\model\Cardocr::where('idnum', '=', $idnum)->count();
|
||
|
if ($count > 0) {
|
||
|
$this->error(__('身份证ID已经被占用'));
|
||
|
}
|
||
|
$this->success();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 检测重复用户id
|
||
|
*
|
||
|
* @param string 用户$user_id
|
||
|
*/
|
||
|
public function checkuseridavailable()
|
||
|
{
|
||
|
$user_id = (int)$this->request->request('user_id');
|
||
|
if (!$user_id) {
|
||
|
$params = $this->request->post("row/a");
|
||
|
$user_id = $params['user_id'];
|
||
|
}
|
||
|
|
||
|
$count = \addons\cardocr\model\Cardocr::where('user_id', '=', $user_id)->count();
|
||
|
if ($count > 0) {
|
||
|
$this->error(__('用户记录已存在'));
|
||
|
}
|
||
|
$this->success();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $ImageUrl 身份证正面url
|
||
|
* @return array|mixed
|
||
|
*/
|
||
|
public function checkfront($ImageUrl)
|
||
|
{
|
||
|
$ImageBase64 = Card::base64EncodeImage($ImageUrl);
|
||
|
if (is_array($ImageBase64)) {
|
||
|
$this->error($ImageBase64['msg']);
|
||
|
}
|
||
|
|
||
|
$data['ImageBase64'] = $ImageBase64;
|
||
|
$data['CardSide'] = 'FRONT';
|
||
|
|
||
|
|
||
|
$orc_frontdata = Card::checkcardocr(json_encode($data), $data['CardSide']);
|
||
|
if (!$orc_frontdata || !empty($orc_frontdata['code'])) {
|
||
|
$this->error($orc_frontdata['msg']);
|
||
|
}
|
||
|
|
||
|
return $orc_frontdata;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @param $ImagebackUrl 身份证反面url
|
||
|
* @return array
|
||
|
*/
|
||
|
public function checkback($ImagebackUrl)
|
||
|
{
|
||
|
$ImageBase64 = Card::base64EncodeImage($ImagebackUrl);
|
||
|
if (is_array($ImageBase64)) {
|
||
|
$this->error($ImageBase64['msg']);
|
||
|
}
|
||
|
|
||
|
$data['ImageBase64'] = $ImageBase64;
|
||
|
$data['CardSide'] = 'BACK';
|
||
|
|
||
|
|
||
|
$orc_backdata = Card::checkcardocr(json_encode($data), $data['CardSide']);
|
||
|
if (!$orc_backdata || !empty($orc_backdata['code'])) {
|
||
|
$this->error($orc_backdata['msg']);
|
||
|
}
|
||
|
|
||
|
$validdatestart = null;
|
||
|
$validdateend = null;
|
||
|
//判断身份证有效期
|
||
|
if (!empty($orc_backdata['ValidDate'])) {
|
||
|
$validdatestart = explode("-", $orc_backdata['ValidDate'])[0];
|
||
|
|
||
|
$validdateend = explode("-", $orc_backdata['ValidDate'])[1];
|
||
|
|
||
|
$arr = date_parse_from_format('Y.m.d', $validdateend);//如果是2018年10月1日,那么这里就是 Y年m月d日
|
||
|
$time = mktime(0, 0, 0, $arr['month'], $arr['day'], $arr['year']);
|
||
|
|
||
|
if ($time <= time()) {
|
||
|
$this->error("身份证有效期已失效");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return array("backdata" => $orc_backdata, "validdatestart" => $validdatestart, "validdateend" => $validdateend);
|
||
|
}
|
||
|
}
|