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//crm.jmfdbn.com/application/admin/controller/FbCount.php
<?php
// +----------------------------------------------------------------------
// | Author: Moli <332287662@qq.com>
// +----------------------------------------------------------------------

// +----------------------------------------------------------------------
// | FB加粉统计
// +----------------------------------------------------------------------
namespace app\admin\controller;

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

class FbCount 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));
    }
    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');
                // 开始时间
                $startTime = $filter['startTime'];
                // 结束时间
                $endTime = $filter['endTime'];
                // // 查询条件
                $where = [];
                if (!empty($pitcher)) {
                    $where[] = ['pitcher', '=', $pitcher];
                }
                if (!empty($startTime && $endTime)) {
                    $where[] = ['Ttime', 'between time', [$startTime, $endTime]];
                }
                $list = Db::name('fb_data')
                    ->where($where)
                    ->alias('a')
                    ->join('admin b ', 'b.nickname= a.pitcher')
                    ->field('min(Ttime) as startTime,max(Ttime) as endTime,b.id,a.pitcher,round(sum(a.consume),2) as consume,round(sum(a.add_fan),2) as add_fan,round((sum(a.consume)/sum(a.add_fan)),2) as cost')
                    ->group('a.pitcher,b.id')
                    ->order(array('id' => 'DESC'))
                    ->select();
                $total = count($list);
                $consume = $add_fan = $cost = 0;
                if ($total > 1) {
                    foreach ($list as $value) {
                        $c = $value['consume'];
                        $a_f = $value['add_fan'];
                        $consume += $c;
                        $add_fan += $a_f;
                    }
                }
                $consume = round($consume, 2);
                $add_fan = round($add_fan, 2);
                if ($add_fan != 0) {
                    $cost = round(($consume / $add_fan), 2);;
                }
                $totalRow = [
                    'consume' => $consume,
                    'add_fan' => $add_fan,
                    'cost' => $cost
                ];
                $result = array("code" => 0, 'count' => $total, "data" => $list,'totalRow' => $totalRow);
                return json($result);
            } else {
                $count = Db::name('fb_data')->order(array('id' => 'DESC'))->count();
                $_list = Db::name('fb_data')->order(array('id' => 'DESC'))->page($page, $limit)->select();
                $consume = $add_fan = $cost = 0;
                if ($count > 1) {
                    foreach ($_list as $value) {
                        $c = $value['consume'];
                        $a_f = $value['add_fan'];
                        $consume += $c;
                        $add_fan += $a_f;
                    }
                }
                $consume = round($consume, 2);
                $add_fan = round($add_fan, 2);
                if ($add_fan != 0) {
                    $cost = round(($consume / $add_fan), 2);;
                }
                $totalRow = [
                    'consume' => $consume,
                    'add_fan' => $add_fan,
                    'cost' => $cost
                ];
                $result = array("code" => 0, 'count' => $count, "data" => $_list,'totalRow' => $totalRow);
                return json($result);
            }
        }
        return $this->fetch();
    }
}