openzktimeAction.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * 对接中控考勤机
  4. * 请求地址如:http://127.0.0.1/app/xinhu/api.php?m=openzktime&a=get
  5. */
  6. class openzktimeClassAction extends openapiAction
  7. {
  8. private $snid = 0;
  9. private $snrs;
  10. private function getsnid()
  11. {
  12. $num = $this->get('sn'); //设备号
  13. $snid = 0;
  14. if(!isempt($num)){
  15. $dbs = m('kqjsn');
  16. $snid = (int)$dbs->getmou('id',"`num`='$num'");
  17. if($snid==0)$snid = $dbs->insert(array(
  18. 'num' => $num,
  19. 'optdt' => $this->rock->now,
  20. 'status' => 1,
  21. 'pinpai' => '1'
  22. ));
  23. $this->snid = $snid;
  24. $this->snrs = $dbs->getone($snid);
  25. }
  26. return $snid;
  27. }
  28. public function testAction()
  29. {
  30. return 'oknew';
  31. }
  32. /**
  33. * 考勤机定时请求命令
  34. */
  35. public function getAction()
  36. {
  37. $snid = $this->getsnid();
  38. if($snid==0)return 'notdata';
  39. $data= m('kqjcmd')->getcmd($snid);
  40. if($data){
  41. $batr = array();
  42. foreach($data as $k=>$bar){
  43. if(!isset($bar['data']))$bar['data']='none';
  44. $bar['atype'] = $bar['do'];
  45. unset($bar['do']);
  46. $batr[] = json_encode($bar, JSON_UNESCAPED_UNICODE);
  47. }
  48. $data = join('ROCKZK', $batr);
  49. }
  50. return $data;
  51. }
  52. /**
  53. * 获取人员关系
  54. */
  55. public function getuserAction()
  56. {
  57. $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');
  58. $batr = array();
  59. foreach($uarr as $k=>$rs){
  60. $cid = $rs['finger'];
  61. if(isempt($cid))$cid=$rs['id'];
  62. $batr[] = '0,'.$cid.','.$rs['name'].','.$rs['id'].'';
  63. }
  64. return join('ROCKZK', $batr);
  65. }
  66. /**
  67. * 命令状态更新
  68. */
  69. public function getcAction()
  70. {
  71. $this->getsnid();
  72. $id = (int)$this->get('id','0');
  73. if($id==0)return;
  74. $status = (int)$this->get('status');
  75. $cmds = m('kqjcmd');
  76. $cmds->update(array(
  77. 'status'=>$status,
  78. 'cjtime'=>$this->rock->now
  79. ), $id);
  80. $cmds->returnchuli($id, $this->snid);
  81. }
  82. /**
  83. * 中控考勤机插件推送提交过来数据
  84. */
  85. public function postAction()
  86. {
  87. $this->getsnid();
  88. $atype = $this->get('atype');
  89. $str = $this->postdata;
  90. if(isempt($str))return 'not data';
  91. $arr = json_decode($str, true);
  92. $fenxiarr = array();
  93. //打卡
  94. if($atype=='daka'){
  95. $db = m('kqdkjl');
  96. $kqcmd = m('kqjcmd');
  97. $kqcmd->getsninfo($this->snid);
  98. $type = 9;
  99. $oi = 0;
  100. $ids = '';
  101. foreach($arr as $k=>$rs){
  102. $barr = $kqcmd->adddkjl($this->snid, $rs, $type, $db, 1);
  103. $oi++;
  104. foreach($barr as $k1=>$v1)$fenxiarr[$k1] = $v1;
  105. $ids .= ','.$rs['id'].'';
  106. }
  107. //考勤分析
  108. if($fenxiarr){
  109. $kqobj = m('kaoqin');
  110. foreach($fenxiarr as $keys=>$uid){
  111. $keysa = explode('|', $keys);
  112. $kqobj->kqanay($uid, $keysa[0]);
  113. }
  114. }
  115. if($ids!='')$ids = substr($ids,1);
  116. return array(
  117. 'msg' => 'upload add('.$oi.')record',
  118. 'ids' => $ids
  119. );
  120. }
  121. //已存在用户Id
  122. if($atype=='user'){
  123. $uids = $arr['uids'];
  124. m('kqjsn')->update(array(
  125. 'userids' => $uids
  126. ), $this->snid);
  127. echo '上传用户id成功';
  128. }
  129. //上传设备信息
  130. if($atype=='info'){
  131. m('kqjsn')->update(array(
  132. 'usershu' => $arr['usershu'],
  133. 'fingerprintshu' => $arr['fingerprintshu'],
  134. 'clockinshu' => $arr['clockinshu'],
  135. ), $this->snid);
  136. echo '上传设备信息成功';
  137. }
  138. //上传指纹模版
  139. if($atype=='fingerprint'){
  140. $kqjdb = m('kqjcmd');
  141. foreach($arr as $k=>$rs){
  142. $kqjdb->savefingerprint($this->snid, $rs['uid'], array($rs['fingerprint1'],$rs['fingerprint2']));
  143. }
  144. echo '上传指纹模版成功';
  145. }
  146. }
  147. }
粤ICP备19079148号