From 51a3eba8bf13d456f81ecc4a264c6dbb7f88a7dc Mon Sep 17 00:00:00 2001 From: Wayne Date: Thu, 6 Jul 2023 19:29:33 +0800 Subject: [PATCH] v1.0.2 --- app/adminapi/controller/v1/Card.php | 4 +- app/appapi/controller/v1/User.php | 72 ++++++++++++++++++++--------- 2 files changed, 53 insertions(+), 23 deletions(-) diff --git a/app/adminapi/controller/v1/Card.php b/app/adminapi/controller/v1/Card.php index 2633091..afc64da 100644 --- a/app/adminapi/controller/v1/Card.php +++ b/app/adminapi/controller/v1/Card.php @@ -28,7 +28,7 @@ class Card extends ApiController 'days'=>$req['days'], 'serial_no' => '', 'verify_code'=>'', - 'expire_time'=>$req['expire_time'], + 'expire_time'=>$req['expire_time']?$req['expire_time']:0, 'status'=>0, ]; } @@ -75,7 +75,7 @@ class Card extends ApiController // $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']); + $result[$key]['expire'] = $val['expire_time']?date('Y-m-d',$val['expire_time']):"無期限"; switch($val['status']){ case 0: $result[$key]['status_name']='未制卡'; diff --git a/app/appapi/controller/v1/User.php b/app/appapi/controller/v1/User.php index 0028a28..7d05ea6 100644 --- a/app/appapi/controller/v1/User.php +++ b/app/appapi/controller/v1/User.php @@ -5,7 +5,10 @@ namespace app\appapi\controller\v1; use app\appapi\ApiController; use think\facade\Db; +use GuzzleHttp\Client; + use app\common\lib\Aes; +use app\common\lib\Sign; use app\service\Sso; @@ -48,13 +51,14 @@ class User extends ApiController } $sso_data = $sso['data']; - try { + try { $sso_data['level'] = 2; $sso_data['status'] = 1; $sso_data['overdue_time'] = strtotime(date('Y-m-d', time() + (60 * 60 * 24 * 7))); $sso_data['cus_card'] = ''; $sso_data['create_time'] = date('Y-m-d H:i:s'); + unset($sso_data['user_app']); Db::name('user') ->insert($sso_data); @@ -66,38 +70,65 @@ class User extends ApiController } //更新預開卡狀態 - if($precardData){ + if ($precardData) { //更新卡號,會員編號連結 Db::name('user_sno') - ->insert([ - 'user_id'=>$this->uid, - 'serial_no'=>$precardData['serial_no'], - ]); + ->insert([ + 'user_id' => $this->uid, + 'serial_no' => $precardData['serial_no'], + ]); //更新用戶資料 - if($precardData['days']>0){ + if ($precardData['days'] > 0) { Db::name('user') - ->where('user_id', $this->uid) - ->update( - [ - 'level' => 1, - 'overdue_time' => Db::raw('overdue_time + '.(60 * 60 * 24 * $precardData['days'])) - ] - ); + ->where('user_id', $this->uid) + ->update( + [ + 'level' => 1, + 'overdue_time' => Db::raw('overdue_time + ' . (60 * 60 * 24 * $precardData['days'])) + ] + ); } //更新預開卡狀態 Db::name('precard') - ->where('serial_no', $precardData['serial_no']) - ->update([ - 'status'=>2, - 'user_id'=>$this->uid + ->where('serial_no', $precardData['serial_no']) + ->update([ + 'status' => 2, + 'user_id' => $this->uid + ]); + + //更新sso user_app資料 + //新增User至Oss Server + $ua_data['appid'] = 'sc'; + $ua_data['app'] = "card"; + $ua_data['user_id'] = $this->uid; + $ua_data['status'] = 1; + $ua_data['timestamp'] = time(); + $sign = Sign::genSign($ua_data); + $ua_data['sign'] = $sign; + + $client = new Client([ + 'base_uri' => env('utel.sso_base_url') . '/api/v1/' + ]); + + $response = $client->post('user/updateUserApp', [ + 'form_params' => $ua_data ]); + + if ($response->getStatusCode() != 200) { + return $this->error('更新UserApp失敗'); + } + + $rtn = json_decode($response->getBody()->getContents(), true); + if($rtn['code']!=200){ + return $this->error($rtn['data']); + } } $user = Db::name('user') - ->where('user_id', $this->uid) - ->find(); + ->where('user_id', $this->uid) + ->find(); $aes = new Aes([]); if (strlen(trim($user['uniqid'])) > 0) { @@ -453,5 +484,4 @@ class User extends ApiController return $this->error('操作失敗'); } } - }