You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
namespace App\AdminGuide\Extensions\Grid;
use App\Models\AgentProduct;use App\Models\DemandBidding;use App\Traits\DemandTraits;use Dcat\Admin\Grid\RowAction;use Illuminate\Http\Request;use Illuminate\Support\Facades\DB;use Illuminate\Support\Facades\Log;
/** * 供应商审核 * Class AuditSupplier * @package App\Admin\Extensions\Grid */class ChooseDemand extends RowAction{ private $id;
public function __construct($biddingId = '') { parent::__construct('选中竞标'); $this->id = $biddingId; $this->title = '选中竞标'; }
protected function html() { $class = 'btn btn-sm btn-success'; $this->appendHtmlAttribute('class', $class); $this->defaultHtmlAttribute('href', 'javascript:;');
return "<a {$this->formatHtmlAttributes()}>{$this->title}</a>"; }
public function handle(Request $request) { $demandBiddingId = request('bidding_id',0); $demandBidding = DemandBidding::find($demandBiddingId); if (empty($demandBidding)) { return $this->response()->error('订单异常'); }
$demand = \App\Models\Demand::find($demandBidding->demand_id);
if (empty($demand)) { return $this->response()->error('订单异常'); }
DB::beginTransaction(); try { $demandBidding->state = 1; $demandBidding->save(); //改变订单状态
$demand->bidding_id = $demandBidding->id; $demand->bidding_user_id = $demandBidding->bidding_user_id; $demand->state = DemandTraits::$stateKey[1]; $demand->save(); //如果是地接类型 绑定地接到订单
if ($demand->bidding_user_type == DemandTraits::$col[2]){ $agentProduct = AgentProduct::find($demand->agent_product_id); $agentProduct->guide_id = $demandBidding->bidding_user_id; $agentProduct->guide_price = $demandBidding->price; $agentProduct->save(); } DB::commit(); return $this->response()->success("选中竞标成功")->refresh(); } catch (\Exception $e) { Log::error('选中竞标失败::'.$e->getTraceAsString()); DB::rollBack(); return $this->response()->error($e->getMessage()); } }
public function confirm() { return ['确定要选中该竞标吗?', '']; }
public function parameters() { return ['bidding_id' => $this->id]; }}
|