opendkqAction.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. /**
  3. * 将数据上传到打卡记录表上
  4. * 请求地址如:http://127.0.0.1/api.php?m=opendkq&openkey=key
  5. * 请求方式:POST
  6. * 提交过来数据[{"name":"姓名","dkdt":"2016-10-22 09:00:00"}]
  7. */
  8. class opendkqClassAction extends openapiAction
  9. {
  10. public function indexAction()
  11. {
  12. //6 接口导入
  13. $carr = $this->senddata(6);
  14. $this->showreturn('成功导入'.$carr['oi'].'条数据');
  15. }
  16. //自动添加考勤机2024-04-25添加
  17. private function addkqjs($sn)
  18. {
  19. $uarr = array(
  20. 'pinpai'=> '1',
  21. 'num'=> $sn,
  22. 'name'=> $sn,
  23. 'comid' => '1',
  24. 'optdt' => $this->now
  25. );
  26. $uarr['id'] = m('kqjsn')->insert($uarr);
  27. return $uarr;
  28. }
  29. //
  30. private function senddata($type)
  31. {
  32. $str = $this->postdata;
  33. if(isempt($str))$this->showreturn('', 'not data', 201);
  34. $arr = json_decode($str, true);
  35. $oi = 0;$uarr = array();$finarr = array();
  36. $dtobj = c('date');$adb = m('admin');$db = m('kqdkjl');$uobj = m('userinfo');
  37. $updt = '';
  38. $cheobj = c('check');
  39. $snarr = array();
  40. if($type==9){
  41. $snarr = $this->db->getarr('[Q]kqjsn','`pinpai`=1','`id`,`name`','num');
  42. }
  43. $datype = array('密码','指纹','刷卡');
  44. if(is_array($arr))foreach($arr as $k=>$rs){
  45. $name = isset($rs['name']) ? $rs['name'] : '';
  46. $dkdt = isset($rs['dkdt']) ? $rs['dkdt'] : '';
  47. $finge= isset($rs['finge']) ? $rs['finge'] : '';
  48. $name = str_replace("'",'', $name);
  49. $uid = 0;
  50. $snid = 0;
  51. $sntype = 1;
  52. $comid = 0;
  53. $explain = '';
  54. if($type==9){
  55. $sn = arrvalue($rs, 'sn');
  56. if(!$sn)continue;
  57. $snrs = arrvalue($snarr, $sn);
  58. if(!$snrs){
  59. $snrs = $this->addkqjs($sn);
  60. $snarr[$sn] = $snrs;
  61. }
  62. if(!$snrs)continue;
  63. $snid = $snrs['id'];
  64. $explain = '使用['.$snrs['name'].']打卡';
  65. if(!isset($snrs['isgx'])){
  66. m('kqjsn')->update("`lastdt`='$this->now'", $snid);
  67. $snarr[$sn]['isgx'] = 'a';
  68. }
  69. }
  70. if(!isempt($name) && !isempt($dkdt)){
  71. if(!$dtobj->isdate($dkdt))continue;
  72. if($updt=='' || $dkdt>$updt)$updt = $dkdt;
  73. if($type==9 && $finge){
  74. if(isset($finarr[$finge])){
  75. if($finarr[$finge]){
  76. $uid = $finarr[$finge]['id'];
  77. $comid = $finarr[$finge]['companyid'];
  78. }
  79. }else{
  80. $uwher = "`finger`='$finge'";
  81. $usobj = $uobj->getrows($uwher,'`id`,`companyid`');
  82. if($usobj){
  83. $uid = $usobj[0]['id'];
  84. $comid = $usobj[0]['companyid'];
  85. $finarr[$finge] = $usobj[0];
  86. }else{
  87. $finarr[$finge] = false;
  88. }
  89. }
  90. }
  91. if($uid==0){
  92. if(isset($uarr[$name])){
  93. if($uarr[$name]){
  94. $uid = $uarr[$name]['id'];
  95. $comid = $uarr[$name]['companyid'];
  96. }
  97. }else{
  98. $uwher = "`name`='$name'";
  99. if($cheobj->iscnmobile($name))$uwher = "`mobile`='$name'";
  100. if($cheobj->isemail($name))$uwher = "`email`='$name'";
  101. $usar = $adb->getrows($uwher,'`id`,`companyid`');
  102. if($usar){
  103. $uid = $usar[0]['id'];
  104. $comid = $usar[0]['companyid'];
  105. $uarr[$name] = $usar[0];
  106. }else{
  107. $uarr[$name] = false;
  108. }
  109. }
  110. }
  111. if($uid==0)continue;
  112. if($comid==0)$comid = 1;
  113. if($db->rows("`uid`='$uid' and `dkdt`='$dkdt'")>0)continue;
  114. $oi++;
  115. $db->insert(array(
  116. 'uid' => $uid,
  117. 'dkdt' => $dkdt,
  118. 'optdt' => $this->now,
  119. 'type' => $type,
  120. 'snid' => $snid,
  121. 'sntype'=> $sntype,
  122. 'explain'=> $explain,
  123. 'comid'=> $comid,
  124. ));
  125. }
  126. }
  127. if($updt && $updt>$this->now)$updt=$this->now;
  128. //$this->rock->debugs(array($uarr, $finarr),'daorudaka');
  129. return array(
  130. 'oi' => $oi,
  131. 'updt' => $updt,
  132. );
  133. }
  134. /**
  135. * 中控考勤机导入
  136. */
  137. public function zktimeAction()
  138. {
  139. //9中控
  140. $carr = $this->senddata(9);
  141. echo $carr['updt'];
  142. }
  143. }
粤ICP备19079148号