链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.7 KiB

  1. <?php
  2. namespace App\Admin\Metrics\Examples\Order;
  3. use App\Models\ImsCjdcOrder;
  4. use App\Models\ImsCjdcOrderMain;
  5. use Dcat\Admin\Widgets\Metrics\Card;
  6. use Illuminate\Http\Request;
  7. class OrderData extends Card
  8. {
  9. protected $title;
  10. public function __construct($title = null, $icon = null)
  11. {
  12. $this->title = $title;
  13. parent::__construct($title, $icon);
  14. }
  15. public function init()
  16. {
  17. parent::init(); // TODO: Change the autogenerated stub
  18. $this->dropdown([
  19. '1'=>'今日',
  20. '-1'=>'昨日',
  21. '7'=>'过去一周',
  22. '30'=>'本月',
  23. '-30'=>'上月'
  24. ]);
  25. }
  26. public function handle(Request $request)
  27. {
  28. $type = $request->get('option');
  29. $this->content($this->orderNum('',$type));
  30. }
  31. public function orderNum($marketId=null,$type=null)
  32. {
  33. $where = [];
  34. $where['type'] = 1;
  35. if ($marketId){
  36. $where['market_id'] = $marketId;
  37. }
  38. switch ($type){
  39. case '1':
  40. $beginTime=mktime(0,0,0,date('m'),date('d'),date('Y'));
  41. $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
  42. break;
  43. case '-1':
  44. $beginTime=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
  45. $endTime=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
  46. break;
  47. case '7':
  48. $beginTime=mktime(0,0,0,date('m'),date('d')-7,date('Y'));
  49. $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
  50. break;
  51. case '30':
  52. $beginTime=mktime(0,0,0,date('m'),1,date('Y'));
  53. $endTime=mktime(23,59,59,date('m'),date('t'),date('Y'));
  54. break;
  55. case '-30':
  56. $beginTime=mktime(0,0,0,date('m')-1,1,date('Y'));
  57. $endTime=strtotime(date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))));
  58. break;
  59. default:
  60. $beginTime=mktime(0,0,0,date('m'),date('d'),date('Y'));
  61. $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
  62. break;
  63. }
  64. $count = ImsCjdcOrderMain
  65. ::whereBetween('created_at',[$beginTime,$endTime])
  66. ->whereIn('state',[3,4,5,10])
  67. ->where($where)
  68. ->count();
  69. return $count;
  70. }
  71. /**
  72. * 渲染卡片内容
  73. * @return string
  74. */
  75. public function renderContent()
  76. {
  77. $content = parent::renderContent();
  78. return <<<HTML
  79. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  80. <h2 class="ml-1 font-large-1">{$content}</h2>
  81. </div>
  82. HTML;
  83. }
  84. }