Запросы для статистики по кампании при выборке по времени

parent 48d23c10
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
.form-group-data .form-group-data
{ {
display: none; display: none;
position: relative;
} }
.form-group-data.selected .form-group-data.selected
...@@ -53,6 +54,18 @@ ...@@ -53,6 +54,18 @@
display: block; display: block;
} }
.form-group-data .b-content__loading
{
display: none;
position: absolute;
width: 100%;
height: 100%;
background: #FFF url('../img/gif-load.gif') center center no-repeat;
opacity: 0.5;
z-index: 1;
}
.form-group .form-control .form-group .form-control
{ {
font-family: monospace; font-family: monospace;
...@@ -286,7 +299,9 @@ textarea#cities-codes ...@@ -286,7 +299,9 @@ textarea#cities-codes
.chart-graph-stat-info, .chart-graph-stat-info,
.chart-graph-stat-error, .chart-graph-stat-error,
.sites-stats-info,
.sites-stats-error, .sites-stats-error,
.regions-stats-info,
.regions-stats-error .regions-stats-error
{ {
display: none; display: none;
......
...@@ -649,11 +649,6 @@ ...@@ -649,11 +649,6 @@
z-index: 1; z-index: 1;
} }
.b-content__loading
{
}
span.block-info span.block-info
{ {
display: none; display: none;
......
This diff is collapsed.
...@@ -66,10 +66,10 @@ class CabinetAmSystem extends Common ...@@ -66,10 +66,10 @@ class CabinetAmSystem extends Common
{ {
if($request->getMethod() == 'POST') { if($request->getMethod() == 'POST') {
/*
try { try {
switch ($request->getAttribute('action')) { switch ($request->getAttribute('action')) {
case self::ACTION_STAT: case self::ACTION_ITEM:
$response = $this->getStatData($request); $response = $this->getStatData($request);
break; break;
default: default:
...@@ -82,7 +82,7 @@ class CabinetAmSystem extends Common ...@@ -82,7 +82,7 @@ class CabinetAmSystem extends Common
$response = new JsonResponse($data); $response = new JsonResponse($data);
} }
return $response; return $response;
*/
} }
elseif($request->getAttribute('action') == self::ACTION_LIST) elseif($request->getAttribute('action') == self::ACTION_LIST)
{ {
...@@ -147,8 +147,9 @@ class CabinetAmSystem extends Common ...@@ -147,8 +147,9 @@ class CabinetAmSystem extends Common
$cities = $this->container->get('config')['amsystem_conf']['city']; $cities = $this->container->get('config')['amsystem_conf']['city'];
/** @var \App\Model\AmSystem\Campaigns $campaignsModel */ /** @var \App\Model\AmSystem\Campaigns $campaignsModel */
$campaignsModel = $this->container->get(\App\Model\AmSystem\Campaigns::class); //$campaignsModel = $this->container->get(\App\Model\AmSystem\Campaigns::class);
$campaign = $campaignsModel->findOne(['id' => $campaign_id]); //$campaign = $campaignsModel->findOne(['id' => $campaign_id]);
$campaign = $campaign_item;
/** @var \App\Model\Statistics $stats */ /** @var \App\Model\Statistics $stats */
$stats = $this->container->get(\App\Model\Statistics::class); $stats = $this->container->get(\App\Model\Statistics::class);
...@@ -233,5 +234,50 @@ class CabinetAmSystem extends Common ...@@ -233,5 +234,50 @@ class CabinetAmSystem extends Common
} }
private function getStatData(ServerRequestInterface $request)
{
/** @var UserService $auth */
$auth = $this->container->get(UserService::class);
$userId = $auth->getIdentity()->getId();
$campaign_id = $request->getAttribute('id');
/** @var \App\Model\AmSystem\Campaigns $campaignsModel */
$campaignsModel = $this->container->get(\App\Model\AmSystem\Campaigns::class);
$campaign = $campaignsModel->findById($campaign_id);
if ($campaign) {
if ($campaign->getUserId() == $userId){
/** @var \App\Model\Statistics $stats */
$stats = $this->container->get(\App\Model\Statistics::class);
$data_request = $request->getParsedBody();
if ($data_request['type'] == 'stat-common') {
$data_stat = [
'stat' => $stats->getCampaignsStat([(int)$campaign_id], $campaign->getTargetAction(), $data_request['period']),
'total' => $stats->getCampaignsStat([(int)$campaign_id], $campaign->getTargetAction(), null)
];
}
if ($data_request['type'] == 'stat-sites') {
$data_stat = $stats->getCampaignsSitesStat((int)$campaign_id, $campaign->getTargetAction(), $data_request['period']);
}
if ($data_request['type'] == 'stat-regions') {
$data_stat = $stats->getCampaignsRegionsStat((int)$campaign_id, $campaign->getTargetAction(), $data_request['period']);
}
return new JsonResponse([
'type' => $data_request['type'],
'data' => $data_stat
]);
}
}
return new JsonResponse(null);
}
} }
\ No newline at end of file
...@@ -95,6 +95,8 @@ if (!$error) { ...@@ -95,6 +95,8 @@ if (!$error) {
$target_class = ($campaign_target_action == 'load') ? 'load-target' : ''; $target_class = ($campaign_target_action == 'load') ? 'load-target' : '';
$link_campaigns_list = $this->url('user.cabinet.amsystem', ['lang' => $lang]); $link_campaigns_list = $this->url('user.cabinet.amsystem', ['lang' => $lang]);
$data_request_link = $this->url('user.cabinet.campaign', ['lang' => $lang]);
} }
?> ?>
...@@ -111,7 +113,7 @@ if (!$error) { ...@@ -111,7 +113,7 @@ if (!$error) {
<section class="b-content__work inner"> <section class="b-content__work inner">
<form id="campaign-create-form" method="post" action=""> <form id="campaign-create-form" method="post" action="<?= $data_request_link ?>">
<div class="panel panel-info"> <div class="panel panel-info">
...@@ -376,6 +378,8 @@ if (!$error) { ...@@ -376,6 +378,8 @@ if (!$error) {
<!-- Общая статистика --> <!-- Общая статистика -->
<div class="form-group-data stat-common" data-type="stat-common"> <div class="form-group-data stat-common" data-type="stat-common">
<div class="b-content__loading"></div>
<div class="campaign-stat"> <div class="campaign-stat">
<textarea id="campaign-stat"><?= ($campaign_stat ? json_encode($campaign_stat) : '')?></textarea> <textarea id="campaign-stat"><?= ($campaign_stat ? json_encode($campaign_stat) : '')?></textarea>
...@@ -430,6 +434,7 @@ if (!$error) { ...@@ -430,6 +434,7 @@ if (!$error) {
<!-- По сайтам --> <!-- По сайтам -->
<div class="form-group-data stat-sites" data-type="stat-sites"> <div class="form-group-data stat-sites" data-type="stat-sites">
<div class="b-content__loading"></div>
<!-- Дата --> <!-- Дата -->
<div class="form-group"> <div class="form-group">
<label for="campaign-date-begin"><?= _t('Дата')?></label> <label for="campaign-date-begin"><?= _t('Дата')?></label>
...@@ -442,6 +447,10 @@ if (!$error) { ...@@ -442,6 +447,10 @@ if (!$error) {
<div class="sites-stats"> <div class="sites-stats">
<textarea id="campaign-sites-stat"><?= ($sites_stats ? json_encode($sites_stats) : '')?></textarea> <textarea id="campaign-sites-stat"><?= ($sites_stats ? json_encode($sites_stats) : '')?></textarea>
<div class="sites-stats-info">
<h2>По заданным параметрам статистика отсутствует</h2>
</div>
<div class="sites-stats-error"> <div class="sites-stats-error">
<h2>Ошибка в статистике</h2> <h2>Ошибка в статистике</h2>
<div class="message"></div> <div class="message"></div>
...@@ -473,6 +482,7 @@ if (!$error) { ...@@ -473,6 +482,7 @@ if (!$error) {
<!-- По регионам --> <!-- По регионам -->
<div class="form-group-data stat-regions" data-type="stat-regions"> <div class="form-group-data stat-regions" data-type="stat-regions">
<div class="b-content__loading"></div>
<!-- Дата --> <!-- Дата -->
<div class="form-group"> <div class="form-group">
<label for="campaign-date-begin"><?= _t('Дата')?></label> <label for="campaign-date-begin"><?= _t('Дата')?></label>
...@@ -487,6 +497,9 @@ if (!$error) { ...@@ -487,6 +497,9 @@ if (!$error) {
<textarea id="regions-codes"><?= ($code_regions ? json_encode($code_regions) : '')?></textarea> <textarea id="regions-codes"><?= ($code_regions ? json_encode($code_regions) : '')?></textarea>
<textarea id="cities-codes"><?= ($code_cities ? json_encode($code_cities) : '')?></textarea> <textarea id="cities-codes"><?= ($code_cities ? json_encode($code_cities) : '')?></textarea>
<div class="regions-stats-info">
<h2>По заданным параметрам статистика отсутствует</h2>
</div>
<div class="regions-stats-error"> <div class="regions-stats-error">
<h2>Ошибка в статистике</h2> <h2>Ошибка в статистике</h2>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment