encrypt('user_id='.$user_id.'&verify_code='.$verify_code)); // $nfcUrl = genQrCode(getUrl().'/card/?params='.$params,$user_id,'nfc'); $data[]=[ 'agent_id'=>0, 'name'=>$req['name'], 'days'=>$req['days'], 'serial_no' => '', 'verify_code'=>'', 'expire_time'=>$req['expire_time'], 'status'=>0, ]; } try{ Db::name('precard') ->insertAll($data); }catch(\Exception $e){ return $this->error($e->getMessage()); } return $this->success('新增成功'); } // 取得預開卡資料 public function getPrecard(){ $do=Db::name('precard'); if(!input('search')){ $result=$do ->page(input('current'),input('size')) ->order('id','desc') ->select()->toArray(); $total=$do ->count(); }else{ $result=$do ->where('user_id','like','%'.input('search').'%') ->page(input('current'),input('size')) ->order('id','desc') ->select()->toArray(); $total=$do ->where('user_id','like','%'.input('search').'%') ->count(); } if(!$result){ $result=[]; } foreach($result as $key => $val){ // $aes = new Aes([]); // $nfc_url = 'user_id='.$val['user_id'].'&verify_code='.$val['verify_code']; // $result[$key]['params'] = getUrl().'/card/'.urlencode($aes->encrypt($nfc_url)); $result[$key]['expire'] = date('Y-m-d',$val['expire_time']); switch($val['status']){ case 0: $result[$key]['status_name']='未制卡'; break; case 1: $result[$key]['status_name']='已制卡'; break; case 2: $result[$key]['status_name']='已開通'; break; case 3: $result[$key]['status_name']='已作癈'; break; } $aes = new Aes([]); $params = urlencode($aes->encrypt('sno='.$val['serial_no'])); $result[$key]['nfcurl']= getUrl().'/card/?params='.$params; // $result[$key]['qrcode'] = genQrCode($result[$key]['nfcurl'],'nfc'); } $rtn=[ 'total' => $total, 'data' => $result ]; return $this->Success($rtn); } public function deleteCard(){ $id=input('id'); $result=Db::name('precard') ->where('id',$id) ->delete(); return $this->success($result); } public function updateStatus(){ $id=input('id'); $status=input('status'); $result=Db::name('precard') ->where('id',$id) ->update(['status'=>$status]); if(!$result){ $result=[]; } return $this->success($result); } public function updateVerifyCode(){ $id=input('id'); $serial_no=strtoupper(input('code')); //TODO: $is_user = Db::name('user') ->where('uniqid',$serial_no) ->count(); if($is_user){ return $this->error('卡片已綁定會員'); } $is_precard = Db::name('precard') ->where('serial_no',$serial_no) ->count(); if($is_precard){ return $this->error('已存在預製卡'); } try{ $result=Db::name('precard') ->where('id',$id) ->update(['serial_no'=>$serial_no,'status'=>1]); $aes = new Aes([]); $params = urlencode($aes->encrypt('sno='.$serial_no)); $nfcurl= $_SERVER['HTTP_HOST'].'/card/?params='.$params; return $this->success($nfcurl); }catch(\Exception $e){ return $this->error('系統錯誤'); } } public function downloadQr(){ $id=input('id'); $pc=Db::name('precard') ->where('id',$id) ->find(); if(strlen($pc['nfc_qrcode'])>0){ $nfc_qrcode = $pc['nfc_qrcode']; }else{ } return $this->success($result); } }