Files
xinhu/webmain/task/openapi/opendkqAction.php
2024-05-04 17:53:06 +08:00

151 lines
3.8 KiB
PHP
Raw Permalink 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
/**
* 将数据上传到打卡记录表上
* 请求地址如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'];
}
}