|
@@ -242,6 +242,7 @@ function oil_type($cardno)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//[$validate,$card_type,$region_no,$isTransfer,$status,$black]
|
|
|
function valid_phone($card_no)
|
|
|
{
|
|
|
$type_checker = function ($channel)
|
|
@@ -371,10 +372,10 @@ function valid_phone($card_no)
|
|
|
|
|
|
$net_err = 0;
|
|
|
$resp = http_request($url, $data, 'GET',false, [],$net_err);
|
|
|
- if ($resp == false) return false;
|
|
|
+ if ($resp == false) return [false,UnknownCard,UnknownCard,false];
|
|
|
|
|
|
$resp = json_decode($resp, true);
|
|
|
- if ($resp == false) return false;
|
|
|
+ if ($resp == false) return [false,UnknownCard,UnknownCard,false];
|
|
|
|
|
|
if ($resp['code'] == 200)
|
|
|
{
|
|
@@ -384,26 +385,74 @@ function valid_phone($card_no)
|
|
|
Log::record("tianyan_transfer phone:{$card_no} ispType:{$ispType} newIspType:{$newIspType}", Log::DEBUG);
|
|
|
|
|
|
$card_type = $type_checker($newIspType);
|
|
|
- $isTransfer = $ispType != $newIspType;
|
|
|
+ $org_type = $type_checker($ispType);
|
|
|
+ $isTransfer = $org_type != $card_type;
|
|
|
+
|
|
|
|
|
|
- return [true,$card_type,$isTransfer];
|
|
|
+ return [true,$card_type,$org_type,$isTransfer];
|
|
|
} else {
|
|
|
Log::record("tianyan_transfer phone:{$card_no} return msg:{$resp['msg']}", Log::DEBUG);
|
|
|
- return [false,UnknownCard,false];
|
|
|
+ return [false,UnknownCard,UnknownCard,false];
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ $time_checker = function ($update_time)
|
|
|
+ {
|
|
|
+ //90 天以内数据有效
|
|
|
+ $delta = time() - intval($update_time);
|
|
|
+ return $delta < 90 * 86400 && $delta >= 0;
|
|
|
+ };
|
|
|
+
|
|
|
+ $pinfo_getter = function ($card_no) use ($validate_checker,$time_checker)
|
|
|
+ {
|
|
|
+ $mod_card = Model('card_info');
|
|
|
+ $info = $mod_card->getCardInfo($card_no);
|
|
|
+
|
|
|
+ if(empty($info)) {
|
|
|
+ return [false,[]];
|
|
|
+ }
|
|
|
+ elseif($time_checker($info['update_time'])) {
|
|
|
+ $mod_card->where(['card_no' => $card_no])->update(['using_times' => $info['using_times'] + 1]);
|
|
|
+
|
|
|
+ $card_type = intval($info['card_type']);
|
|
|
+ $region_no = intval($info['regin']);
|
|
|
+ $isTransfer = intval($info['transfer']) == 0 ? false : true;
|
|
|
+ $status = intval($info['card_state']);
|
|
|
+ $black = intval($info['black']);
|
|
|
+ $validate = $validate_checker($status);
|
|
|
+
|
|
|
+ $result = [$validate,$card_type,$region_no,$isTransfer,$status,$black];
|
|
|
+ return [true,$result];
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return [false,[]];
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ $pinfo_updator = function ($card_no,$card_type,$org_type,$region_no,$isTransfer,$status)
|
|
|
+ {
|
|
|
+ $mod_card = Model('card_info');
|
|
|
+ $transfer = $isTransfer == true ? 1 : 0;
|
|
|
+ $mod_card->replace_card($card_no,$card_type,$org_type,$region_no,$transfer,$status);
|
|
|
+ };
|
|
|
+
|
|
|
$validate = true;
|
|
|
+ $black = 0;
|
|
|
+
|
|
|
$card_type = card_type($card_no,$region_no);
|
|
|
$region_no = -1;
|
|
|
|
|
|
if($card_type == PetroChinaCard || $card_type == SinopecCard) {
|
|
|
- return [$validate,$card_type,$region_no,false,1];
|
|
|
+ return [$validate,$card_type,$region_no,false,1,$black];
|
|
|
}
|
|
|
|
|
|
- [$succ,$_card_type,$_isTransfer] = $tianyan_cardtyper($card_no);
|
|
|
+ [$succ,$result] = $pinfo_getter($card_no);
|
|
|
+ if($succ) return $result;
|
|
|
+
|
|
|
+ [$succ,$_card_type,$_org_type,$_isTransfer] = $tianyan_cardtyper($card_no);
|
|
|
if($succ) {
|
|
|
$card_type = $_card_type;
|
|
|
+ $org_type = $_org_type;
|
|
|
$isTransfer = $_isTransfer;
|
|
|
}
|
|
|
else {
|
|
@@ -412,16 +461,20 @@ function valid_phone($card_no)
|
|
|
|
|
|
$status = 6;
|
|
|
$ret = $tianyan($card_no,$validate,$region_no,$status);
|
|
|
- if($ret) {
|
|
|
- return [$validate,$card_type,$region_no,$isTransfer,$status];
|
|
|
+ if($ret)
|
|
|
+ {
|
|
|
+ if($succ) $pinfo_updator($card_no,$card_type,$org_type,$region_no,$isTransfer,$status);
|
|
|
+ return [$validate,$card_type,$region_no,$isTransfer,$status,$black];
|
|
|
}
|
|
|
|
|
|
$ret = $ali($card_no,$validate,$region_no,$status);
|
|
|
- if($ret) {
|
|
|
- return [$validate,$card_type,$region_no,$isTransfer,$status];
|
|
|
+ if($ret)
|
|
|
+ {
|
|
|
+ if($succ) $pinfo_updator($card_no,$card_type,$org_type,$region_no,$isTransfer,$status);
|
|
|
+ return [$validate,$card_type,$region_no,$isTransfer,$status,$black];
|
|
|
}
|
|
|
|
|
|
- return [true,$card_type,-1,false,$status];
|
|
|
+ return [true,$card_type,-1,false,$status,$black];
|
|
|
}
|
|
|
|
|
|
function is_validate($status)
|