HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//ly.fwmnzf.com/application/admin/controller/XxlDataReport.php
<?php
// +----------------------------------------------------------------------
// | Author: Moli <332287662@qq.com>
// +----------------------------------------------------------------------

// +----------------------------------------------------------------------
// | 信息流报表
// +----------------------------------------------------------------------
namespace app\admin\controller;

use app\common\controller\Adminbase;
use think\Db;
use think\facade\Session;

class XxlDataReport extends Adminbase
{
    protected function initialize()
    {
        parent::initialize();
        // 投手数据
        $pitcherdata = [];
        $result = Db::name('admin')->select();
        foreach ($result as $k => $v) {
            $pitcherdata[$v['id']] = $v['nickname'];
        }
        // $pitcherdata=json($pitcherdata);
        $this->assign('pitcherdata', json_encode($pitcherdata, JSON_FORCE_OBJECT));
        // 公司数据
        $companydata = [];
        $result = Db::name('xxl_data')
            ->alias('a')
            ->join('xxl_company c', 'a.company = c.title')
            ->field('c.id,company')
            ->group('id,company')
            ->order(array('id' => 'DESC'))
            ->select();
        foreach ($result as $k => $v) {
            $companydata[$v['id']] = $v['company'];
        }
        $this->assign('companydata', json_encode($companydata, JSON_FORCE_OBJECT));
        // 币种
        $currencydata = [];
        $result = Db::name('xxl_data')
            ->alias('a')
            ->join('xxl_currency c', 'a.currency = c.title')
            ->field('c.id,currency')
            ->group('id,currency')
            ->order(array('id' => 'DESC'))
            ->select();
        foreach ($result as $k => $v) {
            $currencydata[$v['id']] = $v['currency'];
        }
        $this->assign('currencydata', json_encode($currencydata, JSON_FORCE_OBJECT));
        // 项目
        $projectdata = [];
        $result = Db::name('xxl_data')
            ->alias('a')
            ->join('xxl_project c', 'a.project = c.title')
            ->field('c.id,project')
            ->group('id,project')
            ->order(array('id' => 'DESC'))
            ->select();
        foreach ($result as $k => $v) {
            $projectdata[$v['id']] = $v['project'];
        }
        $this->assign('projectdata', json_encode($projectdata, JSON_FORCE_OBJECT));
    }
    public function index()
    {
        if ($this->request->isAjax()) {
            $data   = $this->request->get('');
            $page = $data['page'];
            $limit = $data['limit'];
            // 获取搜索条件
            $filter = $data['filter'];
            if ($filter) {
                $filter = json_decode($filter, true);
                // 获取投手信息
                $pitcher = Db::name('admin')->where('id', $filter['pitcher'])->value('nickname');
                // 获取公司信息
                $company = Db::name('xxl_company')->where('id', $filter['company'])->value('title');
                // 币种
                $currency = Db::name('xxl_currency')->where('id', $filter['currency'])->value('title');
                // 项目
                $project = Db::name('xxl_project')->where('id', $filter['project'])->value('title');
                // 开始时间
                $startTime = $filter['startTime'];
                // 结束时间
                $endTime = $filter['endTime'];
                // // 查询条件
                $where = [];
                if (!empty($pitcher)) {
                    $where[] = ['pitcher', '=', $pitcher];
                }
                if (!empty($company)) {
                    $where[] = ['company', '=', $company];
                }
                if (!empty($currency)) {
                    $where[] = ['currency', '=', $currency];
                }
                if (!empty($project)) {
                    $where[] = ['project', '=', $project];
                }
                if (!empty($startTime && $endTime)) {
                    $where[] = ['Ttime', 'between time', [$startTime, $endTime]];
                }
                $list = Db::name('xxl_data')
                    ->where($where)
                    ->order(array('id' => 'DESC'))
                    ->select();
                // return $list;
                $consume_after = $consume_rmb = $add_fan = $cost = $cost_rmb = 0;
                $total = count($list);
                if ($total > 1) {
                    foreach ($list as $value) {
                        $c = $value['consume_after'];
                        $c_r = $value['consume_rmb'];
                        $a_f = $value['add_fan'];
                        $consume_after += $c;
                        $consume_rmb += $c_r;
                        $add_fan += $a_f;
                    }
                }
                $consume_after=round($consume_after,2);
                $consume_rmb=round($consume_rmb,2);
                $add_fan=round($add_fan,2);
                if ($add_fan != 0) {
                    $cost = round(($consume_after / $add_fan), 2);;
                    $cost_rmb = round(($consume_rmb / $add_fan), 2);
                }
                $totalRow=[
                    'consume_after'=>$consume_after,
                    'consume_rmb'=>$consume_rmb,
                    'add_fan'=>$add_fan,
                    'cost'=>$cost,
                    'cost_rmb'=>$cost_rmb
                ];
                $result = array("code" => 0, 'count' => $total, "data" => $list,'totalRow'=>$totalRow);
                return json($result);
            }


            $count = Db::name('xxl_data')->order(array('id' => 'DESC'))->count();
            $_list = Db::name('xxl_data')->order(array('id' => 'DESC'))->page($page, $limit)->select();
            $result = array("code" => 0, 'count' => $count, "data" => $_list);
            return json($result);
        }

        return $this->fetch();
    }
    // 搜索
    public function search()
    {
        if ($this->request->isPost()) {
            // $data   = $this->request->post('');
            // $page = $data['page'];
            // $limit = $data['limit'];
            // // 根据接收过来的投手id查找投手名字
            // $pitcher = Db::name('admin')->where('id', $data['pitcher'])->value('nickname');
            // // 开始时间
            // $startTime = $data['startTime'];
            // // 结束时间
            // $endtTime = $data['endtTime'];
            // // 查询条件
            // $where = [];
            // if (!empty($pitcher)) {
            //     $where[] = ['pitcher', '=', $pitcher];
            // }
            // if (!empty($startTime && $endtTime)) {
            //     $where[] = ['Ttime', 'between time', [$startTime, $endtTime]];
            // }
            // // $list = Db::name('xxl_data')->where($where)->select();
            // // // 返回的数据
            // // $_list = Db::name('xxl_data')->where($where)->page($page, $limit)->select();
            // // 计算数组长度
            // // $total = count($list);
            // // 准备返回的数据
            // if (!empty($startTime && $endtTime)) {
            //     $date = $startTime . '至' . $endtTime;
            // } else {
            //     $date = '当前未选择时间';
            // }
            // $list = Db::name('xxl_data')
            //     ->field('id,area,channel,company,currency,project,sum(consume_after)as consume_after,sum(add_fan)as add_fan,sum(consume_rmb)as consume_rmb,(sum(consume_after)/sum(add_fan))as cost,(sum(consume_rmb)/sum(add_fan))as cost_rmb')
            //     ->group('company,currency,project,area,channel,id')
            //     ->where($where)
            //     ->select();
            //     $total = count($list);
            //     $result = array("code" => 0, 'count' => $total, "data" => $list);
            //     $result = Db::name('xxl_data')->field('id,company')
            // ->group('id,company')->select();
            // $result = Db::name('xxl_data')
            //     ->alias('a')
            //     ->join('xxl_company c', 'a.company = c.title')
            //     ->field('c.id,company')
            //     ->group('id,company')
            //     ->select();
            // $result = Db::name('admin')->select();
            // return json($result);
            $data   = $this->request->get('');
            $page = $data['page'];
            $limit = $data['limit'];
            $list = Db::name('xxl_data')->order(array('id' => 'DESC'))->select();
            $_list = Db::name('xxl_data')->order(array('id' => 'DESC'))->page($page, $limit)->select();
            $total = count($list);
            $result = array("code" => 0, 'count' => $total, "data" => $_list);
            return json($result);
        }
    }
}