multi-store/app/store/controller/WorkbenchController.php

201 lines
7.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\store\controller;
use app\common\controller\Definitions;
use app\common\model\dict\DictType;
use app\store\lists\store_order\StoreOrderLists;
use app\store\logic\WorkbenchLogic;
// #[ApiDoc\Title('工作台')]
class WorkbenchController extends BaseAdminController
{
public $notNeedLogin = ['recharge_statistics'];
// #[
// ApiDoc\Title('交易统计'),
// ApiDoc\url('/store/workbench/index'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function index()
{
$params = $this->request->get();
$params['store_id'] = $this->request->adminInfo['store_id'];
$result = WorkbenchLogic::index($params);
return $this->data($result);
}
// #[
// ApiDoc\Title('商品统计(暂时不用)'),
// ApiDoc\url('/store/workbench/product'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function product()
{
$params = $this->request->get();
$params['store_id'] = $this->request->adminInfo['store_id'];
$result = WorkbenchLogic::product($params);
return $this->data($result);
}
// #[
// ApiDoc\Title('配送统计'),
// ApiDoc\url('/store/workbench/delivery'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function delivery()
{
$params = $this->request->get();
$params['store_id'] = $this->request->adminInfo['store_id'];
$result = WorkbenchLogic::delivery($params);
return $this->data($result);
}
// #[
// ApiDoc\Title('配送订单统计'),
// ApiDoc\url('/store/workbench/deliveryOrder'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\Query(ref: [Definitions::class, "page"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function deliveryOrder()
{
$params = $this->request->get();
$params['store_id'] = $this->request->adminInfo['store_id'];
$result = WorkbenchLogic::deliveryOrder($params);
return $this->data($result);
}
// #[
// ApiDoc\Title('商品统计-概况'),
// ApiDoc\url('/store/workbench/get_basic'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function get_basic(\app\admin\controller\WorkbenchController $workbench)
{
$dateRange = $this->request->get('date');
// 拆分日期范围
list($startDate, $endDate) = explode('-', $dateRange);
$startTime = str_replace('/', '-', $startDate);
$endTime = str_replace('/', '-', $endDate);
if (empty($startTime)) { //如果没有传开始时间则默认获取最近7天的数据
$startTime = strtotime(date('Y-m-d'));
$endTime = $startTime + 86400;
}
$where = [
['create_time', 'between', [$startTime, $endTime]],
['store_id','=',$this->request->adminInfo['store_id']]
];
$data = \app\admin\logic\WorkbenchLogic::get_basic($where);
return $this->data($data);
}
// #[
// ApiDoc\Title('商品统计-图表'),
// ApiDoc\url('/store/workbench/get_trend'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function get_trend()
{
// $params = $this->request->get();
$store_id = $this->request->adminInfo['store_id'];
$workbench = WorkbenchLogic::get_trend($store_id);
return $this->data($workbench);
}
// #[
// ApiDoc\Title('商品统计-排行'),
// ApiDoc\url('/store/workbench/get_product_ranking'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(name: 'start_time', type: 'string', require: true, desc: '开始时间'),
// ApiDoc\Query(name: 'end_time', type: 'string', require: true, desc: '结束时间'),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function get_product_ranking()
{
// $params = $this->request->get();
$dateRange = $this->request->get('date');
// 拆分日期范围
list($startDate, $endDate) = explode('-', $dateRange);
$startTime = str_replace('/', '-', $startDate);
$endTime = str_replace('/', '-', $endDate);
if (empty($startTime)) {
$startTime = strtotime(date('Y-m-d'));
$endTime = $startTime + 86400;
}
$where = [
['create_time', 'between', [$startTime, $endTime]],
['store_id','=',$this->request->adminInfo['store_id']]
];
$workbench = WorkbenchLogic::get_product_ranking($where);
return $this->data($workbench);
}
// #[
// ApiDoc\Title('收银台数据统计'),
// ApiDoc\url('/store/workbench/business_statistics'),
// ApiDoc\Method('GET'),
// ApiDoc\NotHeaders(),
// ApiDoc\Author('中国队长'),
// ApiDoc\Query(),
// ApiDoc\Header(ref: [Definitions::class, "token"]),
// ApiDoc\ResponseSuccess("data", type: "array"),
// ]
public function business_statistics()
{
$params = $this->request->get();
$params['store_id'] = $this->request->adminInfo['store_id'];
$result = WorkbenchLogic::revenueStatistics($params);
return $this->data($result);
}
public function recharge_statistics()
{
$params['store_id'] = DictType::where('type','store')->value('remark')??5;
$result = WorkbenchLogic::rechargeData($params);
return $this->data($result);
}
}