| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- namespace app\controller\merchant;
- use app\extra\basic\Base;
- use app\middleware\AuthMiddleware;
- use app\model\saas\SaasOrder;
- use LinFly\Annotation\Route\Controller;
- use LinFly\Annotation\Route\Middleware;
- use LinFly\Annotation\Route\Route;
- use support\Request;
- use support\Response;
- #[Controller(prefix: "/api/mer/dashboard"),Middleware(AuthMiddleware::class)]
- class Dashboard extends Base
- {
- #[Route(path: "data",methods: "get")]
- public function getData(Request $request): Response
- {
- try {
- $param = $this->_valid([
- "money.default" => 1,
- "hide.default" => 0,
- "order.default" => 1
- ],$request->method());
- $moneyDay = 7;
- $data = $moneys = $orders = [];
- if ($param['money'] == 2) $moneyDay = 14;
- if ($param['money'] == 3) $moneyDay = 30;
- $orderDay = 7;
- if ($param['order'] == 2) $orderDay = 14;
- if ($param['order'] == 3) $orderDay = 30;
- $shopId = $request->user['agent_id'];
- $mode = (new SaasOrder);
- if ($param['hide'] == 1) {
- $data = [
- "userNum" => format_money($mode->whereDay("create_at")->where("shop_id",$shopId)->where('status','in',[1,3])->sum("money")/100,2), // 今日营业额
- "rechargeNum" => $mode->whereDay("create_at")->where("shop_id",$shopId)->where('status','in',[1,3])->count(), // 今日订单数
- "rechargeMoney" => $mode->whereDay("create_at")->where("shop_id",$shopId)->where('status',1)->count(), // 手机自助打印待处理
- ];
- $fields = ['ROUND(sum(money)/100,2)' => 'total','substr(create_at,1,10)' => 'mday'];
- $orderMoney = $mode->field($fields)->where("shop_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-'.$moneyDay.' days')->group('mday')->select()->column(null, 'mday');
- for ($i = $moneyDay; $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("shop_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-'.$orderDay.' days')->group('mday')->select()->column(null, 'mday');
- for ($i = $orderDay; $i >= 0; $i--) {
- $date = date('Y-m-d', strtotime("-{$i}days"));
- $orders[] = [
- '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
- '订单数量' => ($orderNum[$date] ?? [])['count'] ?? 0,
- ];
- }
- } else {
- for ($i = $moneyDay; $i >= 0; $i--) {
- $date = date('Y-m-d', strtotime("-{$i}days"));
- $moneys[] = [
- '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
- '订单金额' => 888,
- ];
- }
- for ($i = $orderDay; $i >= 0; $i--) {
- $date = date('Y-m-d', strtotime("-{$i}days"));
- $orders[] = [
- '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
- '订单数量' => 888,
- ];
- }
- }
- return success("ok",compact("data","orders","moneys"));
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- }
|