diff --git a/Application/Admin/Controller/CompanyStatementSetController.class.php b/Application/Admin/Controller/CompanyStatementSetController.class.php index aa85fc0f9..58bd33ace 100644 --- a/Application/Admin/Controller/CompanyStatementSetController.class.php +++ b/Application/Admin/Controller/CompanyStatementSetController.class.php @@ -709,7 +709,11 @@ class CompanyStatementSetController extends Controller { $game =[]; $game['game_name'] =$v['game_list'][$t_game_id]['game_name']; $game['relation_game_id'] =$v['game_list'][$t_game_id]['relation_game_id']; - $game_all_payment = $v['game_list'][$t_game_id]['pay_amount']; + if(isset($v['game_list'][$t_game_id]['all_pay_amount'])){ + $game_all_payment = $v['game_list'][$t_game_id]['all_pay_amount']-0; + }else{ + $game_all_payment = $v['game_list'][$t_game_id]['pay_amount']-0; + } // dump($tratio); $game['fax_ratio']=$fax_ratio-0; @@ -718,7 +722,7 @@ class CompanyStatementSetController extends Controller { if(count($t_game_ratio) == 1){ $tmp_game_ratio = $t_game_ratio[0]; - $game['pay_amount'] =$game_all_payment; + $game['pay_amount'] = $v['game_list'][$t_game_id]['pay_amount']; $game['pay_amount'] -=0; $game['statement_begin_time']=$statement_begin_time; @@ -916,8 +920,24 @@ class CompanyStatementSetController extends Controller { } } $game_ids = implode(",",array_unique(array_column($list,"relation_game_id"))); + $game_ids = $this->getModuleRatioGame($company_id,$game_ids,$begintime,$endtime); $sameGame = $this->getTheSameGame($game_ids); - dd($sameGame); + + if(!empty($sameGame)){ + foreach ($sameGame as $k => $v) { + $temp = 0; + for ($j=0; $j < count($v); $j++) { + $temp += $res[$company_id][$v[$j]]['pay_amount']; + } + $sameGame[$k] = $temp; + } + foreach ($sameGame as $k => $v) { + $res[$company_id][$k]['all_pay_amount'] = $v; + // $game[$k]['pay_amount']= $v; + } + } + + foreach($res as $k=>$v){ $pcList[$k]["pay_amount"] = $v['pay_amount']; unset($v['pay_amount']); @@ -967,7 +987,9 @@ class CompanyStatementSetController extends Controller { } } //同cp,同一个原包名的共享总流水分成 - $sameGame = $this->getTheSameGame(implode(",",array_keys($game))); + $game_ids = implode(",",array_keys($game)); + $game_ids = $this->getModuleRatioGame($company_id,$game_ids,$begintime,$endtime); + $sameGame = $this->getTheSameGame($game_ids); if(!empty($sameGame)){ foreach ($sameGame as $k => $v) { $temp = 0; @@ -980,7 +1002,6 @@ class CompanyStatementSetController extends Controller { $game[$k]['pay_amount']= $v; } } - $pcList[$company_id]['game_ids'] = implode(",",array_keys($game)); foreach($list as $k=>$v){ @@ -1130,7 +1151,7 @@ class CompanyStatementSetController extends Controller { $pc[$v['id']]['is_payment']=$pcList[$v['id']]['is_payment']; } unset($tmpp); - + $this->getPuPromoteSpend($pc,array_unique(array_keys($pc)),$begintime,$endtime); $StatementDb = M("CompanyStatement","tab_"); @@ -1570,6 +1591,29 @@ class CompanyStatementSetController extends Controller { $pay_amount = $Spend->alias('s')->field('sum(s.pay_amount) pay_amount')->where($spenMap)->find(); return $pay_amount['pay_amount'] ?? 0; } + /** + * 获取游戏是否有特殊比例,返回没有特殊比例的游戏 + * return string "148,157" + */ + protected function getModuleRatioGame($company_id,$relation_game_ids,$begintime,$endtime){ + $where = [ + "relation_game_id"=>["in",$relation_game_ids], + "company_id"=>$company_id, + "_string"=>"begin_time <={$endtime} AND ( end_time = 0 OR end_time >= {$begintime})" + ]; + $dbres = D("CompanyGameRatio")->field("relation_game_id")->where($where)->select(); + if(is_string($relation_game_ids)) $relation_game_ids = explode(",",$relation_game_ids); + + if(empty($dbres)){ + return implode(",",$relation_game_ids);; + }else{ + $dbres = array_column($dbres,"relation_game_id"); + $diff = array_diff($relation_game_ids,$dbres); + + return implode(",",$diff); + } + } + /** * 识别游戏为同款游戏,共享流水分成比例 * return [ @@ -1579,7 +1623,7 @@ class CompanyStatementSetController extends Controller { */ protected function getTheSameGame($relation_game_ids) { - + if(empty($relation_game_ids)) return []; $where = [ "id"=>["in",$relation_game_ids] ]; diff --git a/Application/Admin/Controller/PromoteCompanyController.class.php b/Application/Admin/Controller/PromoteCompanyController.class.php index e98b3ae92..b47b7c5af 100644 --- a/Application/Admin/Controller/PromoteCompanyController.class.php +++ b/Application/Admin/Controller/PromoteCompanyController.class.php @@ -1375,10 +1375,10 @@ class PromoteCompanyController extends ThinkController if(empty($game_arr)){ return $senddata; } - foreach($game_arr as $k=>$v){ + if(empty($game[$k])) continue; $senddata[$k]= ["turnover_ratio"=>[["name"=>"--","ratio"=>"--"]],"ratio"=>0,"relation_game_id"=>$k,"cp_ratio"=>[["name"=>"--","ratio"=>"--"]],"row"=>1]; - $senddata[$k]+= $game[$k];; + $senddata[$k] += $game[$k]; } return $senddata; }