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