self::report(), // 常用功能 'menu' => self::menu(), // 近15日注册量 'visitor' => self::visitor(), ]; } /** * @notes 代理工作台 * @param $params * @return array * @author 段誉 * @date 2021/12/29 15:58 */ public static function agent($params) { return [ // 今日数据 'report' => self::agentReport($params), ]; } /** * @notes 常用功能 * @return array[] * @author 段誉 * @date 2021/12/29 16:40 */ public static function menu(): array { return [ [ 'name' => '用户管理', 'image' => FileService::getFileUrl(config('project.default_image.menu_role')), 'url' => '/consumer/lists' ], [ 'name' => '用户关系', 'image' => FileService::getFileUrl(config('project.default_image.menu_dept')), 'url' => '/consumer/user_relation' ], [ 'name' => '资金明细', 'image' => FileService::getFileUrl(config('project.default_image.menu_dict')), 'url' => '/finance/user_finance' ], [ 'name' => '素材中心', 'image' => FileService::getFileUrl(config('project.default_image.menu_generator')), 'url' => '/material/index' ], [ 'name' => '文章资讯', 'image' => FileService::getFileUrl(config('project.default_image.menu_file')), 'url' => '/article/lists' ], [ 'name' => '网站配置', 'image' => FileService::getFileUrl(config('project.default_image.menu_web')), 'url' => '/app/information' ], [ 'name' => '管理员', 'image' => FileService::getFileUrl(config('project.default_image.menu_admin')), 'url' => '/permission/admin' ], ]; } /** * @notes 今日数据 * @return int[] * @author 段誉 * @date 2021/12/29 16:15 */ public static function report(): array { $time = time(); $start_time = strtotime(date('Y-m-d 00:00:00', time()));//0点 $end_time = strtotime(date('Y-m-d 23:59:59', time()));//24点 //昨日 $start_time_yes = strtotime("yesterday");//昨日0点 $end_time_yes = strtotime("today") - 1;//昨日24点 return [ 'time' => date('Y-m-d H:i:s'), 'totoal' => WorkbenchLogic::reportData(0,$end_time), 'today' => WorkbenchLogic::reportData($start_time,$end_time), 'yes' => WorkbenchLogic::reportData($start_time_yes,$end_time_yes), ]; } /** * @notes 访问数据 * @return array * @author 段誉 * @date 2021/12/29 16:57 */ public static function reportData($start_time,$end_time): array { $time = time(); $online_time = $time - 60*60; $user_money_sum = User::where(" user_money > 0 ")->sum('user_money'); $user_money_frozen_sum = UserFinance::where(" change_amount > 0 ")->where(['frozen' => 1])->sum('change_amount'); $user_online_count= User::where("last_time >= $online_time")->count(); $user_count= User::where("create_time >= $start_time AND create_time <= $end_time")->count(); //活跃人数 $user_active_count= UserLog::where("create_time >= $start_time AND create_time <= $end_time")->where(['type' => 1])->group("user_id")->count(); $recharge_sum= RechargeRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->sum('amount'); $recharge_count= RechargeRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->count(); $recharge_first_num= RechargeRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->group("user_id")->having(1)->count(); $recharge_num= RechargeRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->group("user_id")->count(); $recharge_first_num= RechargeRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->group("user_id")->having('count(*) = 1')->count(); $withdraw_sum= WithdrawRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->sum('amount'); $withdraw_count= WithdrawRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->count(); $withdraw_num= WithdrawRecord::where("status = 1 AND create_time >= $start_time AND create_time <= $end_time")->group("user_id")->count(); $user_reward_sum = UserFinance::where(" change_amount > 0 AND change_type IN (4,14,15) AND create_time >= $start_time AND create_time <= $end_time")->sum('change_amount'); // $order_sum= LhRecord::where("create_time >= $start_time AND create_time <= $end_time")->sum('money'); // $order_num= LhRecord::where("create_time >= $start_time AND create_time <= $end_time")->group("user_id")->count(); // $order_com_sum= LhRecord::where("create_time >= $start_time AND create_time <= $end_time")->sum('income'); $order_sum= ItemRecord::where("create_time >= $start_time AND create_time <= $end_time")->sum('money'); $order_ing_sum = ItemRecord::where(['status' => 1])->where(" create_time >= $start_time AND create_time <= $end_time ")->sum('money'); $order_num= ItemRecord::where("create_time >= $start_time AND create_time <= $end_time")->group("user_id")->count(); $order_com_sum= ItemRecord::where("create_time >= $start_time AND create_time <= $end_time")->sum('total_income'); $mine_com_sum = UserMineRecord::where(" create_time >= $start_time AND create_time <= $end_time ")->sum('amount'); $mine_num= UserMineRecord::where("create_time >= $start_time AND create_time <= $end_time")->group("user_id")->count(); return [ 'user_money_sum' => $user_money_sum, 'user_money_frozen_sum' => $user_money_frozen_sum, 'user_online_count' => $user_online_count, 'user_count' => $user_count, 'user_active_count' => $user_active_count, 'recharge_count' => $recharge_count, 'recharge_num' => $recharge_num, 'recharge_first_num' => $recharge_first_num, 'recharge_sum' => round($recharge_sum, 2), 'withdraw_sum' => round($withdraw_sum, 2), 'withdraw_count' => $withdraw_count, 'withdraw_num' => $withdraw_num, 'user_reward_sum' => $user_reward_sum, 'order_sum' => round($order_sum, 2), 'order_ing_sum' => round($order_ing_sum, 2), 'order_num' => $order_num, 'order_com_sum' => round($order_com_sum, 2), 'mine_com_sum' => round($mine_com_sum, 2), 'mine_num' => $mine_num, ]; } /** * @notes 今日数据 * @return int[] * @author 段誉 * @date 2021/12/29 16:15 */ public static function agentReport($params): array { $time = time(); $start_time = strtotime(date('Y-m-d 00:00:00', time()));//0点 $end_time = strtotime(date('Y-m-d 23:59:59', time()));//24点 //昨日 $start_time_yes = strtotime("yesterday");//昨日0点 $end_time_yes = strtotime("today") - 1;//昨日24点 return [ 'time' => date('Y-m-d H:i:s'), 'totoal' => WorkbenchLogic::agentReportData(0,$end_time,$params), 'today' => WorkbenchLogic::agentReportData($start_time,$end_time,$params), 'yes' => WorkbenchLogic::agentReportData($start_time_yes,$end_time_yes,$params), ]; } /** * @notes 访问数据 * @return array * @author 段誉 * @date 2021/12/29 16:57 */ public static function agentReportData($start_time,$end_time,$params): array { //根据管理员ID获取代理 $user = User::where(['agent_id' => $params['admin_id']])->findOrEmpty(); $where = " 1 = 2 "; if (!$user->isEmpty()) { $user_id = $user['id']; $where = " ur.parent_id = $user_id "; } $time = time(); $online_time = $time - 60*60; $user_money_sum = User::alias('u')->join('user_relation_agent ur', 'u.id = ur.user_id')->where($where)->where(" u.user_money > 0 ")->sum('u.user_money'); $user_money_frozen_sum = UserFinance::alias('uf')->join('user_relation_agent ur', 'uf.user_id = ur.user_id')->where($where)->where(" uf.change_amount > 0 ")->where(['uf.frozen' => 1])->sum('uf.change_amount'); $user_online_count= User::alias('u')->join('user_relation_agent ur', 'u.id = ur.user_id')->where($where)->where("u.last_time >= $online_time")->count(); $user_count= User::alias('u')->join('user_relation_agent ur', 'u.id = ur.user_id')->where($where)->where("u.create_time >= $start_time AND u.create_time <= $end_time")->count(); //活跃人数 $user_active_count= UserLog::alias('ul')->join('user_relation_agent ur', 'ul.user_id = ur.user_id')->where($where)->where("ul.create_time >= $start_time AND ul.create_time <= $end_time")->where(['ul.type' => 1])->group("ul.user_id")->count(); $recharge_sum= RechargeRecord::alias('rr')->join('user_relation_agent ur', 'rr.user_id = ur.user_id')->where($where)->where("rr.status = 1 AND rr.create_time >= $start_time AND rr.create_time <= $end_time")->sum('rr.amount'); $recharge_count= RechargeRecord::alias('rr')->join('user_relation_agent ur', 'rr.user_id = ur.user_id')->where($where)->where("rr.status = 1 AND rr.create_time >= $start_time AND rr.create_time <= $end_time")->count(); $recharge_first_num= RechargeRecord::alias('rr')->join('user_relation_agent ur', 'rr.user_id = ur.user_id')->where($where)->where("rr.status = 1 AND rr.create_time >= $start_time AND rr.create_time <= $end_time")->group("rr.user_id")->having(1)->count(); $recharge_num= RechargeRecord::alias('rr')->join('user_relation_agent ur', 'rr.user_id = ur.user_id')->where($where)->where("rr.status = 1 AND rr.create_time >= $start_time AND rr.create_time <= $end_time")->group("rr.user_id")->count(); $recharge_first_num= RechargeRecord::alias('rr')->join('user_relation_agent ur', 'rr.user_id = ur.user_id')->where($where)->where("rr.status = 1 AND rr.create_time >= $start_time AND rr.create_time <= $end_time")->group("rr.user_id")->having('count(*) = 1')->count(); $withdraw_sum= WithdrawRecord::alias('wr')->join('user_relation_agent ur', 'wr.user_id = ur.user_id')->where($where)->where("wr.status = 1 AND wr.create_time >= $start_time AND wr.create_time <= $end_time")->sum('wr.amount'); $withdraw_count= WithdrawRecord::alias('wr')->join('user_relation_agent ur', 'wr.user_id = ur.user_id')->where($where)->where("wr.status = 1 AND wr.create_time >= $start_time AND wr.create_time <= $end_time")->count(); $withdraw_num= WithdrawRecord::alias('wr')->join('user_relation_agent ur', 'wr.user_id = ur.user_id')->where($where)->where("wr.status = 1 AND wr.create_time >= $start_time AND wr.create_time <= $end_time")->group("wr.user_id")->count(); $user_reward_sum = UserFinance::alias('uf')->join('user_relation_agent ur', 'uf.user_id = ur.user_id')->where($where)->where(" uf.change_amount > 0 AND uf.change_type IN (4,14,15) AND uf.create_time >= $start_time AND uf.create_time <= $end_time")->sum('uf.change_amount'); // $order_sum= LhRecord::alias('lr')->join('user_relation_agent ur', 'lr.user_id = ur.user_id')->where($where)->where("lr.create_time >= $start_time AND lr.create_time <= $end_time")->sum('lr.money'); // $order_num= LhRecord::alias('lr')->join('user_relation_agent ur', 'lr.user_id = ur.user_id')->where("lr.create_time >= $start_time AND lr.create_time <= $end_time")->group("lr.user_id")->count(); // $order_com_sum= LhRecord::alias('lr')->join('user_relation_agent ur', 'lr.user_id = ur.user_id')->where("lr.create_time >= $start_time AND lr.create_time <= $end_time")->sum('lr.income'); $order_sum= ItemRecord::alias('ir')->join('user_relation_agent ur', 'ir.user_id = ur.user_id')->where($where)->where("ir.create_time >= $start_time AND ir.create_time <= $end_time")->sum('ir.money'); $order_num= ItemRecord::alias('ir')->join('user_relation_agent ur', 'ir.user_id = ur.user_id')->where($where)->where("ir.create_time >= $start_time AND ir.create_time <= $end_time")->group("ir.user_id")->count(); $order_com_sum= ItemRecord::alias('ir')->join('user_relation_agent ur', 'ir.user_id = ur.user_id')->where($where)->where("ir.create_time >= $start_time AND ir.create_time <= $end_time")->sum('ir.total_income'); $mine_com_sum = UserMineRecord::alias('umr')->join('user_relation_agent ur', 'umr.user_id = ur.user_id')->where($where)->where("umr.create_time >= $start_time AND umr.create_time <= $end_time")->sum('umr.amount'); $mine_num= UserMineRecord::alias('umr')->join('user_relation_agent ur', 'umr.user_id = ur.user_id')->where($where)->where("umr.create_time >= $start_time AND umr.create_time <= $end_time")->group("umr.user_id")->count(); return [ 'user_money_sum' => $user_money_sum, 'user_money_frozen_sum' => $user_money_frozen_sum, 'user_online_count' => $user_online_count, 'user_count' => $user_count, 'user_active_count' => $user_active_count, 'recharge_count' => $recharge_count, 'recharge_num' => $recharge_num, 'recharge_first_num' => $recharge_first_num, 'recharge_sum' => round($recharge_sum, 2), 'withdraw_sum' => round($withdraw_sum, 2), 'withdraw_count' => $withdraw_count, 'withdraw_num' => $withdraw_num, 'user_reward_sum' => $user_reward_sum, 'order_sum' => round($order_sum, 2), 'order_num' => $order_num, 'order_com_sum' => round($order_com_sum, 2), 'mine_com_sum' => round($mine_com_sum, 2), 'mine_num' => $mine_num, ]; } /** * @notes 访问数 * @return array * @author 段誉 * @date 2021/12/29 16:57 */ public static function visitor(): array { $num = []; $date = []; for ($i = 0; $i < 30; $i++) { $where_start = strtotime("- " . $i . "day"); $date[] = date('Y/m/d', $where_start); $start_time = strtotime(date('Y-m-d 00:00:00', strtotime(date('Y-m-d', $where_start))));//0点 $end_time = strtotime(date('Y-m-d 23:59:59', strtotime(date('Y-m-d', $where_start))));//12点 $num[] = User::where("create_time >= $start_time AND create_time <= $end_time")->count(); } return [ 'date' => $date, 'list' => [ ['name' => '注册数', 'data' => array_reverse($num)] ] ]; } }