Преглед на файлове

feat: 优化订单相关

xiansin преди 2 години
родител
ревизия
03e936fed8

+ 32 - 0
server/app/Admin/Actions/Form/UserRechargeRemark.php

xqd
@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Admin\Actions\Form;
+
+use App\Models\UserEpisodesRecord;
+use Dcat\Admin\Contracts\LazyRenderable;
+use Dcat\Admin\Traits\LazyWidget;
+use Dcat\Admin\Widgets\Form;
+
+class UserRechargeRemark extends Form implements LazyRenderable
+{
+
+    use LazyWidget;
+
+    public function handle(array $input)
+    {
+        if(!$input['remark']){
+            return $this->response()->error('请填写备注');
+        }
+
+        UserEpisodesRecord::where('id', $input['id'])->update(['remark' => $input['remark']]);
+
+        return $this->response()->success('修改成功')->refresh();
+    }
+
+    public function form()
+    {
+        $this->textarea('remark','备注');
+        $this->hidden('id')->attribute('id','recharge-id');
+    }
+
+}

+ 40 - 0
server/app/Admin/Actions/Grid/UserRechargeRemark.php

xqd
@@ -0,0 +1,40 @@
+<?php
+
+namespace App\Admin\Actions\Grid;
+
+use Dcat\Admin\Contracts\LazyRenderable;
+use Dcat\Admin\Grid\RowAction;
+use Dcat\Admin\Traits\LazyWidget;
+use Dcat\Admin\Widgets\Modal;
+
+class UserRechargeRemark extends RowAction implements LazyRenderable
+{
+    use LazyWidget;
+
+    /**
+     * @return string
+     */
+	protected $title = '备注';
+
+    public function render()
+    {
+        $form = \App\Admin\Actions\Form\UserRechargeRemark::make();
+
+        return Modal::make()
+            ->lg()
+            ->title($this->title)
+            ->body($form)
+            ->onLoad($this->getModalScript())
+            ->button($this->title);
+    }
+
+    protected function getModalScript()
+    {
+        return <<<JS
+//获取选中的ID
+let key = {$this->getKey()}
+$("#recharge-id").val(key)
+JS;
+    }
+
+}

+ 2 - 0
server/app/Admin/Controllers/Order/UserConsumeRecordController.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers\Order;
 
+use App\Admin\Actions\Grid\UserRechargeRemark;
 use App\Models\UserConsumeRecord;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -37,6 +38,7 @@ class UserConsumeRecordController extends AdminController
             $grid->column('remark');
             $grid->column('created_at');
 
+
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
                 $filter->like('user.nickname','昵称')->width(3);

+ 13 - 6
server/app/Admin/Controllers/Order/UserEpisodesRecordController.php

xqd xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers\Order;
 
+use App\Admin\Actions\Grid\UserRechargeRemark;
 use App\Models\Episode;
 use App\Models\UserEpisodesRecord;
 use Dcat\Admin\Form;
@@ -39,6 +40,10 @@ class UserEpisodesRecordController extends AdminController
             $grid->column('price')->label('danger');
             $grid->column('created_at');
 
+            $grid->actions(function (Grid\Displayers\Actions $actions){
+                $actions->append(new UserRechargeRemark());
+            });
+
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
                 $filter->equal('user_id','用户ID')->width(3);
@@ -68,15 +73,17 @@ class UserEpisodesRecordController extends AdminController
      */
     protected function detail($id)
     {
-        return Show::make($id, new UserEpisodesRecord(), function (Show $show) {
+        return Show::make($id, UserEpisodesRecord::with(['user','episodes']), function (Show $show) {
             $show->field('id');
-            $show->field('user_id');
-            $show->field('episodes_id');
-            $show->field('list_id');
+            $show->field('user.nickname','用户昵称');
+            $show->field('user.avatar','用户头像')->image('',200);
+            $show->field('user.mobile','用户电话');
+            $show->field('episodes.name','短剧名称');
+            $show->field('list_id','第几集')->label('primary');
             $show->field('price');
-            $show->field('discount');
             $show->field('created_at');
-            $show->field('updated_at');
+
+            $show->disableEditButton();
         });
     }
 

+ 18 - 14
server/app/Admin/Controllers/Order/UserRechargeRecordController.php

xqd xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers\Order;
 
+use App\Admin\Actions\Grid\UserRechargeRemark;
 use App\Models\UserRechargeRecord;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -17,9 +18,10 @@ class UserRechargeRecordController extends AdminController
      */
     protected function grid()
     {
-        return Grid::make(UserRechargeRecord::with(['user','combo']), function (Grid $grid) {
+        return Grid::make(UserRechargeRecord::with(['user','combo','pay']), function (Grid $grid) {
             $grid->model()->where('status',1);
             $grid->column('id')->sortable();
+            $grid->column('pay_id','订单号');
             $grid->column('user_id')->display(function () {
                 $str  = "";
                 $str .= "<div style='margin-right:10px;display: flex;align-items: center'>";
@@ -31,25 +33,27 @@ class UserRechargeRecordController extends AdminController
                 $str .= "</div>";
                 return $str;
             });
-            $grid->column('pay_id','订单号');
-            $grid->column('combo.name','充值套餐');
             $grid->column('price')->label('danger');
-            $grid->column('platform','所属平台')->display(function (){
-                return $this->user->info->platform;
-            })->using(config('global.platform'))->label('primary','success');
-            $grid->column('gold')->label('info');
-            $grid->column('gift')->label('primary');
+            $grid->column('combo.name','套餐名称');
+            $grid->column('pay.order_fee','实付金额')->label('danger');
+//            $grid->column('platform','所属平台')->display(function (){
+//                return $this->user->info->platform;
+//            })->using(config('global.platform'))->label('primary','success');
+            //$grid->column('gold')->label('info');
+            //$grid->column('gift')->label('primary');
             //$grid->column('pay_id');
             $grid->column('created_at')->sortable();
 
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
-                $filter->equal('user_id','用户ID')->width(3);
-                $filter->like('user.nickname','用户昵称')->width(3);
-                $filter->equal('user.mobile','手机号')->width(3);
-                $filter->equal('user.info.platform','所属平台')->select(config('global.platform'))->width(3);
-                $filter->between('price')->width(3);
-                $filter->between('created_at')->date()->width(4);
+                $filter->equal('user.info.platform','所属平台')
+                    ->select(config('global.platform'))
+                    ->width(3);
+                $filter->between('created_at','下单时间')->date()->width(4);
+                $filter->between('pay_id','订单号')->date()->width(4);
+                $filter->equal('pay.status','订单状态')
+                    ->select(config('global.order_status'))
+                    ->width(3);
             });
 
             $grid->disableCreateButton();

+ 8 - 4
server/config/global.php

xqd
@@ -20,8 +20,12 @@ return [
     // 消费类型
     'consume_type' => [1 => '充值', 2 => '消费', 3 => '签到'],
     // 分类
-    'cat_level' => [
-        1 => '一级分类',
-        2 => '二级分类',
-    ],
+    'cat_level' => [1 => '一级分类', 2 => '二级分类'],
+    // 支付状态
+    'order_status' => [
+        0 =>'未付款',
+        1 =>'已完成',
+        2 =>'已取消',
+        3 => '已关闭'
+    ]
 ];

+ 1 - 1
server/resources/lang/zh/user-episodes-record.php

xqd
@@ -8,7 +8,7 @@ return [
         'user_id' => '用户',
         'episodes_id' => '剧集',
         'list_id' => '集数',
-        'price' => '支付金币',
+        'price' => '消费金币',
         'discount' => '折扣金币',
         'created_at' => '购买时间',
     ],