title='生产订单管理'; $this->assign('status',\app\data\model\ShopPurchase::getStatus()); $result = Model::mQuery() ->equal('status') ->dateBetween('create_time') ->with(['merchant']) ->when($request['name'],function (Query $query)use ($request){ $query->hasWhere('merchant',function (Query $query)use ($request){ $query->whereLike('name',"%{$request['name']}%"); }); })->where($admin_id); $this->amount = $result->db()->sum('amount'); // ->layTable(); $result->page(); } /** * 详情 * @auth true * @menu true */ public function detail(Request $request,Model $purchase){ DataUser::$copyRealName=true; $this->assign('row',$purchase ->with(['merchant','items','offers','offers.user']) ->where('id',$request['id'])->findOrFail()); $this->fetch('form'); } /** * 发布 * @auth true * @menu true */ public function add(Request $request,\think\Validate $validate){ $this->title='发布订单'; $this->assign('vo',null); if($request->isGet()) { $this->fetch(); }else{ $merchant=DataMerchants::getByAdmin(AdminService::getUserId()); if(!$merchant){ $this->error('您不是商家无法发布'); } $data=$request->post(); $item=$data['item']??[]; foreach ($item as $i){ $make=$validate->check($i,[ 'name'=>['require',], 'spec'=>['require',], 'number'=>['require','integer'], // 'standard'=>['require',], // 'price'=>['require','float'], // 'enclosure'=>['require',], ]); if(!$make){ $this->error('请填写正确的商品信息'); } } app()->db->startTrans(); unset($data['item']); $data['admin_id']=AdminService::getUserId(); $data['longitude']=$merchant['longitude']??null; $data['latitude']=$merchant['latitude']??null; // $data['amount']=min(array_column($item,'price')); $data['type'] =1; // print_r($data); // exit(); $order= \app\data\model\ShopProduction::create($data); $order->items()->saveAll($item); app()->db->commit(); $this->success('保存成功'); } } /** * 编辑 * @auth true * @menu true */ public function edit(Request $request,Model $purchase,\think\Validate $validate){ if ($this->request->isGet()) { DataUser::$copyRealName=true; $row = $purchase ->with(['merchant','items','offers','favourite','ppoffer']) ->where('id',$request['id'])->findOrFail(); if (!$row['merchant']){ $array = ['company'=>'平台发布']; $row['merchant'] = $array; } $row['images'] = $row['file']; if($row['images'] == '' || $row['images'] == null){ $row['images'] = []; } $this->assign('row',$row); $this->fetch('edit'); }elseif ($this->request->isPost()){ $merchant=DataMerchants::getByAdmin(AdminService::getUserId()); if(!$merchant){ $this->error('您不是商家无法操作'); } $data=$request->post(); $item=$data['item']??[]; foreach ($item as $i){ $make=$validate->check($i,[ 'name'=>['require',], 'spec'=>['require',], 'number'=>['require','integer'], // 'standard'=>['require',], // 'price'=>['require','float'], // 'enclosure'=>['require',], ]); if(!$make){ $this->error('请填写正确的商品信息'); } } // print_r($data); // exit(); app()->db->startTrans(); unset($data['item']); $data['admin_id']=AdminService::getUserId(); $data['longitude']=$merchant['longitude']??null; $data['latitude']=$merchant['latitude']??null; // $data['amount']=min(array_column($item,'price')); $data['type'] =1; // print_r($data); // exit(); //$order= \app\data\model\ShopProduction::create($data); if(!$data['offer_id']){ unset($data['offer_id']); } if(isset($data['images'])){ $data['file'] = $data['images']; }else{ $data['file'] = null; } // if(count($data['file']) <= 0){ // $data['file'] = null; // } $order=Model::update($data); // $order->items()->saveAll($item); app()->db->commit(); $item_ids=[]; foreach ($item as &$v){ $item_data = [ 'production_id'=>$data['id'], 'name'=>$v['name'], 'spec'=>$v['spec'], 'number'=>$v['number'], // 'standard'=>$v['standard'], // 'price'=>$v['price'], ]; if(isset($v['enclosure'])){ $item_data['enclosure'] = $v['enclosure']; }else{ $item_data['enclosure'] = []; } if(!empty($v['id'])){ $itemModel=$order->items()->where('id',$v['id'])->find(); if(!$itemModel){ $this->error('商品不存在'); } $itemModel->save($item_data); }else{ $itemModel=$order->items()->save($item_data); } $item_ids[]=$itemModel['id']; } // $order = $order->items()->whereNotIn('id',$item_ids)->select()->each(function ($d){$d->delete();}); // ShopProductionOffer::where('order_id',$data['id']) // ->whereNotIn('item_id',$item_ids) // ->select()->each(function ($m){$m->delete();}); $this->success('保存成功'); } } /** * 取消订单 * @auth true * @menu true */ public function cancellation(Request $request,Model $purchase){ $purchase_=$purchase->where('id',$request['id'])->findOrFail(); $purchase_['status']=0; $purchase_->save(); $this->success('取消成功'); } }