Swdz-WangHaiJun vor 4 Jahren
Ursprung
Commit
21225d1f02

+ 70 - 0
app/Admin/Controllers/Chart/Order.php

xqd
@@ -0,0 +1,70 @@
+<?php
+
+
+namespace App\Admin\Controllers\Chart;
+use Encore\Admin\Widgets\Box;
+use Encore\Admin\Widgets\Echarts\Echarts;
+use Encore\Admin\Widgets\Form;
+use Encore\Admin\Layout\Row;
+use Encore\Admin\Layout\Column;
+use Encore\Admin\Widgets\Collapse;
+
+
+class Order
+{
+    public  function chart(Row $row)
+    {
+        $id = 'n_id';
+        $row->column(12,function (Column $column)use ($id){
+
+            $form = new Form();
+            $form->disableReset();
+            $form->disableSubmit();
+            $end = request('time_end')?:date('Y-m-d H:i:s',strtotime(date("Y-12-31 23:59:59")));
+            $start = request('time_start')?:date('Y-m-d H:i:s',strtotime(date("Y-01-01 00:00:01")));
+            $nowYear = date('Y');
+            $nowMonth = date('m');
+            $year = range(2000,2099);
+            foreach ($year as $v){
+                $realYear[$v]=$v;
+            }
+            $month = range(1,12);
+            $type = request('type',1);
+
+
+            $chartData =self::getData($type);
+
+
+            $filter_content = new Row(function (Column $col)use ($form,$type,$realYear,$nowYear,$month,$nowMonth){
+                $col->row(function (Row $row)use ($form,$type,$realYear,$nowYear,$month,$nowMonth){
+                    $form->select('year','年份')->options($realYear)->default($nowYear);
+                    $form->select('month','月份')->options($month)->default($nowMonth);
+                    $form->action('/admin');
+                    $row->column(6,$form->render());
+                });
+            });
+            $col = new Collapse();
+            $col->add('筛选',$filter_content->render());
+
+            $column->append($col->render());
+//            $column->row(function (Row $row)use ($chartData){
+//                $row->column(6,function (Column $column)use ($chartData){
+//                    $echarts = (new Echarts('用户变化曲线', '','user_change'))
+//                        ->setData($chartData['person']['d'])
+//                        ->bindLegend($chartData['person']['h'])->setShowToolbox(true);
+//                    return $column->append(new  Box('',$echarts));
+//                });
+//            });
+            return $column           ;
+        });
+    }
+
+    public function getData($type)
+    {
+//        1=>'按天查看',
+//        2=>'按月查看',
+//3=>'按年查看',
+
+//        Order::where([''])->;
+    }
+}

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

xqd
@@ -2,33 +2,86 @@
 
 namespace App\Admin\Controllers;
 
+use App\Admin\Controllers\Chart\Order;
 use App\Http\Controllers\Controller;
 use Encore\Admin\Controllers\Dashboard;
 use Encore\Admin\Layout\Column;
 use Encore\Admin\Layout\Content;
 use Encore\Admin\Layout\Row;
+use Encore\Admin\Widgets\InfoBox;
 
 class HomeController extends Controller
 {
     public function index(Content $content)
     {
         return $content
-            ->title('Dashboard')
-            ->description('Description...')
-            ->row(Dashboard::title())
+            ->title('欢迎进入后台管理系统')
+            ->description('后台数据中心')
+            ->row('<h1 text-align="center">订单概况</h1>')
             ->row(function (Row $row) {
-
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::environment());
+                // 产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(infoBox('新增电话咨询订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(1)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增图文咨询订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(2)));
                 });
 
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::extensions());
+                $row->column(3, function (Column $column) {
+                    $column->append(infoBox('新增门诊预约订单', 'user-plus', '/admin/withdraw?status=0', 'green',Sta::getOrderCount(3)));
                 });
 
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::dependencies());
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增计免预约订单', 'user-plus', '/admin/withdraw?status=0', 'green', Sta::getOrderCount(4)));
+                });
+            })
+            ->row(function (Row $row) {
+                //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增儿保订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(5)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('历史总订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(0)));
+                });
+            })
+            ->row('<h1 text-align="center">订单走势</h1>')
+            ->row(function (Row $row) {
+                //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('今日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,1)));
                 });
-            });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('昨日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,-1)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('进七日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,7)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('近三十日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,30)));
+                });
+//                1=>'今日订单总数(单)',
+//                        1=>'昨日订单总数(单)',
+//                        1=>'近七日订单总数(单)',
+//                        1=>'订单总数(单)',
+            })
+            ->row(function (Row $row){
+                (new Order())->chart($row);
+            })
+            ;
     }
+
+}
+/**
+ * 消息框
+ * @param $name
+ * @param $icon
+ * @param $link
+ * @param $color
+ * @param $info
+ * @return string HTML
+ */
+
+function infoBox($name, $icon, $link, $color, $info)
+{
+    return (new InfoBox($name, $icon, $color, $link, $info))->render();
 }

+ 43 - 0
app/Admin/Controllers/Sta.php

xqd
@@ -0,0 +1,43 @@
+<?php
+
+
+namespace App\Admin\Controllers;
+
+
+use App\Http\Controllers\Controller;
+use App\Models\Order;
+
+class Sta extends Controller
+{
+
+    /*
+     *
+     * 获取今日预约订单数目
+     *@param
+     * $type int 订单类型
+     */
+    public static function getOrderCount($type,$day=1)
+    {
+//        产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+//        订单状态(1.未支付 2.待接单 3.进行中 4.已完成 5.已取消 6.已超时)
+          if($type == 0) return Order::count();
+        if($type != 7)
+            return Order::where(['product_type'=>$type])
+                ->where('order_status','>=',2)
+                ->where('created_at','>=',date('Y-m-d H:i:s',strtotime('today')))
+                ->count();
+          if($day == 1)
+          return Order::where('order_status','>=',2)
+                        ->where('created_at','>=',date('Y-m-d H:i:s',strtotime('today')))
+                        ->count();
+          if($day == -1)
+//              echo date('Y-m-d H:i:s',strtotime('-2 days')).'--'.date('Y-m-d H:i:s',strtotime('-1 days'));
+              return Order::where('order_status','>=',2)
+                  ->whereBetween('created_at',[date('Y-m-d H:i:s',strtotime('-2 days')),date('Y-m-d H:i:s',strtotime('-1 days'))])
+                  ->count();
+          if($day > 1)
+              return Order::where('order_status','>=',2)
+                  ->whereBetween('created_at',[date('Y-m-d H:i:s',strtotime('-'.$day.' days')),date('Y-m-d H:i:s',strtotime('today'))])
+                  ->count();
+    }
+}

+ 18 - 5
app/Http/Controllers/Api/V1/CommonController.php

xqd xqd xqd xqd
@@ -11,6 +11,7 @@ namespace App\Http\Controllers\Api\V1;
 use App\Http\Controllers\Controller;
 use App\Models\Area;
 use App\Models\HelpInfo;
+use App\Models\Icons;
 use App\Models\Order;
 use App\Models\OrderPatient;
 use App\Models\User;
@@ -374,7 +375,7 @@ class CommonController extends Controller
         $msgType = request('type',3); //1公众号 2医生端小程序 3 用户端小程序
         $orderId = request('order_id'); //订单id
         if(empty($orderId)){
-            return apiReturn(601,'请输入参数');
+            return out('',601,'请输入参数');
         }
         $config = [
             1=>[
@@ -396,8 +397,9 @@ class CommonController extends Controller
 
 
         $order = Order::where(['id'=>$orderId])->first();
-        if(empty($order)) return apiReturn(602,'无效订单');
-        if(empty($order->user_id)) return apiReturn(602,'此订单用户不存在');
+        if(empty($order)) return out('',602,'无效订单');
+;
+        if(empty($order->user_id)) return out('',602,'无效订单');
         $user = \App\User::where('id',$order->user_id)->first();
         //获取unionid
         $uid = $user->unionid;
@@ -465,8 +467,19 @@ class CommonController extends Controller
             ]);
         }
 
-        if($res['errcode'] == 0) return apiReturn(200,'发送成功');
-        return apiReturn($res['errcode'],$res['errmsg']);
+        if($res['errcode'] == 0) return out('',200,'发送成功') ;
+        return out('',$res['errcode'],$res['errmsg']);
+    }
+
+    public function icons()
+    {
+
+        $type = request('type',1); //位置  1.首页 2.文章中心 3.个人中心
+        $pType = request('ptype',1);//平台类型 1.用户端 2.医生端
+        $data = Icons::where(['type'=>$type,'status'=>1,'type_cl'=>$pType])->orderBy('laval','desc')
+            ->get(['id','name','image','laval'])->toArray();
+        return  out($data,200,'OK');
+
     }
 
 }

+ 1 - 0
composer.json

xqd
@@ -11,6 +11,7 @@
         "php": "^7.2",
         "alibabacloud/client": "^1.5",
         "alibabacloud/sdk": "^1.8",
+        "cyd622/laravel-admin-ext-echarts": "^1.0",
         "encore/laravel-admin": "^1.8",
         "fideloper/proxy": "^4.0",
         "jxlwqq/wang-editor2": "^1.0",

+ 58 - 1
composer.lock

xqd xqd
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "61821a1c04dd903188d4c13d668a8a02",
+    "content-hash": "e2f149e707808f6be188434b4ef1ce91",
     "packages": [
         {
             "name": "adbario/php-dot-notation",
@@ -434,6 +434,63 @@
             },
             "time": "2020-07-20T20:39:25+00:00"
         },
+        {
+            "name": "cyd622/laravel-admin-ext-echarts",
+            "version": "v1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/cyd622/laravel-admin-ext-echarts.git",
+                "reference": "4311388d499a9f1c68f5c645a6e9352f36fa6e92"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/cyd622/laravel-admin-ext-echarts/zipball/4311388d499a9f1c68f5c645a6e9352f36fa6e92",
+                "reference": "4311388d499a9f1c68f5c645a6e9352f36fa6e92",
+                "shasum": ""
+            },
+            "require": {
+                "encore/laravel-admin": "~1.6",
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~6.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Encore\\Admin\\Widgets\\Echarts\\EchartsServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Encore\\Admin\\Widgets\\Echarts\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "cyd622",
+                    "email": "luffywang622@gmail.com"
+                }
+            ],
+            "description": "Use Echarts in laravel-admin",
+            "homepage": "https://github.com/cyd622/laravel-admin-ext-echarts",
+            "keywords": [
+                "echarts",
+                "extension",
+                "laravel-admin"
+            ],
+            "support": {
+                "issues": "https://github.com/cyd622/laravel-admin-ext-echarts/issues",
+                "source": "https://github.com/cyd622/laravel-admin-ext-echarts/tree/v1.0.1"
+            },
+            "time": "2019-04-10T08:24:24+00:00"
+        },
         {
             "name": "danielstjules/stringy",
             "version": "3.1.0",

+ 7 - 0
config/echarts.php

xqd
@@ -0,0 +1,7 @@
+<?php
+
+return [
+    'view' => 'echarts::index',
+    'water_mark_text' => '宝妈数据中心',
+    'theme' => 'shine',
+];