添加数据看板
This commit is contained in:
parent
7ae76e2924
commit
d6b3c8a33c
|
|
@ -3,6 +3,8 @@
|
|||
namespace app\admin\controller;
|
||||
use app\common\model\Order as OrderModel;
|
||||
use app\common\model\OrderList;
|
||||
use app\common\model\OrderListRecovery;
|
||||
use app\common\model\User;
|
||||
use app\admin\controller\Base;
|
||||
use app\common\model\Category;
|
||||
use app\common\model\Yushou;
|
||||
|
|
@ -44,7 +46,7 @@ class Statistics extends Base
|
|||
}
|
||||
$field = "*";
|
||||
$order = "id desc";
|
||||
$data = GoodsModel::getList($whe, $field, $order, $this->page);
|
||||
$data = GoodsModel::getList($whe, $field, $order, 20);
|
||||
//订单收入:实际收入:出货价值:实际利润率:订单利润率:
|
||||
$sum_dingdan = 0;
|
||||
$sum_shiji = 0;
|
||||
|
|
@ -124,7 +126,7 @@ class Statistics extends Base
|
|||
$value['count_use_coupon'] = $use_coupon;
|
||||
$value['count_heji'] = $count_price + $count_yue + $use_integral + $use_score + $use_coupon;
|
||||
$value['count_heji_yanzheng'] = $count_OrderList * $value['price'];
|
||||
|
||||
|
||||
$value['count_OrderList'] = $count_OrderList;
|
||||
$goodslist_price1 = round($goodslist_price, 2);
|
||||
$value['goodslist_price'] = $goodslist_price1;
|
||||
|
|
@ -142,7 +144,7 @@ class Statistics extends Base
|
|||
|
||||
$sum_dingdan += $count_OrderList * $value['price'];
|
||||
$sum_shiji += $order_zhe_total;
|
||||
$sum_chuhuo +=$goodslist_price1;
|
||||
$sum_chuhuo += $goodslist_price1;
|
||||
$sum_shijilirun += $value['lirun'];
|
||||
$sum_dingdanlirun += $value['liruns'];
|
||||
}
|
||||
|
|
@ -159,5 +161,179 @@ class Statistics extends Base
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据统计
|
||||
* @param \think\Request $request
|
||||
* @return string
|
||||
*/
|
||||
public function DataStand(Request $request)
|
||||
{
|
||||
$userCount = User::count("id");
|
||||
|
||||
// 今日时间
|
||||
$ranges['today_start'] = strtotime('today');
|
||||
$ranges['today_end'] = strtotime('tomorrow') - 1;
|
||||
|
||||
// 昨日时间
|
||||
$ranges['yesterday_start'] = strtotime('yesterday');
|
||||
$ranges['yesterday_end'] = strtotime('today') - 1;
|
||||
|
||||
// 本周时间(周一到周日)
|
||||
$ranges['this_week_start'] = strtotime('monday this week');
|
||||
$ranges['this_week_end'] = strtotime('sunday this week') + 86399;
|
||||
|
||||
// 上周时间(上周一到上周日)
|
||||
$ranges['last_week_start'] = strtotime('monday last week');
|
||||
$ranges['last_week_end'] = strtotime('sunday last week') + 86399;
|
||||
|
||||
// 本月时间(1号到月末)
|
||||
$ranges['this_month_start'] = strtotime(date('Y-m-01'));
|
||||
$ranges['this_month_end'] = strtotime(date('Y-m-t')) + 86399;
|
||||
|
||||
// 上月时间(上个月1号到月末)
|
||||
$ranges['last_month_start'] = strtotime(date('Y-m-01', strtotime('-1 month')));
|
||||
$ranges['last_month_end'] = strtotime(date('Y-m-t', strtotime('-1 month'))) + 86399;
|
||||
|
||||
|
||||
// 今日注册人数
|
||||
$user_today = User::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count('id');
|
||||
|
||||
// 昨日注册人数
|
||||
$user_yesterday = User::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->count('id');
|
||||
|
||||
// 本周注册人数
|
||||
$user_this_week = User::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->count('id');
|
||||
|
||||
// 上周注册人数
|
||||
$user_last_week = User::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->count('id');
|
||||
|
||||
// 本月注册人数
|
||||
$user_this_month = User::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->count('id');
|
||||
// 上月注册人数
|
||||
$user_last_month = User::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->count('id');
|
||||
|
||||
// 本日充值金额
|
||||
$order_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price');
|
||||
|
||||
// 昨日充值金额
|
||||
$order_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('price');
|
||||
|
||||
// 本周充值金额
|
||||
$order_this_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('price');
|
||||
|
||||
// 上周充值金额
|
||||
$order_last_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('price');
|
||||
|
||||
// 本月充值金额
|
||||
$order_this_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('price');
|
||||
|
||||
// 上月充值金额
|
||||
$order_last_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('price');
|
||||
// 消费人数统计
|
||||
$consume_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$consume_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$consume_this_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$consume_last_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$consume_this_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$consume_last_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
|
||||
// RMB消费人数统计
|
||||
$rmb_consume_today = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$rmb_consume_yesterday = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$rmb_consume_this_week = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$rmb_consume_last_week = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$rmb_consume_this_month = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
$rmb_consume_last_month = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
|
||||
|
||||
//今日余额消费
|
||||
$money_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_money');
|
||||
$money_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_money');
|
||||
//今日积分抵扣
|
||||
$score_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_score');
|
||||
$score_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_score');
|
||||
//今日余额发放
|
||||
$money_recovery_today = OrderListRecovery::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('money');
|
||||
$money_recovery_yesterday = OrderListRecovery::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('money');
|
||||
//今日优惠卷消费
|
||||
$coupon_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_coupon');
|
||||
|
||||
//今日收入
|
||||
$order_zhe_total = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('order_zhe_total');
|
||||
$order_goodslist_money = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('goodslist_money');
|
||||
$order_goodslist_count = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count();
|
||||
$order_count = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count();
|
||||
|
||||
$order_zhe_total_yester = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('order_zhe_total'), 2);
|
||||
$order_goodslist_money_yester = round( OrderList::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('goodslist_money'), 2);
|
||||
|
||||
$order_zhe_total_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('order_zhe_total'), 2);
|
||||
$order_goodslist_money_week = round(OrderList::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('goodslist_money'), 2);
|
||||
|
||||
$order_zhe_total_last_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('order_zhe_total'), 2);
|
||||
$order_goodslist_money__last_week = round(OrderList::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('goodslist_money'), 2);
|
||||
|
||||
|
||||
$order_zhe_total_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('order_zhe_total'), 2);
|
||||
$order_goodslist_money_month = round(OrderList::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('goodslist_money'), 2);
|
||||
|
||||
$order_zhe_total_last_month = round( OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('order_zhe_total'), 2);
|
||||
$order_goodslist_money__last_month = round(OrderList::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('goodslist_money'), 2);
|
||||
|
||||
|
||||
View::assign('money_today', $money_today);
|
||||
View::assign('money_yesterday', $money_yesterday);
|
||||
View::assign('coupon_today', $coupon_today);
|
||||
|
||||
View::assign('score_today', $score_today);
|
||||
View::assign('score_yesterday', $score_yesterday);
|
||||
View::assign('money_recovery_today', $money_recovery_today);
|
||||
View::assign('money_recovery_yesterday', $money_recovery_yesterday);
|
||||
View::assign('order_zhe_total', $order_zhe_total);
|
||||
View::assign('order_goodslist_money', $order_goodslist_money);
|
||||
View::assign('order_goodslist_count', $order_goodslist_count);
|
||||
View::assign('order_count', $order_count);
|
||||
View::assign('order_lirun', round($order_zhe_total - $order_goodslist_money, 2));
|
||||
View::assign('order_lirun_yester', round($order_zhe_total_yester - $order_goodslist_money_yester, 2) . " ($order_zhe_total_yester - $order_goodslist_money_yester)");
|
||||
View::assign('order_lirun_week', round($order_zhe_total_week - $order_goodslist_money_week, 2) . " ({$order_zhe_total_week} - $order_goodslist_money_week)");
|
||||
View::assign('order_lirun_last_week', round($order_zhe_total_last_week - $order_goodslist_money__last_week, 2) . " ($order_zhe_total_last_week - $order_goodslist_money__last_week)");
|
||||
View::assign('order_zhe_total_month', round($order_zhe_total_month - $order_goodslist_money_month, 2). " ($order_zhe_total_month - $order_goodslist_money_month)");
|
||||
View::assign('order_lirun_last_month', round($order_zhe_total_last_month - $order_goodslist_money__last_month, 2). " ($order_zhe_total_last_month - $order_goodslist_money__last_month)");
|
||||
|
||||
// 赋值给模板
|
||||
View::assign('userCount', $userCount);
|
||||
View::assign('user_today', $user_today);
|
||||
View::assign('user_yesterday', $user_yesterday);
|
||||
View::assign('user_this_week', $user_this_week);
|
||||
View::assign('user_last_week', $user_last_week);
|
||||
View::assign('user_this_month', $user_this_month);
|
||||
View::assign('user_last_month', $user_last_month);
|
||||
// 充值订单数据
|
||||
View::assign('order_today', $order_today);
|
||||
View::assign('order_yesterday', $order_yesterday);
|
||||
View::assign('order_this_week', $order_this_week);
|
||||
View::assign('order_last_week', $order_last_week);
|
||||
View::assign('order_this_month', $order_this_month);
|
||||
View::assign('order_last_month', $order_last_month);
|
||||
|
||||
View::assign('consume_today', $consume_today);
|
||||
View::assign('consume_yesterday', $consume_yesterday);
|
||||
View::assign('consume_this_week', $consume_this_week);
|
||||
View::assign('consume_last_week', $consume_last_week);
|
||||
View::assign('consume_this_month', $consume_this_month);
|
||||
View::assign('consume_last_month', $consume_last_month);
|
||||
|
||||
View::assign('rmb_consume_today', $rmb_consume_today);
|
||||
View::assign('rmb_consume_yesterday', $rmb_consume_yesterday);
|
||||
View::assign('rmb_consume_this_week', $rmb_consume_this_week);
|
||||
View::assign('rmb_consume_last_week', $rmb_consume_last_week);
|
||||
View::assign('rmb_consume_this_month', $rmb_consume_this_month);
|
||||
View::assign('rmb_consume_last_month', $rmb_consume_last_month);
|
||||
|
||||
View::assign('ranges', $ranges);
|
||||
|
||||
|
||||
return View::fetch("Statistics/dataStand");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -264,4 +264,7 @@ Route::rule('productcate_del', 'ProductCate/del', 'GET|POST');
|
|||
|
||||
|
||||
//利润统计
|
||||
Route::rule('statistics_profit', 'Statistics/profit', 'GET');
|
||||
Route::rule('statistics_profit', 'Statistics/profit', 'GET');
|
||||
|
||||
//数据看台
|
||||
Route::rule('statistics_dataStand', 'Statistics/DataStand', 'GET');
|
||||
303
app/admin/view/Statistics/dataStand.html
Normal file
303
app/admin/view/Statistics/dataStand.html
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
{include file="Public:header2"/}
|
||||
<style>
|
||||
.s-row {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header" style="background-color: yellow;">
|
||||
总注册人数:
|
||||
<span style="color: red;">
|
||||
{$userCount}
|
||||
</span>
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 0px;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6" style="padding: 0px 5px;background-color: #393D49;">
|
||||
<div class="layui-card" style="background-color: #393D49;color: #fff;">
|
||||
<div class="layui-card-header" style="color: #fff;">用户注册数据</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
今日新增用户: <span class="layui-badge layui-bg-gray">{$user_today}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
昨日新增用户: <span
|
||||
class="layui-badge layui-bg-gray">{$user_yesterday}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本周新增用户: <span
|
||||
class="layui-badge layui-bg-gray">{$user_this_week}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上周新增用户: <span
|
||||
class="layui-badge layui-bg-gray">{$user_last_week}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本月新增用户: <span
|
||||
class="layui-badge layui-bg-gray">{$user_this_month}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上月新增用户: <span
|
||||
class="layui-badge layui-bg-gray">{$user_last_month}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6" style="padding: 0px 5px;background-color: #009688;">
|
||||
<div class="layui-card" style="background-color: #009688;color: #fff;">
|
||||
<div class="layui-card-header" style="color: #fff;">用户充值数据</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
今日充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_today}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
昨日充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_yesterday}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本周充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_this_week}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上周充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_last_week}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本月充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_this_month}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上月充值金额: <span
|
||||
class="layui-badge layui-bg-gray">{$order_last_month}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header" style="background-color: #2F3F56;color: #fff;">
|
||||
消费与虚拟货币
|
||||
<span style="color: red;">
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 0px;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6" style="padding: 0px 5px;background-color: #21A0BF;">
|
||||
<div class="layui-card" style="background-color: #21A0BF;color: #fff;">
|
||||
<div class="layui-card-header" style="color: #fff;">消费数据(RMB/全部)</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
今日消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_today}/{$consume_today}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
昨日消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_yesterday}/{$consume_yesterday}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本周消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_this_week}/{$consume_this_week}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上周消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_last_week}/{$consume_last_week}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
本月消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_this_month}/{$consume_this_month}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
上月消费人数: <span
|
||||
class="layui-badge layui-bg-gray">{$rmb_consume_last_month}/{$consume_last_month}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6" style="padding: 0px 5px;background-color: #FF5722;">
|
||||
<div class="layui-card" style="background-color: #FF5722;color: #fff;">
|
||||
<div class="layui-card-header" style="color: #fff;">虚拟货币统计</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
今日余额消费: <span
|
||||
class="layui-badge layui-bg-gray">{$money_today}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
今日余额发放: <span
|
||||
class="layui-badge layui-bg-gray">{$money_recovery_today}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
今日积分消费: <span
|
||||
class="layui-badge layui-bg-gray">{$score_today}</span>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
今日消费卷抵扣: <span
|
||||
class="layui-badge layui-bg-gray">{$coupon_today}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-row s-row ">
|
||||
<div class="layui-col-xs6">
|
||||
昨日积分消费: <span
|
||||
class="layui-badge layui-bg-gray">{$score_yesterday}</span>
|
||||
</div>
|
||||
<!-- <div class="layui-col-xs6">
|
||||
昨日余额消费: <span
|
||||
class="layui-badge layui-bg-gray">{$money_yesterday}</span>
|
||||
</div> -->
|
||||
<div class="layui-col-xs6">
|
||||
昨日余额发放: <span
|
||||
class="layui-badge layui-bg-gray">{$money_recovery_yesterday}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header" style="text-align:center;background-color: #7C98CB;">
|
||||
今日收入汇总
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 0px;">
|
||||
<table class="layui-table">
|
||||
<colgroup>
|
||||
<col width="150">
|
||||
<col>
|
||||
</colgroup>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>订单收入:</td>
|
||||
<td>{$order_zhe_total}(收入不包含折扣,不包含优惠卷)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>RMB收入:</td>
|
||||
<td>{$order_today}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单出货:</td>
|
||||
<td>{$order_goodslist_money}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单笔数:</td>
|
||||
<td>{$order_count}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>发数:</td>
|
||||
<td>{$order_goodslist_count}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>利润:</td>
|
||||
<td>{$order_lirun}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>利润计算方式:</td>
|
||||
<td>收入-支出=当日利润</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header" style="text-align:center;background-color:darkorange;">
|
||||
今日毛利统计
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 0px;">
|
||||
<table class="layui-table">
|
||||
<colgroup>
|
||||
<col width="50%">
|
||||
<col>
|
||||
</colgroup>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>今日毛利:{$order_lirun}</td>
|
||||
<td>昨日毛利:{$order_lirun_yester}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>本周毛利:{$order_lirun_week}</td>
|
||||
<td>上周毛利:{$order_lirun_last_week}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>本月毛利:{$order_zhe_total_month}</td>
|
||||
<td>上月毛利:{$order_lirun_last_month}</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="Public:footer"/}
|
||||
<script type="text/javascript">
|
||||
layui.use(['layer', 'laydate', 'table'], function () {
|
||||
var $ = layui.$;
|
||||
//执行一个laydate实例
|
||||
var laydate = layui.laydate;
|
||||
laydate.render({
|
||||
elem: '#addtime'
|
||||
, type: 'datetime'
|
||||
, range: true
|
||||
});
|
||||
// laydate.render({
|
||||
// elem: '#endtime'
|
||||
// // , type: 'datetime'
|
||||
// // , range: true
|
||||
// });
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
2472
app/api/controller/AliNotify.php
Normal file
2472
app/api/controller/AliNotify.php
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -155,7 +155,7 @@ class Index extends Base
|
|||
$wxServer = new \app\common\server\Wx($this->app);
|
||||
$user_base = $wxServer->generateUrlLinks($userId);
|
||||
$autoload = new \app\common\server\autoload();
|
||||
$imageData = $autoload->generatePosterWithQR('/www/wwwroot/testbaji.onelight.vip/public/img_poster.jpg', $user_base);
|
||||
$imageData = $autoload->generatePosterWithQR('/www/wwwroot/119.45.131.215_80/public/img_poster.jpg', $user_base);
|
||||
if ($imageData) {
|
||||
header('Content-Type: image/png');
|
||||
header('Content-Length: ' . strlen($imageData)); // 设置图像长度,帮助浏览器处理流式内容
|
||||
|
|
|
|||
|
|
@ -390,6 +390,7 @@ class Login extends Base
|
|||
$code = request()->param("code", '');
|
||||
$wxServer = new \app\common\server\Wx($this->app);
|
||||
$mobile = $wxServer->getMobile($code);
|
||||
// return $this->renderError($mobile,[$mobile,$code]);
|
||||
Db::startTrans();
|
||||
$res = [];
|
||||
// $res[] = User::where(['id' => $user['id']])->update([
|
||||
|
|
|
|||
172
app/command/FlwOpen.php
Normal file
172
app/command/FlwOpen.php
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
<?php
|
||||
|
||||
namespace app\command;
|
||||
|
||||
use app\common\model\CardLevel;
|
||||
use app\common\model\Goods;
|
||||
use app\common\model\GoodsLock;
|
||||
use app\common\model\ItemCard;
|
||||
use app\common\model\OrderListSend;
|
||||
use app\common\model\OrderSale;
|
||||
use app\common\model\ProductOrder;
|
||||
use app\common\model\ProductOrderList;
|
||||
use app\common\model\ProfitPay;
|
||||
use app\common\model\Shang;
|
||||
use app\common\model\User;
|
||||
use app\common\model\UserLevelCoupon;
|
||||
use app\common\model\UserRecharge;
|
||||
use app\common\model\Ads;
|
||||
use app\common\model\CouponReceive as CouponReceiveModel;
|
||||
use app\common\model\GoodsExtendList as GoodsExtendListModel;
|
||||
use think\facade\Log;
|
||||
use app\common\model\GoodsList;
|
||||
use app\common\model\Order;
|
||||
use app\common\model\OrderList;
|
||||
use app\api\controller\Notify;
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\input\Argument;
|
||||
use think\console\input\Option;
|
||||
use think\console\Output;
|
||||
use think\facade\Db;
|
||||
|
||||
class FlwOpen extends Command
|
||||
{
|
||||
static $shang_prize_id = [10, 33];#抽奖赏品id
|
||||
static $shang_give_first_id = 1;#赠送(FIRST赏)赏品id
|
||||
static $shang_give_arr = [2, 3, 4];#赠送(LAST赏 最终赏 全局赏)赏品id
|
||||
static $shang_give_w_id = 4;#赠送(全局赏)赏品id
|
||||
static $shang_give_quan_id = 5;#赠送(拳王赏)赏品id
|
||||
static $secretKey = null;
|
||||
static $secretKeyAccount = null;
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this->setName('FlwOpen')->setDescription('福利屋开奖');
|
||||
}
|
||||
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
//php /www/wwwroot/xinglanmh.shequtuangou.vip think FlwOpen
|
||||
$time = date('Y-m-d H:i:s', time());
|
||||
Log::info('福利屋开奖' . $time);
|
||||
Log::info('福利屋开奖' . $time);
|
||||
Log::info('福利屋开奖' . $time);
|
||||
print('福利屋开奖' . $time);
|
||||
print('福利屋开奖' . $time);
|
||||
print_r(time());
|
||||
// $notify=new Notify();
|
||||
//cd /www/wwwroot/xinglanmh.shequtuangou.vip && php think FlwOpen
|
||||
$goodslist = Goods::where('status', 1)->where('is_flw', 1)->where('is_open', 0)->select()->toArray();
|
||||
foreach ($goodslist as $k => $v) {
|
||||
Log::info('福利屋开奖$goods_id' . $v['id']);
|
||||
Log::info('福利屋开奖open_time' . date('Y-m-d H:i:s', $v['open_time']));
|
||||
print_r('福利屋开奖open_time' . date('Y-m-d H:i:s', $v['open_time']));
|
||||
if($v['open_time']<time()){
|
||||
Log::info('福利屋开奖$goods_id时间小于,所以开奖啦' . $v['id']);
|
||||
print_r('福利屋开奖$goods_id时间小于,所以开奖啦' . $v['id']);
|
||||
$this->special_prize_notice_time($v['id']);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$time = date('Y-m-d H:i:s', time());
|
||||
$output->writeln('success' . $time);
|
||||
}
|
||||
|
||||
/**
|
||||
* 特殊奖品开奖 LAST 最终赏 全局赏 到时间开奖修改此处
|
||||
* @param $order 订单信息
|
||||
* @param $first_count
|
||||
*/
|
||||
protected function special_prize_notice_time($goods_id)
|
||||
{
|
||||
|
||||
$res = [];
|
||||
// $goods_id = $order['goods_id'];
|
||||
// $num = $order['num'];
|
||||
// $order_type = $order['order_type'];
|
||||
|
||||
// $goods_id=request()->param('goods_id/d', 0);
|
||||
// $num = request()->param('goods_num/d', 0); #第几箱
|
||||
$num = 1; #第几箱
|
||||
$order_type =6;
|
||||
|
||||
print_r('$goods_id'.$goods_id);
|
||||
#特殊奖品存在
|
||||
$special_prize = GoodsList::where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', $num)
|
||||
->where('surplus_stock', '>', 0)
|
||||
->where('shang_id', 'in', self::$shang_give_arr)
|
||||
->select()->toArray();
|
||||
$surplus_give_stock = $special_prize ? array_sum(array_column($special_prize, 'surplus_stock')) : 0;
|
||||
if ($special_prize && $surplus_give_stock > 0) {
|
||||
#所有奖品信息
|
||||
$all_order_list = OrderList::field('id,user_id')
|
||||
->where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', $num)
|
||||
->where('order_type', '=', $order_type)
|
||||
->where('shang_id', 'between', self::$shang_prize_id)
|
||||
->order('id asc')
|
||||
->select()->toArray();
|
||||
$order_goods = [];
|
||||
foreach ($special_prize as $k => $v) {
|
||||
if ($v['shang_id'] == 4) {#全局赏
|
||||
|
||||
for ($surplus_stock_i = 0; $surplus_stock_i < $v['surplus_stock']; $surplus_stock_i++) {
|
||||
$overall_order_list = $all_order_list;
|
||||
shuffle($overall_order_list);
|
||||
shuffle($overall_order_list);
|
||||
$prize_info = $overall_order_list[0];
|
||||
$user_id = $prize_info['user_id'];
|
||||
#特殊赏中奖订单id
|
||||
$order_list_id = $prize_info['id'];
|
||||
#中奖奖项
|
||||
$ordinary_prize_info = $v;
|
||||
$order_goods[] = [
|
||||
'order_id' => 0,
|
||||
'user_id' => $user_id,
|
||||
'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||
'goods_id' => $goods_id,
|
||||
'num' => $num,
|
||||
'shang_id' => $ordinary_prize_info['shang_id'],
|
||||
'goodslist_id' => $ordinary_prize_info['id'],
|
||||
'goodslist_title' => $ordinary_prize_info['title'],
|
||||
'goodslist_imgurl' => $ordinary_prize_info['imgurl'],
|
||||
'goodslist_price' => $ordinary_prize_info['price'],
|
||||
'goodslist_money' => $ordinary_prize_info['money'],
|
||||
'goodslist_type' => $ordinary_prize_info['goods_type'],
|
||||
'goodslist_sale_time' => $ordinary_prize_info['sale_time'],
|
||||
'addtime' => time(),
|
||||
'prize_code' => $ordinary_prize_info['prize_code'],
|
||||
'order_type' => $order_type,
|
||||
'order_list_id' => $order_list_id,
|
||||
];
|
||||
|
||||
|
||||
print_r($user_id.'中奖'.$goods_id.'商品'.$v['title']);
|
||||
|
||||
#减少库存
|
||||
$res[] = GoodsList::field('surplus_stock')
|
||||
->where(['id' => $ordinary_prize_info['id']])
|
||||
->dec('surplus_stock')
|
||||
->update();
|
||||
}
|
||||
}
|
||||
}
|
||||
#新增奖品列表
|
||||
$res[] = OrderList::insertAll($order_goods);
|
||||
Goods::where(['id' => $goods_id])->update([
|
||||
'is_open' => 1
|
||||
]);
|
||||
Log::info('福利屋开奖$goods_idupdate_is_open' . $goods_id);
|
||||
} else {
|
||||
$res[] = 1;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ use think\facade\Db;
|
|||
|
||||
class Zd extends Command
|
||||
{
|
||||
//*/30 * * * * /www/server/cron/ZDFH
|
||||
protected function configure()
|
||||
{
|
||||
$this->setName('Zd')->setDescription('自动发货');
|
||||
|
|
@ -47,7 +48,7 @@ class Zd extends Command
|
|||
}
|
||||
|
||||
// $data2 = Db::name('market_order')->field('id,user_id,order_num,zdfh_is,zdfh_time,addtime')->where('zdfh_is','in',[0,1])->select()->toArray();
|
||||
// if($data2){0.
|
||||
// if($data2){
|
||||
// foreach ($data2 as $value2){
|
||||
// if($value2['zdfh_is'] == 0 && (time()-180) > $value2['addtime']){
|
||||
// Db::name('market_order')->where('id',$value2['id'])->update(['zdfh_is'=>1,'zdfh_time'=>(time()+300)]);
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ class Wx extends MyController
|
|||
$access_token = $this->get_access_token();
|
||||
$mobile_url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" . $access_token;
|
||||
$mobile_info = $this->post_curl_data($mobile_url, ['code' => $code]);
|
||||
// return $mobile_info;
|
||||
if ($mobile_info['errcode'] == 0) {
|
||||
return $mobile_info['phone_info']['phoneNumber'];
|
||||
} else {
|
||||
|
|
@ -269,6 +270,11 @@ class Wx extends MyController
|
|||
|
||||
public function post_order($openid, $access_token, $order_num, $title = '订单发货')
|
||||
{
|
||||
$date = new \DateTime();
|
||||
//2023-08-07T17:16:31
|
||||
//2025-03-04T21:06:59
|
||||
// 格式化时间为 yyyy-MM-dd HH:mm:ss
|
||||
$formattedDate = $date->format('Y-m-d\TH:i:s');
|
||||
$request_url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" . $access_token;
|
||||
$param = '{
|
||||
"order_key": {
|
||||
|
|
@ -276,14 +282,14 @@ class Wx extends MyController
|
|||
"mchid":"' . self::$mch . '",
|
||||
"out_trade_no":"' . $order_num . '"
|
||||
},
|
||||
"logistics_type": 4,
|
||||
"logistics_type": 3,
|
||||
"delivery_mode": 1,
|
||||
"shipping_list": [
|
||||
{
|
||||
"item_desc": "本单购买商品已发放至[小程序盒柜]"
|
||||
}
|
||||
],
|
||||
"upload_time": "2023-08-07T17:16:31+08:00",
|
||||
"upload_time": "' . $formattedDate . '+08:00",
|
||||
"payer": {
|
||||
"openid":"' . $openid . '"
|
||||
}
|
||||
|
|
@ -300,6 +306,12 @@ class Wx extends MyController
|
|||
|
||||
public function post_order_one($openid, $access_token, $order_num, $title = '订单发货')
|
||||
{
|
||||
// 创建一个 DateTime 对象,设置为当前时间
|
||||
$date = new \DateTime();
|
||||
//2023-08-07T17:16:31
|
||||
//2025-03-04T21:06:59
|
||||
// 格式化时间为 yyyy-MM-dd HH:mm:ss
|
||||
$formattedDate = $date->format('Y-m-d\TH:i:s');
|
||||
$request_url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" . $access_token;
|
||||
$param = '{
|
||||
"order_key": {
|
||||
|
|
@ -307,14 +319,14 @@ class Wx extends MyController
|
|||
"mchid":"' . self::$mch . '",
|
||||
"out_trade_no":"' . $order_num . '"
|
||||
},
|
||||
"logistics_type": 4,
|
||||
"logistics_type": 3,
|
||||
"delivery_mode": 1,
|
||||
"shipping_list": [
|
||||
{
|
||||
"item_desc": "本单购买商品已发放至[小程序盒柜]"
|
||||
}
|
||||
],
|
||||
"upload_time": "2023-08-07T17:16:31+08:00",
|
||||
"upload_time": "' . $formattedDate . '+08:00",
|
||||
"payer": {
|
||||
"openid":"' . $openid . '"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class autoload
|
|||
$backgroundHeight = imagesy($backgroundImage);
|
||||
|
||||
// 生成二维码
|
||||
$qrSize = 500;
|
||||
$qrSize = 850;
|
||||
$qrCode = new QrCode($qrText);
|
||||
$qrCode->setSize($qrSize);
|
||||
$writer = new PngWriter();
|
||||
|
|
@ -30,7 +30,7 @@ class autoload
|
|||
|
||||
// 计算二维码的放置位置
|
||||
$qrX = ($backgroundWidth - $qrSize) / 2;
|
||||
$qrY = ($backgroundHeight - $qrSize) * 0.73;
|
||||
$qrY = ($backgroundHeight - $qrSize) * 0.78;
|
||||
|
||||
// 将二维码绘制到背景图上
|
||||
imagecopy($backgroundImage, $qrImageResource, $qrX, $qrY, 0, 0, $qrSize, $qrSize);
|
||||
|
|
|
|||
|
|
@ -64,10 +64,16 @@ return [
|
|||
[
|
||||
'name' =>'数据统计',
|
||||
'son' => [
|
||||
[
|
||||
'url' => '/admin/statistics_dataStand',
|
||||
'name' => '数据看台',
|
||||
],
|
||||
[
|
||||
'url' => '/admin/statistics_profit',
|
||||
'name' => '盒子利润统计',
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
|
|||
BIN
public/dow.png
Normal file
BIN
public/dow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 899 B |
BIN
public/img_poster.jpg
Normal file
BIN
public/img_poster.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 540 KiB |
Loading…
Reference in New Issue
Block a user