check(input()); // } catch (ValidateException $e) { // // 驗證失敗 輸出錯誤信息 // // dump($e->getError()); // return $this->Error($e->getError(),501,'參數錯誤'); // } $params = input(); //檢查user_id是否存在 $user = Db::name('user') ->where('user_id', $params['user_id']) ->find(); if (!$user) { // 用戶不存在處理 //使用user_id至sso server取得用戶資料 $user_data = [ 'user_id' => input('user_id'), ]; $sso = Sso::getUserInfo($user_data); if(!$sso['code']==200){ return $this->error('get sso user info error!!!'); } $sso_data = $sso['data']; try{ $sso_data['cus_card']=''; $sso_data['create_time']=date('Y-m-d H:i:s'); $sso_data['overdue_time'] = time() + (60 * 60 * 24 * 365); $sso_data['status'] = 1; $sso_data['level'] = 1; Db::name('user') ->insert($sso_data); $qrcodeUrl = genQrCode('https://' . $_SERVER['HTTP_HOST'] . '/home/?refer='.$sso_data['code'], $sso_data['user_id'], 'refer'); $nfcUrl = genQrCode('https://' . $_SERVER['HTTP_HOST'] . '/card?userid=' . $sso_data['user_id'], $sso_data['user_id'], 'nfc'); }catch(\Exception $e){ print_r($e->getMessage()); return $this->error('sync sso user info error!!!'); } } else { //用戶存在處理 //取得用戶到期日 $user_info = $user; //判斷order_sn是否執行過 if ($user_info['note'] == input('order_sn')) { return $this->Error('重覆更新', 201, '新增失敗'); } $update_data = [ 'status' => 1, 'level' => 1, 'overdue_time' => intval($user_info['overdue_time']) + (365 * 24 * 60 * 60), 'note' => input('order_sn'), 'update_time' => date('Y-m-d H:i:s'), ]; try{ Db::name('user') ->where('user_id', $params['user_id']) ->update($update_data); }catch(\Exception $e){ return $this->Error($e->getMessage(), 500, '新增失敗'); } } //取得到期時間 $overdue_time = Db::name('user') ->where('user_id', $params['user_id']) ->value('overdue_time'); return $this->Success($overdue_time); } public function cancel(){ // //參數檢查 // try { // validate(UserValidate::class)->check(input()); // } catch (ValidateException $e) { // // 驗證失敗 輸出錯誤信息 // // dump($e->getError()); // return $this->Error($e->getError(),501,'參數錯誤'); // } $params = input(); //檢查user_id是否存在 $user = Db::name('user') ->where('user_id', $params['user_id']) ->find(); if (!$user) { return $this->Error('用戶不存在', 500); } else { //用戶存在處理 //取得用戶到期日 $user_info = $user; //判斷order_sn是否執行過,沒有的話就不處理 if ($user_info['note'] != input('order_sn')) { return $this->Error('未自動新增過', 501); } $overdue_time = intval($user_info['overdue_time']) - (365 * 24 * 60 * 60); if($overdue_time < time()){ $level = 0; }else{ $level = 1; } $update_data = [ 'status' => 1, 'level' => $level, 'overdue_time' => $overdue_time, 'note' => '', 'update_time' => date('Y-m-d H:i:s'), ]; try{ Db::name('user') ->where('user_id', $params['user_id']) ->update($update_data); }catch(\Exception $e){ return $this->Error($e->getMessage(), 500, '新增失敗'); } return $this->Success('更新成功'); } } public function setLevel() { //參數檢查 try { validate(\app\api\validate\UserLevel::class)->check(input()); } catch (ValidateException $e) { return $this->Error($e->getError(), 501, '參數錯誤'); } $prefix = getPrefixByAppId(input('appid')); $user_id = $prefix . input('user_id'); $level = input('level') ? input('level') : 0; $overdue_time = input('overdue_time') ? input('overdue_time') : (time() + (60 * 60 * 24 * 365)); try { $result = Db::name('user') ->where('user_id', $user_id) ->update(['level' => $level, 'overdue_time' => $overdue_time]); } catch (\Exception $e) { return $this->Error('系統錯誤', 500, '新增失敗'); } return $this->Success('更新成功'); } }