diff --git a/app/Admin/Controllers/HomeController.php b/app/Admin/Controllers/HomeController.php index b1f42f2..8e2bf6d 100644 --- a/app/Admin/Controllers/HomeController.php +++ b/app/Admin/Controllers/HomeController.php @@ -7,6 +7,7 @@ use App\Admin\Common\Type; use App\Admin\Metrics\Examples; use App\Http\Controllers\Controller; use App\Models\LanzuMpInfo; +use App\Models\LanzuUserRelationBind; use App\Models\v3\Market; use Dcat\Admin\Controllers\Dashboard; use Dcat\Admin\Layout\Column; @@ -118,15 +119,26 @@ class HomeController extends Controller protected function lanzu_cs(Content $content) { + $uid = LanzuUserRelationBind::where('source_id',Admin::user()->id)->pluck('user_id')->toArray();//获取绑定社区的所有用户 return $content->header('控制面板') ->description('欢迎回到懒族后台') - ->body(function (Row $row) { - $row->column(4, function (Column $column) { + ->body(function (Row $row) use ($uid) { + $row->column(3, function (Column $column) { $column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_CS)); }); - $row->column(4, function (Column $column) { + $row->column(3, function (Column $column) { $column->row(new Examples\Community\TotalUser()); }); + $row->column(3, function (Column $column) use ($uid) { + $column->row(new Examples\Order\OrderData('user',null,'下单人数',$uid)); + }); + $row->column(3, function (Column $column) use ($uid) { + $column->row(new Examples\Order\OrderData('number',null,'订单数',$uid)); + }); + $row->column(3, function (Column $column) use ($uid) { + $column->row(new Examples\Order\OrderData('amount',null,'订单金额(元)',$uid)); + }); + }); } diff --git a/app/Admin/Controllers/ImsCjdcOrderMainController.php b/app/Admin/Controllers/ImsCjdcOrderMainController.php index 0a268c2..6cc972e 100644 --- a/app/Admin/Controllers/ImsCjdcOrderMainController.php +++ b/app/Admin/Controllers/ImsCjdcOrderMainController.php @@ -159,7 +159,7 @@ class ImsCjdcOrderMainController extends AdminController $detail = MyDetailPage::make(['order_id' => $oid]); return $content->header('订单详情') ->breadcrumb( - ['text' => '列表', 'url' => "order?page={$page}"], + ['text' => '返回', 'url' => "order?page={$page}"], ['text' => '详情', 'url' => 'detail'] ) ->body(Lazy::make($detail)); diff --git a/app/Admin/Metrics/Examples/Community/TotalUser.php b/app/Admin/Metrics/Examples/Community/TotalUser.php index e186c71..7ac558c 100644 --- a/app/Admin/Metrics/Examples/Community/TotalUser.php +++ b/app/Admin/Metrics/Examples/Community/TotalUser.php @@ -10,10 +10,16 @@ use Dcat\Admin\Widgets\Metrics\Card; class TotalUser extends Card { + public function __construct($title = null, $icon = null) + { + parent::__construct($title, $icon); + } + + protected function init() { parent::init(); - $this->title = '社区绑定用户数'; + $this->title = '绑定人数'; $adu = Admin::user(); if ($adu->isRole('lanzu_cs')){ $this->content(LanzuUserRelationBind::getCount($adu->id)); diff --git a/app/Admin/Metrics/Examples/Order/OrderData.php b/app/Admin/Metrics/Examples/Order/OrderData.php index 771e803..9001f5b 100644 --- a/app/Admin/Metrics/Examples/Order/OrderData.php +++ b/app/Admin/Metrics/Examples/Order/OrderData.php @@ -1,6 +1,6 @@ title = $title; $this->data_type = $data_type; $this->market_id = $market_id; + $this->user_ids = $uid; parent::__construct($title, $icon); } @@ -26,11 +29,13 @@ class OrderData extends Card { parent::init(); // TODO: Change the autogenerated stub $this->dropdown([ - '1'=>'今日', - '-1'=>'昨日', - '7'=>'过去一周', - '30'=>'本月', - '-30'=>'上月' + '1' => '今日', + '-1' => '昨日', + '7' => '最近7天', + 'w' => '本周', + 'lw' => '上周', + '30' => '本月', + '-30' => '上月' ]); } @@ -40,64 +45,79 @@ class OrderData extends Card $type = $request->get('option');//数据选项 $data_type = $request->get('data_type');//数据类型 $market_id = $request->get('market_id');//市场id - $this->content($this->orderNum($data_type,$type,$market_id)); + $user_ids = $request->get('user_ids');//市场id + $this->content($this->orderNum($data_type, $type, $market_id, $user_ids)); } - public function orderDataBuild($type=null,$marketId=null) + public function orderDataBuild($type = null, $marketId = null, $user_ids = []) { $where = []; $where['type'] = 1; - if ($marketId){ - if (is_array($marketId)){ - $where[] = ['in'=>['market_id'=>$marketId]]; - }else{ + if ($marketId) { + if (is_array($marketId)) { + $where[] = ['in' => ['market_id' => $marketId]]; + } else { $where['market_id'] = $marketId; } } + if (count($user_ids)) { + $where[] = ['in' => ['user_id' => $user_ids]]; + } - switch ($type){ + switch ($type) { case '1': - $beginTime=mktime(0,0,0,date('m'),date('d'),date('Y')); - $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; + $beginTime = mktime(0, 0, 0, date('m'), date('d'), date('Y')); + $endTime = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1; break; case '-1': - $beginTime=mktime(0,0,0,date('m'),date('d')-1,date('Y')); - $endTime=mktime(0,0,0,date('m'),date('d'),date('Y'))-1; + $beginTime = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); + $endTime = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1; break; case '7': - $beginTime=mktime(0,0,0,date('m'),date('d')-7,date('Y')); - $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; + $beginTime = mktime(0, 0, 0, date('m'), date('d') - 7, date('Y')); + $endTime = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1; + break; + case 'w': + $beginTime = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y")); + $endTime = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7, date("Y")); + break; + case 'lw': + $beginTime = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1 - 7, date("Y")); + $endTime = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7 - 7, date("Y")); break; case '30': - $beginTime=mktime(0,0,0,date('m'),1,date('Y')); - $endTime=mktime(23,59,59,date('m'),date('t'),date('Y')); + $beginTime = mktime(0, 0, 0, date('m'), 1, date('Y')); + $endTime = mktime(23, 59, 59, date('m'), date('t'), date('Y')); break; case '-30': - $beginTime=mktime(0,0,0,date('m')-1,1,date('Y')); - $endTime=strtotime(date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y")))); + $beginTime = mktime(0, 0, 0, date('m') - 1, 1, date('Y')); + $endTime = strtotime(date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), 0, date("Y")))); break; default: - $beginTime=mktime(0,0,0,date('m'),date('d'),date('Y')); - $endTime=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; + $beginTime = mktime(0, 0, 0, date('m'), date('d'), date('Y')); + $endTime = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1; break; } $build = ImsCjdcOrderMain - ::whereBetween('created_at',[$beginTime,$endTime]) - ->whereIn('state',[3,4,5,10]) + ::whereBetween('created_at', [$beginTime, $endTime]) + ->whereIn('state', [3, 4, 5, 10]) ->where($where); return $build; } - public function orderNum($data_type,$type,$marketId) + public function orderNum($data_type, $type, $marketId, $user_ids) { - $build = $this->orderDataBuild($type,$marketId); - if ($data_type=='number'){ + $build = $this->orderDataBuild($type, $marketId, $user_ids); + if ($data_type == 'number') { $result = $build->count(); - }elseif ($data_type=='amount'){ + } elseif ($data_type == 'amount') { $result = $build->sum('money'); - }else{ + } elseif ($data_type == 'user') { + $result = $build->groupBy('user_id')->pluck('user_id')->toArray(); + $result = count($result); + } else { $result = 0; } return $result; @@ -105,11 +125,12 @@ class OrderData extends Card // 传递自定义参数到 handle 方法 - public function parameters() : array + public function parameters(): array { return [ - 'data_type'=>$this->data_type, - 'market_id'=>$this->market_id, + 'data_type' => $this->data_type, + 'market_id' => $this->market_id, + 'user_ids' => $this->user_ids ]; }