8 changed files with 323 additions and 94 deletions
			
			
		- 
					74app/AdminAgent/Controllers/DemandController.php
 - 
					85app/AdminAgent/Extensions/Grid/ChooseDemand.php
 - 
					3app/AdminAgent/Lazys/DemandBiddingLazys.php
 - 
					4app/AdminAgent/routes.php
 - 
					102app/AdminSupplier/Controllers/DemandController.php
 - 
					99app/AdminSupplier/Extensions/Grid/ChooseDemand.php
 - 
					48app/AdminSupplier/Lazys/DemandBiddingLazys.php
 - 
					2app/AdminSupplier/routes.php
 
@ -0,0 +1,85 @@ | 
				
			|||
<?php | 
				
			|||
 | 
				
			|||
namespace App\AdminAgent\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->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]; | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
@ -0,0 +1,99 @@ | 
				
			|||
<?php | 
				
			|||
 | 
				
			|||
namespace App\AdminAgent\Extensions\Grid; | 
				
			|||
 | 
				
			|||
use App\Models\AgentProduct; | 
				
			|||
use App\Models\DemandBidding; | 
				
			|||
use App\Models\DemandProduct; | 
				
			|||
use App\Traits\DemandTraits; | 
				
			|||
use Dcat\Admin\Grid\RowAction; | 
				
			|||
use Illuminate\Database\Eloquent\Model; | 
				
			|||
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 false; | 
				
			|||
		} | 
				
			|||
 | 
				
			|||
		$demand = \App\Models\Demand::find($demandBidding->demand_id); | 
				
			|||
 | 
				
			|||
		if (empty($demand)) { | 
				
			|||
			return false; | 
				
			|||
		} | 
				
			|||
 | 
				
			|||
		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(); | 
				
			|||
			//将产品绑给代理商
 | 
				
			|||
			$demandProduct = DemandProduct::find($demand->demand_product_id); | 
				
			|||
			$product = new Product(); | 
				
			|||
 | 
				
			|||
			$product->supplier_id = $demandProduct->supplier_id; | 
				
			|||
			$product->category_id = $demandProduct->category_id; | 
				
			|||
			$product->title = $demandProduct->title; | 
				
			|||
			$product->price = $demandBidding->price; | 
				
			|||
			$product->original_price = $demandBidding->price; | 
				
			|||
			$product->pictures = $demandProduct->pictures; | 
				
			|||
			$product->stock = $demand->stock; | 
				
			|||
			$product->know = $demandProduct->know; | 
				
			|||
			$product->content = $demandProduct->content; | 
				
			|||
			$product->agent_id = $demandBidding->bidding_user_id; | 
				
			|||
			$product->save(); | 
				
			|||
 | 
				
			|||
			$demand->product_id = $product->id; | 
				
			|||
			$demand->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]; | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
@ -0,0 +1,48 @@ | 
				
			|||
<?php | 
				
			|||
 | 
				
			|||
 | 
				
			|||
namespace App\AdminSupplier\Lazys; | 
				
			|||
 | 
				
			|||
use App\AdminAgent\Extensions\Grid\ChooseDemand; | 
				
			|||
use App\AdminAgent\Repositories\DemandBidding; | 
				
			|||
use App\Models\Demand; | 
				
			|||
use App\Traits\DemandTraits; | 
				
			|||
use Dcat\Admin\Grid; | 
				
			|||
use Dcat\Admin\Grid\LazyRenderable; | 
				
			|||
use Illuminate\Support\Arr; | 
				
			|||
 | 
				
			|||
class DemandBiddingLazys extends LazyRenderable | 
				
			|||
{ | 
				
			|||
    public function grid(): Grid | 
				
			|||
    { | 
				
			|||
        return Grid::make(new DemandBidding(['biddingUser']), function (Grid $grid) { | 
				
			|||
            $demandId = request('demand_id',''); | 
				
			|||
			$demand = Demand::find($demandId); | 
				
			|||
			$grid->model()->where('demand_id',$demandId); | 
				
			|||
			$grid->column('id'); | 
				
			|||
			$grid->column('price','出价'); | 
				
			|||
			$grid->column('comment','内容'); | 
				
			|||
			$grid->column('biddingUser.name','竞拍人'); | 
				
			|||
			$grid->column('bidding','竞标') | 
				
			|||
				->if(function () use ($demand){ | 
				
			|||
					return $demand->state == 1; | 
				
			|||
				}) | 
				
			|||
				->then(function (Grid\Column $column) { | 
				
			|||
					$column->append(new ChooseDemand($this->id)); | 
				
			|||
				}) | 
				
			|||
				->if(function () use ($demand){ | 
				
			|||
					return $demand->state == 2; | 
				
			|||
				}) | 
				
			|||
				->then(function (Grid\Column $column) use ($demand){ | 
				
			|||
					if ($demand->bidding_id == $this->id) { | 
				
			|||
						$column->append('<span class="text-success">已中标</span>'); | 
				
			|||
					} else { | 
				
			|||
						$column->append('<span class="text-danger">未中标</span>'); | 
				
			|||
					} | 
				
			|||
				}); | 
				
			|||
			$grid->column('created_at'); | 
				
			|||
			$grid->disableActions(); | 
				
			|||
			$grid->disableRowSelector(); | 
				
			|||
        }); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue