Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
A
addcpm-json
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Александр Чаплыгин
addcpm-json
Commits
48d23c10
Commit
48d23c10
authored
Mar 24, 2020
by
Александр Чаплыгин
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Таблицы статистики по сайтам и регионам, формат данных, логика рендера
parent
e846e1a5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
242 additions
and
6 deletions
+242
-6
styles-amsystem.css
src/public/css/styles-amsystem.css
+108
-3
amsystem-campaign.js
src/public/js/adm/amsystem-campaign.js
+0
-0
CabinetAmSystem.php
src/src/App/Action/User/CabinetAmSystem.php
+7
-0
Statistics.php
src/src/App/Model/Statistics.php
+127
-3
campaign_item.phtml
src/templates/app/user/campaign_item.phtml
+0
-0
No files found.
src/public/css/styles-amsystem.css
View file @
48d23c10
...
...
@@ -14,6 +14,45 @@
text-align
:
center
;
}
.switch-data
{
margin-bottom
:
20px
;
padding-bottom
:
10px
;
line-height
:
30px
;
border-bottom
:
1px
solid
#BCE8F1
;
}
.switch-item
{
padding
:
5px
;
border
:
1px
solid
#2E6DA4
;
color
:
#2E6DA4
;
border-radius
:
4px
;
cursor
:
pointer
;
}
.switch-item
:hover
{
color
:
#FFFFFF
;
background-color
:
#2E6DA4
;
}
.switch-item.selected
{
color
:
#FFFFFF
;
background-color
:
#2E6DA4
;
}
.form-group-data
{
display
:
none
;
}
.form-group-data.selected
{
display
:
block
;
}
.form-group
.form-control
{
font-family
:
monospace
;
...
...
@@ -236,13 +275,19 @@ table.campaign-banners tbody tr td {
textarea
#campaign-stat
,
textarea
#campaign-stat-total
,
textarea
#campaign-stat-cats
textarea
#campaign-stat-cats
,
textarea
#campaign-sites-stat
,
textarea
#campaign-regions-stat
,
textarea
#regions-codes
,
textarea
#cities-codes
{
display
:
none
;
}
.chart-graph-stat-info
,
.chart-graph-stat-error
.chart-graph-stat-error
,
.sites-stats-error
,
.regions-stats-error
{
display
:
none
;
padding-top
:
160px
;
...
...
@@ -259,7 +304,7 @@ textarea#campaign-stat-cats
/*
#table-stat
*/
.b-table_wrapp
.report
.b-table_wrapp
{
display
:
none
;
margin-top
:
30px
;
...
...
@@ -313,4 +358,63 @@ textarea#campaign-stat-cats
font-weight
:
bold
;
}
.table.table-by-cats
span
.group
{
display
:
inline-block
;
min-width
:
12px
;
color
:
#697075
;
cursor
:
pointer
;
}
.table.table-by-cats
span
.group
b
.open
{
display
:
none
;
}
.table.table-by-cats
span
.group.open
b
.closed
{
display
:
none
;
}
.table.table-by-cats
span
.group.open
b
.open
{
display
:
inline
;
}
.table.table-by-cats
tr
.subcat
{
display
:
none
;
}
.table.table-by-cats
tr
.subcat.open
{
display
:
table-row
;
}
.table.table-by-cats
td
.subcat-title
{
padding-left
:
30px
;
}
.table.table-by-cats
{
white-space
:
nowrap
;
}
.table.table-by-cats
th
:not
(
.period
)
{
width
:
1px
;
}
.table.table-by-cats
th
.zone-size
{
width
:
90px
;
}
.table.table-by-cats
td
.stat
{
font-family
:
monospace
;
text-align
:
right
;
}
\ No newline at end of file
src/public/js/adm/amsystem-campaign.js
View file @
48d23c10
This diff is collapsed.
Click to expand it.
src/src/App/Action/User/CabinetAmSystem.php
View file @
48d23c10
...
...
@@ -154,6 +154,7 @@ class CabinetAmSystem extends Common
$stats
=
$this
->
container
->
get
(
\App\Model\Statistics
::
class
);
$date_begin
=
$campaign
->
getDateBegin
();
$date_end
=
$campaign
->
getDateEnd
()
?
:
date
(
"Y-m-d"
);
// последние 90 дней, если кампания долго идет
$dates
=
[
$date_begin
,
$date_end
];
$campaign_stat
=
$stats
->
getCampaignsStat
([(
int
)
$campaign_id
],
$campaign
->
getTargetAction
(),
$dates
);
$campaign_stat_total
=
$stats
->
getCampaignsStat
([(
int
)
$campaign_id
],
$campaign
->
getTargetAction
(),
null
);
...
...
@@ -194,12 +195,18 @@ class CabinetAmSystem extends Common
}
$sites_stats
=
$stats
->
getCampaignsSitesStat
((
int
)
$campaign_id
,
$campaign
->
getTargetAction
(),
$dates
);
$regions_stats
=
$stats
->
getCampaignsRegionsStat
((
int
)
$campaign_id
,
$campaign
->
getTargetAction
(),
$dates
);
$data
[
'campaign'
]
=
$campaign
;
$data
[
'countries'
]
=
$countries
;
$data
[
'regions'
]
=
$regions
;
$data
[
'cities'
]
=
$cities
;
$data
[
'banners'
]
=
$banners
;
$data
[
'banners_stats'
]
=
$banners_stats
;
$data
[
'sites_stats'
]
=
$sites_stats
;
$data
[
'regions_stats'
]
=
$regions_stats
;
$data
[
'campaign_stat'
]
=
$campaign_stat
;
$data
[
'campaign_stat_total'
]
=
$campaign_stat_total
;
$data
[
'campaign_stat_cats'
]
=
self
::
CAMPAIGN_STAT_CATS
;
...
...
src/src/App/Model/Statistics.php
View file @
48d23c10
...
...
@@ -345,7 +345,7 @@ class Statistics
return
$stats
;
}
// Данные
по статистике для
кампании (баннеры)
// Данные
для статистики по
кампании (баннеры)
public
function
getCampaignsStat
(
$id_list
,
$taget_action
,
$dates
)
{
$dataRequest
=
array
(
...
...
@@ -463,8 +463,7 @@ class Statistics
return
$dataStats
;
}
// Данные по статистике для баннеров
// Данные для статистики по баннерам
public
function
getBannersStat
(
$banners_id_list
,
$dates
)
{
$dataRequest
=
array
(
...
...
@@ -488,6 +487,131 @@ class Statistics
return
$stats
;
}
// Данные для статистики кампании по сайтам
public
function
getCampaignsSitesStat
(
$id
,
$taget_action
,
$dates
)
{
$dataRequest
=
array
(
'method'
=>
'camp_zone'
,
'data'
=>
array
(
'id'
=>
$id
,
'start_date'
=>
$dates
[
0
],
'end_date'
=>
$dates
[
1
]
)
);
//return $dataRequest;
try
{
$stats
=
$this
->
apiRequest
(
$dataRequest
);
}
catch
(
\Exception
$e
)
{
$stats
[
'status'
]
=
'Error'
;
return
$stats
;
}
//return $stats;
if
(
$stats
)
{
// Добавляем спец. поля
$AddSpecialFields
=
function
(
&
$stats
)
{
if
(
$taget_action
==
'load'
)
{
$stats
[
'views'
]
=
$stats
[
'loads'
];
$stats
[
'reach'
]
=
$stats
[
'reach_load'
];
}
else
{
$stats
[
'reach'
]
=
$stats
[
'reach_view'
];
}
unset
(
$stats
[
'loads'
]);
unset
(
$stats
[
'reach_load'
]);
unset
(
$stats
[
'reach_view'
]);
$views
=
$stats
[
'views'
];
$money
=
$stats
[
'money'
];
$clicks
=
$stats
[
'clicks'
];
$stats
[
'ctr'
]
=
(
$views
!=
0
)
?
round
((
$clicks
/
$views
)
*
100
,
2
)
:
0
;
$stats
[
'cpm'
]
=
(
$views
!=
0
)
?
round
((
$money
/
$views
)
*
1000
,
3
)
:
0
;
$stats
[
'cpc'
]
=
(
$clicks
!=
0
)
?
round
((
$money
/
$clicks
)
*
100
,
1
)
:
0
;
$stats
[
'money'
]
=
round
(
$stats
[
'money'
],
2
);
};
foreach
(
$stats
as
$site
=>
$stat
)
{
$AddSpecialFields
(
$stats
[
$site
]);
if
(
$stat
[
'sub'
])
{
foreach
(
$stat
[
'sub'
]
as
$sub
=>
$stat
)
{
$AddSpecialFields
(
$stats
[
$site
][
'sub'
][
$sub
]);
}
}
}
$dataStats
=
$stats
;
}
return
$dataStats
;
}
// Данные для статистики кампании по регионам
public
function
getCampaignsRegionsStat
(
$id
,
$taget_action
,
$dates
)
{
$dataRequest
=
array
(
'method'
=>
'camp_geo'
,
'data'
=>
array
(
'id'
=>
$id
,
'start_date'
=>
$dates
[
0
],
'end_date'
=>
$dates
[
1
]
)
);
//return $dataRequest;
try
{
$stats
=
$this
->
apiRequest
(
$dataRequest
);
}
catch
(
\Exception
$e
)
{
$stats
[
'status'
]
=
'Error'
;
return
$stats
;
}
//return $stats;
if
(
$stats
)
{
// Добавляем спец. поля
$AddSpecialFields
=
function
(
&
$stats
)
{
if
(
$taget_action
==
'load'
)
{
$stats
[
'views'
]
=
$stats
[
'loads'
];
$stats
[
'reach'
]
=
$stats
[
'reach_load'
];
}
else
{
$stats
[
'reach'
]
=
$stats
[
'reach_view'
];
}
unset
(
$stats
[
'loads'
]);
unset
(
$stats
[
'reach_load'
]);
unset
(
$stats
[
'reach_view'
]);
$views
=
$stats
[
'views'
];
$money
=
$stats
[
'money'
];
$clicks
=
$stats
[
'clicks'
];
$stats
[
'ctr'
]
=
(
$views
!=
0
)
?
round
((
$clicks
/
$views
)
*
100
,
2
)
:
0
;
$stats
[
'cpm'
]
=
(
$views
!=
0
)
?
round
((
$money
/
$views
)
*
1000
,
3
)
:
0
;
$stats
[
'cpc'
]
=
(
$clicks
!=
0
)
?
round
((
$money
/
$clicks
)
*
100
,
1
)
:
0
;
$stats
[
'money'
]
=
round
(
$stats
[
'money'
],
2
);
};
foreach
(
$stats
as
$region
=>
$stat
)
{
$AddSpecialFields
(
$stats
[
$region
]);
if
(
$stat
[
'sub'
])
{
foreach
(
$stat
[
'sub'
]
as
$sub
=>
$stat
)
{
$AddSpecialFields
(
$stats
[
$region
][
'sub'
][
$sub
]);
}
}
}
$dataStats
=
$stats
;
}
return
$dataStats
;
}
// Запрос к API:
...
...
src/templates/app/user/campaign_item.phtml
View file @
48d23c10
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment