瀏覽代碼

更新拒绝提现不能还钱问题

王大坤 1 年之前
父節點
當前提交
909386bd8b
共有 46 個文件被更改,包括 764 次插入703 次删除
  1. 0 0
      server/.php-cs-fixer.cache
  2. 6 8
      server/app/Admin/Controllers/AiCountController.php
  3. 8 10
      server/app/Admin/Controllers/ApplyController.php
  4. 0 4
      server/app/Admin/Controllers/BannerController.php
  5. 8 10
      server/app/Admin/Controllers/GiveawayController.php
  6. 11 11
      server/app/Admin/Controllers/HomeController.php
  7. 4 6
      server/app/Admin/Controllers/KeywordController.php
  8. 7 9
      server/app/Admin/Controllers/OrderController.php
  9. 14 17
      server/app/Admin/Controllers/OtherController.php
  10. 5 7
      server/app/Admin/Controllers/PaymentConfigController.php
  11. 5 7
      server/app/Admin/Controllers/PromotionController.php
  12. 5 7
      server/app/Admin/Controllers/ProtocolController.php
  13. 10 11
      server/app/Admin/Controllers/RecommendationsController.php
  14. 12 14
      server/app/Admin/Controllers/ServiceController.php
  15. 14 17
      server/app/Admin/Controllers/ShareAController.php
  16. 14 16
      server/app/Admin/Controllers/ShareController.php
  17. 7 9
      server/app/Admin/Controllers/ShareDataController.php
  18. 27 29
      server/app/Admin/Controllers/ShareUserController.php
  19. 43 47
      server/app/Admin/Controllers/TaskListController.php
  20. 36 38
      server/app/Admin/Controllers/UserController.php
  21. 20 21
      server/app/Admin/Controllers/UsersRoleController.php
  22. 79 82
      server/app/Admin/Controllers/WinnowController.php
  23. 13 9
      server/app/Admin/Controllers/WithdrawController.php
  24. 2 2
      server/app/Admin/routes.php
  25. 38 36
      server/app/Http/Controllers/V1/Ai/AiController.php
  26. 11 10
      server/app/Http/Controllers/V1/AuthController.php
  27. 20 7
      server/app/Http/Controllers/V1/IndexController.php
  28. 8 3
      server/app/Http/Controllers/V1/PayController.php
  29. 16 17
      server/app/Http/Controllers/V1/PayNoticeController.php
  30. 21 18
      server/app/Http/Controllers/V1/User/RechargeController.php
  31. 46 35
      server/app/Http/Controllers/V1/UserController.php
  32. 4 3
      server/app/Models/Apply.php
  33. 4 2
      server/app/Models/Banner.php
  34. 8 6
      server/app/Models/Config.php
  35. 8 3
      server/app/Models/Giveaway.php
  36. 8 4
      server/app/Models/Order.php
  37. 4 1
      server/app/Models/Share.php
  38. 2 0
      server/app/Models/TaskList.php
  39. 7 2
      server/app/Models/User.php
  40. 15 9
      server/app/Models/UserRole.php
  41. 8 5
      server/app/Models/Withdraw.php
  42. 3 1
      server/app/libs/helpers/Helper.php
  43. 25 0
      server/app/libs/wechat/auth/Gateways/Mini.php
  44. 151 145
      server/app/libs/wechat/pay/Wechat.php
  45. 4 4
      server/config/swdz.php
  46. 3 1
      server/routes/api.php

文件差異過大導致無法顯示
+ 0 - 0
server/.php-cs-fixer.cache


+ 6 - 8
server/app/Admin/Controllers/AiCountController.php

xqd xqd xqd
@@ -19,11 +19,11 @@ class AiCountController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[18]);
+            $grid->model()->whereIn('id', [18]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
+            $grid->column('desc', '标题');
 
-            $grid->column('value', '值')->display(function ($item) use ($grid) {});
+            $grid->column('value', '值')->display(function ($item) {});
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->disableDeleteButton();
@@ -35,8 +35,6 @@ class AiCountController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -61,10 +59,10 @@ class AiCountController extends AdminController
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
             $form->table('value', function (NestedForm $table) {
-                $table->select('lv','请选择年纪')->options([0 => '幼儿园',1 => '一年级',2 => '二年级',3 => '三年级',4 => '四年级',5 => '五年级',6 => '六年级',]);
-                $table->number('count','字数');
+                $table->select('lv', '请选择年纪')->options([0 => '幼儿园', 1 => '一年级', 2 => '二年级', 3 => '三年级', 4 => '四年级', 5 => '五年级', 6 => '六年级']);
+                $table->number('count', '字数');
             });
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 8 - 10
server/app/Admin/Controllers/ApplyController.php

xqd xqd xqd
@@ -31,7 +31,6 @@ class ApplyController extends AdminController
             $grid->disableDeleteButton();
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->equal('id');
-
             });
         });
     }
@@ -39,8 +38,6 @@ class ApplyController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -69,15 +66,16 @@ class ApplyController extends AdminController
             $form->display('share_phone');
             $form->select('state')
                 ->when(2, function (Form $form) {
-                    $form->textarea('not_desc','原因');
+                    $form->textarea('not_desc', '原因');
                 })
-                ->options([1 => '通过申请',2 => '不通过申请'])->saving(function ($item) use(&$form){
-                    if ($item == 1){
-                        User::query()->where('id',$form->model()->user_id)->update([
-                            'is_share' => 1,
-                            'share_name'    => $form->model()->share_name,
-                            'share_phone'    => $form->model()->share_phone,
+                ->options([1 => '通过申请', 2 => '不通过申请'])->saving(function ($item) use (&$form) {
+                    if (1 == $item) {
+                        User::query()->where('id', $form->model()->user_id)->update([
+                            'is_share'    => 1,
+                            'share_name'  => $form->model()->share_name,
+                            'share_phone' => $form->model()->share_phone,
                         ]);
+
                         return $item;
                     }
                 });

+ 0 - 4
server/app/Admin/Controllers/BannerController.php

xqd xqd
@@ -30,8 +30,6 @@ class BannerController extends AdminController
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->like('title');
                 $filter->panel();
-
-
             });
             $grid->disableViewButton();
         });
@@ -40,8 +38,6 @@ class BannerController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)

+ 8 - 10
server/app/Admin/Controllers/GiveawayController.php

xqd xqd
@@ -18,16 +18,16 @@ class GiveawayController extends AdminController
     protected function grid()
     {
         return Grid::make(new Giveaway(), function (Grid $grid) {
-            $grid->model()->with(['user','order','buyUser'])->orderByDesc('id');
+            $grid->model()->with(['user', 'order', 'buyUser'])->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('user.name','购买者昵称');
-            $grid->column('user.avatar','购买者头像')->image('',40,40);
-            $grid->column('buyUser.name','推荐人昵称');
-            $grid->column('buyUser.avatar','推荐人头像')->image('',40,40);
-            $grid->column('order.order','订单号');
+            $grid->column('user.name', '购买者昵称');
+            $grid->column('user.avatar', '购买者头像')->image('', 40, 40);
+            $grid->column('buyUser.name', '推荐人昵称');
+            $grid->column('buyUser.avatar', '推荐人头像')->image('', 40, 40);
+            $grid->column('order.order', '订单号');
             $grid->column('title');
-            $grid->column('amount','佣金');
-            $grid->column('order.amount','支付金额');
+            $grid->column('amount', '佣金');
+            $grid->column('order.amount', '支付金额');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
 
@@ -45,8 +45,6 @@ class GiveawayController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)

+ 11 - 11
server/app/Admin/Controllers/HomeController.php

xqd
@@ -15,16 +15,16 @@ class HomeController extends Controller
 {
     public function index(Content $content)
     {
-                return $content->body('<div style="text-align: center; font-size: 28px; font-weight: 300">欢迎进入短腿鹤伴读管理后台</div>');
-//        return $content
-//            ->header('数据统计卡片')
-//            ->body(function (Row $row) {
-//                $row->column(4, new TotalUsers());
-//                $row->column(4, new TotalMember());
-//                $row->column(4, new Episodes());
-//            })->body(function (Row $row) {
-//                $row->column(6, new Recharge());
-//                $row->column(6, new Consume());
-//            });
+        return $content->body('<div style="text-align: center; font-size: 28px; font-weight: 300">欢迎进入短腿鹤伴读管理后台</div>');
+        //        return $content
+        //            ->header('数据统计卡片')
+        //            ->body(function (Row $row) {
+        //                $row->column(4, new TotalUsers());
+        //                $row->column(4, new TotalMember());
+        //                $row->column(4, new Episodes());
+        //            })->body(function (Row $row) {
+        //                $row->column(6, new Recharge());
+        //                $row->column(6, new Consume());
+        //            });
     }
 }

+ 4 - 6
server/app/Admin/Controllers/KeywordController.php

xqd xqd xqd
@@ -18,9 +18,9 @@ class KeywordController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[26,27,28]);
+            $grid->model()->whereIn('id', [26, 27, 28]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
+            $grid->column('desc', '标题');
             $grid->column('value', '值');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -33,8 +33,6 @@ class KeywordController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -58,8 +56,8 @@ class KeywordController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            $form->textarea('value','值')->required();
-            $form->display('desc','标题');
+            $form->textarea('value', '值')->required();
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 7 - 9
server/app/Admin/Controllers/OrderController.php

xqd xqd xqd
@@ -18,12 +18,12 @@ class OrderController extends AdminController
     protected function grid()
     {
         return Grid::make(new Order(), function (Grid $grid) {
-            $grid->model()->with(['userData','orderData'])->orderByDesc('id');
+            $grid->model()->with(['userData', 'orderData'])->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('userData.name','昵称');
-            $grid->column('userData.mobile','手机号');
-            $grid->column('orderData.title','商品名称');
-            $grid->column('state')->using([0 => '待支付', 1 => '已支付',2 => '支付失败'])
+            $grid->column('userData.name', '昵称');
+            $grid->column('userData.mobile', '手机号');
+            $grid->column('orderData.title', '商品名称');
+            $grid->column('state')->using([0 => '待支付', 1 => '已支付', 2 => '支付失败'])
                 ->dot(
                     [
                         0 => 'danger',
@@ -36,14 +36,14 @@ class OrderController extends AdminController
             $grid->column('wx_order');
             $grid->column('amount');
             $grid->column('diamond');
-            $grid->column('pay_at','支付时间');
+            $grid->column('pay_at', '支付时间');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->quickSearch(['order', 'wx_order'])->placeholder('搜索...');
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
                 $filter->between('created_at')->datetime();
-                $filter->equal('state')->select([0 => '待支付', 1 => '已支付',2 => '支付失败']);
+                $filter->equal('state')->select([0 => '待支付', 1 => '已支付', 2 => '支付失败']);
                 $filter->where('mobile', function ($query) {
                     $query->whereHas('userData', function ($query) {
                         $query->where('mobile', 'like', "%{$this->input}%");
@@ -60,8 +60,6 @@ class OrderController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)

+ 14 - 17
server/app/Admin/Controllers/OtherController.php

xqd xqd xqd
@@ -18,18 +18,18 @@ class OtherController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[5,6,11,25]);
+            $grid->model()->whereIn('id', [5, 6, 11, 25]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value', '值')->display(function ($item) use ($grid) {
+            $grid->column('desc', '标题');
+            $grid->column('value', '值')->display(function ($item) {
                 // 在这里通过 $this 获取当前行的数据
                 $id = $this->id;
                 // 根据条件判断是否显示值列
-                if ($id == 12) {
-                    return $item.'%';
-                } else {
-                    return $item;
+                if (12 == $id) {
+                    return $item . '%';
                 }
+
+                return $item;
             });
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -42,8 +42,6 @@ class OtherController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -67,15 +65,14 @@ class OtherController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            if ($form->model()->id == 11){
-                $form->textarea('value','值')->required();
-            }elseif ($form->model()->id == 12){
-                $form->number('value','值')->required();
-            }
-            else{
-                $form->text('value','值')->required();
+            if (11 == $form->model()->id) {
+                $form->textarea('value', '值')->required();
+            } elseif (12 == $form->model()->id) {
+                $form->number('value', '值')->required();
+            } else {
+                $form->text('value', '值')->required();
             }
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 5 - 7
server/app/Admin/Controllers/PaymentConfigController.php

xqd xqd xqd xqd
@@ -24,7 +24,7 @@ class PaymentConfigController extends AdminController
             $grid->column('amount');
             $grid->column('diamond');
             $grid->column('state')->switch();
-            $grid->column('is_new','是否新用户专享')->using([0 => '不是新用户专享', 1 => '新用户专享'])
+            $grid->column('is_new', '是否新用户专享')->using([0 => '不是新用户专享', 1 => '新用户专享'])
                 ->dot(
                     [
                         0 => 'danger',
@@ -33,7 +33,7 @@ class PaymentConfigController extends AdminController
                     'danger' // 第二个参数为默认值
                 );
             $grid->column('sort');
-            $grid->column('award_count','推荐用户奖励次数');
+            $grid->column('award_count', '推荐用户奖励次数');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->quickSearch(['title', 'id'])->placeholder('搜索...');
@@ -49,8 +49,6 @@ class PaymentConfigController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -77,14 +75,14 @@ class PaymentConfigController extends AdminController
         return Form::make(new PaymentConfig(), function (Form $form) {
             $form->display('id');
             $form->text('title');
-            $form->text('amount')->rules('numeric')->saving(function ($item){
+            $form->text('amount')->rules('numeric')->saving(function ($item) {
                 return $item * 100;
             });
             $form->text('diamond');
             $form->switch('state');
-            $form->select('is_new','是否新用户专享')->options([0 => '不是新用户专享', 1 => '新用户专享']);
+            $form->select('is_new', '是否新用户专享')->options([0 => '不是新用户专享', 1 => '新用户专享']);
             $form->number('sort');
-            $form->number('award_count','推荐用户奖励次数')->default(0);
+            $form->number('award_count', '推荐用户奖励次数')->default(0);
             $form->disableDeleteButton();
             $form->display('created_at');
             $form->display('updated_at');

+ 5 - 7
server/app/Admin/Controllers/PromotionController.php

xqd xqd xqd
@@ -18,9 +18,9 @@ class PromotionController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[14]);
+            $grid->model()->whereIn('id', [14]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
+            $grid->column('desc', '标题');
             $grid->column('value', '推广背景图')->image();
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -33,8 +33,6 @@ class PromotionController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -58,10 +56,10 @@ class PromotionController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            $form->image('value','推广背景图')->disk('oss')->autoUpload()->saving(function ($res) {
-                    return $res;
+            $form->image('value', '推广背景图')->disk('oss')->autoUpload()->saving(function ($res) {
+                return $res;
             })->required();
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 5 - 7
server/app/Admin/Controllers/ProtocolController.php

xqd xqd xqd
@@ -18,10 +18,10 @@ class ProtocolController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[1,2,10]);
+            $grid->model()->whereIn('id', [1, 2, 10]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value','值');
+            $grid->column('desc', '标题');
+            $grid->column('value', '值');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->disableDeleteButton();
@@ -33,8 +33,6 @@ class ProtocolController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -58,8 +56,8 @@ class ProtocolController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            $form->editor('value','值')->required();
-            $form->display('desc','标题');
+            $form->editor('value', '值')->required();
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 10 - 11
server/app/Admin/Controllers/RecommendationsController.php

xqd xqd xqd
@@ -18,16 +18,17 @@ class RecommendationsController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[3,13,4]);
+            $grid->model()->whereIn('id', [3, 13, 4]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value','值')->display(function ($item){
-                if ($this->id == 3){
-                    return $item.'%';
+            $grid->column('desc', '标题');
+            $grid->column('value', '值')->display(function ($item) {
+                if (3 == $this->id) {
+                    return $item . '%';
                 }
-                if ($this->id == 4){
-                    return $item.'元';
+                if (4 == $this->id) {
+                    return $item . '元';
                 }
+
                 return $item;
             });
             $grid->column('created_at');
@@ -41,8 +42,6 @@ class RecommendationsController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -66,8 +65,8 @@ class RecommendationsController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            $form->text('value','值')->required();
-            $form->display('desc','标题');
+            $form->text('value', '值')->required();
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 12 - 14
server/app/Admin/Controllers/ServiceController.php

xqd xqd xqd
@@ -18,18 +18,18 @@ class ServiceController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[7,8,9]);
+            $grid->model()->whereIn('id', [7, 8, 9]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value', '值')->display(function ($item) use ($grid) {
+            $grid->column('desc', '标题');
+            $grid->column('value', '值')->display(function ($item) {
                 // 在这里通过 $this 获取当前行的数据
                 $id = $this->id;
                 // 根据条件判断是否显示值列
-                if ($id == 9) {
-                    return "<a target='_blank' href='https://zhengda.oss-cn-chengdu.aliyuncs.com/".$this->value."'>查看二维码</a>";
-                } else {
-                    return $item;
+                if (9 == $id) {
+                    return "<a target='_blank' href='https://zhengda.oss-cn-chengdu.aliyuncs.com/" . $this->value . "'>查看二维码</a>";
                 }
+
+                return $item;
             });
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -42,8 +42,6 @@ class ServiceController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -67,14 +65,14 @@ class ServiceController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            if ($form->model()->id == 9){
-                $form->image('value','二维码')->disk('oss')->autoUpload()->saving(function ($res) {
+            if (9 == $form->model()->id) {
+                $form->image('value', '二维码')->disk('oss')->autoUpload()->saving(function ($res) {
                     return $res;
                 })->required();
-            }else{
-                $form->text('value','值')->required();
+            } else {
+                $form->text('value', '值')->required();
             }
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 14 - 17
server/app/Admin/Controllers/ShareAController.php

xqd xqd xqd
@@ -18,18 +18,18 @@ class ShareAController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[22,24,12]);
+            $grid->model()->whereIn('id', [22, 24, 12]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value', '值')->display(function ($item) use ($grid) {
+            $grid->column('desc', '标题');
+            $grid->column('value', '值')->display(function ($item) {
                 // 在这里通过 $this 获取当前行的数据
                 $id = $this->id;
                 // 根据条件判断是否显示值列
-                if ($id == 12) {
-                    return $item.'%';
-                } else {
-                    return $item;
+                if (12 == $id) {
+                    return $item . '%';
                 }
+
+                return $item;
             });
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -42,8 +42,6 @@ class ShareAController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -67,15 +65,14 @@ class ShareAController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            if ($form->model()->id == 22){
-                $form->editor('value','值')->required();
-            }elseif ($form->model()->id == 12){
-                $form->number('value','值')->required();
-            }
-            else{
-                $form->textarea('value','值')->required();
+            if (22 == $form->model()->id) {
+                $form->editor('value', '值')->required();
+            } elseif (12 == $form->model()->id) {
+                $form->number('value', '值')->required();
+            } else {
+                $form->textarea('value', '值')->required();
             }
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 14 - 16
server/app/Admin/Controllers/ShareController.php

xqd xqd xqd
@@ -18,18 +18,18 @@ class ShareController extends AdminController
     protected function grid()
     {
         return Grid::make(new Config(), function (Grid $grid) {
-            $grid->model()->whereIn('id',[15,16,17]);
+            $grid->model()->whereIn('id', [15, 16, 17]);
             $grid->column('id')->sortable();
-            $grid->column('desc','标题');
-            $grid->column('value', '值')->display(function ($item) use ($grid) {
+            $grid->column('desc', '标题');
+            $grid->column('value', '值')->display(function ($item) {
                 // 在这里通过 $this 获取当前行的数据
                 $id = $this->id;
                 // 根据条件判断是否显示值列
-                if ($id == 16) {
-                    return "<img style='width:50px;'  src='https://zhengda.oss-cn-chengdu.aliyuncs.com/".$this->value."'/>";
-                } else {
-                    return $item;
+                if (16 == $id) {
+                    return "<img style='width:50px;'  src='https://zhengda.oss-cn-chengdu.aliyuncs.com/" . $this->value . "'/>";
                 }
+
+                return $item;
             });
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -42,8 +42,6 @@ class ShareController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -67,16 +65,16 @@ class ShareController extends AdminController
     {
         return Form::make(new Config(), function (Form $form) {
             $form->display('id');
-            if ($form->model()->id == 16){
-                $form->image('value','二维码')->disk('oss')->autoUpload()->saving(function ($res) {
+            if (16 == $form->model()->id) {
+                $form->image('value', '二维码')->disk('oss')->autoUpload()->saving(function ($res) {
                     return $res;
                 })->required();
-            }elseif ($form->model()->id == 17){
-                $form->textarea('value','值')->required();
-            }else{
-                $form->text('value','值')->required();
+            } elseif (17 == $form->model()->id) {
+                $form->textarea('value', '值')->required();
+            } else {
+                $form->text('value', '值')->required();
             }
-            $form->display('desc','标题');
+            $form->display('desc', '标题');
             $form->disableViewButton();
             $form->disableDeleteButton();
         });

+ 7 - 9
server/app/Admin/Controllers/ShareDataController.php

xqd xqd
@@ -18,14 +18,14 @@ class ShareDataController extends AdminController
     protected function grid()
     {
         return Grid::make(new Share(), function (Grid $grid) {
-            $grid->model()->with(['inviteData','pidData'])->orderByDesc('id');
+            $grid->model()->with(['inviteData', 'pidData'])->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('inviteData.name','邀请人昵称');
-            $grid->column('inviteData.avatar','邀请人头像')->image('',80,80);
-            $grid->column('pidData.name','被邀请人昵称');
-            $grid->column('pidData.avatar','被邀请人头像')->image('',80,80);
-            $grid->column('diamond','获得次数');
-            $grid->column('desc','备注');
+            $grid->column('inviteData.name', '邀请人昵称');
+            $grid->column('inviteData.avatar', '邀请人头像')->image('', 80, 80);
+            $grid->column('pidData.name', '被邀请人昵称');
+            $grid->column('pidData.avatar', '被邀请人头像')->image('', 80, 80);
+            $grid->column('diamond', '获得次数');
+            $grid->column('desc', '备注');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->disableDeleteButton();
@@ -41,8 +41,6 @@ class ShareDataController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)

+ 27 - 29
server/app/Admin/Controllers/ShareUserController.php

xqd xqd xqd xqd
@@ -18,16 +18,16 @@ class ShareUserController extends AdminController
     protected function grid()
     {
         return Grid::make(new User(), function (Grid $grid) {
-            $grid->model()->withCount('invite_data')->where('is_share',1)->orderByDesc('id');
+            $grid->model()->withCount('invite_data')->where('is_share', 1)->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('share_name','分销商姓名');
-            $grid->column('share_phone','分销商电话');
-            $grid->column('last_login_ip','最后登录IP');
-            $grid->column('last_login_time','最后登录时间');
-            $grid->column('is_black','是否拉黑')->switch();
-            $grid->column('diamond','剩余次数');
-            $grid->column('income','可提现佣金');
-            $grid->column('invite_data_count','已邀请人数');
+            $grid->column('share_name', '分销商姓名');
+            $grid->column('share_phone', '分销商电话');
+            $grid->column('last_login_ip', '最后登录IP');
+            $grid->column('last_login_time', '最后登录时间');
+            $grid->column('is_black', '是否拉黑')->switch();
+            $grid->column('diamond', '剩余次数');
+            $grid->column('income', '可提现佣金');
+            $grid->column('invite_data_count', '已邀请人数');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->quickSearch(['name', 'id', 'mobile'])->placeholder('搜索...');
@@ -45,8 +45,6 @@ class ShareUserController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -55,22 +53,22 @@ class ShareUserController extends AdminController
             $show->model()->with('userShare');
             $show->field('id');
             $show->field('name');
-            $show->field('open_id','微信openid');
+            $show->field('open_id', '微信openid');
             $show->field('avatar')->image();
             $show->field('mobile');
             $show->field('online');
             $show->field('last_login_ip');
             $show->field('last_login_time');
-            $show->field('is_black')->as(function ($item){
+            $show->field('is_black')->as(function ($item) {
                 return $item ? '拉黑' : '正常';
             });
             $show->field('diamond');
-            $show->field('is_share')->as(function ($item){
+            $show->field('is_share')->as(function ($item) {
                 return $item ? '是推广人' : '不是推广人';
             });
             $show->field('share_name');
             $show->field('share_phone');
-            $show->field('userShare.name','推广人昵称(被)');
+            $show->field('userShare.name', '推广人昵称(被)');
             $show->field('share_date');
             $show->field('income');
             $show->field('qr_code')->image();
@@ -90,29 +88,29 @@ class ShareUserController extends AdminController
         return Form::make(new User(), function (Form $form) {
             $form->display('id');
             $form->text('name');
-//            $form->text('open_id');
+            //            $form->text('open_id');
             $form->image('avatar')->disk('oss')->autoUpload()->saving(function ($res) {
                 return $res;
-            })->required();;
+            })->required();
             $form->text('mobile');
-//            $form->text('status');
-//            $form->text('online');
-//            $form->text('last_login_ip');
-//            $form->text('register_ip');
-//            $form->text('last_login_time');
+            //            $form->text('status');
+            //            $form->text('online');
+            //            $form->text('last_login_ip');
+            //            $form->text('register_ip');
+            //            $form->text('last_login_time');
             $form->switch('is_black');
-//            $form->text('sessionKey');
+            //            $form->text('sessionKey');
             $form->text('diamond');
             $form->switch('is_share');
             $form->text('share_name');
             $form->text('share_phone');
-//            $form->text('share_pid');
-//            $form->text('share_date');
+            //            $form->text('share_pid');
+            //            $form->text('share_date');
             $form->text('income');
-//            $form->text('qr_code');
-//
-//            $form->display('created_at');
-//            $form->display('updated_at');
+            //            $form->text('qr_code');
+            //
+            //            $form->display('created_at');
+            //            $form->display('updated_at');
             $form->disableDeleteButton();
         });
     }

+ 43 - 47
server/app/Admin/Controllers/TaskListController.php

xqd xqd xqd xqd xqd xqd xqd
@@ -7,7 +7,6 @@ use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Http\Controllers\AdminController;
-use TencentCloud\Asr\V20190614\Models\Task;
 
 class TaskListController extends AdminController
 {
@@ -19,14 +18,14 @@ class TaskListController extends AdminController
     protected function grid()
     {
         return Grid::make(new TaskList(), function (Grid $grid) {
-            $grid->model()->with('userData')->where('is_handpick',0)->orderByDesc('id');
+            $grid->model()->with('userData')->where('is_handpick', 0)->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('userData.name','昵称');
-            $grid->column('userData.mobile','手机号');
-            $grid->column('userData.avatar','头像')->image('',40,40);
+            $grid->column('userData.name', '昵称');
+            $grid->column('userData.mobile', '手机号');
+            $grid->column('userData.avatar', '头像')->image('', 40, 40);
             $grid->column('title')->display(function ($initContent) {
                 $maxLength = 10; // 你希望显示的最大字符数
-                $ellipsis = '...'; // 省略号
+                $ellipsis  = '...'; // 省略号
 
                 // 使用 mb_substr 截取字符串
                 $displayContent = mb_substr($initContent, 0, $maxLength);
@@ -37,9 +36,9 @@ class TaskListController extends AdminController
                 }
 
                 return $displayContent;
-            });;
-//            $grid->column('role_id');
-//            $grid->column('content');
+            });
+            //            $grid->column('role_id');
+            //            $grid->column('content');
             $grid->column('state')->using(TaskList::$state)
                 ->dot(
                     [
@@ -52,48 +51,48 @@ class TaskListController extends AdminController
                         6 => 'success',
                     ],
                     'danger' // 第二个参数为默认值
-                );;
-//            $grid->column('image')->image('',80,80);
-//            $grid->column('init_content')->width('300px')->display(function ($initContent) {
-//                $maxLength = 10; // 你希望显示的最大字符数
-//                $ellipsis = '...'; // 省略号
-//
-//                // 使用 mb_substr 截取字符串
-//                $displayContent = mb_substr($initContent, 0, $maxLength);
-//
-//                // 如果原始字符串长度超过最大长度,添加省略号
-//                if (mb_strlen($initContent) > $maxLength) {
-//                    $displayContent .= $ellipsis;
-//                }
-//
-//                return $displayContent;
-//            });
-//            $grid->column('keyword');
-//            $grid->column('sd_image');
-//            $grid->column('desc');
-//            $grid->column('sd_id')->image('',80,80);
+                );
+            //            $grid->column('image')->image('',80,80);
+            //            $grid->column('init_content')->width('300px')->display(function ($initContent) {
+            //                $maxLength = 10; // 你希望显示的最大字符数
+            //                $ellipsis = '...'; // 省略号
+            //
+            //                // 使用 mb_substr 截取字符串
+            //                $displayContent = mb_substr($initContent, 0, $maxLength);
+            //
+            //                // 如果原始字符串长度超过最大长度,添加省略号
+            //                if (mb_strlen($initContent) > $maxLength) {
+            //                    $displayContent .= $ellipsis;
+            //                }
+            //
+            //                return $displayContent;
+            //            });
+            //            $grid->column('keyword');
+            //            $grid->column('sd_image');
+            //            $grid->column('desc');
+            //            $grid->column('sd_id')->image('',80,80);
             $grid->column('surplus_diamond');
-//            $grid->column('nickname');
-//            $grid->column('plot');
+            //            $grid->column('nickname');
+            //            $grid->column('plot');
             $grid->column('is_handpick')->switch();
             $grid->column('sort')->sortable();
             $grid->column('pdf_path')->display(function ($pdfPath) {
-//                $downloadUrl = url($pdfPath);
-                if (!empty($pdfPath)){
-                    return "<a target='_blank' href='".$pdfPath."'>下载PDF</a>";
-                }else{
-                    return "还未生成PDF";
+                //                $downloadUrl = url($pdfPath);
+                if (!empty($pdfPath)) {
+                    return "<a target='_blank' href='" . $pdfPath . "'>下载PDF</a>";
                 }
+
+                return '还未生成PDF';
             });
-            $grid->column('image_path','图片地址')->display(function ($image_path) {
-//                $downloadUrl = url($pdfPath);
-                if (!empty($image_path)){
-                    return "<a target='_blank' href='".$image_path."'>浏览图片</a>";
-                }else{
-                    return "还未生成图片";
+            $grid->column('image_path', '图片地址')->display(function ($image_path) {
+                //                $downloadUrl = url($pdfPath);
+                if (!empty($image_path)) {
+                    return "<a target='_blank' href='" . $image_path . "'>浏览图片</a>";
                 }
+
+                return '还未生成图片';
             });
-//            $grid->column('pinyin_content');
+            //            $grid->column('pinyin_content');
 
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
@@ -104,7 +103,7 @@ class TaskListController extends AdminController
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
                 $filter->between('created_at')->datetime();
-                $filter->equal('is_handpick','是否精选')->select([0 => '不是精选',1 => '精选']);
+                $filter->equal('is_handpick', '是否精选')->select([0 => '不是精选', 1 => '精选']);
                 $filter->where('mobile', function ($query) {
                     $query->whereHas('userData', function ($query) {
                         $query->where('mobile', 'like', "%{$this->input}%");
@@ -115,7 +114,6 @@ class TaskListController extends AdminController
                         $query->where('name', 'like', "%{$this->input}%");
                     });
                 }, '用户昵称');
-
             });
         });
     }
@@ -123,8 +121,6 @@ class TaskListController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)

+ 36 - 38
server/app/Admin/Controllers/UserController.php

xqd xqd xqd xqd
@@ -21,25 +21,25 @@ class UserController extends AdminController
             $grid->model()->withCount('creation')->orderByDesc('id');
             $grid->column('id')->sortable();
             $grid->column('name');
-//            $grid->column('open_id');
-            $grid->column('avatar')->image('',80,80);
+            //            $grid->column('open_id');
+            $grid->column('avatar')->image('', 80, 80);
             $grid->column('mobile');
-//            $grid->column('status')->switch();
-            $grid->column('online','是否在线')->switch();
-            $grid->column('last_login_ip','最后登录IP');
-//            $grid->column('register_ip');
-            $grid->column('last_login_time','最后登录时间');
-            $grid->column('is_black','是否拉黑')->switch();
-//            $grid->column('sessionKey');
-            $grid->column('diamond','剩余次数');
-//            $grid->column('is_share');
-//            $grid->column('share_name');
-//            $grid->column('share_phone');
-//            $grid->column('share_pid');
-//            $grid->column('share_date');
-            $grid->column('income','可提现佣金');
-            $grid->column('creation_count','创作次数');
-            $grid->column('qr_code','邀请二维码')->image();
+            //            $grid->column('status')->switch();
+            $grid->column('online', '是否在线')->switch();
+            $grid->column('last_login_ip', '最后登录IP');
+            //            $grid->column('register_ip');
+            $grid->column('last_login_time', '最后登录时间');
+            $grid->column('is_black', '是否拉黑')->switch();
+            //            $grid->column('sessionKey');
+            $grid->column('diamond', '剩余次数');
+            //            $grid->column('is_share');
+            //            $grid->column('share_name');
+            //            $grid->column('share_phone');
+            //            $grid->column('share_pid');
+            //            $grid->column('share_date');
+            $grid->column('income', '可提现佣金');
+            $grid->column('creation_count', '创作次数');
+            $grid->column('qr_code', '邀请二维码')->image();
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->quickSearch(['name', 'id', 'mobile'])->placeholder('搜索...');
@@ -57,8 +57,6 @@ class UserController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -67,22 +65,22 @@ class UserController extends AdminController
             $show->model()->with('userShare');
             $show->field('id');
             $show->field('name');
-            $show->field('open_id','微信openid');
+            $show->field('open_id', '微信openid');
             $show->field('avatar')->image();
             $show->field('mobile');
             $show->field('online');
             $show->field('last_login_ip');
             $show->field('last_login_time');
-            $show->field('is_black')->as(function ($item){
+            $show->field('is_black')->as(function ($item) {
                 return $item ? '拉黑' : '正常';
             });
             $show->field('diamond');
-            $show->field('is_share')->as(function ($item){
+            $show->field('is_share')->as(function ($item) {
                 return $item ? '是推广人' : '不是推广人';
             });
             $show->field('share_name');
             $show->field('share_phone');
-            $show->field('userShare.name','推广人昵称(被)');
+            $show->field('userShare.name', '推广人昵称(被)');
             $show->field('share_date');
             $show->field('income');
             $show->field('qr_code')->image();
@@ -102,29 +100,29 @@ class UserController extends AdminController
         return Form::make(new User(), function (Form $form) {
             $form->display('id');
             $form->text('name');
-//            $form->text('open_id');
+            //            $form->text('open_id');
             $form->image('avatar')->disk('oss')->autoUpload()->saving(function ($res) {
                 return $res;
-            })->required();;
+            })->required();
             $form->text('mobile');
-//            $form->text('status');
-//            $form->text('online');
-//            $form->text('last_login_ip');
-//            $form->text('register_ip');
-//            $form->text('last_login_time');
+            //            $form->text('status');
+            //            $form->text('online');
+            //            $form->text('last_login_ip');
+            //            $form->text('register_ip');
+            //            $form->text('last_login_time');
             $form->switch('is_black');
-//            $form->text('sessionKey');
+            //            $form->text('sessionKey');
             $form->text('diamond');
             $form->switch('is_share');
             $form->text('share_name');
             $form->text('share_phone');
-//            $form->text('share_pid');
-//            $form->text('share_date');
+            //            $form->text('share_pid');
+            //            $form->text('share_date');
             $form->text('income');
-//            $form->text('qr_code');
-//
-//            $form->display('created_at');
-//            $form->display('updated_at');
+            //            $form->text('qr_code');
+            //
+            //            $form->display('created_at');
+            //            $form->display('updated_at');
             $form->disableDeleteButton();
         });
     }

+ 20 - 21
server/app/Admin/Controllers/UsersRoleController.php

xqd xqd xqd
@@ -21,41 +21,42 @@ class UsersRoleController extends AdminController
         return Grid::make(new UserRole(), function (Grid $grid) {
             $grid->model()->with('userData')->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('userData.name','昵称');
-            $grid->column('userData.avatar','头像')->image('',80,80);
-            $grid->column('userData.mobile','手机号');
+            $grid->column('userData.name', '昵称');
+            $grid->column('userData.avatar', '头像')->image('', 80, 80);
+            $grid->column('userData.mobile', '手机号');
             $grid->column('name');
             $grid->column('sex');
             $grid->column('age');
             $grid->column('star');
-            $grid->column('level','年级');
+            $grid->column('level', '年级');
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
             $grid->disableCreateButton();
             $grid->disableViewButton();
-            $grid->export() ->rows(function ($rows) {
+            $grid->export()->rows(function ($rows) {
                 $exportRows = [];
                 foreach ($rows as $index => $row) {
                     // 确保 $row->userData 不为 null
-                    if ($row->userData !== null) {
-                        $user = $row->userData;
+                    if (null !== $row->userData) {
+                        $user      = $row->userData;
                         $exportRow = [
-                            'id' => $row->id,
-                            'userData.name' => $user->name,  // Add 'userData.name' to export
+                            'id'              => $row->id,
+                            'userData.name'   => $user->name,  // Add 'userData.name' to export
                             'userData.avatar' => $user->avatar,  // Add 'userData.avatar' to export
                             'userData.mobile' => $user->mobile,  // Add 'userData.avatar' to export
-                            'name' => $row->name,
-                            'sex' => $row->sex,
-                            'age' => $row->age,
-                            'star' => $row->star,
-                            'level' => $row->level,
-                            'created_at' => $row->created_at,
-                            'updated_at' => $row->updated_at,
+                            'name'            => $row->name,
+                            'sex'             => $row->sex,
+                            'age'             => $row->age,
+                            'star'            => $row->star,
+                            'level'           => $row->level,
+                            'created_at'      => $row->created_at,
+                            'updated_at'      => $row->updated_at,
                         ];
                         $exportRows[] = $exportRow;
                     }
                 }
-//                var_dump($exportRows);
+
+                //                var_dump($exportRows);
                 return collect($exportRows);
             });
             $grid->filter(function (Grid\Filter $filter) {
@@ -69,8 +70,6 @@ class UsersRoleController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -97,9 +96,9 @@ class UsersRoleController extends AdminController
     {
         return Form::make(new UserRole(), function (Form $form) {
             $form->display('id');
-//            $form->text('user_id');
+            //            $form->text('user_id');
             $form->text('name');
-            $form->select('sex')->options(['男孩' => '男孩','女孩' => '女孩']);
+            $form->select('sex')->options(['男孩' => '男孩', '女孩' => '女孩']);
             $form->number('age');
             $form->text('star');
             $form->select('level')->options(UserRole::$level);

+ 79 - 82
server/app/Admin/Controllers/WinnowController.php

xqd xqd xqd xqd xqd
@@ -8,7 +8,6 @@ use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Http\Controllers\AdminController;
-use TencentCloud\Asr\V20190614\Models\Task;
 
 class WinnowController extends AdminController
 {
@@ -20,14 +19,14 @@ class WinnowController extends AdminController
     protected function grid()
     {
         return Grid::make(new TaskList(), function (Grid $grid) {
-            $grid->model()->with('userData')->where('is_handpick',1)->orderByDesc('id');
+            $grid->model()->with('userData')->where('is_handpick', 1)->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('userData.name','昵称');
-//            $grid->column('userData.mobile','手机号');
-            $grid->column('userData.avatar','头像')->image('',40,40);
+            $grid->column('userData.name', '昵称');
+            //            $grid->column('userData.mobile','手机号');
+            $grid->column('userData.avatar', '头像')->image('', 40, 40);
             $grid->column('title')->display(function ($initContent) {
                 $maxLength = 10; // 你希望显示的最大字符数
-                $ellipsis = '...'; // 省略号
+                $ellipsis  = '...'; // 省略号
 
                 // 使用 mb_substr 截取字符串
                 $displayContent = mb_substr($initContent, 0, $maxLength);
@@ -38,72 +37,71 @@ class WinnowController extends AdminController
                 }
 
                 return $displayContent;
-            });;
-//            $grid->column('role_id');
-//            $grid->column('content');
-//            $grid->column('image')->image('',80,80);
-//            $grid->column('init_content')->width('300px')->display(function ($initContent) {
-//                $maxLength = 10; // 你希望显示的最大字符数
-//                $ellipsis = '...'; // 省略号
-//
-//                // 使用 mb_substr 截取字符串
-//                $displayContent = mb_substr($initContent, 0, $maxLength);
-//
-//                // 如果原始字符串长度超过最大长度,添加省略号
-//                if (mb_strlen($initContent) > $maxLength) {
-//                    $displayContent .= $ellipsis;
-//                }
-//
-//                return $displayContent;
-//            });
-//            $grid->column('keyword');
-//            $grid->column('sd_image');
-//            $grid->column('desc');
-//            $grid->column('sd_id')->image('',80,80);
+            });
+            //            $grid->column('role_id');
+            //            $grid->column('content');
+            //            $grid->column('image')->image('',80,80);
+            //            $grid->column('init_content')->width('300px')->display(function ($initContent) {
+            //                $maxLength = 10; // 你希望显示的最大字符数
+            //                $ellipsis = '...'; // 省略号
+            //
+            //                // 使用 mb_substr 截取字符串
+            //                $displayContent = mb_substr($initContent, 0, $maxLength);
+            //
+            //                // 如果原始字符串长度超过最大长度,添加省略号
+            //                if (mb_strlen($initContent) > $maxLength) {
+            //                    $displayContent .= $ellipsis;
+            //                }
+            //
+            //                return $displayContent;
+            //            });
+            //            $grid->column('keyword');
+            //            $grid->column('sd_image');
+            //            $grid->column('desc');
+            //            $grid->column('sd_id')->image('',80,80);
             $grid->column('surplus_diamond');
-//            $grid->column('nickname');
-//            $grid->column('plot');
+            //            $grid->column('nickname');
+            //            $grid->column('plot');
             $grid->column('sort')->sortable();
             $grid->column('pdf_path')->display(function ($pdfPath) {
-//                $downloadUrl = url($pdfPath);
-                if (!empty($pdfPath)){
-                    return "<a target='_blank' href='".$pdfPath."'>下载PDF</a>";
-                }else{
-                    return "还未生成PDF";
+                //                $downloadUrl = url($pdfPath);
+                if (!empty($pdfPath)) {
+                    return "<a target='_blank' href='" . $pdfPath . "'>下载PDF</a>";
                 }
+
+                return '还未生成PDF';
             });
-            $grid->column('image_path','图片地址')->display(function ($image_path) {
-//                $downloadUrl = url($pdfPath);
-                if (!empty($image_path)){
-                    return "<a target='_blank' href='".$image_path."'>浏览图片</a>";
-                }else{
-                    return "还未生成图片";
+            $grid->column('image_path', '图片地址')->display(function ($image_path) {
+                //                $downloadUrl = url($pdfPath);
+                if (!empty($image_path)) {
+                    return "<a target='_blank' href='" . $image_path . "'>浏览图片</a>";
                 }
+
+                return '还未生成图片';
             });
-//            $grid->column('pinyin_content');
+            //            $grid->column('pinyin_content');
 
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
-//            $grid->disableEditButton();
-//            $grid->disableDeleteButton();
+            //            $grid->disableEditButton();
+            //            $grid->disableDeleteButton();
             $grid->disableViewButton();
-//            $grid->disableCreateButton();
+            //            $grid->disableCreateButton();
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->panel();
                 $filter->between('created_at')->datetime();
                 $filter->like('title');
-//                $filter->equal('is_handpick','是否精选')->select([0 => '不是精选',1 => '精选']);
-//                $filter->where('mobile', function ($query) {
-//                    $query->whereHas('userData', function ($query) {
-//                        $query->where('mobile', 'like', "%{$this->input}%");
-//                    });
-//                }, '用户手机号');
-//                $filter->where('name', function ($query) {
-//                    $query->whereHas('userData', function ($query) {
-//                        $query->where('name', 'like', "%{$this->input}%");
-//                    });
-//                }, '用户昵称');
-
+                //                $filter->equal('is_handpick','是否精选')->select([0 => '不是精选',1 => '精选']);
+                //                $filter->where('mobile', function ($query) {
+                //                    $query->whereHas('userData', function ($query) {
+                //                        $query->where('mobile', 'like', "%{$this->input}%");
+                //                    });
+                //                }, '用户手机号');
+                //                $filter->where('name', function ($query) {
+                //                    $query->whereHas('userData', function ($query) {
+                //                        $query->where('name', 'like', "%{$this->input}%");
+                //                    });
+                //                }, '用户昵称');
             });
         });
     }
@@ -111,8 +109,6 @@ class WinnowController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -152,53 +148,54 @@ class WinnowController extends AdminController
         return Form::make(new TaskList(), function (Form $form) {
             $form->display('id');
             $form->hidden('user_id')->default(0);
-//            $form->text('title');
-//            $form->text('role_id');
-//            $form->text('content');
+            //            $form->text('title');
+            //            $form->text('role_id');
+            //            $form->text('content');
             $form->hidden('state')->default(6);
             $form->text('title')->required();
             $form->image('image')->disk('oss')->autoUpload()->saving(function ($res) {
                 if (strstr($res, 'https')) {
                     return $res;
-                }else{
-                    return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/'.$res;
                 }
+
+                return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/' . $res;
             })->required();
             $form->image('sd_image')->disk('oss')->autoUpload()->saving(function ($res) {
                 if (strstr($res, 'https')) {
                     return $res;
-                }else{
-                    return 'zhengda.oss-cn-chengdu.aliyuncs.com/'.$res;
                 }
+
+                return 'zhengda.oss-cn-chengdu.aliyuncs.com/' . $res;
             })->required();
-//            $form->text('init_content');
-//            $form->text('keyword');
-//            $form->text('sd_image');
-//            $form->text('desc');
-//            $form->text('sd_id');
-//            $form->text('surplus_diamond');
-//            $form->text('nickname');
-//            $form->text('plot');
+            //            $form->text('init_content');
+            //            $form->text('keyword');
+            //            $form->text('sd_image');
+            //            $form->text('desc');
+            //            $form->text('sd_id');
+            //            $form->text('surplus_diamond');
+            //            $form->text('nickname');
+            //            $form->text('plot');
             $form->hidden('is_handpick')->default(1);
             $form->number('sort');
-            $form->textarea('pinyin_content')->saving(function ($item) use(&$form){
+            $form->textarea('pinyin_content')->saving(function ($item) use (&$form) {
                 // var_dump($form->sd_image);
                 $item = preg_replace('/[^\p{L}\p{N}]/u', '', $item);
-                return (new AiController())->extracted($item,1,'zhengda.oss-cn-chengdu.aliyuncs.com/'.$form->sd_image);
+
+                return (new AiController())->extracted($item, 1, 'zhengda.oss-cn-chengdu.aliyuncs.com/' . $form->sd_image);
             });
-            $form->file('pdf_path','PDF')->disk('oss')->autoUpload()->saving(function ($res) {
+            $form->file('pdf_path', 'PDF')->disk('oss')->autoUpload()->saving(function ($res) {
                 if (strstr($res, 'https')) {
                     return $res;
-                }else{
-                    return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/'.$res;
                 }
+
+                return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/' . $res;
             })->required();
-            $form->image('image_path','图片')->disk('oss')->autoUpload()->saving(function ($res) {
+            $form->image('image_path', '图片')->disk('oss')->autoUpload()->saving(function ($res) {
                 if (strstr($res, 'https')) {
                     return $res;
-                }else{
-                    return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/'.$res;
                 }
+
+                return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/' . $res;
             })->required();
 
             $form->display('created_at');

+ 13 - 9
server/app/Admin/Controllers/WithdrawController.php

xqd xqd xqd xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers;
 
+use App\Models\User;
 use App\Models\Withdraw;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -20,9 +21,9 @@ class WithdrawController extends AdminController
         return Grid::make(new Withdraw(), function (Grid $grid) {
             $grid->model()->with('userData')->orderByDesc('id');
             $grid->column('id')->sortable();
-            $grid->column('userData.name','昵称')->sortable();
-            $grid->column('userData.avatar','昵称')->image('',40,40);
-            $grid->column('userData.mobile','手机号')->sortable();
+            $grid->column('userData.name', '昵称')->sortable();
+            $grid->column('userData.avatar', '昵称')->image('', 40, 40);
+            $grid->column('userData.mobile', '手机号')->sortable();
             $grid->column('type')->using(Withdraw::$label)
                 ->dot(
                     [
@@ -43,8 +44,8 @@ class WithdrawController extends AdminController
                         2 => 'danger',
                     ],
                     'danger' // 第二个参数为默认值
-                );;
-//            $grid->column('user_id');
+                );
+            //            $grid->column('user_id');
             $grid->column('amount');
             $grid->column('procedure');
             $grid->column('practical_amount');
@@ -65,8 +66,6 @@ class WithdrawController extends AdminController
     /**
      * Make a show builder.
      *
-     * @param mixed $id
-     *
      * @return Show
      */
     protected function detail($id)
@@ -99,12 +98,17 @@ class WithdrawController extends AdminController
             $state = Withdraw::$state;
             // unset($state[0]);
             $form->display('id');
-//            $form->select('type')->options(Withdraw::$label)->disable();
+            $form->hidden('user_id');
+            //            $form->select('type')->options(Withdraw::$label)->disable();
             $form->select('state')
                 ->when(2, function (Form $form) {
                     $form->textarea('not_desc');
                 })
-                ->options($state);
+                ->options($state)->saving(function ($item) use(&$form){
+                    if ($item == 2){
+                        User::query()->where('id',$form->model()->user_id)->increment('income',$form->model()->amount * 100);
+                    }
+                });
             $form->display('amount');
             $form->display('procedure');
             $form->display('practical_amount');

+ 2 - 2
server/app/Admin/routes.php

xqd
@@ -82,8 +82,8 @@ Route::group([
     $router->resource('/shareList', 'ShareUserController');
     $router->resource('/Winnow', 'WinnowController');
     $router->resource('/keyword', 'KeywordController');
-        $router->resource('/UsersRole', 'UsersRoleController');
-            $router->resource('/ShareData', 'ShareDataController');
+    $router->resource('/UsersRole', 'UsersRoleController');
+    $router->resource('/ShareData', 'ShareDataController');
     //  营销
     $router->group([
         'namespace' => 'Market',

+ 38 - 36
server/app/Http/Controllers/V1/Ai/AiController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -93,20 +93,22 @@ class AiController extends Controller
     }
 
     /**
-     * 获取字数
+     * 获取字数.
      *
-     * @param $level
      * @return int|mixed
      */
-    private function getBuildCountString($level = 1){
-        $string = Config::query()->where('key','class_count')->first()->toArray();
-        foreach ($string['value'] ?? [] as $value){
-            if ($level == $value['lv']){
+    private function getBuildCountString($level = 1)
+    {
+        $string = Config::query()->where('key', 'class_count')->first()->toArray();
+        foreach ($string['value'] ?? [] as $value) {
+            if ($level == $value['lv']) {
                 return $value['count'];
             }
         }
+
         return 200;
     }
+
     /**
      * 生成故事.
      */
@@ -117,16 +119,16 @@ class AiController extends Controller
             if (!$task) {
                 return Response::fail('暂无任务');
             }
-            $key     = [];
-//            $keyword = Keyword::query()->pluck('keyword');
-//            foreach ($keyword as $value) {
-//                $key[] = $value;
-//            }
-//            $keyword     = implode(',', $key);
-            $keyword = Config::query()->where('key','prompt_gushi')->value('value');
+            $key = [];
+            //            $keyword = Keyword::query()->pluck('keyword');
+            //            foreach ($keyword as $value) {
+            //                $key[] = $value;
+            //            }
+            //            $keyword     = implode(',', $key);
+            $keyword     = Config::query()->where('key', 'prompt_gushi')->value('value');
             $task->state = 1;
             $task->save();
-            Log::warning('这个是当前的次数:'.$this->getBuildCountString($task->level));
+            Log::warning('这个是当前的次数:' . $this->getBuildCountString($task->level));
             $prompt     = "一个{$task->role->sex},叫{$task->role->name},{$task->role->age}岁。{$keyword},要求不低于{$this->getBuildCountString($task->role->level)}字。备注:不要加什么特殊符号只需要正常的逗号句号叹号这些。";
             $messages[] = ['role' => 'user', 'content' => $prompt];
             $data       = [
@@ -164,8 +166,8 @@ class AiController extends Controller
             $data       = [
                 'messages' => $messages,
             ];
-            $postData    = json_encode($data);
-            $complete    = $this->host($postData);
+            $postData = json_encode($data);
+            $complete = $this->host($postData);
             // $task->state = 2;
             $task->title = $complete['result'];
             $task->save();
@@ -190,16 +192,16 @@ class AiController extends Controller
             if (!$task) {
                 return Response::fail('暂无任务');
             }
-            $keyword = Config::query()->where('key','prompt_keyword')->value('value');
+            $keyword    = Config::query()->where('key', 'prompt_keyword')->value('value');
             $prompt     = $task->init_content . $keyword;
             $messages[] = ['role' => 'user', 'content' => $prompt];
             $data       = [
                 'messages' => $messages,
             ];
-            $task->state   = 3;
+            $task->state = 3;
             $task->save();
-            $postData      = json_encode($data);
-            $complete      = $this->host($postData);
+            $postData = json_encode($data);
+            $complete = $this->host($postData);
             // $task->state   = 3;
             $task->keyword = $complete['result'];
             $task->save();
@@ -217,7 +219,7 @@ class AiController extends Controller
      */
     private function toEnglish($prompt)
     {
-        $keyword = Config::query()->where('key','prompt_style')->value('value');
+        $keyword    = Config::query()->where('key', 'prompt_style')->value('value');
         $prompt     = $prompt . $keyword;
         $promptTo   = '我希望你能担任英语翻译、拼写校对和修辞改进的角色。我会将翻译的结果用于如stable diffusion、midjourney等绘画场景生成图片,语言要求尽量优美。我会用任何语言和你交流,你会识别语言,将其翻译为英语并仅回答翻译的最终结果,不要写解释。我的第一句话是:' . $prompt . '。请立刻翻译,不要回复其它内容。';
         $messages[] = ['role' => 'user', 'content' => $promptTo];
@@ -259,15 +261,15 @@ class AiController extends Controller
                 'keywords'            => $keyword,
             ];
 
-            $result      = (new Helper())->opensd($param);
-            $result      = json_decode($result, true);
-            Log::warning('这个是SD回调信息:'.json_encode($result,256));
-            if(isset($result['data']['id'])){
+            $result = (new Helper())->opensd($param);
+            $result = json_decode($result, true);
+            Log::warning('这个是SD回调信息:' . json_encode($result, 256));
+            if (isset($result['data']['id'])) {
                 $task->sd_id = $result['data']['id'];
-            }else{
-               $task->state = 3; 
+            } else {
+                $task->state = 3;
             }
-            
+
             $task->save();
 
             return Response::success($result['data']);
@@ -296,7 +298,7 @@ class AiController extends Controller
         }
         if ('fail' == $res['data']['state']) {
             $task->state = 3;
-            $task->desc = $res['data']['fail_reason'];
+            $task->desc  = $res['data']['fail_reason'];
         }
         $task->save();
         if ('success' == $res['data']['state']) {
@@ -409,7 +411,7 @@ class AiController extends Controller
             $task   = TaskList::query()->find($id);
             $result = $this->extracted($task);
 
-            return view('pdf', ['data' => $result, 'img' => $task->image,'title' => $task->title]);
+            return view('pdf', ['data' => $result, 'img' => $task->image, 'title' => $task->title]);
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, $this->code);
 
@@ -508,13 +510,13 @@ class AiController extends Controller
         return json_decode(trim($res), true);
     }
 
-   public function extracted($result,$type = 0,$sdImage = ''): string
+    public function extracted($result, $type = 0, $sdImage = ''): string
     {
-      if ($type == 0){
-            $inputString    = $result->init_content;
-            $sdImage = $result->sd_image;
-        }else{
-            $inputString    = $result;
+        if (0 == $type) {
+            $inputString = $result->init_content;
+            $sdImage     = $result->sd_image;
+        } else {
+            $inputString = $result;
         }
         $inputString    = str_replace('“', '', $inputString);
         $inputString    = str_replace('”', '', $inputString);

+ 11 - 10
server/app/Http/Controllers/V1/AuthController.php

xqd xqd xqd xqd
@@ -108,11 +108,11 @@ class AuthController extends Controller
     public function miniProgram(Request $request)
     {
         try {
-            $helpId  = $request->input('helpId', 0);
-            $info = WeChat::mini()->code2Openid($request->input('code'));
-            $openId        = $info['openid'];
+            $helpId = $request->input('helpId', 0);
+            $info   = WeChat::mini()->code2Openid($request->input('code'));
+            $openId = $info['openid'];
             // $openId        = 'ocU_x5RN8huhJSIVtn9X3TQ8Zq4s1';
-            $user          = User::query()->where('open_id', $openId)->first();
+            $user = User::query()->where('open_id', $openId)->first();
             if (!$user) {
                 $data['open_id'] = $openId;
                 $data['user']    = [];
@@ -126,7 +126,7 @@ class AuthController extends Controller
                     'share_date'      => date('Y-m-d H:i:s'),
                 ]);
                 $user = User::query()->find($user->id);
-                if ($helpId > 0  && $helpId != $user->id) {
+                if ($helpId > 0 && $helpId != $user->id) {
                     $helpUserData = User::query()->find($helpId);
                     if (!$helpUserData->is_share) {
                         $this->diamond($helpId, $user->id);
@@ -136,7 +136,7 @@ class AuthController extends Controller
                 $user->online          = 1;
                 $user->last_login_time = date('Y-m-d H:i:s');
                 $user->last_login_ip   = request()->ip();
-                $user->sessionKey   = $info['session_key'] ?? '';
+                $user->sessionKey      = $info['session_key'] ?? '';
                 if (!$user->save()) {
                     return $this->error('数据保存失败');
                 }
@@ -170,16 +170,17 @@ class AuthController extends Controller
     private function diamond($helpId = 0, $pid = 0)
     {
         (int) $diamond = Config::query()->where('key', 'help_diamond')->value('value');
-        $invite = User::query()->where('share_pid',$helpId)->count();
-        if ($invite == $diamond){
-            $share         = Share::query()->create([
+        $invite        = User::query()->where('share_pid', $helpId)->count();
+        if ($invite == $diamond) {
+            $share = Share::query()->create([
                 'user_id' => $helpId,
                 'pid'     => $pid,
                 'diamond' => $diamond,
-                'desc'      => '通过邀请'.$diamondCount.'人获得'.$diamond.'次数'
+                'desc'    => '通过邀请' . $diamondCount . '人获得' . $diamond . '次数',
             ]);
             User::query()->where('id', $helpId)->increment('diamond', $diamond);
         }
+
         return $share ?? [];
     }
 

+ 20 - 7
server/app/Http/Controllers/V1/IndexController.php

xqd xqd xqd
@@ -2,8 +2,10 @@
 
 namespace App\Http\Controllers\V1;
 
+use App\libs\wechat\auth\WeChat;
 use App\Models\Config;
 use App\Models\Help;
+use App\Models\Order;
 use App\Models\PaymentConfig;
 use App\Models\Region;
 use App\Models\TaskList;
@@ -12,15 +14,22 @@ use Illuminate\Support\Facades\Redis;
 
 class IndexController extends Controller
 {
-        public function getServiceConfig()
+    public function uploadOrder(){
+        $order = Order::query()->where('id',65)->first();
+        $res = WeChat::Mini()->upload_shipping_info($order->wx_order,$order->order,'oLaR66yItDcje4tcY6E3MgXA65Zs');
+        var_dump($res);
+    }
+    public function getServiceConfig()
     {
-        $service_phone = Config::query()->where('key', 'service_phone')->first();
-        $service_wx = Config::query()->where('key', 'service_wx')->first();
+        $service_phone  = Config::query()->where('key', 'service_phone')->first();
+        $service_wx     = Config::query()->where('key', 'service_wx')->first();
         $service_qrcode = Config::query()->where('key', 'service_qrcode')->first();
-        $about = Config::query()->where('key', 'about')->first();
+        $about          = Config::query()->where('key', 'about')->first();
         $push_promotion = Config::query()->where('key', 'push_promotion')->first();
-        return $this->success(['service_qrcode' => $service_qrcode,'service_phone' => $service_phone,'service_wx' => $service_wx,'about' => $about,'push' => $push_promotion]);
+
+        return $this->success(['service_qrcode' => $service_qrcode, 'service_phone' => $service_phone, 'service_wx' => $service_wx, 'about' => $about, 'push' => $push_promotion]);
     }
+
     // 隐私政策
     public function privacyPolice()
     {
@@ -28,11 +37,15 @@ class IndexController extends Controller
 
         return $this->success($info);
     }
-    public function getConfigByKey(){
-        $key = \request()->input('key','');
+
+    public function getConfigByKey()
+    {
+        $key    = \request()->input('key', '');
         $result = Config::query()->where('key', $key)->first();
+
         return $this->success($result);
     }
+
     // 用户协议
     public function userAgreement()
     {

+ 8 - 3
server/app/Http/Controllers/V1/PayController.php

xqd xqd
@@ -30,7 +30,10 @@ class PayController extends Controller
         try {
             $id        = $this->request->post('id', 1);
             $payConfig = PaymentConfig::query()->where('state', 1)->find($id);
-            var_dump($payConfig->amount);echo 1111;exit();
+            var_dump($payConfig->amount);
+            echo 1111;
+
+            exit;
             if (!$payConfig) {
                 return $this->error('非法请求');
             }
@@ -40,13 +43,15 @@ class PayController extends Controller
                 'amount'  => $payConfig->amount,
                 'diamond' => $payConfig->diamond,
             ];
-            var_dump(($payConfig->amount * 100));exit();
+            var_dump($payConfig->amount * 100);
+
+            exit;
             $result = Order::query()->create($order);
             if (!$result) {
                 return $this->error('订单提交失败');
             }
             User::query()->where('id', Auth::$userId)->increment('diamond', $payConfig->diamond);
-            $ret         = Wechat::addOrder($result,Auth::$user);
+            $ret         = Wechat::addOrder($result, Auth::$user);
             $result->pay = json_encode($ret);
             $result->save();
             $config = [];

+ 16 - 17
server/app/Http/Controllers/V1/PayNoticeController.php

xqd xqd xqd
@@ -21,7 +21,6 @@ use App\Models\UserVipRecord;
 use Carbon\Carbon;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Support\Facades\Log;
-use Symfony\Component\HttpFoundation\Response;
 
 class PayNoticeController extends Controller
 {
@@ -145,7 +144,7 @@ class PayNoticeController extends Controller
         // 处理支付订单
         try {
             $payId = $params['out_trade_no'];
-            $pay   = Order::query()->where('order', $payId)->where('state',0)->first();
+            $pay   = Order::query()->where('order', $payId)->where('state', 0)->first();
             if (!$pay) { // 如果订单不存在
                 return true;
             }
@@ -153,34 +152,34 @@ class PayNoticeController extends Controller
                 if ('SUCCESS' === $params['result_code']) {
                     $pay->state    = 1;
                     $pay->wx_order = $params['transaction_id'];
-                    $pay->amount = $params['total_fee'];
+                    $pay->amount   = $params['total_fee'];
                     User::query()->where('id', $pay->user_id)->increment('diamond', $pay->diamond);
                     $user = User::query()->find($pay->user_id);
-                    if (!empty($user->share_pid)){
-                        $userShare = User::query()->find($user->share_pid);
-                        $payConfig = PaymentConfig::query()->where('id',$pay->config_id)->first();
-                        (float)$commission = Config::query()->where('key','commission')->value('value');
-                        if ($userShare->is_share){
+                    if (!empty($user->share_pid)) {
+                        $userShare          = User::query()->find($user->share_pid);
+                        $payConfig          = PaymentConfig::query()->where('id', $pay->config_id)->first();
+                        (float) $commission = Config::query()->where('key', 'commission')->value('value');
+                        if ($userShare->is_share) {
                             $number = $pay->amount * ($commission / 100);
-                            if ($number < 0.01){
+                            if ($number < 0.01) {
                                 $number = 0.01;
                             }
                             $income = $number * 100;
                             User::query()->where('id', $user->share_pid)->increment('income', $income);
                             Giveaway::query()->create([
-                                'user_id'       => $user->share_pid,
+                                'user_id'           => $user->share_pid,
                                 'purchaser_user_id' => $pay->user_id,
-                                'amount' => $income,
-                                'title'         => "购买了{$payConfig->amount}的{$payConfig->title},您获得了佣金{$number}元",
-                                'order_id'      => $pay->id
+                                'amount'            => $income,
+                                'title'             => "购买了{$payConfig->amount}的{$payConfig->title},您获得了佣金{$number}元",
+                                'order_id'          => $pay->id,
                             ]);
-                        }else{
-                            if ($payConfig->award_count > 0){
-                                 Share::query()->create([
+                        } else {
+                            if ($payConfig->award_count > 0) {
+                                Share::query()->create([
                                     'user_id' => $user->share_pid,
                                     'pid'     => $user->id,
                                     'diamond' => $payConfig->award_count,
-                                    'desc'      => '通过购买套餐'.$payConfig->amount.'的'.$payConfig->title.'获得'.$payConfig->award_count.'次数',
+                                    'desc'    => '通过购买套餐' . $payConfig->amount . '的' . $payConfig->title . '获得' . $payConfig->award_count . '次数',
                                 ]);
                                 User::query()->where('id', $user->share_pid)->increment('diamond', $payConfig->award_count);
                             }

+ 21 - 18
server/app/Http/Controllers/V1/User/RechargeController.php

xqd xqd xqd xqd xqd
@@ -16,12 +16,11 @@ use App\Models\Setting;
 use App\Models\User;
 use App\Models\UserRechargeRecord;
 use Carbon\Carbon;
-//use Dingo\Api\Http\Request;
+// use Dingo\Api\Http\Request;
 
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\QueryException;
 use Illuminate\Http\Request;
-use lc\wechat\wxpay\base\WxPayConfig;
 
 class RechargeController extends Controller
 {
@@ -45,6 +44,7 @@ class RechargeController extends Controller
 
         return $this->success($lists);
     }
+
     public function pay(Request $request)
     {
         try {
@@ -53,32 +53,31 @@ class RechargeController extends Controller
             if (!$payConfig) {
                 return $this->error('非法请求');
             }
-            if ($payConfig->is_new){
-                $isOrder = Order::query()->where('user_id',Auth::$userId)->where('state',1)->first();
-                if ($isOrder){
-                    return  Response::fail('抱歉,此套餐只能新用户专享');
+            if ($payConfig->is_new) {
+                $isOrder = Order::query()->where('user_id', Auth::$userId)->where('state', 1)->first();
+                if ($isOrder) {
+                    return Response::fail('抱歉,此套餐只能新用户专享');
                 }
             }
             $order = [
-                'user_id' => Auth::$userId,
-                'order'   => Helper::generateNonceStr(32),
-                'amount'  => $payConfig->amount,
-                'diamond' => $payConfig->diamond,
+                'user_id'   => Auth::$userId,
+                'order'     => Helper::generateNonceStr(32),
+                'amount'    => $payConfig->amount,
+                'diamond'   => $payConfig->diamond,
                 'config_id' => $payConfig->id,
             ];
             $result = Order::query()->create($order);
             if (!$result) {
-
                 return $this->error('订单提交失败');
             }
             // User::query()->where('id', Auth::$userId)->increment('diamond', $payConfig->diamond);
-            $ret         = Wechat::addOrder($result,Auth::$user);
+            $ret         = Wechat::addOrder($result, Auth::$user);
             $result->pay = json_encode($ret);
             $result->save();
             $config = [];
             if (isset($ret['return_code'], $ret['result_code'])) {
                 if ('SUCCESS' == $ret['result_code'] && 'SUCCESS' == $ret['return_code']) {
-                    $config   = $this->getJsApiParameters($ret['prepay_id']);
+                    $config = $this->getJsApiParameters($ret['prepay_id']);
                 } else {
                     return $this->error($ret['err_code_des']);
                 }
@@ -91,18 +90,20 @@ class RechargeController extends Controller
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, '_pay');
 
-            return Response::fail($exception->getMessage().$exception->getFile().$exception->getLine());
+            return Response::fail($exception->getMessage() . $exception->getFile() . $exception->getLine());
         }
     }
+
     /**
-     * 获取 JSAPI 支付,前端所需参数数据
+     * 获取 JSAPI 支付,前端所需参数数据.
+     *
+     * @param string $prepayId 统一下单成功返回的id
      *
-     * @param   string  $prepayId   统一下单成功返回的id
      * @return  array
      */
-    public  function getJsApiParameters($prepayId)
+    public function getJsApiParameters($prepayId)
     {
-        $arr = config('swdz.wechatPay');
+        $arr  = config('swdz.wechatPay');
         $data = [
             'appId'     => $arr['appid'],
             'timeStamp' => (string) time(),
@@ -112,8 +113,10 @@ class RechargeController extends Controller
         ];
 
         $data['paySign'] = Helper::makeSign($data, $arr['key']);
+
         return $data;
     }
+
     public function createOrder()
     {
         try {

+ 46 - 35
server/app/Http/Controllers/V1/UserController.php

xqd xqd xqd xqd xqd xqd xqd
@@ -36,30 +36,34 @@ class UserController extends Controller
             auth('api')->logout();
         }
     }
-     /**
+
+    /**
      * 我的邀请码 。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
-     * @param Request $request
+     *
      * @return \Illuminate\Http\JsonResponse
      */
     public function getUserRqCode(Request $request)
     {
         try {
-            if (empty(Auth::$user->qr_code)){
+            if (empty(Auth::$user->qr_code)) {
                 $file     = WeChat::Mini()->qrcodeUnlimited(Auth::$userId, ['page' => 'pages/index/index', 'env_version' => 'develop', 'check_path' => false]);
                 $fileName = 'images/' . date('Ymd') . '/' . date('YmdHis') . uniqid() . '.png'; // 文件名称
                 Storage::disk('admin')->put($fileName, $file);
-                $url = 'https://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $fileName;
+                $url                 = 'https://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $fileName;
                 Auth::$user->qr_code = $url;
                 Auth::$user->save();
-            }else{
+            } else {
                 $url = Auth::$user->qr_code;
             }
+
             return Response::success(['url' => $url]);
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, $this->code);
+
             return Response::fail($exception->getMessage());
         }
     }
+
     // 问题反馈
     public function feedback(Request $request)
     {
@@ -176,17 +180,18 @@ class UserController extends Controller
      */
     public function applyShare(Request $request)
     {
-                    $name  = $request->input('name');
-            $phone = $request->input('phone');
-            if (1 == Auth::$user->is_share) {
-                return Response::fail('您已经是推广大使');
-            }
-            Apply::query()->create([
-                'user_id'       => Auth::$userId,
-                'share_name'    => $name,
-                'share_phone'   => $phone
-            ]);
-            return Response::success();
+        $name  = $request->input('name');
+        $phone = $request->input('phone');
+        if (1 == Auth::$user->is_share) {
+            return Response::fail('您已经是推广大使');
+        }
+        Apply::query()->create([
+            'user_id'     => Auth::$userId,
+            'share_name'  => $name,
+            'share_phone' => $phone,
+        ]);
+
+        return Response::success();
     }
 
     /**
@@ -349,13 +354,14 @@ class UserController extends Controller
             return Response::fail($exception->getMessage());
         }
     }
+
     /**
-     * 添加角色
+     * 添加角色.
      *
-     * @param Request $request
      * @return \Illuminate\Http\JsonResponse
      */
-    public function addRole(Request $request){
+    public function addRole(Request $request)
+    {
         try {
             $role = UserRole::query()->create([
                 'user_id' => Auth::$userId,
@@ -365,6 +371,7 @@ class UserController extends Controller
                 'star'    => $request->post('star', ''),
                 'level'   => $request->post('level', ''),
             ]);
+
             return Response::success($role);
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, $this->code);
@@ -372,25 +379,27 @@ class UserController extends Controller
             return Response::fail($exception->getMessage());
         }
     }
+
     /**
-     * 更新角色
+     * 更新角色.
      *
-     * @param Request $request
      * @return \Illuminate\Http\JsonResponse
      */
-    public function updateRole(Request $request){
+    public function updateRole(Request $request)
+    {
         try {
-            $role = UserRole::query()->where('id',$request->post('id'))->where('user_id',Auth::$userId)->first();
-            if (!$role){
+            $role = UserRole::query()->where('id', $request->post('id'))->where('user_id', Auth::$userId)->first();
+            if (!$role) {
                 return Response::fail('没有该角色');
             }
-            UserRole::query()->where('id',$request->post('id'))->where('user_id',Auth::$userId)->update([
-                'name'    => $request->post('name', ''),
-                'sex'     => $request->post('sex', ''),
-                'age'     => $request->post('age', ''),
-                'star'    => $request->post('star', ''),
-                'level'   => $request->post('level', ''),
+            UserRole::query()->where('id', $request->post('id'))->where('user_id', Auth::$userId)->update([
+                'name'  => $request->post('name', ''),
+                'sex'   => $request->post('sex', ''),
+                'age'   => $request->post('age', ''),
+                'star'  => $request->post('star', ''),
+                'level' => $request->post('level', ''),
             ]);
+
             return Response::success();
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, $this->code);
@@ -400,18 +409,19 @@ class UserController extends Controller
     }
 
     /**
-     * 删除该角色
+     * 删除该角色.
      *
-     * @param Request $request
      * @return \Illuminate\Http\JsonResponse
      */
-    public function deleteRole(Request $request){
+    public function deleteRole(Request $request)
+    {
         try {
-            $role = UserRole::query()->where('id',$request->post('id'))->where('user_id',Auth::$userId)->first();
-            if (!$role){
+            $role = UserRole::query()->where('id', $request->post('id'))->where('user_id', Auth::$userId)->first();
+            if (!$role) {
                 return Response::fail('没有该角色');
             }
             $role->delete();
+
             return Response::success();
         } catch (\Exception $exception) {
             LogHelper::exceptionLog($exception, $this->code);
@@ -419,6 +429,7 @@ class UserController extends Controller
             return Response::fail($exception->getMessage());
         }
     }
+
     public function parent()
     {
         if (empty(\user()->parent_id)) {

+ 4 - 3
server/app/Models/Apply.php

xqd
@@ -6,9 +6,10 @@ use Illuminate\Database\Eloquent\Model;
 
 class Apply extends Model
 {
-  protected $table = 'apply';
-  protected $fillable = ['user_id','share_name','share_phone','state','updated_at','created_at','user_id','not_desc'];
-      public function getCreatedAtAttribute($value)
+    protected $table    = 'apply';
+    protected $fillable = ['user_id', 'share_name', 'share_phone', 'state', 'updated_at', 'created_at', 'user_id', 'not_desc'];
+
+    public function getCreatedAtAttribute($value)
     {
         $dateTime = new \DateTime($value);
 

+ 4 - 2
server/app/Models/Banner.php

xqd
@@ -10,11 +10,13 @@ class Banner extends Model
     use HasDateTimeFormatter;
     protected $table    = 'banner';
     protected $fillable = ['title', 'sort', 'url', 'state', 'image_path'];
+
     public function getImagePathAttribute($value)
     {
-        if(!strstr($value, 'https')) {
-            return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/'.$value;
+        if (!strstr($value, 'https')) {
+            return 'https://zhengda.oss-cn-chengdu.aliyuncs.com/' . $value;
         }
+
         return $value;
     }
 }

+ 8 - 6
server/app/Models/Config.php

xqd
@@ -28,23 +28,25 @@ class Config extends Model
 
         return $formattedTime;
     }
+
     public function getValueAttribute($extra)
     {
-        if ($this->id == 18) {
+        if (18 == $this->id) {
             // 执行格式化操作
             return array_values(json_decode($extra, true) ?: []);
-        } else {
-            // 不执行格式化操作
-            return $extra;
         }
+
+        // 不执行格式化操作
+        return $extra;
     }
+
     public function setValueAttribute($extra)
     {
-        if ($this->id == 18) {
+        if (18 == $this->id) {
             // 执行格式化操作
             return $this->attributes['value'] = json_encode(array_values($extra));
         }
-        return $this->attributes['value'] = $extra;
 
+        return $this->attributes['value'] = $extra;
     }
 }

+ 8 - 3
server/app/Models/Giveaway.php

xqd xqd
@@ -6,18 +6,22 @@ use Illuminate\Database\Eloquent\Model;
 
 class Giveaway extends Model
 {
-    protected $table = 'giveaway';
+    protected $table    = 'giveaway';
     protected $fillable = [
-        'user_id','purchaser_user_id','title','amount','order_id','created_at','updated_at'
+        'user_id', 'purchaser_user_id', 'title', 'amount', 'order_id', 'created_at', 'updated_at',
     ];
+
     public function user()
     {
         return $this->hasOne(User::class, 'id', 'purchaser_user_id')->select(['id', 'name', 'avatar']);
     }
+
     public function buyUser()
     {
         return $this->hasOne(User::class, 'id', 'user_id')->select(['id', 'name', 'avatar']);
-    } public function order()
+    }
+
+    public function order()
     {
         return $this->hasOne(Order::class, 'id', 'order_id');
     }
@@ -26,6 +30,7 @@ class Giveaway extends Model
     {
         return $value / 100;
     }
+
     public function getCreatedAtAttribute($value)
     {
         $dateTime = new \DateTime($value);

+ 8 - 4
server/app/Models/Order.php

xqd
@@ -40,10 +40,14 @@ class Order extends Model
 
         return $formattedTime;
     }
-    public function userData(){
-        return $this->hasOne(User::class,'id','user_id');
+
+    public function userData()
+    {
+        return $this->hasOne(User::class, 'id', 'user_id');
     }
-    public function orderData(){
-        return $this->hasOne(PaymentConfig::class,'id','config_id');
+
+    public function orderData()
+    {
+        return $this->hasOne(PaymentConfig::class, 'id', 'config_id');
     }
 }

+ 4 - 1
server/app/Models/Share.php

xqd xqd
@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
 
 class Share extends Model
 {
-    protected $fillable = ['user_id', 'pid', 'diamond', 'created_at', 'updated_at','desc'];
+    protected $fillable = ['user_id', 'pid', 'diamond', 'created_at', 'updated_at', 'desc'];
 
     protected $table = 'share';
 
@@ -14,14 +14,17 @@ class Share extends Model
     {
         return $this->hasOne(User::class, 'id', 'pid')->select(['id', 'name', 'avatar']);
     }
+
     public function inviteData()
     {
         return $this->hasOne(User::class, 'id', 'user_id')->select(['id', 'name', 'avatar']);
     }
+
     public function pidData()
     {
         return $this->hasOne(User::class, 'id', 'pid')->select(['id', 'name', 'avatar']);
     }
+
     public function getCreatedAtAttribute($value)
     {
         $dateTime = new \DateTime($value);

+ 2 - 0
server/app/Models/TaskList.php

xqd
@@ -18,10 +18,12 @@ class TaskList extends Model
         5 => '内容已编辑',
         6 => '已完成',
     ];
+
     public function role()
     {
         return $this->hasOne(UserRole::class, 'id', 'role_id');
     }
+
     public function userData()
     {
         return $this->hasOne(User::class, 'id', 'user_id');

+ 7 - 2
server/app/Models/User.php

xqd xqd
@@ -13,7 +13,7 @@ class User extends Authenticatable implements JWTSubject
     use HasDateTimeFormatter;
 
     protected $fillable = ['name', 'open_id', 'avatar', 'email', 'mobile', 'status', 'online', 'last_login_ip', 'register_ip', 'last_login_time', 'created_at', 'updated_at', 'deleted_at',
-        'is_black', 'sessionKey', 'share_pid', 'diamond', 'is_share', 'share_name', 'share_phone', 'share_pid', 'share_date', 'income','qr_code'];
+        'is_black', 'sessionKey', 'share_pid', 'diamond', 'is_share', 'share_name', 'share_phone', 'share_pid', 'share_date', 'income', 'qr_code'];
 
     public function getJWTIdentifier()
     {
@@ -96,17 +96,22 @@ class User extends Authenticatable implements JWTSubject
     {
         return $this->hasMany(UserRechargeRecord::class, 'user_id', 'id');
     }
+
     public function creation()
     {
         return $this->hasMany(TaskList::class, 'user_id', 'id');
     }
+
     public function invite_data()
     {
         return $this->hasMany(User::class, 'share_pid', 'id');
     }
-    public function userShare(){
+
+    public function userShare()
+    {
         return $this->hasOne(User::class, 'id', 'share_pid');
     }
+
     public function vipRecords()
     {
         return $this->hasMany(UserVipRecord::class, 'user_id', 'id');

+ 15 - 9
server/app/Models/UserRole.php

xqd
@@ -3,26 +3,32 @@
 namespace App\Models;
 
 use Illuminate\Database\Eloquent\Model;
-use phpDocumentor\Reflection\Types\Self_;
 
 class UserRole extends Model
 {
     protected $table    = 'users_role';
     protected $fillable = ['user_id', 'name', 'sex', 'age', 'star', 'level'];
 
-//    public function getSexAttribute($res)
-//    {
-//        return '男' == $res ? '男孩' : '女孩';
-//    }
-    public static $level = [0 => '幼儿园',1 => '一年级',2 => '二年级',3 => '三年级',4 => '四年级',5 => '五年级',6 => '六年级'];
+    //    public function getSexAttribute($res)
+    //    {
+    //        return '男' == $res ? '男孩' : '女孩';
+    //    }
+    public static $level = [0 => '幼儿园', 1 => '一年级', 2 => '二年级', 3 => '三年级', 4 => '四年级', 5 => '五年级', 6 => '六年级'];
+
     public function getLevelAtAttribute($value)
     {
-        if (is_int($value)) return self::$level[$value];
+        if (is_int($value)) {
+            return self::$level[$value];
+        }
+
         return $value;
     }
-    public function userData(){
-        return $this->hasOne(User::class,'id','user_id');
+
+    public function userData()
+    {
+        return $this->hasOne(User::class, 'id', 'user_id');
     }
+
     public function getCreatedAtAttribute($value)
     {
         $dateTime = new \DateTime($value);

+ 8 - 5
server/app/Models/Withdraw.php

xqd xqd
@@ -8,9 +8,10 @@ class Withdraw extends Model
 {
     protected $fillable = ['user_id', 'type', 'bank_name', 'name', 'number', 'state', 'amount', 'procedure', 'practical_amount', 'not_desc', 'created_at', 'updated_at'];
 
-    protected $table = 'withdraw';
-    public static $label = [1 => '微信余额', 2 => '支付宝' , 3 => '银行卡'];
-    public static $state = [0 => '待审核', 1 => '已提现' , 2 => '已拒绝'];
+    protected $table     = 'withdraw';
+    public static $label = [1 => '微信余额', 2 => '支付宝', 3 => '银行卡'];
+    public static $state = [0 => '待审核', 1 => '已提现', 2 => '已拒绝'];
+
     public function getCreatedAtAttribute($value)
     {
         $dateTime = new \DateTime($value);
@@ -30,7 +31,9 @@ class Withdraw extends Model
 
         return $formattedTime;
     }
-    public function userData(){
-        return $this->hasOne(User::class,'id','user_id');
+
+    public function userData()
+    {
+        return $this->hasOne(User::class, 'id', 'user_id');
     }
 }

+ 3 - 1
server/app/libs/helpers/Helper.php

xqd xqd
@@ -36,8 +36,9 @@ class Helper
 
         return $res;
     }
+
     /**
-     * 获取框架 root 路径
+     * 获取框架 root 路径.
      *
      * @return bool
      */
@@ -45,6 +46,7 @@ class Helper
     {
         return DIRECTORY_SEPARATOR === '\\' ? 'E:\TP6_V4' : '/Users/wangdakun/Desktop/wangdakun/TP6_V4';
     }
+
     public static function send($API_URL, $get_post_data, $type, $ifsign, $sk)
     {
         $get_post_data = http_build_query($get_post_data);

+ 25 - 0
server/app/libs/wechat/auth/Gateways/Mini.php

xqd
@@ -90,6 +90,31 @@ class Mini extends Base
         return Curl::requestCurl($url, 'POST', [], json_encode($params));
     }
 
+    /**
+     * @see    https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order-shipping/order-shipping.html#%E4%B8%80%E3%80%81%E5%8F%91%E8%B4%A7%E4%BF%A1%E6%81%AF%E5%BD%95%E5%85%A5%E6%8E%A5%E5%8F%A3
+     *
+     * @desc    小程序发货信息管理服务
+     */
+    public function upload_shipping_info($transaction_id, $out_trade_no, $openid)
+    {
+        $params = [
+            'logistics_type' => 3,
+            'order_key'      => ['order_number_type' => 2, 'transaction_id' => $transaction_id, 'out_trade_no' => $out_trade_no, 'mchid' => config('swdz.wechatPay.mch_id')],
+            'delivery_mode'  => 'UNIFIED_DELIVERY',
+            'shipping_list'  => [
+                'tracking_no' => '',
+                'item_desc'   => '购买小程序钻石次数',
+            ],
+            'upload_time' => date('Y-m-d H:i:s'),
+            'payer'       => [
+                'openid' => $openid,
+            ],
+        ];
+        $url = 'https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=' . $this->accessToken();
+
+        return Curl::requestCurl($url, 'POST', [], json_encode($params));
+    }
+
     /**
      * @see    https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
      *

+ 151 - 145
server/app/libs/wechat/pay/Wechat.php

xqd
@@ -1,187 +1,193 @@
 <?php
+
 declare(strict_types=1);
+
 namespace App\libs\wechat\pay;
 
-//use EasyWeChat\MiniProgram\Application;
-//use EasyWeChat\MiniApp\Application;
-//use EasyWeChat\Pay\Application as PayApplication;
+// use EasyWeChat\MiniProgram\Application;
+// use EasyWeChat\MiniApp\Application;
+// use EasyWeChat\Pay\Application as PayApplication;
 use EasyWeChat\Payment\Application;
 use EasyWeChat\Kernel\Support\Str;
-//use EasyWeChat\Payment\LegacySignature;
-//use GuzzleHttp\Client;
-//use Hyperf\HttpServer\Contract\RequestInterface;
-//use Hyperf\Utils\ApplicationContext;
+// use EasyWeChat\Payment\LegacySignature;
+// use GuzzleHttp\Client;
+// use Hyperf\HttpServer\Contract\RequestInterface;
+// use Hyperf\Utils\ApplicationContext;
 use Illuminate\Http\Request;
 use EasyWeChat\Factory;
 
-
-
 class Wechat
 {
+    //	public static function app() {
+    //		$config = [
+    //		    'app_id' => 'wx93e902f62d243388',
+    //		    'secret' => '80d6e14f55d0593a53d131e93215ea20',
+    //		 //    'oauth' => [
+    //			// 	'scopes'   => ['snsapi_userinfo'],
+    //			// 	'callback' => '/oauth/callback',
+    //			// ],
+    //
+    //		    // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
+    //		    'response_type' => 'array',
+    //
+    //		    //...
+    //		];
+    //
+    //		return new Application($config);
+    //	}
 
-//	public static function app() {
-//		$config = [
-//		    'app_id' => 'wx93e902f62d243388',
-//		    'secret' => '80d6e14f55d0593a53d131e93215ea20',
-//		 //    'oauth' => [
-//			// 	'scopes'   => ['snsapi_userinfo'],
-//			// 	'callback' => '/oauth/callback',
-//			// ],
-//
-//		    // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
-//		    'response_type' => 'array',
-//
-//		    //...
-//		];
-//
-//		return new Application($config);
-//	}
-
-	public static function pay() {
-        $arr = config('swdz.wechatPay');
+    public static function pay()
+    {
+        $arr    = config('swdz.wechatPay');
         $config = [
             // 必要配置
-            'app_id'             => $arr['appid'],
-            'mch_id'             => $arr['mch_id'],
-            'key'                => $arr['key'],   // API v2 密钥 (注意: 是v2密钥 是v2密钥 是v2密钥)
+            'app_id' => $arr['appid'],
+            'mch_id' => $arr['mch_id'],
+            'key'    => $arr['key'],   // API v2 密钥 (注意: 是v2密钥 是v2密钥 是v2密钥)
 
             // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
-            'cert_path'          => __DIR__ . '/ssl/apiclient_cert.pem', // XXX: 绝对路径!!!!
-            'key_path'           => __DIR__ . '/ssl/apiclient_key.pem',      // XXX: 绝对路径!!!!
+            'cert_path' => __DIR__ . '/ssl/apiclient_cert.pem', // XXX: 绝对路径!!!!
+            'key_path'  => __DIR__ . '/ssl/apiclient_key.pem',      // XXX: 绝对路径!!!!
 
-            'notify_url'         => 'https://t18.9026.com/api/wechat/pay/aiCallback',     // 你也可以在下单时单独设置来想覆盖它
+            'notify_url' => 'https://t18.9026.com/api/wechat/pay/aiCallback',     // 你也可以在下单时单独设置来想覆盖它
         ];
 
         $app = Factory::payment($config);
-//		$config = [
-//		    'mch_id' => 1536361101,
-//		    'app_id' => 'wx93e902f62d243388',
-//		    // 商户证书
-//		    'private_key' => __DIR__ . '/ssl/apiclient_key.pem',
-//		    'certificate' => __DIR__ . '/ssl/apiclient_cert.pem',
-//
-//		     // v3 API 秘钥
-//		    'secret_key' => '43A03299A3C3FED3D8CE7B820Fxxxxx',
-//
-//		    // v2 API 秘钥
-//		    'v2_secret_key' => 'pfbrMsAU5v9OFvJdqrg1c8YSIdtdPl8Z',
-//
-//		    // 平台证书:微信支付 APIv3 平台证书,需要使用工具下载
-//		    // 下载工具:https://github.com/wechatpay-apiv3/CertificateDownloader
-//		    'platform_certs' => [
-//		        // 请使用绝对路径
-//		        // '/path/to/wechatpay/cert.pem',
-//		    ],
-//
-//		    /**
-//		     * 接口请求相关配置,超时时间等,具体可用参数请参考:
-//		     * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php
-//		     */
-//		    'http' => [
-//		        'throw'  => true, // 状态码非 200、300 时是否抛出异常,默认为开启
-//		        'timeout' => 5.0,
-//		        // 'base_uri' => 'https://api.mch.weixin.qq.com/', // 如果你在国外想要覆盖默认的 url 的时候才使用,根据不同的模块配置不同的 uri
-//		    ]
-//		];
-//        var_dump(__DIR__ . '/ssl/apiclient_key.pem');
-//        $app = new Application($config);
-		return $app;
-	}
-    public static function addOrder($order, $user){
+
+        //		$config = [
+        //		    'mch_id' => 1536361101,
+        //		    'app_id' => 'wx93e902f62d243388',
+        //		    // 商户证书
+        //		    'private_key' => __DIR__ . '/ssl/apiclient_key.pem',
+        //		    'certificate' => __DIR__ . '/ssl/apiclient_cert.pem',
+        //
+        //		     // v3 API 秘钥
+        //		    'secret_key' => '43A03299A3C3FED3D8CE7B820Fxxxxx',
+        //
+        //		    // v2 API 秘钥
+        //		    'v2_secret_key' => 'pfbrMsAU5v9OFvJdqrg1c8YSIdtdPl8Z',
+        //
+        //		    // 平台证书:微信支付 APIv3 平台证书,需要使用工具下载
+        //		    // 下载工具:https://github.com/wechatpay-apiv3/CertificateDownloader
+        //		    'platform_certs' => [
+        //		        // 请使用绝对路径
+        //		        // '/path/to/wechatpay/cert.pem',
+        //		    ],
+        //
+        //		    /**
+        //		     * 接口请求相关配置,超时时间等,具体可用参数请参考:
+        //		     * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php
+        //		     */
+        //		    'http' => [
+        //		        'throw'  => true, // 状态码非 200、300 时是否抛出异常,默认为开启
+        //		        'timeout' => 5.0,
+        //		        // 'base_uri' => 'https://api.mch.weixin.qq.com/', // 如果你在国外想要覆盖默认的 url 的时候才使用,根据不同的模块配置不同的 uri
+        //		    ]
+        //		];
+        //        var_dump(__DIR__ . '/ssl/apiclient_key.pem');
+        //        $app = new Application($config);
+        return $app;
+    }
+
+    public static function addOrder($order, $user)
+    {
         $result = self::pay()->order->unify([
-            'body' => '小程序购买钻石次数',
-            'device_info' =>  $user->id,
-            "nonce_str" =>  Str::random(),
-            'out_trade_no' => $order->order,
-            'total_fee' => $order->amount * 10000,
+            'body'             => '小程序购买钻石次数',
+            'device_info'      => $user->id,
+            'nonce_str'        => Str::random(),
+            'out_trade_no'     => $order->order,
+            'total_fee'        => $order->amount * 10000,
             'spbill_create_ip' => '47.93.12.114', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址
-            'notify_url' => 'https://t18.9026.com/api/wechat/pay/aiCallback', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
-            'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型
-            'openid' => $user->open_id,
+            'notify_url'       => 'https://t18.9026.com/api/wechat/pay/aiCallback', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
+            'trade_type'       => 'JSAPI', // 请对应换成你的支付方式对应的值类型
+            'openid'           => $user->open_id,
         ]);
-//        $params = [
-//            "appid" =>  $config['app_id'],
-//            "mch_id" =>  $config['mch_id'],
-//            "device_info" =>  $user->id,
-//            "nonce_str" =>  Str::random(),
-//            "openid" => $user->open_id,
-//            "body" => "小程序购买钻石次数",
-//            "out_trade_no"=> $order->order,
-//            "total_fee"=> $order->amount,
-//            "spbill_create_ip" => "47.93.12.114",
-//            // "time_start"=> $order->created_at->format('YmdHis'),
-//            // "time_expire"=> $order->created_at->addMinutes(30)->format('YmdHis'),
-//            "notify_url"=> 'https://t18.9026.com/api/wechat/pay/aiCallback',
-//            "trade_type"=> 'JSAPI',
-//            "detail"=> json_encode(['goods_detail'=> []])
-//        ];
+
+        //        $params = [
+        //            "appid" =>  $config['app_id'],
+        //            "mch_id" =>  $config['mch_id'],
+        //            "device_info" =>  $user->id,
+        //            "nonce_str" =>  Str::random(),
+        //            "openid" => $user->open_id,
+        //            "body" => "小程序购买钻石次数",
+        //            "out_trade_no"=> $order->order,
+        //            "total_fee"=> $order->amount,
+        //            "spbill_create_ip" => "47.93.12.114",
+        //            // "time_start"=> $order->created_at->format('YmdHis'),
+        //            // "time_expire"=> $order->created_at->addMinutes(30)->format('YmdHis'),
+        //            "notify_url"=> 'https://t18.9026.com/api/wechat/pay/aiCallback',
+        //            "trade_type"=> 'JSAPI',
+        //            "detail"=> json_encode(['goods_detail'=> []])
+        //        ];
         // $params['sign'] = (new LegacySignature($this->merchant))->sign($params);
-//        $response = $api->request('POST', '/pay/unifiedorder', [
-//            'xml' => $params
-//        ]);
+        //        $response = $api->request('POST', '/pay/unifiedorder', [
+        //            'xml' => $params
+        //        ]);
         return $result;
     }
-	public static function order($order, $user){
-		$app = self::pay();
-		$api = $app->getClient();
+
+    public static function order($order, $user)
+    {
+        $app    = self::pay();
+        $api    = $app->getClient();
         $config = $app->getConfig();
         $detail = [];
         foreach ($order->shops as $key => $value) {
-        	$money = $value->price;
-        	$detail[] = [
-        		'goods_id'=> $value->id,
-        		'wxpay_goods_id'=> $value->id,
-        		'goods_name'=> $value->material->type_name,
-        		'quantity'=> 1,
-        		'price'=> $money,
-        		'goods_category'=> $value->material->type_name,
-        		'body'=> $value->material->type_name . '-' . $value->material->material_name
-        	];
+            $money    = $value->price;
+            $detail[] = [
+                'goods_id'       => $value->id,
+                'wxpay_goods_id' => $value->id,
+                'goods_name'     => $value->material->type_name,
+                'quantity'       => 1,
+                'price'          => $money,
+                'goods_category' => $value->material->type_name,
+                'body'           => $value->material->type_name . '-' . $value->material->material_name,
+            ];
         }
         $params = [
-                "appid" =>  $config['app_id'],
-                "mch_id" =>  $config['mch_id'],
-                "device_info" =>  $user->id,
-                "nonce_str" =>  Str::random(),
-                "openid" => $user->mini_openid,
-                "body" => "小程序购买商品",
-                "out_trade_no"=> $order->out_trade_no,
-                "total_fee"=> $order->amount,
-                "spbill_create_ip" => "47.93.12.114",
-                // "time_start"=> $order->created_at->format('YmdHis'),
-                // "time_expire"=> $order->created_at->addMinutes(30)->format('YmdHis'),
-                "notify_url"=> 'https://t28.9026.com/api/wechat/pay/callback',
-                "trade_type"=> 'JSAPI',
-                "detail"=> json_encode(['goods_detail'=> $detail])
+            'appid'            => $config['app_id'],
+            'mch_id'           => $config['mch_id'],
+            'device_info'      => $user->id,
+            'nonce_str'        => Str::random(),
+            'openid'           => $user->mini_openid,
+            'body'             => '小程序购买商品',
+            'out_trade_no'     => $order->out_trade_no,
+            'total_fee'        => $order->amount,
+            'spbill_create_ip' => '47.93.12.114',
+            // "time_start"=> $order->created_at->format('YmdHis'),
+            // "time_expire"=> $order->created_at->addMinutes(30)->format('YmdHis'),
+            'notify_url' => 'https://t28.9026.com/api/wechat/pay/callback',
+            'trade_type' => 'JSAPI',
+            'detail'     => json_encode(['goods_detail' => $detail]),
         ];
         // $params['sign'] = (new LegacySignature($this->merchant))->sign($params);
         $response = $api->request('POST', '/pay/unifiedorder', [
-            'xml' => $params
+            'xml' => $params,
         ]);
-        return $response->toArray(false);
 
-	}
+        return $response->toArray(false);
+    }
 
-	public static function queryOrder($out_trade_no){
-		$app = self::pay();
-		$api = $app->getClient();
+    public static function queryOrder($out_trade_no)
+    {
+        $app    = self::pay();
+        $api    = $app->getClient();
         $config = $app->getConfig();
-		$params = [
-			"appid" =>  $config['app_id'],
-            "mch_id" =>  $config['mch_id'],
-            "out_trade_no"=> $out_trade_no,
-            "nonce_str" =>  Str::random(),
-		];
-		$response = $api->request('POST', '/pay/orderquery', [
-            'xml' => $params
+        $params = [
+            'appid'        => $config['app_id'],
+            'mch_id'       => $config['mch_id'],
+            'out_trade_no' => $out_trade_no,
+            'nonce_str'    => Str::random(),
+        ];
+        $response = $api->request('POST', '/pay/orderquery', [
+            'xml' => $params,
         ]);
-        return $response->toArray(false);
-	}
-
-
 
+        return $response->toArray(false);
+    }
 
-	public static function build_order_no() {
-	    return date('Ymd').substr(implode('', array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
-	}
+    public static function build_order_no()
+    {
+        return date('Ymd') . substr(implode('', array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
+    }
 }

+ 4 - 4
server/config/swdz.php

xqd
@@ -4,13 +4,13 @@ return [
     // 微信相关配置
     'wechat' => [
         // 原生公众号或小程序授权 secret
-        'secret'        => '03b9f7610fe18188db8c4e3ef84ec09b',
+        'secret' => '03b9f7610fe18188db8c4e3ef84ec09b',
         // 平台公众号授权 appid
         'appid' => 'wxa7481605ea99a9a0',
     ],
     'wechatPay' => [
-        'appid' => 'wxa7481605ea99a9a0',
-        'key' => '748qt4wtqwsQRWQTQ2q36tqew1t11q3t',
-        'mch_id'             => 1662483437,
+        'appid'  => 'wxa7481605ea99a9a0',
+        'key'    => '748qt4wtqwsQRWQTQ2q36tqew1t11q3t',
+        'mch_id' => 1662483437,
     ],
 ];

+ 3 - 1
server/routes/api.php

xqd xqd
@@ -2,6 +2,7 @@
 
 use Illuminate\Support\Facades\Route;
 use App\Http\Controllers\V1\Ai\AiController;
+
 // Router::addRoute(['GET', 'POST', 'HEAD'], '/api/wechat/pay/aiCallback', 'App\Http\Controllers\V1\PayNoticeController@wechat');
 // Route::middleware(['apiLogs'])->group(function () {
 //    Route::any('/buildStory',[AiController::class,'buildStory']);
@@ -19,10 +20,11 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\V1'], function ($api)
     $api->group([
         'middleware' => ['apiLogs', 'throttle:120'], // 代表1分钟内接口最高请求次数,超出返回 429: Too Many Attempts
     ], function ($api) {
-           $api->post('wechat/pay/aiCallback', 'PayNoticeController@wechat'); // banner
+        $api->post('wechat/pay/aiCallback', 'PayNoticeController@wechat'); // banner
         //        $api->post('buildStory', 'Ai/AiController@send'); //发送手机验证码
         $api->post('sms/send', 'SmsController@send'); // 发送手机验证码
         $api->post('email/send', 'SmsController@sendEmailCode'); // 发送邮箱验证码
+        $api->post('uploadOrder', 'IndexController@uploadOrder'); // 发送邮箱验证码
         $api->post('attachment/upload', 'AttachmentController@upload'); // 上传附件
         $api->post('attachment/delete', 'AttachmentController@delete'); // 删除附件
         $api->get('privacy', 'IndexController@privacyPolice'); // 隐私政策

部分文件因文件數量過多而無法顯示