From e8a4da70cc8231510e4c6ffcccc45d24e5e63545 Mon Sep 17 00:00:00 2001 From: chenxiaojun <956334972@qq.com> Date: Wed, 4 Dec 2019 14:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E5=B9=B3=E5=8F=B0->=E9=A6=96?= =?UTF-8?q?=E9=A1=B5--=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/PromoteController.class.php | 122 +++++++----------- 1 file changed, 46 insertions(+), 76 deletions(-) diff --git a/Application/Home/Controller/PromoteController.class.php b/Application/Home/Controller/PromoteController.class.php index fff5f82d7..b718673a8 100644 --- a/Application/Home/Controller/PromoteController.class.php +++ b/Application/Home/Controller/PromoteController.class.php @@ -240,26 +240,25 @@ class PromoteController extends BaseController private function caculateSpend($pay_time, $condition, $create = [], $type = 0) { - $map1['promote_id'] = $map['promote_id'] = array('egt', 0); + $map['promote_id'] = array('egt', 0); $spend = M('Spend', 'tab_'); - $map1['pay_status'] = $map['pay_status'] = 1; + $map['pay_status'] = 1; $today = total(1); $yesterday = total(5); $week = total(2); $mounth = total(3); - unset( $map['create_time']); + $this->getLoginPromote(); - $promote_id = get_pid(); - - $promoteId = M("promote", "tab_") - ->field("id") - ->where(array('chain' => ['like', '/'.$promote_id . '/%'],'id'=>$promote_id,'_logic'=>'or')) - ->select(); - $promoteId = implode(',',array_column($promoteId,'id')); + $promoteId = $this->loginPromote['id']; - $whereUser['promote_id'] = ['IN', $promoteId]; + $promoteIds = M("promote", "tab_") + ->where(array('chain' => ['like', $this->loginPromote['chain'] . $promoteId . '/%'])) + ->getField('id', true); + $promoteIds[] = $promoteId; + $map['promote_id'] = ['IN', $promoteIds]; if (in_array($type, [1, 2])) { + $whereUser['promote_id'] = $map['promote_id']; if ($type == 1) { $pay_time = total(1); $start = mktime(0, 0, 0, date('m'), date('d'), date('Y')); @@ -271,78 +270,49 @@ class PromoteController extends BaseController } $whereUser['register_time'] = ['between', array($start, $end - 1)]; $userId = M('user', 'tab_')->where($whereUser)->getField('id', true); - } - if ($userId) { - $map1['user_id'] = $map['user_id'] = ['IN', $userId]; - } else if (!$userId && $type != 0) { - return array('sum_mounth' => 0, 'sum_today' => 0); + if ($userId) { + $map['user_id'] = ['IN', $userId]; + } else if (!$userId && $type != 0) { + return array('sum_mounth' => 0, 'sum_today' => 0); + } } - //获取所有会长 - $promote_map = "`chain` = '%/{$promote_id}/%' OR id = {$promote_id}"; - - $promote = M("promote","tab_")->field("id,account")->where($promote_map)->select(); - $data =array(); - for ($i=0; $i < count($promote); $i++) { - # code... - $proid = M("promote","tab_")->field("id")->where("`chain` like '%/{$promote[$i]['id']}/%'")->select(); - $str = ''; - for($k=0; $kfield(' - floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as count, - floor(sum(IF(pay_time ' . $today . ',pay_amount,0))*100) as today, + $data = $spend + ->field(' + floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as sum_count, + floor(sum(IF(pay_time ' . $today . ',pay_amount,0))*100) as sum_today, floor(sum(IF(pay_time ' . $yesterday . ',pay_amount,0))*100) as yesterday, - floor(sum(IF(pay_time ' . $week . ',pay_amount,0))*100) as week, - floor(sum(IF(pay_time ' . $mounth . ',pay_amount,0))*100) as mounth') - ->where($map) - ->where("pay_time".$pay_time) - ->find(); - $dbdata['promote_account'] = $promote[$i]['account']; - } else { - $dbdata = $spend - ->field(' - floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as count, - floor(sum(IF(pay_time ' . $today . ',pay_amount,0))*100) as today, + floor(sum(IF(pay_time ' . $week . ',pay_amount,0))*100) as sum_week, + floor(sum(IF(pay_time ' . $mounth . ',pay_amount,0))*100) as sum_mounth') + ->where($map) + ->where("pay_time".$pay_time) + ->find(); + } else { + $data = $spend + ->field(' + floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as sum_count, + floor(sum(IF(pay_time ' . $today . ',pay_amount,0))*100) as sum_today, floor(sum(IF(pay_time ' . $yesterday . ',pay_amount,0))*100) as yesterday, - floor(sum(IF(pay_time ' . $week . ',pay_amount,0))*100) as week, - floor(sum(IF(pay_time ' . $mounth . ',pay_amount,0))*100) as mounth') - ->where($map) - ->where("pay_time".$pay_time) - ->find(); - $dbdata['promote_account'] = $promote[$i]['account']; - } - $data[] = $dbdata; - } - foreach ($data as $key => $value) { - $value['count'] ?: 0; - $value['today'] ?: 0; - $value['week'] ?: 0; - $value['mounth'] ?: 0; - static $i = 0; - $i++; - $data[$key]['rand'] = $i; - $data[$key]['count'] = $value['count'] / 100; - $data[$key]['today'] = $value['today'] / 100; - $data[$key]['yesterday'] = $value['yesterday'] / 100; - $data[$key]['week'] = $value['week'] / 100; - $data[$key]['mounth'] = $value['mounth'] / 100; - } - $total = $this->data_total($data); + floor(sum(IF(pay_time ' . $week . ',pay_amount,0))*100) as sum_week, + floor(sum(IF(pay_time ' . $mounth . ',pay_amount,0))*100) as sum_mounth') + ->where($map) + ->where("pay_time".$pay_time) + ->find(); + } + $data['sum_count'] = empty($data['sum_count']) ? 0 : bcdiv($data['sum_count'], 100 ,2); + $data['sum_today'] = empty($data['sum_today']) ? 0 : bcdiv($data['sum_today'], 100 ,2); + $data['yesterday'] = empty($data['yesterday']) ? 0 : bcdiv($data['yesterday'], 100 ,2); + $data['sum_week'] = empty($data['sum_week']) ? 0 : bcdiv($data['sum_week'], 100 ,2); + $data['sum_mounth'] = empty($data['sum_mounth']) ? 0 : bcdiv($data['sum_mounth'], 100 ,2); - return $total; + return $data; } public function data_total($data)