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
b2f8429a
Commit
b2f8429a
authored
Nov 19, 2018
by
Александр Чаплыгин
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Формирование данных для отчета по транзакциям как список транзакций, правки по коду compaign
parent
8cda316f
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
109 additions
and
37 deletions
+109
-37
styles-feeds-stat.css
src/public/css/styles-feeds-stat.css
+1
-1
script-feeds-stat-table.js
src/public/js/script-feeds-stat-table.js
+16
-5
script-feeds-stat.js
src/public/js/script-feeds-stat.js
+6
-7
Cabinet.php
src/src/App/Action/User/Cabinet.php
+51
-21
Transactions.php
src/src/App/Model/Feeds/Transactions.php
+27
-0
cabinet-feed.phtml
src/templates/app/user/cabinet-feed.phtml
+8
-3
No files found.
src/public/css/styles-feeds-stat.css
View file @
b2f8429a
...
...
@@ -24,7 +24,7 @@
}
#period-stats
,
#c
ompany
-stats
#c
ampaign
-stats
{
display
:
none
;
}
...
...
src/public/js/script-feeds-stat-table.js
View file @
b2f8429a
...
...
@@ -52,8 +52,8 @@ $(document).ready(function(){
if
(
sortField
)
{
//
console.log('AAA sortField = ', sortField);
//
console.log('AAA dataTable = ', dataTable);
console
.
log
(
'AAA sortField = '
,
sortField
);
console
.
log
(
'AAA dataTable = '
,
dataTable
);
var
dataTableForSort
=
[];
...
...
@@ -61,7 +61,8 @@ $(document).ready(function(){
var
dataTableSortItem
=
{};
dataTableSortItem
[
'period'
]
=
dataTableItem
;
activeLines
.
forEach
(
function
(
activeLine
){
dataTableSortItem
[
activeLine
]
=
dataTable
[
activeLine
][
ind
];
currentActiveLine
=
activeLine
;
dataTableSortItem
[
activeLine
]
=
valueFormat
(
dataTable
[
activeLine
][
ind
]);
});
dataTableForSort
.
push
(
dataTableSortItem
);
});
...
...
@@ -119,11 +120,21 @@ $(document).ready(function(){
activeLines
=
[
'shows'
,
'clicks'
,
'transactions'
,
'salemoney'
,
'admoney'
];
}
if
(
dataLineChartStat
.
report
==
'transaction'
)
{
activeLines
=
[
'
usdollarmoney'
,
'local
money'
];
activeLines
=
[
'
localmoney'
,
'usdollar
money'
];
}
/*
// Автоматизировать формирование списка категорий таблицы:
activeLines = [];
$('thead.metric.sortable th input[type="checkbox"]', $table).each(function(){
if ($(this).is(":checked")) {
listCats.push($(this).data('field'));
}
})
*/
//console.log('AAA TableStat render: ', dataLineChartStat);
//
console.log('AAA activeLines: ', activeLines);
console
.
log
(
'AAA activeLines: '
,
activeLines
);
dataTable
=
{};
activeLines
.
forEach
(
function
(
item
){
...
...
src/public/js/script-feeds-stat.js
View file @
b2f8429a
...
...
@@ -47,7 +47,7 @@ $(document).ready(function(){
$chartStatError
=
$
(
'.chart-graph-stat-error'
),
$chartStatErrorMessage
=
$
(
'.chart-graph-stat-error .message'
),
periodStatsData
,
c
ompany
StatsData
,
c
ampaign
StatsData
,
dataLineChartStat
;
...
...
@@ -61,12 +61,11 @@ $(document).ready(function(){
if
(
$
(
'#period-stats'
).
val
())
{
periodStatsData
=
JSON
.
parse
(
$
(
'#period-stats'
).
val
());
}
if
(
$
(
'#c
ompany
-stats'
).
val
())
{
c
ompanyStatsData
=
JSON
.
parse
(
$
(
'#company
-stats'
).
val
());
if
(
$
(
'#c
ampaign
-stats'
).
val
())
{
c
ampaignStatsData
=
JSON
.
parse
(
$
(
'#campaign
-stats'
).
val
());
}
// Устанавливаем данные по периоду в качестве стартовых:
dataLineChartStat
=
periodStatsData
;
//console.log('AAA dataLineChartStat = ', dataLineChartStat);
// Отрисовка графика и таблицы по стартовым данным:
...
...
@@ -144,8 +143,8 @@ $(document).ready(function(){
$this
.
addClass
(
'selected'
).
toggleClass
(
'desc'
);
if
(
$this
.
hasClass
(
'main-cat'
))
{
dataLineChartStat
=
(
$this
.
hasClass
(
'date'
))
?
periodStatsData
:
c
ompany
StatsData
;
$tableHeadColsChecks
.
attr
(
"disabled"
,
$this
.
hasClass
(
'c
ompany
'
));
dataLineChartStat
=
(
$this
.
hasClass
(
'date'
))
?
periodStatsData
:
c
ampaign
StatsData
;
$tableHeadColsChecks
.
attr
(
"disabled"
,
$this
.
hasClass
(
'c
ampaign
'
));
}
renderHourTable
();
});
...
...
@@ -199,7 +198,7 @@ $(document).ready(function(){
ShowChartData
();
periodStatsData
=
res
.
period
;
c
ompanyStatsData
=
res
.
company
;
c
ampaignStatsData
=
res
.
campaign
;
dataLineChartStat
=
periodStatsData
;
$
(
'.main-cat'
).
removeClass
(
'selected'
);
$
(
'.main-cat.date'
).
addClass
(
'selected'
);
...
...
src/src/App/Action/User/Cabinet.php
View file @
b2f8429a
...
...
@@ -109,43 +109,54 @@ class Cabinet extends Common
$statsDaysModel
=
$this
->
container
->
get
(
StatsDays
::
class
);
//$stats = $statsDaysModel->findAll(['FeedID' => $feed_id_list])->toArray();
$periodStats
=
$statsDaysModel
->
getStatsByDate
(
$feed_id_list
,
$dates
);
$c
ompany
Stats
=
$statsDaysModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
$c
ampaign
Stats
=
$statsDaysModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
$cats
=
[
'shows'
,
'clicks'
,
'transactions'
,
'salemoney'
,
'admoney'
];
if
(
$campaignStats
||
count
(
$campaignStats
[
'period'
])
>
0
)
{
$feeds_names
=
[];
foreach
(
$campaignStats
[
'period'
]
as
$feed_id
)
{
$feed
=
$feedsModel
->
findById
(
$feed_id
);
$feeds_names
[]
=
$feed
->
getTitle
();
}
$campaignStats
[
'period'
]
=
$feeds_names
;
}
break
;
case
'transaction'
:
/** @var \App\Model\Feeds $transactionsModel */
$transactionsModel
=
$this
->
container
->
get
(
Transactions
::
class
);
$periodStats
=
$transactionsModel
->
getStatsByDate
(
$feed_id_list
,
$dates
);
$companyStats
=
$transactionsModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
$transactionStats
=
$transactionsModel
->
getStatsByTransactions
(
$feed_id_list
,
$dates
);
$cats
=
[
'localmoney'
,
'usdollarmoney'
];
if
(
$transactionStats
||
count
(
$transactionStats
[
'period'
])
>
0
)
{
$transactions_names
=
[];
foreach
(
$transactionStats
[
'period'
]
as
$transaction_id
)
{
$transactions_names
[]
=
'transaction #'
.
$transaction_id
;
}
$transactionStats
[
'period'
]
=
$transactions_names
;
}
$periodStats
=
$transactionStats
;
break
;
default
:
$data
[
'error'
]
=
_t
(
'Извините, тип отчета "'
.
$report_type
.
'" недоступен'
);
break
;
}
if
(
$companyStats
||
count
(
$companyStats
[
'period'
])
>
0
)
{
$feeds_names
=
[];
foreach
(
$companyStats
[
'period'
]
as
$feed_id
)
{
$feed
=
$feedsModel
->
findById
(
$feed_id
);
$feeds_names
[]
=
$feed
->
getTitle
();
}
$companyStats
[
'period'
]
=
$feeds_names
;
}
//return new JsonResponse($companyStats);
$periodStats
[
'type'
]
=
'interval'
;
$periodStats
[
'report'
]
=
$report_type
;
$c
ompany
Stats
[
'type'
]
=
'interval'
;
$c
ompany
Stats
[
'report'
]
=
$report_type
;
$c
ampaign
Stats
[
'type'
]
=
'interval'
;
$c
ampaign
Stats
[
'report'
]
=
$report_type
;
$data
[
'feeds'
]
=
$feeds
;
$data
[
'report'
]
=
$report_type
;
$data
[
'current_period'
]
=
$current_period
;
$data
[
'dates'
]
=
$dates
;
$data
[
'periodStats'
]
=
$periodStats
;
$data
[
'c
ompanyStats'
]
=
$company
Stats
;
$data
[
'c
ampaignStats'
]
=
$campaign
Stats
;
$data
[
'cats'
]
=
$cats
;
/*
...
...
@@ -244,17 +255,36 @@ class Cabinet extends Common
/** @var \App\Model\Feeds $statDaysModel */
$statsDaysModel
=
$this
->
container
->
get
(
StatsDays
::
class
);
$periodStats
=
$statsDaysModel
->
getStatsByDate
(
$feed_id_list
,
$dates
);
$companyStats
=
$statsDaysModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
$campaignStats
=
$statsDaysModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
if
(
$campaignStats
||
count
(
$campaignStats
[
'period'
])
>
0
)
{
$feeds_names
=
[];
foreach
(
$campaignStats
[
'period'
]
as
$feed_id
)
{
$feed
=
$feedsModel
->
findById
(
$feed_id
);
$feeds_names
[]
=
$feed
->
getTitle
();
}
$campaignStats
[
'period'
]
=
$feeds_names
;
}
break
;
case
'transaction'
:
/** @var \App\Model\Feeds $transactionsModel */
$transactionsModel
=
$this
->
container
->
get
(
Transactions
::
class
);
$periodStats
=
$transactionsModel
->
getStatsByDate
(
$feed_id_list
,
$dates
);
$companyStats
=
$transactionsModel
->
getStatsByFeeds
(
$feed_id_list
,
$dates
);
$transactionStats
=
$transactionsModel
->
getStatsByTransactions
(
$feed_id_list
,
$dates
);
if
(
$transactionStats
||
count
(
$transactionStats
[
'period'
])
>
0
)
{
$transactions_names
=
[];
foreach
(
$transactionStats
[
'period'
]
as
$transaction_id
)
{
$transactions_names
[]
=
'transaction #'
.
$transaction_id
;
}
$transactionStats
[
'period'
]
=
$transactions_names
;
}
$periodStats
=
$transactionStats
;
break
;
default
:
$periodStats
=
null
;
$c
ompany
Stats
=
null
;
$c
ampaign
Stats
=
null
;
break
;
}
...
...
@@ -265,13 +295,13 @@ class Cabinet extends Common
$periodStats
[
'type'
]
=
'interval'
;
$periodStats
[
'report'
]
=
$report_type
;
$c
ompany
Stats
[
'type'
]
=
'interval'
;
$c
ompany
Stats
[
'report'
]
=
$report_type
;
$c
ampaign
Stats
[
'type'
]
=
'interval'
;
$c
ampaign
Stats
[
'report'
]
=
$report_type
;
if
(
$periodStats
||
$companyStats
)
{
$data
=
array
(
'period'
=>
$periodStats
,
'c
ompany'
=>
$company
Stats
,
'c
ampaign'
=>
$campaign
Stats
,
);
}
else
{
$data
=
null
;
...
...
src/src/App/Model/Feeds/Transactions.php
View file @
b2f8429a
...
...
@@ -35,6 +35,33 @@ use App\Model\Common;
class
Transactions
extends
Common
{
public
function
getStatsByTransactions
(
$feeds
,
$dates
)
{
$adapter
=
$this
->
tableGateway
->
getAdapter
();
$sql
=
'SELECT TransactionID, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney'
.
' FROM '
.
(
string
)
$this
->
tableGateway
->
getTable
()
.
' WHERE FeedID in (\''
.
implode
(
'\',\''
,
$feeds
)
.
'\')'
.
' AND (EventDate BETWEEN "'
.
$dates
[
0
]
.
'" AND "'
.
$dates
[
1
]
.
'")'
.
' GROUP BY TransactionID'
.
' ORDER BY TransactionID'
;
$res
=
$adapter
->
query
(
$sql
,
\Zend\Db\Adapter\Adapter
::
QUERY_MODE_EXECUTE
);
$stats
=
array
(
'period'
=>
[],
'localmoney'
=>
[],
'usdollarmoney'
=>
[]
);
foreach
(
$res
as
$stat_item
)
{
$stats
[
'period'
][]
=
$stat_item
[
'TransactionID'
];
$stats
[
'localmoney'
][]
=
(
float
)
$stat_item
[
'LocalMoney'
];
$stats
[
'usdollarmoney'
][]
=
(
float
)
$stat_item
[
'USDollarMoney'
];
}
return
$stats
;
}
public
function
getStatsByFeeds
(
$feeds
,
$dates
)
{
$adapter
=
$this
->
tableGateway
->
getAdapter
();
...
...
src/templates/app/user/cabinet-feed.phtml
View file @
b2f8429a
...
...
@@ -55,7 +55,7 @@ $src = $sxml['src'];
$error
=
$this
->
error
;
$periodStats
=
$this
->
periodStats
;
$c
ompanyStats
=
$this
->
company
Stats
;
$c
ampaignStats
=
$this
->
campaign
Stats
;
$current_period
=
$this
->
current_period
;
$dates
=
$this
->
dates
;
$cats
=
$this
->
cats
;
...
...
@@ -111,7 +111,7 @@ $system_link = $this->url('adm.system.actions');
<?php
else
:
?>
<textarea
id=
"period-stats"
>
<?=
(
$periodStats
?
json_encode
(
$periodStats
)
:
''
)
?>
</textarea>
<textarea
id=
"c
ompany-stats"
>
<?=
(
$companyStats
?
json_encode
(
$company
Stats
)
:
''
)
?>
</textarea>
<textarea
id=
"c
ampaign-stats"
>
<?=
(
$campaignStats
?
json_encode
(
$campaign
Stats
)
:
''
)
?>
</textarea>
<section
class=
"b-content__work"
>
<div
class=
"wrapp"
style=
"position: relative;"
>
...
...
@@ -175,7 +175,12 @@ $system_link = $this->url('adm.system.actions');
<thead
class=
"metric sortable"
>
<tr>
<th>
<b
class=
"main-cat date selected"
>
<?=
_t
(
'Дата'
)
?>
</b>
/
<b
class=
"main-cat company"
>
<?=
_t
(
'Кампания'
)
?>
</b>
<?php
if
(
$report
==
'common'
)
:
?>
<b
class=
"main-cat date selected"
>
<?=
_t
(
'Дата'
)
?>
</b>
/
<b
class=
"main-cat campaign"
>
<?=
_t
(
'Кампания'
)
?>
</b>
<?php
else
:
?>
<b
class=
"main-cat date selected"
>
<?=
_t
(
'Транзакция'
)
?>
</b>
<?php
endif
;
?>
</th>
<?php
foreach
(
$cats
as
$name
)
:
?>
<th>
...
...
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