diff --git a/app/Admin/Actions/Grid/DealerBonds.php b/app/Admin/Actions/Grid/DealerBonds.php
index 675888ab..20d8034e 100644
--- a/app/Admin/Actions/Grid/DealerBonds.php
+++ b/app/Admin/Actions/Grid/DealerBonds.php
@@ -23,7 +23,7 @@ class DealerBonds extends RowAction
*/
protected function authorize($user): bool
{
- return $user->can('dcat.admin.dealer.bonds');
+ return $user->can('dcat.admin.dealers.bonds');
}
public function render()
diff --git a/app/Admin/Actions/Grid/DealerOrderPaid.php b/app/Admin/Actions/Grid/DealerOrderPaid.php
index a70b5edf..e3b553ef 100644
--- a/app/Admin/Actions/Grid/DealerOrderPaid.php
+++ b/app/Admin/Actions/Grid/DealerOrderPaid.php
@@ -26,7 +26,7 @@ class DealerOrderPaid extends RowAction
*/
protected function authorize($user): bool
{
- return $user->can('dcat.admin.dealer.paid');
+ return $user->can('dcat.admin.dealers.paid');
}
/**
diff --git a/app/Admin/Actions/Grid/DealerOrderShipping.php b/app/Admin/Actions/Grid/DealerOrderShipping.php
index ae2a1f06..80084ed7 100644
--- a/app/Admin/Actions/Grid/DealerOrderShipping.php
+++ b/app/Admin/Actions/Grid/DealerOrderShipping.php
@@ -26,7 +26,7 @@ class DealerOrderShipping extends RowAction
*/
protected function authorize($user): bool
{
- return $user->can('dcat.admin.dealer.shipping');
+ return $user->can('dcat.admin.dealers.shipping');
}
/**
diff --git a/app/Admin/Controllers/AppVersionController.php b/app/Admin/Controllers/AppVersionController.php
index e261678a..54a81a53 100644
--- a/app/Admin/Controllers/AppVersionController.php
+++ b/app/Admin/Controllers/AppVersionController.php
@@ -114,8 +114,8 @@ class AppVersionController extends AdminController
->saveFullUrl()
->removable(false)
->autoSave(false)
- ->autoUpload()->rules('required_if:cate,2', ['required_if'=>'安卓平台需要上传应用包'])->customFormat(function ($v) {
- if ($this->model()->cate == 2) {
+ ->autoUpload()->rules('required_if:cate,2,3', ['required_if'=>'安卓平台需要上传应用包'])->customFormat(function ($v) {
+ if (in_array($this->model()->cate, [2, 3])) {
$v = $this->model()->apk_link;
}
return $v;
diff --git a/app/Admin/Controllers/DealerOrderController.php b/app/Admin/Controllers/DealerOrderController.php
index 9207588f..87750aa8 100644
--- a/app/Admin/Controllers/DealerOrderController.php
+++ b/app/Admin/Controllers/DealerOrderController.php
@@ -2,6 +2,7 @@
namespace App\Admin\Controllers;
+use App\Admin\Actions\Grid\DealerOrderAllocate;
use App\Admin\Actions\Grid\DealerOrderPaid;
use App\Admin\Actions\Grid\DealerOrderShipping;
use App\Admin\Repositories\DealerOrder;
@@ -66,14 +67,17 @@ class DealerOrderController extends AdminController
$grid->model()->orderBy('created_at', 'desc');
// $grid->column('updated_at')->sortable();
$grid->actions(function (Grid\Displayers\Actions $actions) {
- if (Admin::user()->can('dcat.admin.orders.show')) {
+ if (Admin::user()->can('dcat.admin.dealer_orders.show')) {
$actions->append(' 显示 ');
// $actions->disableView(false);
}
- if ($actions->row->status == DealerOrderStatus::Confirming && Admin::user()->can('dcat.admin.dealers_orders.paid')) {
+ if (!(empty($actions->row->consignor) || $actions->row->consignor_id == 1) && $actions->row->status == DealerOrderStatus::Pending && Admin::user()->can('dcat.admin.dealer_orders.allocate')) {
+ $actions->append(new DealerOrderAllocate());
+ }
+ if ($actions->row->status == DealerOrderStatus::Confirming && Admin::user()->can('dcat.admin.dealer_orders.paid')) {
$actions->append(new DealerOrderPaid());
}
- if ((empty($actions->row->consignor) || $actions->row->consignor_id == 1) && $actions->row->status == DealerOrderStatus::Paid && Admin::user()->can('dcat.admin.dealers_orders.shipping')) {
+ if ((empty($actions->row->consignor) || $actions->row->consignor_id == 1) && $actions->row->status == DealerOrderStatus::Paid && Admin::user()->can('dcat.admin.dealer_orders.shipping')) {
$actions->append(new DealerOrderShipping());
}
});
@@ -81,6 +85,7 @@ class DealerOrderController extends AdminController
$filter->panel();
$filter->equal('user.phone')->width(3);
$filter->equal('consignor.phone')->width(3);
+ $filter->equal('sn')->width(3);
// $filter->equal('id');
});
});
diff --git a/app/Admin/Controllers/SettingController.php b/app/Admin/Controllers/SettingController.php
index 2992a683..a8f15773 100644
--- a/app/Admin/Controllers/SettingController.php
+++ b/app/Admin/Controllers/SettingController.php
@@ -182,6 +182,7 @@ class SettingController extends AdminController
case 'unipush':
$tab->addLink('系统配置', admin_route('settings.index', ['type'=>'app']));
$tab->addLink('会员奖励配置', admin_route('settings.index', ['type'=>'distribution']));
+ $tab->addLink('经销商配置', admin_route('settings.index', ['type'=>'dealer']));
$tab->addLink('提现配置', admin_route('settings.index', ['type'=>'withdraw']));
$tab->addLink('Ios配置', admin_route('settings.index', ['type'=>'ios']));
$tab->addLink('Android配置', admin_route('settings.index', ['type'=>'android']));
diff --git a/app/Admin/Forms/DealerBonds.php b/app/Admin/Forms/DealerBonds.php
index de3fdb6e..0af4cbfc 100644
--- a/app/Admin/Forms/DealerBonds.php
+++ b/app/Admin/Forms/DealerBonds.php
@@ -20,7 +20,7 @@ class DealerBonds extends Form implements LazyRenderable
*/
protected function authorize($user): bool
{
- return $user->can('dcat.admin.dealer.bonds');
+ return $user->can('dcat.admin.dealers.bonds');
}
/**
diff --git a/app/Admin/Forms/DealerOrderAllocate.php b/app/Admin/Forms/DealerOrderAllocate.php
new file mode 100644
index 00000000..ed2a97f6
--- /dev/null
+++ b/app/Admin/Forms/DealerOrderAllocate.php
@@ -0,0 +1,62 @@
+title) {
+ return $this->title;
+ }
+ return ' 分配订单 ';
+ }
+
+ /**
+ * @param Model|Authenticatable|HasPermissions|null $user
+ *
+ * @return bool
+ */
+ protected function authorize($user): bool
+ {
+ return $user->can('dcat.admin.dealer_orders.allocate');
+ }
+
+ /**
+ * Handle the action request.
+ *
+ * @param Request $request
+ *
+ * @return Response
+ */
+ public function handle(Request $request)
+ {
+ $order = DealerOrder::findOrFail($this->getKey());
+ try {
+ DB::beginTransaction();
+ (new OrderService())->updateOrderConsignor($order);
+ DB::commit();
+ } catch (Throwable $th) {
+ DB::rollBack();
+ report($th);
+ return $this->response()->error('操作失败,'.$th->getMessage())->refresh();
+ }
+
+ return $this->response()->success('操作成功')->refresh();
+ }
+
+ /**
+ * @return string|array|void
+ */
+ public function confirm()
+ {
+ return ['确认自动分配当前订单接单人?', '确认后将无法逆操作'];
+ }
+}
diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php b/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php
index 144b278c..b46fced5 100644
--- a/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php
+++ b/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php
@@ -50,7 +50,10 @@ class EarningController extends Controller
*/
public function show($id, Request $request)
{
- $earning = $request->user()->dealerEarnings()->with('earningable')->findOrFail($id);
+ $user = $request->user();
+ $earning = DealerEarning::where(function ($q) use ($user) {
+ return $q->where('user_id', $user->id)->orWhere('payer_id', $user->id);
+ })->with('earningable')->findOrFail($id);
return DealerEarningResource::make($earning);
}
diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php
index f6c9d92a..18554d26 100644
--- a/database/seeders/AdminPermissionSeeder.php
+++ b/database/seeders/AdminPermissionSeeder.php
@@ -305,6 +305,7 @@ class AdminPermissionSeeder extends Seeder
'children' =>[
'paid'=>['name' =>'确认收款'],
'shipping'=>['name' =>'确认发货'],
+ 'allocate'=>['name' =>'自动分配'],
],
],
'dealer-earnings'=>[