post['page'])&&$this->post['page']!="" ? intval($this->post['page']):1; $size = isset($this->post['size'])&&$this->post['size']!="" ? intval($this->post['size']):10; $status = isset($this->post['status'])&&$this->post['status']!="" ? intval($this->post['status']):0; $where=["is_del"=>0,"accountid"=>$this->userinfo['id']]; if($status!=0 && in_array($status,[1,2])){ $where['status']=$status; } $count =Db::name("order_info")->where($where)->count(); $total = ceil($count/$size); $page = $page>$total?$total:$page; $list = Db::name("order_info")->where($where)->page($page,$size)->field("id,order_sn,order_num,order_time,delivery_time,post_code,post_name,status,unit,unit_weight") ->select(); return app_show(0,"获取成功",["list"=>$list,"count"=>$count]); } /** * @param id 订单id */ public function info(){ $id = isset($this->post['id'])&&$this->post['id']!="" ? intval($this->post['id']):""; if($id==""){ return error_show(1004,"参数id 不能为空"); } $order = Db::name("order_info")->where(["is_del"=>0,"accountid"=>$this->userinfo['id'],"id"=>$id])->field("id, order_sn,order_num,order_time,delivery_time,status, post_code,post_name,provice_name,city_name,area_name,addr,contector,contector_mobile,nickname,unit,unit_weight")->find(); if(empty($order)){ return error_show(1005,"未找到订单数据"); } return app_show(0,"获取成功",$order); } /** * @param num * @param addrid */ public function ist(){ $ist = Db::name('unit')->where(["is_del" => 0,"status"=>1])->field("id,name,weight")->select(); return app_show(0,"获取成功",["list"=>$ist]); } public function add(){ $num = isset($this->post['num'])&&$this->post['num']!="" ? intval($this->post['num']):""; if($num==""){ return error_show(1004,"参数num 不能为空或0"); } $id = isset($this->post['unit_id'])&&$this->post['unit_id']!=""? intval($this->post['unit_id']): ""; if($id==""){ return error_show(1004,"unit_id不能为空"); } $kg= Db::name('unit')->where(["is_del" => 0,"id"=>$id,"status"=>1])->field("id,name,weight")->find(); // var_dump(Db::name('unit')->where(["is_del" => 0,"id"=>$id,"status"=>1])->getLastSql()); if(empty($kg)){ return error_show(1004,"单位不能为空"); } $count=$num*$kg['weight']; if($count==""){ return error_show(1004,"购买数量不能为空"); } $addrid = isset($this->post['addrid'])&&$this->post['addrid']!="" ? intval($this->post['addrid']):""; if($addrid==""){ return error_show(1004,"参数addrid 不能为空"); } $stock = Db::name("account_stock")->where(['is_del'=>0,"accountid"=>$this->userinfo['id']])->find(); if(empty($stock) || $stock['stock_balance']<$count){ return error_show(1004,"库存数量不足"); } $addr =Db::name("rela_addr")->alias('a')->join("addr b","a.addrid=b.id","left")->where(["a.accountid"=>$this->userinfo['id'], "b.is_del"=>0,"b.id"=>$addrid])->field("b.id,b.provice,b.provice_name,b.city,b.city_name,b.area,b.area_name,b.addr,b.contector,b.mobile,b.addtime")->find(); if(empty($addr)){ return error_show(1004,"地址数据未找到"); } Db::startTrans(); try{ $ordersn =makeNo("FC"); $data=[ "order_sn"=>$ordersn, "accountid"=>$this->userinfo['id'], "order_num"=>$num, "unit"=>$kg['name'], "unit_weight"=>$kg['weight'], "is_del"=>0, "status"=>1, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s"), "order_time"=>date("Y-m-d H:i:s"), ]; $ordercreate= Db::name("order")->insert($data,false,true); if($ordercreate>0){ $post =[ "order_sn"=>$ordersn, "addrid"=>$addrid, "order_num"=>$num, 'post_code'=>"", 'post_name'=>"", "status"=>1, "is_del"=>0, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $orderpost=Db::name("order_post")->insert($post); if($orderpost){ $updatestock= Db::name("account_stock")->where($stock)->update (['stock_balance'=>$stock['stock_balance']-$num, "stock_delivery"=>$stock['stock_delivery']+$num,"updatetime"=>date("Y-m-d H:i:s")]); if($updatestock){ $log=[ "accountid"=>$this->userinfo['id'], "run_stock"=>$num, "type"=>3, "after_stock"=>$stock['stock_balance']-$num, "before_stock"=>$stock['stock_balance'], "action_uid"=>$this->userinfo['id'], "action_name"=>$this->userinfo['nickname'], "addtime"=>date("Y-m-d H:i:s") ]; $stocklog =Db::name("stock_log")->insert($log); if($stocklog){ Db::commit(); return app_show(0,"下单成功",['orderid'=>$ordercreate]); } } } } Db::rollback(); return error_show(1006,"下单失败"); }catch (\Exception $e){ Db::rollback(); return error_show(1005,$e->getMessage()); } } public function Stock(){ $stock = Db::name("account_stock")->where(["accountid"=>$this->userinfo['id'],'is_del'=>0])->find(); $data=[]; $data['stock'] = isset($stock['stock_balance']) ? $stock['stock_balance']:0; return app_show(0,"获取成功",$data); } }