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();
}
}