芝麻web文件管理V1.00
编辑当前文件:/home/forge/stage.herta-bht.smartcon-survey.com/app/Exports/TableVolume/TVImgStatementExport.php
selectRaw('YEAR(created_at) as year, QUARTER(created_at) as quarter, COUNT(*) as total') // ->groupByRaw('YEAR(created_at), QUARTER(created_at)') // ->orderBy('year', 'desc') // ->orderBy('quarter', 'desc') // ->get(); $statementService = new StatementsService($this->countryId, $this->brands, [], true); $this->quarters = $statementService->quarterInfo->toArray(); $result = [ $this->getHeader('N'), 'totalN' => [], [[]], $this->getHeader('n'), 'n' => [], [[]], $this->getHeader('in %'), 'value' => [], ]; foreach ($statementService->getStatements() as $statement) { foreach ($this->brands as $brand) { $totalNValues = [ 'Statement' => $statement['text'], 'brand' => $brand->name, 'total' => 0, ]; $nValues = [ 'Statement' => $statement['text'], 'brand' => $brand->name, 'total' => 0, ]; $percentageValues = [ 'Statement' => $statement['text'], 'brand' => $brand->name, 'total' => 0, ]; $totalN = 0; $n = 0; foreach ($this->quarters as $quarter) { $brandValues = collect($statementService->calculateWaveData($statement['id'], $quarter)) ->where('brand.id', $brand->id) ->first(); if ($brandValues) { $totalN += $brandValues['totalN']; $n += $brandValues['n']; $totalNValues[] = $brandValues['totalN']; $nValues[] = $brandValues['n']; $percentageValues[] = $brandValues['value']; } } $totalNValues['total'] = $totalN; $nValues['total'] = $n; $percentageValues['total'] = $n > 0 ? round(($n / $totalN) * 100) : 0; $result['totalN'][] = $totalNValues; $result['n'][] = $nValues; $result['value'][] = $percentageValues; } } return array_values($result); } public function getHeader(string $type): array { $header = ['Statement', 'brand', 'total']; foreach ($this->quarters as $label) { $header[] = "Q{$label['quarter']}-{$label['year']}"." ($type)"; } return $header; } public function title(): string { return 'Image Statement'; } }