HomeController.php 4.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Controllers\Chart\OrderChart;
  4. use App\Http\Controllers\Controller;
  5. use Encore\Admin\Controllers\Dashboard;
  6. use Encore\Admin\Layout\Column;
  7. use Encore\Admin\Layout\Content;
  8. use Encore\Admin\Layout\Row;
  9. use Encore\Admin\Widgets\InfoBox;
  10. class HomeController extends Controller
  11. {
  12. public function index(Content $content)
  13. {
  14. if (\Admin::user()->isRole('financial_staff')){
  15. return redirect('admin/refund_applications');
  16. }
  17. $start_time = date('Y-m-d 00:00:00',time());
  18. $end_time = date('Y-m-d 00:00:00',strtotime('+1 days',time()));
  19. return $content
  20. ->title('欢迎进入后台管理系统')
  21. ->description('后台数据中心')
  22. ->row('<h1 text-align="center">订单概况</h1>')
  23. ->row(function (Row $row) use ($end_time,$start_time){
  24. // 产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
  25. $row->column(3, function (Column $column) use ($end_time,$start_time){
  26. $column->append(infoBox('新增电话咨询订单', 'dropbox', '/admin/consulting_orders?product_type=1&created_at[start]='.$start_time.'&created_at[end]='.$end_time.'', 'green', Sta::getOrderCount(1)));
  27. });
  28. $row->column(3, function (Column $column) use ($end_time,$start_time) {
  29. $column->append(\App\Admin\Controllers\infoBox('新增图文咨询订单', 'dropbox', '/admin/consulting_orders?product_type=2&created_at[start]='.$start_time.'&created_at[end]='.$end_time.'', 'green', Sta::getOrderCount(2)));
  30. });
  31. $row->column(3, function (Column $column) use ($end_time,$start_time) {
  32. $column->append(infoBox('新增门诊预约订单', 'user-plus', '/admin/booking_order?product_type=3&created_at[start]='.$start_time.'&created_at[end]='.$end_time.'', 'green',Sta::getOrderCount(3)));
  33. });
  34. $row->column(3, function (Column $column) use ($end_time,$start_time) {
  35. $column->append(\App\Admin\Controllers\infoBox('新增计免预约订单', 'user-plus', '/admin/booking_order?product_type=4&created_at[start]='.$start_time.'&created_at[end]='.$end_time.'', 'green', Sta::getOrderCount(4)));
  36. });
  37. })
  38. ->row(function (Row $row) use ($end_time,$start_time) {
  39. //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
  40. $row->column(3, function (Column $column) use ($end_time,$start_time) {
  41. $column->append(\App\Admin\Controllers\infoBox('新增儿保订单', 'dropbox', '/admin/booking_order?product_type=5&created_at[start]='.$start_time.'&created_at[end]='.$end_time.'', 'green', Sta::getOrderCount(5)));
  42. });
  43. $row->column(3, function (Column $column) {
  44. $column->append(\App\Admin\Controllers\infoBox('历史总订单', 'dropbox', 'javascript:void(0)', 'green', Sta::getOrderCount(0)));
  45. });
  46. })
  47. ->row('<h1 text-align="center">订单走势</h1>')
  48. ->row(function (Row $row) {
  49. //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
  50. $row->column(3, function (Column $column) {
  51. $column->append(\App\Admin\Controllers\infoBox('今日订单', 'dropbox', 'javascript:void(0)', 'green', Sta::getOrderCount(7,1)));
  52. });
  53. $row->column(3, function (Column $column) {
  54. $column->append(\App\Admin\Controllers\infoBox('昨日订单', 'dropbox', 'javascript:void(0)', 'green', Sta::getOrderCount(7,-1)));
  55. });
  56. $row->column(3, function (Column $column) {
  57. $column->append(\App\Admin\Controllers\infoBox('近七日订单', 'dropbox', 'javascript:void(0)', 'green', Sta::getOrderCount(7,7)));
  58. });
  59. $row->column(3, function (Column $column) {
  60. $column->append(\App\Admin\Controllers\infoBox('近三十日订单', 'dropbox', 'javascript:void(0)', 'green', Sta::getOrderCount(7,30)));
  61. });
  62. // 1=>'今日订单总数(单)',
  63. // 1=>'昨日订单总数(单)',
  64. // 1=>'近七日订单总数(单)',
  65. // 1=>'订单总数(单)',
  66. })
  67. ->row(function (Row $row){
  68. (new OrderChart())->chart($row);
  69. })
  70. ;
  71. }
  72. }
  73. /**
  74. * 消息框
  75. * @param $name
  76. * @param $icon
  77. * @param $link
  78. * @param $color
  79. * @param $info
  80. * @return string HTML
  81. */
  82. function infoBox($name, $icon, $link, $color, $info)
  83. {
  84. return (new InfoBox($name, $icon, $color, $link, $info))->render();
  85. }