151 lines
3.8 KiB
PHP
151 lines
3.8 KiB
PHP
<?php
|
||
/**
|
||
* 将数据上传到打卡记录表上
|
||
* 请求地址如:http://127.0.0.1/api.php?m=opendkq&openkey=key
|
||
* 请求方式:POST
|
||
* 提交过来数据[{"name":"姓名","dkdt":"2016-10-22 09:00:00"}]
|
||
*/
|
||
class opendkqClassAction extends openapiAction
|
||
{
|
||
public function indexAction()
|
||
{
|
||
//6 接口导入
|
||
$carr = $this->senddata(6);
|
||
$this->showreturn('成功导入'.$carr['oi'].'条数据');
|
||
}
|
||
|
||
//自动添加考勤机2024-04-25添加
|
||
private function addkqjs($sn)
|
||
{
|
||
$uarr = array(
|
||
'pinpai'=> '1',
|
||
'num'=> $sn,
|
||
'name'=> $sn,
|
||
'comid' => '1',
|
||
'optdt' => $this->now
|
||
);
|
||
$uarr['id'] = m('kqjsn')->insert($uarr);
|
||
return $uarr;
|
||
}
|
||
|
||
//
|
||
private function senddata($type)
|
||
{
|
||
$str = $this->postdata;
|
||
if(isempt($str))$this->showreturn('', 'not data', 201);
|
||
$arr = json_decode($str, true);
|
||
$oi = 0;$uarr = array();$finarr = array();
|
||
$dtobj = c('date');$adb = m('admin');$db = m('kqdkjl');$uobj = m('userinfo');
|
||
$updt = '';
|
||
$cheobj = c('check');
|
||
$snarr = array();
|
||
if($type==9){
|
||
$snarr = $this->db->getarr('[Q]kqjsn','`pinpai`=1','`id`,`name`','num');
|
||
}
|
||
$datype = array('密码','指纹','刷卡');
|
||
|
||
if(is_array($arr))foreach($arr as $k=>$rs){
|
||
$name = isset($rs['name']) ? $rs['name'] : '';
|
||
$dkdt = isset($rs['dkdt']) ? $rs['dkdt'] : '';
|
||
$finge= isset($rs['finge']) ? $rs['finge'] : '';
|
||
$name = str_replace("'",'', $name);
|
||
|
||
$uid = 0;
|
||
$snid = 0;
|
||
$sntype = 1;
|
||
$comid = 0;
|
||
$explain = '';
|
||
if($type==9){
|
||
$sn = arrvalue($rs, 'sn');
|
||
if(!$sn)continue;
|
||
$snrs = arrvalue($snarr, $sn);
|
||
if(!$snrs){
|
||
$snrs = $this->addkqjs($sn);
|
||
$snarr[$sn] = $snrs;
|
||
}
|
||
if(!$snrs)continue;
|
||
$snid = $snrs['id'];
|
||
$explain = '使用['.$snrs['name'].']打卡';
|
||
if(!isset($snrs['isgx'])){
|
||
m('kqjsn')->update("`lastdt`='$this->now'", $snid);
|
||
$snarr[$sn]['isgx'] = 'a';
|
||
}
|
||
}
|
||
if(!isempt($name) && !isempt($dkdt)){
|
||
if(!$dtobj->isdate($dkdt))continue;
|
||
if($updt=='' || $dkdt>$updt)$updt = $dkdt;
|
||
|
||
if($type==9 && $finge){
|
||
if(isset($finarr[$finge])){
|
||
if($finarr[$finge]){
|
||
$uid = $finarr[$finge]['id'];
|
||
$comid = $finarr[$finge]['companyid'];
|
||
}
|
||
}else{
|
||
$uwher = "`finger`='$finge'";
|
||
$usobj = $uobj->getrows($uwher,'`id`,`companyid`');
|
||
if($usobj){
|
||
$uid = $usobj[0]['id'];
|
||
$comid = $usobj[0]['companyid'];
|
||
$finarr[$finge] = $usobj[0];
|
||
}else{
|
||
$finarr[$finge] = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
if($uid==0){
|
||
if(isset($uarr[$name])){
|
||
if($uarr[$name]){
|
||
$uid = $uarr[$name]['id'];
|
||
$comid = $uarr[$name]['companyid'];
|
||
}
|
||
}else{
|
||
$uwher = "`name`='$name'";
|
||
if($cheobj->iscnmobile($name))$uwher = "`mobile`='$name'";
|
||
if($cheobj->isemail($name))$uwher = "`email`='$name'";
|
||
|
||
$usar = $adb->getrows($uwher,'`id`,`companyid`');
|
||
if($usar){
|
||
$uid = $usar[0]['id'];
|
||
$comid = $usar[0]['companyid'];
|
||
$uarr[$name] = $usar[0];
|
||
}else{
|
||
$uarr[$name] = false;
|
||
}
|
||
}
|
||
}
|
||
if($uid==0)continue;
|
||
if($comid==0)$comid = 1;
|
||
if($db->rows("`uid`='$uid' and `dkdt`='$dkdt'")>0)continue;
|
||
$oi++;
|
||
$db->insert(array(
|
||
'uid' => $uid,
|
||
'dkdt' => $dkdt,
|
||
'optdt' => $this->now,
|
||
'type' => $type,
|
||
'snid' => $snid,
|
||
'sntype'=> $sntype,
|
||
'explain'=> $explain,
|
||
'comid'=> $comid,
|
||
));
|
||
}
|
||
}
|
||
if($updt && $updt>$this->now)$updt=$this->now;
|
||
//$this->rock->debugs(array($uarr, $finarr),'daorudaka');
|
||
return array(
|
||
'oi' => $oi,
|
||
'updt' => $updt,
|
||
);
|
||
}
|
||
|
||
/**
|
||
* 中控考勤机导入
|
||
*/
|
||
public function zktimeAction()
|
||
{
|
||
//9中控
|
||
$carr = $this->senddata(9);
|
||
echo $carr['updt'];
|
||
}
|
||
} |