123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- <?php
- // +----------------------------------------------------------------------
- // | Niucloud-admin 企业快速开发的saas管理平台
- // +----------------------------------------------------------------------
- // | 官方网址:https://www.niucloud.com
- // +----------------------------------------------------------------------
- // | niucloud团队 版权所有 开源版本可自由商用
- // +----------------------------------------------------------------------
- // | Author: Niucloud Team
- // +----------------------------------------------------------------------
- namespace app\service\admin\stat;
- use app\service\admin\member\MemberCashOutService;
- use app\service\admin\shop\admin\ShopCashOutService;
- use app\service\admin\site\SiteService;
- use app\service\core\member\CoreMemberService;
- use core\base\BaseAdminService;
- /**
- * 统计服务层
- * Class StatService
- * @package app\service\admin\stat
- */
- class StatService extends BaseAdminService
- {
- public function __construct()
- {
- parent::__construct();
- }
- // /**
- // * 获取统计数据
- // * @return int[]
- // * @throws DataNotFoundException
- // * @throws DbException
- // * @throws ModelNotFoundException
- // */
- // public function getIndexData()
- // {
- // $data = [
- // 'today_data' => [
- // 'member_count' => 1,
- // 'site_count' => 2,
- // 'visit_count' => 675,
- // 'total_member_count' => 0,
- // 'total_site_count' => 0,
- // 'total_visit_count' => 6840,
- // ],
- // 'system' => [],
- // 'version' => [],
- //// 'visit_stat' => [
- //// 'date' => [],
- //// 'value' => [980, 1323, 882, 762, 865, 923, 1105]
- //// ],
- // 'site_stat' => [
- // 'date' => [],
- // 'value' => []
- // ],
- // 'member_stat' => [
- // 'type' => ['男', '女', '未知'],
- // 'value' => []
- // ],
- // 'site_group_stat' => [
- // 'type' => [],
- // 'value' => []
- // ],
- // 'about' => [
- // [
- // 'name' => 'Niucloud官方公众号',
- // 'image' => 'static/resource/icon/index_icon/wx_qrcode.jpg',
- // 'desc' => '微信扫码关注'
- // ],
- // [
- // 'name' => '添加企业微信群',
- // 'image' => 'static/resource/icon/index_icon/wework_qrcode.png',
- // 'desc' => '更多内容请扫码加入'
- // ]
- // ]
- // ];
- //
- // $day_start_time = strtotime(date('Y-m-d'));
- // //当天结束之间
- // $day_end_time = $day_start_time + 86400;
- // $data['today_data']['total_member_count'] = (new CoreMemberService())->getCount();
- // $data['today_data']['today_member_count'] = (new CoreMemberService())->getCount(['create_time' => get_start_and_end_time_by_day()]);
- // $data['today_data']['total_site_count'] = (new SiteService())->getCount();
- // $data['today_data']['today_site_count'] = (new SiteService())->getCount(['create_time' => [$day_start_time, $day_end_time]]);
- // $data['today_data']['norma_site_count'] = (new SiteService())->getCount(['status' => [1],'app_type' => ['site']]);
- // $data['today_data']['expire_site_count'] = (new SiteService())->getCount(['status' => [2]]);
- //
- // $data['system'] = (new SystemService())->getInfo();
- // $data['version'] = $data['system']['version'] ?? [];
- // $time = time();
- // for ($i = 1; $i <= 7; $i++){
- // $item_day = date('Y-m-d', strtotime('+' . $i - 7 . ' days', $time));
- // $data['site_stat']['date'][] = $item_day;
- // $data['site_stat']['value'][] = (new Site())->where([['create_time','between',get_start_and_end_time_by_day($item_day)]])->count();
- // }
- // $man_count = (new CoreMemberService())->getCount(['sex' => '1']);
- // $woman_count = (new CoreMemberService())->getCount(['sex' => '2']);
- // $data['member_stat']['value'] = [$man_count, $woman_count, (int)($data['today_data']['total_member_count'] - $man_count - $woman_count)];
- //
- // $site_group_list = (new SiteGroupService())->getAll([]);
- //
- // if(!empty($site_group_list)){
- // foreach($site_group_list as $v){
- // $data['site_group_stat']['type'][] = $v['group_name'];
- // $data['site_group_stat']['value'][] = (new SiteService())->getCount(['group_id' => $v['group_id']]);
- // }
- // }
- // $app_count = (new CoreAddonService())->getLocalAddonCount();
- // $app_installed_count = (new CoreAddonService())->getCount();
- // $app = [
- // 'app_count' => $app_count,
- // 'app_no_installed_count' => $app_count-$app_installed_count,
- // 'app_installed_count' => $app_installed_count,
- // ];
- // $data['app'] = $app;
- // return $data;
- // }
- /**
- * 获取首页统计数据
- * @return array
- */
- public function getIndexStatData()
- {
- $data = [
- 'order_stat' => [
- 'today_order_count' => 0,
- 'yesterday_order_count' => 0,
- 'total_order_count' => 0,
- ],
- 'sale_stat' => [
- 'today_sale_money' => 0,
- 'yesterday_sale_money' => 0,
- 'total_sale_money' => 0,
- ],
- 'member_stat' => [
- 'today_member_count' => 0,
- 'yesterday_member_count' => 0,
- 'total_member_count' => 0,
- ],
- 'site_stat' => [
- 'today_site_count' => 0,
- 'yesterday_site_count' => 0,
- 'total_site_count' => 0,
- ],
- 'my_order_stat' => [
- 'wait_pay_order' => 0,
- 'wait_delivery_order' => 0,
- 'wait_take_order' => 0,
- 'refund_order' => 0,
- ],
- 'cash_out_stat' => [
- 'member_count' => 0,
- 'site_count' => 0,
- ],
- 'goods_stat' => [
- 'sale_goods_num' => 0,
- 'audit_goods_num' => 0,
- ],
- ];
- $order_stat_array = event('MallOrderStat');
- if (!empty($order_stat_array)) {
- $order_stat_list = [];
- foreach($order_stat_array as $v){
- $order_stat_list = empty($order_stat_list) ? $v : array_merge($order_stat_list, $v);
- }
- $data[ 'order_stat' ] = $order_stat_list[ 'order_stat' ];
- $data[ 'sale_stat' ] = $order_stat_list[ 'sale_stat' ];
- $data[ 'my_order_stat' ] = $order_stat_list[ 'my_order_stat' ];
- }
- $goods_stat_array = event('MallGoodsStat');
- if (!empty($goods_stat_array)) {
- $goods_stat_list = [];
- foreach($goods_stat_array as $v){
- $goods_stat_list = empty($goods_stat_list) ? $v : array_merge($goods_stat_list, $v);
- }
- $data[ 'goods_stat' ] = $goods_stat_list[ 'goods_stat' ];
- }
- $data['member_stat']['today_member_count'] = (new CoreMemberService())->getCount(['create_time' => get_start_and_end_time_by_day()]);
- $data['member_stat']['yesterday_member_count'] = (new CoreMemberService())->getCount(['create_time' => get_start_and_end_time_by_day(date('Y-m-d', strtotime("-1 day")))]);
- $data['member_stat']['total_member_count'] = (new CoreMemberService())->getCount();
- $data['site_stat']['today_site_count'] = (new SiteService())->getCount(['create_time' => get_start_and_end_time_by_day()]);
- $data['site_stat']['yesterday_site_count'] = (new SiteService())->getCount(['create_time' => get_start_and_end_time_by_day(date('Y-m-d', strtotime("-1 day")))]);
- $data['site_stat']['total_site_count'] = (new SiteService())->getCount();
- $data['cash_out_stat']['member_count'] = (new MemberCashOutService())->getCount();
- $data['cash_out_stat']['site_count'] = (new ShopCashOutService())->getCount();
- return $data;
- }
- /**
- * 获取首页图表统计数据
- * @return array|mixed
- */
- public function getIndexChartStat()
- {
- $params = $this->request->params([
- ['start_date', date('Y-m-d', strtotime('-6 day')) ],
- ['end_date', date('Y-m-d', strtotime('+1 day'))]
- ]);
- $chart_stat_array = event('MallChartStat', $params);
- $chart_stat_list = [];
- foreach($chart_stat_array as $v){
- $chart_stat_list = empty($chart_stat_list) ? $v : array_merge($chart_stat_list, $v);
- }
- return $chart_stat_list;
- }
- }
|