first commit

This commit is contained in:
Your Name
2026-01-19 14:19:22 +08:00
commit fe2d9c1868
4777 changed files with 665503 additions and 0 deletions

View File

@@ -0,0 +1,410 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic;
use app\common\logic\BaseLogic;
use app\common\service\ConfigService;
use app\common\service\FileService;
use app\common\model\user\{User,UserLog,UserMineRecord};
use app\common\model\finance\{WithdrawRecord,RechargeRecord};
use app\common\model\goods\{GoodsRecord};
use app\common\model\lh\{LhRecord};
use app\common\model\item\ItemRecord;
use app\common\model\finance\UserFinance;
/**
* 工作台
* Class WorkbenchLogic
* @package app\adminapi\logic
*/
class WorkbenchLogic extends BaseLogic
{
/**
* @notes 工作台
* @param $adminInfo
* @return array
* @author 段誉
* @date 2021/12/29 15:58
*/
public static function index()
{
return [
// 今日数据
'report' => 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)]
]
];
}
}