git лет назад: 6
Родитель
Сommit
c616bb49ac
2 измененных файлов с 86 добавлено и 15 удалено
  1. 28 15
      Home/Lib/Action/ApiAction.class.php
  2. 58 0
      Home/Lib/Action/CronAction.class.php

+ 28 - 15
Home/Lib/Action/ApiAction.class.php

@@ -112,6 +112,10 @@ class ApiAction extends Action {
 		if(!$licenseplate){
 			json_fail('LicensePlate不存在!');
 		}
+		$res = $this->plate_verify($licenseplate);
+		if(!res){
+			json_fail('无效车牌,请重新选择!');
+		}
 		$openid = $data['Openid'];
 		if(!$openid){
 			json_fail('Openid不存在!');
@@ -201,6 +205,7 @@ class ApiAction extends Action {
 	public  function reportPersonalOrderInfo(  ){
 		header('Access-Control-Allow-Origin:*');
 				$data = $_POST;
+				$data['OpenId'] = $data['Openid'];
 				$appid = $data['AppId'];
 				if(!$appid){
 					json_fail('AppId不存在!');
@@ -287,28 +292,19 @@ class ApiAction extends Action {
 						$time = time() - (C('EXPIREIN')*60);
 						if($time > $info['Timestamp']){
 							json_fail('该车牌已经过期,请重选车牌');
-						}else{
-							$response = array(
-								'LicensePlate' => $licenseplate,
-								'ExpireIn' => C('EXPIREIN'),
-								'Timestamp' => $info['Timestamp']
-							);
-							json_success('上报预选车牌成功',$response);
 						}
 					}else{
 						//是否过期
 						$time = time() - (C('EXPIREIN')*60);
-						if($time > $info['Timestamp']){
-							$response = array(
-								'LicensePlate' => $licenseplate,
-								'ExpireIn' => C('EXPIREIN'),
-								'Timestamp' => $info['Timestamp']
-							);
-							json_success('上报预选车牌成功',$response);
-						}else{
+						if($time < $info['Timestamp']){
 							json_fail('该车牌已被占用,请重新选牌!');
 						}
 					}
+					//检测车牌
+					$res = $this->plate_verify($licenseplate);
+					if(!res){
+						json_fail('无效车牌,请重新选择!');
+					}
 					$cond = array(
 						'LicensePlate'=>$data['LicensePlate'],
 						'OrderStatus'=>array('neq','2')
@@ -549,5 +545,22 @@ class ApiAction extends Action {
 		json_success('执行完毕');
 	}
 	
+ 
+	private  function plate_verify( $licenseplate ){
+		if(!$licenseplate){
+			json_fail('车牌不能为空!');
+		}
+		$cond = array(
+			'LicensePlate'=>$licenseplate,
+			'PreSelection'=>1
+		);
+		$res = M('jms_plate')->where($cond)->find();
+		if(!$res){
+			return false;
+		}else{
+			return true;
+		}
+	}
+	
 
 }

+ 58 - 0
Home/Lib/Action/CronAction.class.php

@@ -0,0 +1,58 @@
+<?php
+
+
+
+class CronAction extends Action {
+			
+
+
+ 
+	public  function releaseRedisExpiredLicenseplate(  ){
+		$config = parse_url(C('REDIS_DSN'));
+		$redis = new Redis();
+		$redis->connect($config["host"],$config["port"]?:6379);  
+		$redis->auth($config["pass"]?: ""); 
+		$redis->select(trim($config['path'],'//') ? : 0);
+		
+		$all = $redis->hgetall('wjw_plate');
+		foreach($all as $key=>$val){
+			$data = json_decode($val,true);
+			$orderstatus = M('jms_order')->where(array('LicensePlate'=>$key))->getField('OrderStatus');
+			if($orderstatus == NULL){
+						$time = time() - (C('EXPIREIN')*60);
+						if($time > $data['Timestamp']){
+							/*$p = Redis("wjw_plate","hash");
+							$res = $p->where($key)->delete();
+							if(!$res){
+								json_fail('删除过期车牌失败');
+							}*/
+							$result = $redis->sAdd('plate_preselect_pool' , $key);
+							if(!$result){
+								json_fail('释放过期车牌失败');
+							}
+						}
+					}
+					if($orderstatus == 2){
+							$p = Redis("wjw_plate","hash");
+							$res = $p->where($key)->delete();
+							if(!$res){
+								json_fail('删除过期车牌失败');
+							}
+							$result = $redis->sAdd('plate_preselect_pool' , $key);
+							if(!$result){
+								json_fail('释放过期车牌失败');
+							}
+					}
+					if($orderstatus == 1){
+					    $p = Redis("wjw_plate","hash");
+					    $res = $p->where($key)->delete();
+					    if(!$res){
+					     json_fail('删除已开户车牌失败');
+					    }
+					}
+		}
+		json_success('执行完毕');
+	}
+	
+
+}