|
@@ -14,6 +14,10 @@ class Order extends Base
|
|
|
|
|
|
public function CheckOrder(){
|
|
|
$order_sn = input('param.order_sn');
|
|
|
+ //todo 检查订单是否存在。
|
|
|
+ //1,如果订单已经存在,并且在传入的柜子和箱子中,返回正确,做一下操作记录。
|
|
|
+ //2,如果订单已经存在,但不在传入的柜子和箱子中,返回错误。
|
|
|
+ //3,其余返回正确。
|
|
|
|
|
|
//商网接口
|
|
|
$result = request_post(self::base_url . '/check' , ['orderCode' => $order_sn]);
|
|
@@ -38,19 +42,26 @@ class Order extends Base
|
|
|
$order_sn = input('param.order_sn');
|
|
|
$trunk = input('param.trunk');
|
|
|
$cabinet_code = input('param.cabinet');
|
|
|
+
|
|
|
$cabinet = CabinetModel::where('cabinet_code',$cabinet_code)->find();
|
|
|
- $cabinet = $cabinet['cabinet_number'];
|
|
|
- $checkNumber = $this->CheckNumber($cabinet , $trunk);
|
|
|
+
|
|
|
+ $cabinet_number = $cabinet['id'];
|
|
|
+ $checkNumber = $this->hasBox($cabinet_number , $trunk);
|
|
|
if($checkNumber == false){
|
|
|
json_error(2005);
|
|
|
}
|
|
|
|
|
|
$code = $this->createRandCode();
|
|
|
- $ret = $this->CreateOrderBindBox($order_sn , $trunk , $cabinet);
|
|
|
+ $ret = $this->CreateOrder($order_sn , $trunk , $cabinet_number,$code);
|
|
|
+
|
|
|
if($ret['code'] != 1){
|
|
|
json_error(1006);
|
|
|
}else{
|
|
|
- $this->box_action_record($cabinet , $trunk , 1);
|
|
|
+ $alias = $cabinet['alias'];
|
|
|
+ $this->box_action_record($cabinet_number , $trunk , 1);
|
|
|
+ $msg = "{$alias}柜门{$trunk}箱门,密码信息{$code}";
|
|
|
+ $result = request_post(self::base_url . '/deliver' , ['orderCode' => $order_sn,"boxMsg" => $msg]);
|
|
|
+ //todo 存储到消息记录表里面。
|
|
|
json_success();
|
|
|
}
|
|
|
}
|
|
@@ -62,7 +73,6 @@ class Order extends Base
|
|
|
if(empty($order)){
|
|
|
json_error(2003);
|
|
|
}
|
|
|
- //发送商网验证结果柜号 order_sn
|
|
|
|
|
|
//返回access
|
|
|
$data['code'] = $code;
|
|
@@ -111,27 +121,24 @@ class Order extends Base
|
|
|
json_success($return);
|
|
|
}
|
|
|
|
|
|
- private function CheckNumber($cabinet_number , $box_number){
|
|
|
+ private function hasBox($cabinet_number , $box_number)
|
|
|
+ {
|
|
|
$BoxModel = new BoxModel();
|
|
|
$box = $BoxModel->getOneCabinetBox($cabinet_number , $box_number);
|
|
|
- if($box['box_status'] == 1){
|
|
|
- return true;
|
|
|
- }else{
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return !empty($box);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 生成订单并绑定箱子
|
|
|
*/
|
|
|
- private function CreateOrderBindBox($order_sn , $box_number , $cabinet,$code)
|
|
|
+ private function CreateOrder($order_sn , $box_number , $cabinet, $code)
|
|
|
{
|
|
|
$data['order_sn'] = $order_sn;
|
|
|
$data['cabinet_number'] = $cabinet;
|
|
|
$data['box_number'] = $box_number;
|
|
|
$data['code'] = $code;
|
|
|
$data['enter_time'] = date("Y-m-d H:i:s");
|
|
|
+
|
|
|
$OrderModel = new OrderModel();
|
|
|
return $OrderModel->CreateOrder($data);
|
|
|
}
|
|
@@ -153,13 +160,14 @@ class Order extends Base
|
|
|
*/
|
|
|
private function createRandCode()
|
|
|
{
|
|
|
- $code = rand(100000,999999);
|
|
|
- $BoxModel = new BoxModel();
|
|
|
- $box = $BoxModel->where('fetch_code',$code)->find();
|
|
|
- if(!empty($box)){
|
|
|
- $this->createRandCode();
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ $code = rand(100000,999999);
|
|
|
+ $BoxModel = new BoxModel();
|
|
|
+ $box = $BoxModel->where('fetch_code',$code)->find();
|
|
|
+ if(empty($box)){
|
|
|
+ return $code;
|
|
|
+ }
|
|
|
}
|
|
|
- return $code;
|
|
|
}
|
|
|
-
|
|
|
}
|