diff --git a/README.md b/README.md index 328bedf5..3dab05f8 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,4 @@ - 自动取消未支付的订单: `php artisan order:close-expired` - 自动完成待收货的订单: `php artisan order:complete` - 生成订单的提成记录: `php artisan order:distribute` +- 发放优惠券: `php artisan admin-work:send-coupon` diff --git a/app/Admin/Controllers/UserController.php b/app/Admin/Controllers/UserController.php index 033d2294..e560fcac 100644 --- a/app/Admin/Controllers/UserController.php +++ b/app/Admin/Controllers/UserController.php @@ -213,9 +213,11 @@ class UserController extends AdminController // 余额明细 // $tab->add('余额明细', UserBalanceLogSimpleTable::make(['id'=>$id])); // 下级列表 - $tab->add('下级列表', UserFansSimpleTable::make(['id'=>$id])); + $tab->add('直属下级', $this->gridFans($id)); // 上级列表 - $tab->add('上级列表', UserInviterSimpleTable::make(['id'=>$id])); + $tab->add('上级列表', $this->gridInviter($id)); + + // $tab->add('成长值流水', $this->gridValues($id)); $column->row(Box::make('用户记录', $tab)); }); }; @@ -291,4 +293,74 @@ class UserController extends AdminController return response()->json($query->get()); } + + protected function gridValues($id) + { + $grid = new Grid(\App\Models\SalesValueLog::with(['order'])); + + $grid->model()->where('user_id', $id)->latest('created_at'); + + $grid->paginate(1); + + $grid->setKeyName('values'); + + $grid->disableActions(); + $grid->column('order.sn', '订单号'); + $grid->column('change_sales_value', '成长值'); + $grid->column('remarks', '备注'); + $grid->column('created_at', '时间'); + + return $grid; + } + + protected function gridInviter($id) + { + $userInfo = UserInfo::where('user_id', $id)->first(); + $builder = UserInfo::query(); + $builder->with(['user.agent'])->whereIn('user_id', $userInfo->parent_ids)->latest('depth'); + return Grid::make($builder, function (Grid $grid) { + $grid->model()->orderBy('created_at', 'desc'); + + $grid->column('user_id', 'ID'); + $grid->column('user.phone', '手机号')->link(function ($value) { + return admin_url('users/'.$this->user_id); + }); + + $grid->column('user.agent.name', '代理'); + $grid->column('user.agent.ratio', '提成比例')->display(function ($v) { + return $v ? $v.'%' : ''; + }); + $grid->column('growth_value', '成长值'); + $grid->column('created_at', '注册时间'); + + + $grid->disableRefreshButton(); + $grid->disableActions(); + $grid->disablePagination(); + }); + } + + protected function gridFans($id) + { + $builder = UserInfo::query(); + $builder->with(['user.agent'])->where('inviter_id', $id); + return Grid::make($builder, function (Grid $grid) { + $grid->model()->orderBy('created_at', 'desc'); + + $grid->column('user_id', 'ID'); + $grid->column('user.phone', '手机号')->link(function ($value) { + return admin_url('users/'.$this->user_id); + }); + $grid->column('user.agent.name', '代理'); + $grid->column('user.agent.ratio', '提成比例')->display(function ($v) { + return $v ? $v.'%' : ''; + }); + $grid->column('growth_value', '成长值'); + $grid->column('created_at', '注册时间'); + + $grid->disableRefreshButton(); + $grid->disableActions(); + $grid->disablePagination(); + }); + } } diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 6b6d60f6..2cf2d7f6 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -86,6 +86,7 @@ Route::group([ $router->get('shipping-after-sales', 'AfterSaleController@index')->name('after_sales.shippings'); $router->get('finance-after-sales', 'AfterSaleController@index')->name('after_sales.finances'); + $router->get('sales-value-logs', 'SalesValueLogController@index')->name('sales_value_logs'); $router->resource('users', 'UserController'); $router->resource('messages', 'MessageController')->only([ @@ -150,8 +151,6 @@ Route::group([ $router->get('import-job-logs', 'ImportJobLogController@index')->name('import_job_logs.index'); - $router->resource('sales-value-logs', 'SalesValueLogController')->only(['index'])->names('sales_value_logs'); - //商城端-砍价活动 $router->resource('bargain-activities', 'BargainActivityController')->names('bargain_activities'); $router->resource('bargain-orders', 'BargainOrderController')->only(['index', 'show'])->names('bargain_orders'); diff --git a/app/Console/Commands/OrderDistribute.php b/app/Console/Commands/OrderDistribute.php index fd23abcf..3387bddb 100644 --- a/app/Console/Commands/OrderDistribute.php +++ b/app/Console/Commands/OrderDistribute.php @@ -44,7 +44,7 @@ class OrderDistribute extends Command while (true) { try { DB::beginTransaction(); - $query = Order::completable(); + $query = Order::where('status', Order::STATUS_COMPLETED); if ($id = $this->argument('order')) { $query->whereIn('id', explode(',', $id)); } diff --git a/app/Services/DistributeService.php b/app/Services/DistributeService.php index a41adaeb..ad0ff131 100644 --- a/app/Services/DistributeService.php +++ b/app/Services/DistributeService.php @@ -107,18 +107,21 @@ class DistributeService { // 订单已取消, 换货后生成的新订单 if ($order->isCancelled() || $order->is_change) { + logger(0); return false; } // 订单确认收货 if (!$order->isCompleted()) { + logger(1); return false; } // 已经生成过返利记录 if ($order->profits()->exists()) { + logger(2); return false; } // 订单超过售后期限 - $value = app_setting('sale_after_expire_days'); + $value = app_settings('sale_after_expire_days'); if ($value && $order->completed_at) { $diff_day = $order->completed_at->diffInDays(); return $diff_day > $value; diff --git a/database/seeders/AdminMenuSeeder.php b/database/seeders/AdminMenuSeeder.php index 9b1e2135..252c0b98 100644 --- a/database/seeders/AdminMenuSeeder.php +++ b/database/seeders/AdminMenuSeeder.php @@ -33,7 +33,8 @@ class AdminMenuSeeder extends Seeder 'icon' => '', 'uri' => 'users', ], - ['title' => '代理等级', 'icon' => '', 'uri' => 'agent'] + ['title' => '代理等级', 'icon' => '', 'uri' => 'agent'], + ['title' => '成长值流水', 'icon' => '', 'uri' => 'sales-value-logs'] ], ], [ diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php index 2dd26ff0..4bbb1ee3 100644 --- a/database/seeders/AdminPermissionSeeder.php +++ b/database/seeders/AdminPermissionSeeder.php @@ -93,6 +93,10 @@ class AdminPermissionSeeder extends Seeder 'name' => '代理等级设置', 'curd' => ['index', 'show', 'create', 'store', 'destroy'], ], + 'sales_value_logs' => [ + 'name' => '成长值流水', + 'curd' => ['index'], + ], 'vip' => [ 'name' => '会员卡管理', 'curd' => ['index', 'show', 'create', 'store', 'destroy'], diff --git a/public/favicon.ico b/public/favicon.ico index a2fd1042..b92f7411 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/images/logo.png b/public/images/logo.png index f449fb72..03319e8e 100644 Binary files a/public/images/logo.png and b/public/images/logo.png differ diff --git a/resources/lang/zh_CN/sales-value-log.php b/resources/lang/zh_CN/sales-value-log.php index 11fe9654..1b94910e 100644 --- a/resources/lang/zh_CN/sales-value-log.php +++ b/resources/lang/zh_CN/sales-value-log.php @@ -1,8 +1,10 @@ [ - 'SalesValueLog' => 'SalesValueLog', - 'sales-value-log' => 'SalesValueLog', + 'SalesValueLog' => '成长值流水', + 'salesValueLog' => '成长值流水', + 'sales-value-log' => '成长值流水', + 'sales-value-logs' => '成长值流水', ], 'fields' => [ 'user_id' => '用户',