|
@@ -96,12 +96,15 @@ class Preorder extends Apic
|
|
|
'servicetype_id','server_time','server_info','server_images','pay_fee'
|
|
|
]);
|
|
|
|
|
|
+ Db::startTrans();
|
|
|
+
|
|
|
//预约单
|
|
|
if($pre_order_id > 0){
|
|
|
//check
|
|
|
$map = ['id'=>$pre_order_id,'company_id'=>$this->auth->company_id,'pre_order_status'=>1];
|
|
|
- $pre_order = Db::name('pre_order')->where($map)->find();
|
|
|
+ $pre_order = Db::name('pre_order')->where($map)->lock(true)->find();
|
|
|
if(empty($pre_order)){
|
|
|
+ Db::rollback();
|
|
|
$this->error('不存在的预约单');
|
|
|
}
|
|
|
|
|
@@ -115,13 +118,18 @@ class Preorder extends Apic
|
|
|
'updatetime' => time(),
|
|
|
'pre_order_status' => 2,
|
|
|
];
|
|
|
- Db::name('pre_order')->where('id',$pre_order_id)->update($update);
|
|
|
+ $update_rs = Db::name('pre_order')->where('id',$pre_order_id)->update($update);
|
|
|
+ if($update_rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('下单失败');
|
|
|
+ }
|
|
|
}else{
|
|
|
$data['pre_order_id'] = 0;
|
|
|
|
|
|
//检查用户
|
|
|
$user_info = Db::name('user')->where('mobile',$data['user_mobile'])->find();
|
|
|
if(empty($user_info)){
|
|
|
+ Db::rollback();
|
|
|
$this->error('不存在的用户,请先让客户扫店铺码注册');
|
|
|
}
|
|
|
$data['user_id'] = $user_info['id'];
|
|
@@ -140,6 +148,22 @@ class Preorder extends Apic
|
|
|
$data['createtime'] = time();
|
|
|
|
|
|
$order_id = Db::name('order')->insertGetId($data);
|
|
|
+ if(!$order_id){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('下单失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ if($pre_order_id > 0){
|
|
|
+ $update = [
|
|
|
+ 'order_id' => $order_id,
|
|
|
+ ];
|
|
|
+ $update_rs = Db::name('pre_order')->where('id',$pre_order_id)->update($update);
|
|
|
+ if($update_rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('下单失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
$this->success('下单完成',$order_id);
|
|
|
}
|
|
|
|