Browse Source

预约单开单后,冗余订单表id

lizhen_gitee 1 year ago
parent
commit
2011de1ba9

+ 2 - 2
application/admin/view/pre_order/edit.html

@@ -3,13 +3,13 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Company_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-company_id" data-rule="required" data-source="company/index" class="form-control selectpage" name="row[company_id]" type="text" value="{$row.company_id|htmlentities}">
+            <input id="c-company_id" data-rule="required" data-source="company/index" disabled class="form-control selectpage" name="row[company_id]" type="text" value="{$row.company_id|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
+            <input id="c-user_id" data-rule="required" data-source="user/user/index" disabled data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
         </div>
     </div>
     <div class="form-group">

+ 2 - 2
application/admin/view/pre_order/index.html

@@ -7,8 +7,8 @@
                 <div class="widget-body no-padding">
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('pre_order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('pre_order/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
+                        <!--<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('pre_order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
+                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('pre_order/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
                         <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('pre_order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
                         
 

+ 26 - 2
application/api/controller/company/Preorder.php

@@ -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);
     }
 

+ 1 - 1
public/assets/js/backend/pre_order.js

@@ -49,7 +49,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'cancel_reason', title: __('Cancel_reason'), operate: 'LIKE'},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
-                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+//                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                 ]
             });