Browse Source

事件

develop
lemon 4 years ago
parent
commit
ecca45e946
  1. 74
      app/AdminAgent/Controllers/DemandController.php
  2. 85
      app/AdminAgent/Extensions/Grid/ChooseDemand.php
  3. 3
      app/AdminAgent/Lazys/DemandBiddingLazys.php
  4. 4
      app/AdminAgent/routes.php
  5. 102
      app/AdminSupplier/Controllers/DemandController.php
  6. 99
      app/AdminSupplier/Extensions/Grid/ChooseDemand.php
  7. 48
      app/AdminSupplier/Lazys/DemandBiddingLazys.php
  8. 2
      app/AdminSupplier/routes.php

74
app/AdminAgent/Controllers/DemandController.php

@ -179,41 +179,41 @@ class DemandController extends AdminController
});
}
public function binding()
{
$demandBiddingId = request('demand_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();
//如果是地接类型 绑定地接到订单
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();
} catch (\Exception $e) {
Log::error('选中竞标失败::'.$e->getTraceAsString());
DB::rollBack();
return $this->jsonFail(1001,'选中竞标失败,稍后重试或联系管理员!'.$e->getMessage());
}
return back();
}
//public function binding()
//{
// $demandBiddingId = request('demand_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();
// //如果是地接类型 绑定地接到订单
// 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();
// } catch (\Exception $e) {
// Log::error('选中竞标失败::'.$e->getTraceAsString());
// DB::rollBack();
// return $this->jsonFail(1001,'选中竞标失败,稍后重试或联系管理员!'.$e->getMessage());
// }
// return back();
//}
}

85
app/AdminAgent/Extensions/Grid/ChooseDemand.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];
}
}

3
app/AdminAgent/Lazys/DemandBiddingLazys.php

@ -3,6 +3,7 @@
namespace App\AdminAgent\Lazys;
use App\AdminAgent\Extensions\Grid\ChooseDemand;
use App\AdminAgent\Repositories\DemandBidding;
use App\Models\Demand;
use App\Traits\DemandTraits;
@ -27,7 +28,7 @@ class DemandBiddingLazys extends LazyRenderable
return $demand->state == 1;
})
->then(function (Grid\Column $column) {
$column->append('<a class="btn btn-sm btn-primary" href="'.admin_url('/api/demand/binding?demand_bidding_id='.$this->id).'" style="color: white">选中竞标</a>');
$column->append(new ChooseDemand($this->id));
})
->if(function () use ($demand){
return $demand->state == 2;

4
app/AdminAgent/routes.php

@ -36,7 +36,5 @@ Route::group([
$router->resource('article/list', 'ArticleController');
$router->resource('setting', 'SettingController');
$router->resource('channel/list', 'ChannelController');
//api
$router->any('/api/demand/binding', 'DemandController@binding');
});

102
app/AdminSupplier/Controllers/DemandController.php

@ -2,7 +2,7 @@
namespace App\AdminSupplier\Controllers;
use App\AdminAgent\Lazys\DemandBiddingLazys;
use App\AdminSupplier\Lazys\DemandBiddingLazys;
use App\Models\AgentProduct;
use App\Models\DemandProduct;
use App\Models\Product;
@ -172,54 +172,54 @@ class DemandController extends AdminController
});
}
public function binding()
{
$demandBiddingId = request('demand_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();
} catch (\Exception $e) {
Log::error('选中竞标失败::'.$e->getTraceAsString());
DB::rollBack();
return $this->jsonFail(1001,'选中竞标失败,稍后重试或联系管理员!'.$e->getMessage());
}
return back();
}
//public function binding()
//{
// $demandBiddingId = request('demand_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();
// } catch (\Exception $e) {
// Log::error('选中竞标失败::'.$e->getTraceAsString());
// DB::rollBack();
// return $this->jsonFail(1001,'选中竞标失败,稍后重试或联系管理员!'.$e->getMessage());
// }
// return back();
//}
}

99
app/AdminSupplier/Extensions/Grid/ChooseDemand.php

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

48
app/AdminSupplier/Lazys/DemandBiddingLazys.php

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

2
app/AdminSupplier/routes.php

@ -25,6 +25,4 @@ Route::group([
$router->resource('demand_product', 'DemandProductController');
$router->resource('my_demand_product', 'MyDemandProductController');
$router->resource('my_bidding_product', 'MyBiddingProductController');
//api
$router->any('/api/demand/binding', 'DemandController@binding');
});
Loading…
Cancel
Save