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.
252 lines
11 KiB
252 lines
11 KiB
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Admin\Common\Auth;
|
|
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;
|
|
use Dcat\Admin\Layout\Content;
|
|
use Dcat\Admin\Layout\Row;
|
|
use Dcat\Admin\Admin;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class HomeController extends Controller
|
|
{
|
|
public function index(Content $content)
|
|
{
|
|
if (Admin::user()->isRole('lanzu_business')) {
|
|
return $this->lanzu_biz($content);
|
|
} elseif (Admin::user()->isRole('lanzu_mp')) {
|
|
return $this->lanzu_mp($content);
|
|
} elseif (Admin::user()->isRole('lanzu_mm')) {
|
|
return $this->lanzu_mm($content);
|
|
} elseif (Admin::user()->isRole('lanzu_cs')) {
|
|
return $this->lanzu_cs($content);
|
|
} elseif (Admin::user()->isRole('market_service')) {
|
|
return $this->market_service($content);
|
|
}
|
|
|
|
return $this->default($content);
|
|
}
|
|
|
|
protected function default(Content $content)
|
|
{
|
|
return $content
|
|
->header('Dashboard')
|
|
->description('Description...')
|
|
->body(function (Row $row) {
|
|
$row->column(6, function (Column $column) {
|
|
$column->row(Dashboard::title());
|
|
$column->row(new Examples\Tickets());
|
|
});
|
|
|
|
$row->column(6, function (Column $column) {
|
|
$column->row(function (Row $row) {
|
|
$row->column(6, new Examples\NewUsers());
|
|
$row->column(6, new Examples\NewDevices());
|
|
});
|
|
|
|
$column->row(new Examples\Sessions());
|
|
$column->row(new Examples\ProductOrders());
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 服务商
|
|
* @param Content $content
|
|
* @return Content
|
|
*/
|
|
protected function lanzu_mp(Content $content)
|
|
{
|
|
$mp = LanzuMpInfo::where('admin_user_id',Admin::user()->id)->first();
|
|
$marketIds = Market::where('mp_id',$mp->id)->pluck('id')->toArray();
|
|
return $content->header('控制面板')
|
|
->description('欢迎回到懒族后台')
|
|
->body(function (Row $row) use ($marketIds) {
|
|
$row->column(3, function (Column $column) {
|
|
$column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_MP));
|
|
});
|
|
|
|
$row->column(3, function (Column $column)use ($marketIds) {
|
|
$column->row(new Examples\ServiceCard\TotalStore($marketIds,'商户数'));
|
|
});
|
|
$row->column(3, function (Column $column)use ($marketIds) {
|
|
$column->row(new Examples\Order\OrderData('订单数',[
|
|
'user_type'=>'lanzu_mp',//谁取数据 user_type 用户类型
|
|
'data_type'=>'number',//取什么数据 data_type 数据类型
|
|
'market_id'=>$marketIds,//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
]));
|
|
});
|
|
$row->column(3, function (Column $column)use ($marketIds) {
|
|
$column->row(new Examples\Order\OrderData('订单金额(元)',[
|
|
'user_type'=>'lanzu_mp',//谁取数据 user_type 用户类型
|
|
'data_type'=>'amount',//取什么数据 data_type 数据类型
|
|
'market_id'=>$marketIds,//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
]));
|
|
});
|
|
});
|
|
}
|
|
|
|
protected function lanzu_mm(Content $content)
|
|
{
|
|
return $content->header('控制面板')
|
|
->description('欢迎回到懒族后台')
|
|
->body(function (Row $row) {
|
|
$row->column(3, function (Column $column) {
|
|
$column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_MM));
|
|
});
|
|
|
|
$row->column(3, function (Column $column) {
|
|
$column->row(new Examples\ServiceCard\TotalStore());
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 总社区
|
|
* @param Content $content
|
|
* @return Content
|
|
*/
|
|
protected function lanzu_biz(Content $content)
|
|
{
|
|
$uid = LanzuUserRelationBind::pluck('user_id')->toArray();
|
|
return $content->header('控制面板')
|
|
->description('欢迎回到懒族后台')
|
|
->body(function (Row $row)use ($uid) {
|
|
$row->column(3, function (Column $column) {
|
|
$column->row(new Examples\Community\TotalCommunity());
|
|
});
|
|
|
|
$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_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
|
|
'data_type'=>'count_user',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
$row->column(3, function (Column $column)use ($uid) {
|
|
$column->row(new Examples\Order\OrderData('订单数',[
|
|
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
|
|
'data_type'=>'number',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
$row->column(3, function (Column $column)use ($uid) {
|
|
$column->row(new Examples\Order\OrderData('订单金额(元)',[
|
|
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
|
|
'data_type'=>'amount',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 社区服务点
|
|
* @param Content $content
|
|
* @return Content
|
|
*/
|
|
protected function lanzu_cs(Content $content)
|
|
{
|
|
//查询用户绑定后下过单的用户id
|
|
$uid = LanzuUserRelationBind::where('source_id',Admin::user()->id)
|
|
->leftJoin('lanzu_order_main','lanzu_order_main.user_id','lanzu_user_relation_bind.user_id')
|
|
->whereRaw('lanzu_order_main.created_at > lanzu_user_relation_bind.created_at')
|
|
->groupBy('lanzu_order_main.user_id')
|
|
->pluck('lanzu_order_main.user_id')
|
|
->toArray();//获取绑定社区的所有用户
|
|
return $content->header('控制面板')
|
|
->description('欢迎回到懒族后台')
|
|
->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(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_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
|
|
'data_type'=>'count_user',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
$row->column(3, function (Column $column) use ($uid) {
|
|
$column->row(new Examples\Order\OrderData('订单数',[
|
|
'user_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
|
|
'data_type'=>'number',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
$row->column(3, function (Column $column) use ($uid) {
|
|
$column->row(new Examples\Order\OrderData('订单金额(元)',[
|
|
'user_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
|
|
'data_type'=>'amount',//取什么数据 data_type 数据类型
|
|
'market_id'=>'',//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
'user_ids'=>$uid?$uid:null
|
|
]));
|
|
});
|
|
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 市场服务站
|
|
* @param Content $content
|
|
* @return Content
|
|
*/
|
|
protected function market_service(Content $content)
|
|
{
|
|
$marketId = Auth::getMarket();
|
|
return $content->header('控制面板')
|
|
->description('欢迎回到懒族后台')
|
|
->body(function (Row $row)use ($marketId) {
|
|
$row->column(4, function (Column $column)use ($marketId) {
|
|
$column->row(new Examples\ServiceCard\TotalStore($marketId,'商户数'));
|
|
});
|
|
$row->column(4, function (Column $column)use ($marketId) {
|
|
$column->row(new Examples\Order\OrderData('订单数',[
|
|
'user_type'=>'market_service',//谁取数据 user_type 用户类型
|
|
'data_type'=>'number',//取什么数据 data_type 数据类型
|
|
'market_id'=>$marketId,//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
|
|
]));
|
|
});
|
|
|
|
$row->column(4, function (Column $column)use ($marketId) {
|
|
$column->row(new Examples\Order\OrderData('订单金额(元)',[
|
|
'user_type'=>'market_service',//谁取数据 user_type 用户类型
|
|
'data_type'=>'amount',//取什么数据 data_type 数据类型
|
|
'market_id'=>$marketId,//取哪个市场数据
|
|
'condition'=>1,//取数据维度 condition
|
|
]));
|
|
});
|
|
});
|
|
}
|
|
}
|