| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace app\controller\merchant;
- use app\extra\basic\Base;
- use app\middleware\AuthMiddleware;
- use app\model\saas\SaasOrder;
- use LinFly\Annotation\Attributes\Route\Controller;
- use LinFly\Annotation\Attributes\Route\GetMapping;
- use LinFly\Annotation\Attributes\Route\Middleware;
- use support\Request;
- /**
- * 统计
- */
- #[Controller("/api/merchant/dashboard"),Middleware(AuthMiddleware::class)]
- class Dashboard extends Base
- {
- #[GetMapping('list')]
- public function getData(Request $request)
- {
- try {
- $data = $moneys = $orders = [];
- $shopId = $request->user['store_id'];
- $mode = (new SaasOrder);
- $data = [
- "userNum" => $mode->whereDay("create_at")->where("poi_id",$shopId)->where('status','in',[1,3])->sum("money"), // 今日营业额
- "rechargeNum" => $mode->whereDay("create_at")->where("poi_id",$shopId)->where('status','in',[1,3])->count(), // 今日订单数
- "rechargeMoney" => $mode->whereDay("create_at")->where("poi_id",$shopId)->where('status',1)->count(), // 手机自助打印待处理
- ];
- $fields = ['ROUND(sum(money)/100,2)' => 'total','substr(create_at,1,10)' => 'mday'];
- $orderMoney = $mode->field($fields)->where("poi_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-15 days')->group('mday')->select()->column(null, 'mday');
- for ($i = 15; $i >= 0; $i--) {
- $date = date('Y-m-d', strtotime("-{$i}days"));
- $moneys[] = [
- '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
- '订单金额' => ($orderMoney[$date] ?? [])['total'] ?? 0,
- ];
- }
- $field = ['count(1)' => 'count', 'substr(create_at,1,10)' => 'mday'];
- $orderNum = $mode->field($field)->where("poi_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-15 days')->group('mday')->select()->column(null, 'mday');
- for ($i = 15; $i >= 0; $i--) {
- $date = date('Y-m-d', strtotime("-{$i}days"));
- $orders[] = [
- '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
- '订单数量' => ($orderNum[$date] ?? [])['count'] ?? 0,
- ];
- }
- return success("ok",compact("data","orders","moneys"));
- } catch (\Throwable $throwable) {
- }
- }
- }
|