| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- /**
- * 对接中控考勤机
- * 请求地址如:http://127.0.0.1/app/xinhu/api.php?m=openzktime&a=get
- */
- class openzktimeClassAction extends openapiAction
- {
-
- private $snid = 0;
- private $snrs;
-
- private function getsnid()
- {
- $num = $this->get('sn'); //设备号
- $snid = 0;
- if(!isempt($num)){
- $dbs = m('kqjsn');
- $snid = (int)$dbs->getmou('id',"`num`='$num'");
- if($snid==0)$snid = $dbs->insert(array(
- 'num' => $num,
- 'optdt' => $this->rock->now,
- 'status' => 1,
- 'pinpai' => '1'
- ));
- $this->snid = $snid;
- $this->snrs = $dbs->getone($snid);
- }
- return $snid;
- }
-
- public function testAction()
- {
- return 'oknew';
- }
-
- /**
- * 考勤机定时请求命令
- */
- public function getAction()
- {
- $snid = $this->getsnid();
- if($snid==0)return 'notdata';
- $data= m('kqjcmd')->getcmd($snid);
- if($data){
- $batr = array();
- foreach($data as $k=>$bar){
- if(!isset($bar['data']))$bar['data']='none';
- $bar['atype'] = $bar['do'];
- unset($bar['do']);
- $batr[] = json_encode($bar, JSON_UNESCAPED_UNICODE);
- }
- $data = join('ROCKZK', $batr);
- }
- return $data;
- }
-
- /**
- * 获取人员关系
- */
- public function getuserAction()
- {
- $uarr = $this->db->getall('select a.`id`,a.`name`,b.`finger` from `[Q]admin` a left join `[Q]userinfo` b on a.`id`=b.`id` where a.`status`=1');
- $batr = array();
- foreach($uarr as $k=>$rs){
- $cid = $rs['finger'];
- if(isempt($cid))$cid=$rs['id'];
- $batr[] = '0,'.$cid.','.$rs['name'].','.$rs['id'].'';
- }
- return join('ROCKZK', $batr);
- }
-
- /**
- * 命令状态更新
- */
- public function getcAction()
- {
- $this->getsnid();
- $id = (int)$this->get('id','0');
- if($id==0)return;
- $status = (int)$this->get('status');
- $cmds = m('kqjcmd');
- $cmds->update(array(
- 'status'=>$status,
- 'cjtime'=>$this->rock->now
- ), $id);
-
- $cmds->returnchuli($id, $this->snid);
- }
-
- /**
- * 中控考勤机插件推送提交过来数据
- */
- public function postAction()
- {
- $this->getsnid();
- $atype = $this->get('atype');
- $str = $this->postdata;
- if(isempt($str))return 'not data';
- $arr = json_decode($str, true);
- $fenxiarr = array();
-
- //打卡
- if($atype=='daka'){
- $db = m('kqdkjl');
- $kqcmd = m('kqjcmd');
- $kqcmd->getsninfo($this->snid);
- $type = 9;
- $oi = 0;
- $ids = '';
- foreach($arr as $k=>$rs){
- $barr = $kqcmd->adddkjl($this->snid, $rs, $type, $db, 1);
- $oi++;
- foreach($barr as $k1=>$v1)$fenxiarr[$k1] = $v1;
- $ids .= ','.$rs['id'].'';
- }
- //考勤分析
- if($fenxiarr){
- $kqobj = m('kaoqin');
- foreach($fenxiarr as $keys=>$uid){
- $keysa = explode('|', $keys);
- $kqobj->kqanay($uid, $keysa[0]);
- }
- }
-
- if($ids!='')$ids = substr($ids,1);
- return array(
- 'msg' => 'upload add('.$oi.')record',
- 'ids' => $ids
- );
- }
-
- //已存在用户Id
- if($atype=='user'){
- $uids = $arr['uids'];
- m('kqjsn')->update(array(
- 'userids' => $uids
- ), $this->snid);
- echo '上传用户id成功';
- }
-
- //上传设备信息
- if($atype=='info'){
- m('kqjsn')->update(array(
- 'usershu' => $arr['usershu'],
- 'fingerprintshu' => $arr['fingerprintshu'],
- 'clockinshu' => $arr['clockinshu'],
- ), $this->snid);
- echo '上传设备信息成功';
- }
-
- //上传指纹模版
- if($atype=='fingerprint'){
- $kqjdb = m('kqjcmd');
- foreach($arr as $k=>$rs){
- $kqjdb->savefingerprint($this->snid, $rs['uid'], array($rs['fingerprint1'],$rs['fingerprint2']));
- }
- echo '上传指纹模版成功';
- }
-
- }
- }
|