|
|
@ -206,19 +206,15 @@ class DownloadController extends BaseController {
|
|
|
|
$map['type'] = $type;
|
|
|
|
$map['type'] = $type;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($createTime != '') {
|
|
|
|
$nowTime = date('Y-m-d');
|
|
|
|
$createTimeRow = explode(' 至 ', $createTime);
|
|
|
|
$initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime)));
|
|
|
|
$createTimeBegin = 0;
|
|
|
|
$initBegTime = empty(I('begtime')) ? $initBegTime : I('begtime');
|
|
|
|
$createTimeEnd = 0;
|
|
|
|
$initEndTime = $nowTime;
|
|
|
|
if (count($createTimeRow) == 2) {
|
|
|
|
$initEndTime = empty(I('endtime')) ? $initEndTime : I('endtime');
|
|
|
|
$createTimeBegin = strtotime($createTimeRow[0] . ' 00:00:00');
|
|
|
|
$begTime = strtotime($initBegTime);
|
|
|
|
$createTimeEnd = strtotime($createTimeRow[1] . ' 23:59:59');
|
|
|
|
$endTime = strtotime($initEndTime);
|
|
|
|
} else {
|
|
|
|
$endTime += 3600 * 24;
|
|
|
|
$createTimeBegin = strtotime($createTimeRow[0] . ' 00:00:00');
|
|
|
|
$map['create_time'] = ['between', [$begTime, $endTime]];
|
|
|
|
$createTimeEnd = strtotime($createTimeRow[0] . ' 23:59:59');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$map['create_time'] = ['between', [$createTimeBegin, $createTimeEnd]];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$conditions = json_encode($map,TRUE);
|
|
|
|
$conditions = json_encode($map,TRUE);
|
|
|
|
$addtime = time();
|
|
|
|
$addtime = time();
|
|
|
|
$data = [
|
|
|
|
$data = [
|
|
|
@ -248,6 +244,7 @@ class DownloadController extends BaseController {
|
|
|
|
public function ios_data_export() {
|
|
|
|
public function ios_data_export() {
|
|
|
|
$levelPromote = $this->getLevelPromote();
|
|
|
|
$levelPromote = $this->getLevelPromote();
|
|
|
|
$queryPromote = $this->getQueryPromote($levelPromote);
|
|
|
|
$queryPromote = $this->getQueryPromote($levelPromote);
|
|
|
|
|
|
|
|
$localId = $queryPromote['id'];
|
|
|
|
$map = [];
|
|
|
|
$map = [];
|
|
|
|
if ($queryPromote['level'] == 4) {
|
|
|
|
if ($queryPromote['level'] == 4) {
|
|
|
|
$map['id'] = $queryPromote['id'];
|
|
|
|
$map['id'] = $queryPromote['id'];
|
|
|
@ -255,20 +252,19 @@ class DownloadController extends BaseController {
|
|
|
|
$map['chain'] = ['like', $queryPromote['chain'] . $queryPromote['id'] . '/%'];
|
|
|
|
$map['chain'] = ['like', $queryPromote['chain'] . $queryPromote['id'] . '/%'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$createTime = I('create_time', '');
|
|
|
|
$createTime = I('create_time', '');
|
|
|
|
if ($createTime != '') {
|
|
|
|
$nowTime = date('Y-m-d');
|
|
|
|
$createTimeRow = explode(' 至 ', $createTime);
|
|
|
|
$initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime)));
|
|
|
|
$createTimeBegin = 0;
|
|
|
|
$initBegTime = empty(I('begtime')) ? $initBegTime : I('begtime');
|
|
|
|
$createTimeEnd = 0;
|
|
|
|
$initEndTime = $nowTime;
|
|
|
|
if (count($createTimeRow) == 2) {
|
|
|
|
$initEndTime = empty(I('endtime')) ? $initEndTime : I('endtime');
|
|
|
|
$createTimeBegin = strtotime($createTimeRow[0] . ' 00:00:00');
|
|
|
|
$begTime = strtotime($initBegTime);
|
|
|
|
$createTimeEnd = strtotime($createTimeRow[1] . ' 23:59:59');
|
|
|
|
$endTime = strtotime($initEndTime);
|
|
|
|
} else {
|
|
|
|
$endTime += 3600 * 24;
|
|
|
|
$createTimeBegin = strtotime($createTimeRow[0] . ' 00:00:00');
|
|
|
|
$map['create_time'] = ['between', [$begTime, $endTime]];
|
|
|
|
$createTimeEnd = strtotime($createTimeRow[0] . ' 23:59:59');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$map['create_time'] = ['between', [$createTimeBegin, $createTimeEnd]];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$map['pid'] = PID;
|
|
|
|
$map['pid'] = PID;
|
|
|
|
|
|
|
|
if ($localId !== PID) {
|
|
|
|
|
|
|
|
$map['localId'] = $localId;
|
|
|
|
|
|
|
|
}
|
|
|
|
$conditions = json_encode($map,TRUE);
|
|
|
|
$conditions = json_encode($map,TRUE);
|
|
|
|
$addtime = time();
|
|
|
|
$addtime = time();
|
|
|
|
$data = [
|
|
|
|
$data = [
|
|
|
@ -2252,9 +2248,9 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!empty($map['create_time'])) {
|
|
|
|
if (!empty($map['create_time'])) {
|
|
|
|
$map1['create_time'] = $map['create_time'];
|
|
|
|
$map1['create_time'] = $map['create_time'];
|
|
|
|
$tfMap['create_time'] = $map['craete_time'];
|
|
|
|
$tfMap['create_time'] = $map['create_time'];
|
|
|
|
$superMap['create_time'] = $map['craete_time'];
|
|
|
|
$superMap['create_time'] = $map['create_time'];
|
|
|
|
$companyMap['create_time'] = $map['craete_time'];
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$belongs_president = '';
|
|
|
|
$belongs_president = '';
|
|
|
@ -2271,8 +2267,10 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!empty($map['promote_id'])) {
|
|
|
|
if (!empty($map['promote_id'])) {
|
|
|
|
$promote_id = $map['promote_id'];
|
|
|
|
$promote_id = $map['promote_id'];
|
|
|
|
|
|
|
|
$map1['promote_id'] = $map['promote_id'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$rs = M('package_download_log', 'tab_')->field('id,game_id,user_id,type,create_time')->where($map1)->select();
|
|
|
|
$rs = M('package_download_log', 'tab_')->field('id,game_id,user_id,type,create_time')->where($map1)->select();
|
|
|
|
|
|
|
|
|
|
|
|
$tfMap['promote_id'] = $promote_id;
|
|
|
|
$tfMap['promote_id'] = $promote_id;
|
|
|
|
$tfMap['type'] = 2;
|
|
|
|
$tfMap['type'] = 2;
|
|
|
|
$TFCounts = M('package_download_log', 'tab_')->where($tfMap)->count();
|
|
|
|
$TFCounts = M('package_download_log', 'tab_')->where($tfMap)->count();
|
|
|
@ -2343,7 +2341,8 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
$xlsName ="IOS下载数统计";
|
|
|
|
$xlsName ="IOS下载数统计";
|
|
|
|
$xlsCell = array(
|
|
|
|
$xlsCell = array(
|
|
|
|
'推广员账号',
|
|
|
|
'推广员账号',
|
|
|
|
'玩家人数',
|
|
|
|
'IOS用户总数',
|
|
|
|
|
|
|
|
'新增IOS用户总数',
|
|
|
|
'TF下载次数',
|
|
|
|
'TF下载次数',
|
|
|
|
'超级签下载次数',
|
|
|
|
'超级签下载次数',
|
|
|
|
'企业签下载次数',
|
|
|
|
'企业签下载次数',
|
|
|
@ -2357,31 +2356,56 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
$map1['chain'] = $map['chain'];
|
|
|
|
$map1['chain'] = $map['chain'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!empty($map['create_time'])) {
|
|
|
|
if (!empty($map['create_time'])) {
|
|
|
|
$map1['create_time'] = $map['create_time'];
|
|
|
|
// $map1['create_time'] = $map['create_time'];
|
|
|
|
$tfMap['create_time'] = $map['create_time'];
|
|
|
|
$tfMap['create_time'] = $map['create_time'];
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
$superMap['create_time'] = $map['create_time'];
|
|
|
|
$superMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$allTFMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$allSuperMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
// $iosTimeMap['register_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$map10['register_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$alliosMap['register_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$allUserMap['register_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$allTFMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$allSuperMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
|
|
|
|
$sunday = strtotime('-1 sunday', $map['create_time'][1][1]) + 24 * 3600;
|
|
|
|
|
|
|
|
$m['create_time'] = ['between', [$sunday, $map['create_time'][1][1]]];
|
|
|
|
|
|
|
|
$iosTimeMap['register_time'] = $m['create_time'];
|
|
|
|
|
|
|
|
$alliosMap['register_time'] = $m['create_time'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!empty($map['id'])) {
|
|
|
|
if (!empty($map['id'])) {
|
|
|
|
$map1['id'] = $map['id'];
|
|
|
|
$map1['id'] = $map['id'];
|
|
|
|
$tfMap['create_time'] = $map['craete_time'];
|
|
|
|
$tfMap['create_time'] = $map['create_time'];
|
|
|
|
$superMap['create_time'] = $map['craete_time'];
|
|
|
|
$superMap['create_time'] = $map['create_time'];
|
|
|
|
$companyMap['create_time'] = $map['craete_time'];
|
|
|
|
$companyMap['create_time'] = $map['create_time'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$rs = M('promote', 'tab_')->field(['id'])->where($map1)->select();
|
|
|
|
$rs = M('promote', 'tab_')->field(['id'])->where($map1)->select();
|
|
|
|
$allids = array_column($rs, 'id');
|
|
|
|
$allids = array_column($rs, 'id');
|
|
|
|
|
|
|
|
if (!empty($map['localId'])) {
|
|
|
|
|
|
|
|
array_push($allids, $map['localId']);
|
|
|
|
|
|
|
|
}
|
|
|
|
array_push($allids, PID);
|
|
|
|
array_push($allids, PID);
|
|
|
|
$allUserMap['promote_id'] = ['in', $allids];
|
|
|
|
$allUserMap['promote_id'] = ['in', $allids];
|
|
|
|
|
|
|
|
$allUserMap['device_type'] = 2;
|
|
|
|
$allTFMap['promote_id'] = ['in', $allids];
|
|
|
|
$allTFMap['promote_id'] = ['in', $allids];
|
|
|
|
$allTFMap['type'] = 2;
|
|
|
|
$allTFMap['type'] = 2;
|
|
|
|
|
|
|
|
|
|
|
|
$allSuperMap['promote_id'] = ['in', $allids];
|
|
|
|
$allSuperMap['promote_id'] = ['in', $allids];
|
|
|
|
$allSuperMap['type'] = 3;
|
|
|
|
$allSuperMap['type'] = 3;
|
|
|
|
|
|
|
|
|
|
|
|
$companyMap['promote_id'] = ['in', $allids];
|
|
|
|
$companyMap['promote_id'] = ['in', $allids];
|
|
|
|
$companyMap['type'] = 1;
|
|
|
|
$companyMap['type'] = 1;
|
|
|
|
|
|
|
|
|
|
|
|
$allUsersCounts = M('user', 'tab_')->where($allUserMap)->count();
|
|
|
|
$allUsersCounts = M('user', 'tab_')->where($allUserMap)->count();
|
|
|
|
$allTFCounts = M('package_download_log', 'tab_')->where($allTFMap)->count();
|
|
|
|
$allTFCounts = M('package_download_log', 'tab_')->where($allTFMap)->count();
|
|
|
|
$allSuperCounts = M('package_download_log', 'tab_')->where($allSuperMap)->count();
|
|
|
|
$allSuperCounts = M('package_download_log', 'tab_')->where($allSuperMap)->count();
|
|
|
|
$allCompanyCounts = M('package_download_log', 'tab_')->where($companyMap)->count();
|
|
|
|
$allCompanyCounts = M('package_download_log', 'tab_')->where($companyMap)->count();
|
|
|
|
|
|
|
|
$alliosMap['promote_id'] = ['in', $allids];
|
|
|
|
|
|
|
|
$alliosMap['device_type'] = 2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$allIosCounts = M('user', 'tab_')->where($alliosMap)->count();
|
|
|
|
$csvFileName = $xlsName.'.csv';
|
|
|
|
$csvFileName = $xlsName.'.csv';
|
|
|
|
header('Content-Description: File Transfer');
|
|
|
|
header('Content-Description: File Transfer');
|
|
|
|
header('Content-Type: application/vnd.ms-excel');
|
|
|
|
header('Content-Type: application/vnd.ms-excel');
|
|
|
@ -2395,24 +2419,33 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
$accessNum = count($rs)?:0 ;
|
|
|
|
$accessNum = count($rs)?:0 ;
|
|
|
|
$perSize = 5000;//每次查询的条数
|
|
|
|
$perSize = 5000;//每次查询的条数
|
|
|
|
$pages = ceil($accessNum / $perSize);
|
|
|
|
$pages = ceil($accessNum / $perSize);
|
|
|
|
|
|
|
|
if ($pages == 0) {
|
|
|
|
|
|
|
|
$pages = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
for($i = 1; $i <= $pages; $i++) {
|
|
|
|
for($i = 1; $i <= $pages; $i++) {
|
|
|
|
$data = M('promote', 'tab_')->field(['id'])->where($map1)
|
|
|
|
$data = M('promote', 'tab_')->field(['id'])->where($map1)
|
|
|
|
->limit(($i-1)*$perSize ,$perSize)->select();
|
|
|
|
->limit(($i-1)*$perSize ,$perSize)->select();
|
|
|
|
$ids = array_column($data, 'id');
|
|
|
|
$ids = array_column($data, 'id');
|
|
|
|
if ($i == 1) {
|
|
|
|
if ($i == 1) {
|
|
|
|
|
|
|
|
if (!empty($map['localId'])) {
|
|
|
|
|
|
|
|
array_unshift($ids,$map['localId'] );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
array_unshift($ids, PID);
|
|
|
|
array_unshift($ids, PID);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
foreach($ids as $key => $id) {
|
|
|
|
foreach($ids as $key => $id) {
|
|
|
|
$promote1 = M('promote', 'tab_')->field('account, level, parent_id, chain')->where(['id' => $id])->select();
|
|
|
|
$promote1 = M('promote', 'tab_')->field('account, level, parent_id, chain')->where(['id' => $id])->select();
|
|
|
|
$promote = $promote1[0];
|
|
|
|
$promote = $promote1[0];
|
|
|
|
$chain = $promote['chain'];
|
|
|
|
$chain = $promote['chain'];
|
|
|
|
//$csvData['promote_id'] = $id;
|
|
|
|
|
|
|
|
if($id == PID) {
|
|
|
|
if($id == PID) {
|
|
|
|
$csvData['account'] = $promote['account'].'[自己]';
|
|
|
|
$csvData['account'] = $promote['account'].'[自己]';
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
$csvData['account'] = $promote['account'];
|
|
|
|
$csvData['account'] = $promote['account'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$iosTimeMap['promote_id'] = $id;
|
|
|
|
|
|
|
|
$iosTimeMap['device_type'] = 2;
|
|
|
|
|
|
|
|
$iosCount = M('user', 'tab_')->where($iosTimeMap)->count();
|
|
|
|
$tfMap['promote_id'] = $id;
|
|
|
|
$tfMap['promote_id'] = $id;
|
|
|
|
$tfMap['type'] = 2;
|
|
|
|
$tfMap['type'] = 2;
|
|
|
|
$companyMap['promote_id'] = $id;
|
|
|
|
$companyMap['promote_id'] = $id;
|
|
|
@ -2422,9 +2455,17 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
$tfCounts = M('package_download_log', 'tab_')->where($tfMap)->count(); //TF下载量
|
|
|
|
$tfCounts = M('package_download_log', 'tab_')->where($tfMap)->count(); //TF下载量
|
|
|
|
$companyCounts = M('package_download_log', 'tab_')->where($companyMap)->count(); //企业签下载量
|
|
|
|
$companyCounts = M('package_download_log', 'tab_')->where($companyMap)->count(); //企业签下载量
|
|
|
|
$superCounts = M('package_download_log', 'tab_')->where($superMap)->count(); //超级签下载量
|
|
|
|
$superCounts = M('package_download_log', 'tab_')->where($superMap)->count(); //超级签下载量
|
|
|
|
$usersCounts = M('user', 'tab_')->where(['promote_id' => $id])->count();
|
|
|
|
$map10['promote_id'] = $id;
|
|
|
|
|
|
|
|
$map10['device_type'] = 2;
|
|
|
|
|
|
|
|
$usersCounts = M('user', 'tab_')->where($map10)->count();
|
|
|
|
|
|
|
|
$tfpercent = number_format((intval($tfCounts) / intval($usersCounts)),2,'.','') * 100;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (intval($usersCounts) == 0) {
|
|
|
|
|
|
|
|
$tfpercent = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
$csvData['userscounts'] = intval($usersCounts);
|
|
|
|
$csvData['userscounts'] = intval($usersCounts);
|
|
|
|
$csvData['tfcounts'] = intval($tfCounts);
|
|
|
|
$csvData['ioscount'] = $iosCount;
|
|
|
|
|
|
|
|
$csvData['tfcounts'] = intval($tfCounts).'('.$tfpercent.'%)';
|
|
|
|
$csvData['supercounts'] = intval($superCounts);
|
|
|
|
$csvData['supercounts'] = intval($superCounts);
|
|
|
|
$csvData['companycounts'] = intval($companyCounts);
|
|
|
|
$csvData['companycounts'] = intval($companyCounts);
|
|
|
|
|
|
|
|
|
|
|
@ -2435,7 +2476,7 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($promote['level'] == 2) {
|
|
|
|
if ($promote['level'] == 2) {
|
|
|
|
$parentPromote = M('promote', 'tab_')->field('account')->where(['id'=>$promote['parent_id']])->select();
|
|
|
|
$parentPromote = M('promote', 'tab_')->field('account')->where(['id'=>$promote['parent_id']])->select();
|
|
|
|
$csvData['belongs_president'] = $parentPromote['account'];
|
|
|
|
$csvData['belongs_president'] = $parentPromote[0]['account'];
|
|
|
|
$csvData['belongs_department'] = $promote['account'];
|
|
|
|
$csvData['belongs_department'] = $promote['account'];
|
|
|
|
$csvData['belongs_group'] = "无所属组长";
|
|
|
|
$csvData['belongs_group'] = "无所属组长";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2467,7 +2508,8 @@ public function iosDetailExcelInfo($id,$map) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$allData['account'] = '汇总';
|
|
|
|
$allData['account'] = '汇总';
|
|
|
|
$allData['userscounts'] = $allUsersCounts;
|
|
|
|
$allData['userscounts'] = $allUsersCounts;
|
|
|
|
$allData['tfcounts'] = $allTFCounts;
|
|
|
|
$allData['iosycounts'] = $allIosCounts;
|
|
|
|
|
|
|
|
$allData['tfcounts'] = $allTFCounts.'('.(number_format((intval($allTFCounts) / intval($allUsersCounts)),2,'.','') * 100).'%)';
|
|
|
|
$allData['supercounts'] = $allSuperCounts;
|
|
|
|
$allData['supercounts'] = $allSuperCounts;
|
|
|
|
$allData['companycounts'] = $allCompanyCounts;
|
|
|
|
$allData['companycounts'] = $allCompanyCounts;
|
|
|
|
|
|
|
|
|
|
|
|