diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 5daf3fc13..4c38f8749 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2009,6 +2009,17 @@ function getWithdrawNumber() { return $data; } +//上有流水计算 +function caculateUpstream($game_id,$pay_amount) { + + $data = M('cp_game_ratio','tab_') + ->where(['game_id'=>$game_id,'begin_total_amount'=>['elt',$pay_amount],'is_del'=>0]) + ->order('begin_total_amount Desc') + ->find(); + + return number_format($pay_amount*($data['ratio']/100),2,'.',''); + +} ?> diff --git a/Application/Admin/Controller/GameController.class.php b/Application/Admin/Controller/GameController.class.php index 6531fbd53..c7fbef940 100644 --- a/Application/Admin/Controller/GameController.class.php +++ b/Application/Admin/Controller/GameController.class.php @@ -774,9 +774,10 @@ class GameController extends ThinkController if(!is_numeric($data['game_ratio']) || $data['game_ratio']<0 || $data['game_ratio']>100){ die(json_encode(array("result"=>"0","desc"=>"分成比例为0~100之间"))); } + $game_info = M("game","tab_")->where("id=".$data['game_id'])->field("relation_game_id")->find();//根据游戏找到关联的游戏ID + $relation_game_list = M("game","tab_")->where("relation_game_id=".$game_info['relation_game_id'])->select();//根据关联ID找到游戏列表 if($data['data_type']=='initial'){ //CP初始分成比例 - if($data['data_id']>0){ //修改初始CP分成比例 $where = array(); $where['is_del'] = "0"; @@ -790,12 +791,27 @@ class GameController extends ThinkController if($info){ die(json_encode(array("result"=>"0","desc"=>"CP分成比例应小于".$info['ratio']."%"))); } - M('cp_game_ratio', 'tab_')->where("id=%d",$data['data_id'])->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); + + foreach ($relation_game_list as $game){ + $map['game_id'] = $game['id']; + $map['is_del'] = 0; + $map['begin_total_amount'] = 0; + M('cp_game_ratio', 'tab_')->where($map)->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); + } + //M('cp_game_ratio', 'tab_')->where("id=%d",$data['data_id'])->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); }else{ if($initial_info){ - M('cp_game_ratio', 'tab_')->where("id=%d",$initial_info['id'])->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); + foreach ($relation_game_list as $game){ + $map['game_id'] = $game['id']; + $map['is_del'] = 0; + $map['begin_total_amount'] = 0; + M('cp_game_ratio', 'tab_')->where($map)->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); + } + //M('cp_game_ratio', 'tab_')->where("id=%d",$initial_info['id'])->data(array("ratio"=>$data['game_ratio'],"update_time"=>time()))->save(); }else{ - M('cp_game_ratio', 'tab_')->data(array("game_id"=>$data['game_id'],"ratio"=>$data['game_ratio'],"begin_total_amount"=>0,"add_time"=>time(),"update_time"=>time()))->add(); + foreach ($relation_game_list as $game) { + M('cp_game_ratio', 'tab_')->data(array("game_id" => $game['id'], "ratio" => $data['game_ratio'], "begin_total_amount" => 0, "add_time" => time(), "update_time" => time()))->add(); + } } } }else{ //CP阶梯分成档位 @@ -820,7 +836,17 @@ class GameController extends ThinkController die(json_encode(array("result"=>"0","desc"=>"分成比例不得小于初始比例"))); } - M('cp_game_ratio', 'tab_')->where("id=%d",$data['data_id'])->data(array("ratio"=>$data['game_ratio'],"begin_total_amount"=>$data['total_amount'],"update_time"=>time()))->save(); + $info = M('cp_game_ratio', 'tab_')->where("id=%d",$data['data_id'])->find(); + foreach ($relation_game_list as $game) { + $map['ratio'] = $info['ratio']; + $map['begin_total_amount'] = $info['begin_total_amount']; + $map['is_del'] = 0; + $map['game_id']= $game['id']; + $updainfo = M('cp_game_ratio', 'tab_')->where($map)->find(); + if($updainfo){ + M('cp_game_ratio', 'tab_')->where("id=%d",$updainfo['id'])->data(array("ratio"=>$data['game_ratio'],"begin_total_amount"=>$data['total_amount'],"update_time"=>time()))->save(); + } + } }else{ if(!$initial_info){ die(json_encode(array("result"=>"0","desc"=>"请先设置初始CP分成比例"))); @@ -833,7 +859,9 @@ class GameController extends ThinkController if($max_info['max_ratio'] >= $data['game_ratio'] || $max_info['max_amount']>=$data['total_amount']){ die(json_encode(array("result"=>"0","desc"=>"新增分成档位金额或分成比例需大于现有分成档位"))); } - M('cp_game_ratio', 'tab_')->data(array("game_id"=>$data['game_id'],"ratio"=>$data['game_ratio'],"begin_total_amount"=>$data['total_amount'],"add_time"=>time(),"update_time"=>time()))->add(); + foreach ($relation_game_list as $game) { + M('cp_game_ratio', 'tab_')->data(array("game_id"=>$game['id'],"ratio"=>$data['game_ratio'],"begin_total_amount"=>$data['total_amount'],"add_time"=>time(),"update_time"=>time()))->add(); + } } } } @@ -844,7 +872,21 @@ class GameController extends ThinkController * 删除CP分成比例 */ public function delete_ratio(){ - M('cp_game_ratio', 'tab_')->where("id=".$_POST['data_id'])->data(array("is_del"=>"1","update_time"=>time()))->save(); + $info = M('cp_game_ratio', 'tab_')->where("id=%d",$_POST['data_id'])->find(); + $game_info = M("game","tab_")->where("id=".$info['game_id'])->field("relation_game_id")->find();//根据游戏找到关联的游戏ID + $relation_game_list = M("game","tab_")->where("relation_game_id=".$game_info['relation_game_id'])->select();//根据关联ID找到游戏列表 + + foreach ($relation_game_list as $game) { + $map['ratio'] = $info['ratio']; + $map['begin_total_amount'] = $info['begin_total_amount']; + $map['is_del'] = 0; + $map['game_id']= $game['id']; + $updainfo = M('cp_game_ratio', 'tab_')->where($map)->find(); + if($updainfo){ + M('cp_game_ratio', 'tab_')->where("id=".$updainfo['id'])->data(array("is_del"=>"1","update_time"=>time()))->save(); + } + } + //M('cp_game_ratio', 'tab_')->where("id=".$_POST['data_id'])->data(array("is_del"=>"1","update_time"=>time()))->save(); echo(json_encode(array("result"=>"1","desc"=>"删除成功"))); } } diff --git a/Application/Admin/Controller/PromoteController.class.php b/Application/Admin/Controller/PromoteController.class.php index 281e8f7ad..c886ee80c 100644 --- a/Application/Admin/Controller/PromoteController.class.php +++ b/Application/Admin/Controller/PromoteController.class.php @@ -1369,6 +1369,9 @@ class PromoteController extends ThinkController public function belong_add($promote_id=null, $company_belong = null, $company_relation = null, $remark = null) { if (IS_POST) { + if (empty($promote_id)) { + $this->error('请选择会长'); + } $data = array( 'promote_id' => $promote_id, 'company_belong' => $company_belong, @@ -1402,6 +1405,9 @@ class PromoteController extends ThinkController public function belong_edit($promote_id=null, $company_belong = null, $company_relation = null, $remark = null) { if (IS_POST) { + if (empty($promote_id)) { + $this->error('请选择会长'); + } $data = array( 'promote_id' => $promote_id, 'company_belong' => $company_belong, diff --git a/Application/Admin/Controller/PublicController.class.php b/Application/Admin/Controller/PublicController.class.php index d3ff67638..25274d90a 100644 --- a/Application/Admin/Controller/PublicController.class.php +++ b/Application/Admin/Controller/PublicController.class.php @@ -83,7 +83,6 @@ class PublicController extends \Think\Controller 'mobile_phone' => $mobile, 'level' => 1, ])->find(); - if ($promote) { /* 记录登录SESSION和COOKIES */ $cp_auth = array( @@ -92,18 +91,23 @@ class PublicController extends \Think\Controller 'mobile_phone' => $promote['mobile_phone'], 'nickname' => $promote['nickname'], 'username' => $promote['nickname'] ?: $promote['account'], + 'company_id' => $promote['company_id'], ); $session_name = 'cp_user_auth'; if (I('auto_login')) { - session(['name' => $session_name, 'expire' => 60*60*24*30], $cp_auth); - session(['name' => $session_name.'_sign', 'expire' => 60*60*24*30], data_auth_sign($cp_auth)); + $expireTime = 60*60*24*30;//自动登录一个月 + ini_set('session.gc_maxlifetime', $expireTime); + ini_set('session.cookie_lifetime', $expireTime); + session($session_name, $cp_auth); + session($session_name.'_sign', data_auth_sign($cp_auth)); + session($session_name.'_expire', time()); } else { session($session_name, $cp_auth); session($session_name.'_sign', data_auth_sign($cp_auth)); } $uid = $promote['id']; } else { - $partner = M('partner', 'tab_')->where(['link_man' => $mobile,])->find(); + $partner = M('partner', 'tab_')->where(['link_phone' => $mobile,])->find(); if ($partner) { /* 记录登录SESSION和COOKIES */ $cp_auth = array( @@ -111,18 +115,23 @@ class PublicController extends \Think\Controller 'account' => $partner['link_phone'], 'mobile_phone' => $partner['link_phone'], 'nickname' => $partner['link_man'], + 'company_id' => $partner['id'], 'username' => $partner['link_man'] ?: $partner['account'], ); $session_name = 'cp_user_auth'; if (I('auto_login')) { - session(['name' => $session_name, 'expire' => 60*60*24*30], $cp_auth); - session(['name' => $session_name.'_sign', 'expire' => 60*60*24*30], data_auth_sign($cp_auth)); + $expireTime = 60*60*24*30;//自动登录一个月 + ini_set('session.gc_maxlifetime', $expireTime); + ini_set('session.cookie_lifetime', $expireTime); + session($session_name, $cp_auth); + session($session_name.'_sign', data_auth_sign($cp_auth)); + session($session_name.'_expire', time()); } else { session($session_name, $cp_auth); session($session_name.'_sign', data_auth_sign($cp_auth)); } - $uid = $promote['id']; + $uid = $partner['id']; } } diff --git a/Application/Admin/Controller/QueryController.class.php b/Application/Admin/Controller/QueryController.class.php index 74207225d..f8f767753 100644 --- a/Application/Admin/Controller/QueryController.class.php +++ b/Application/Admin/Controller/QueryController.class.php @@ -1449,10 +1449,15 @@ class QueryController extends ThinkController } $map = []; - setPowerPromoteIds($map,'root_id'); +// setPowerPromoteIds($map,'root_id'); if ($_REQUEST['promote_id']||$_REQUEST['promote_id']=='0') { - $map['root_id'] = $_REQUEST['promote_id']; + if ($_REQUEST['promote_id']=='0') { + unset($map['root_id']); + $map['promote_account'] = '官方渠道'; + } else { + $map['root_id'] = $_REQUEST['promote_id']; + } } if ($_REQUEST['game_name']) { @@ -1487,10 +1492,10 @@ class QueryController extends ThinkController //关联表获取会长账号名 $data = M()->table('('.$data.') as a') - ->field("my_time,pay_amount,a.game_id,game_name,game_names,a.promote_id,a.promote_account,a.company_relation,a.company_belong,CASE WHEN root_id is null THEN 0 ELSE root_id END as root_id,CASE WHEN account is null THEN '官方渠道' ELSE account END as account,tab_ratio.ratio as ratio,turnover_ratio,game_ratio.ratio as games_ratio") + ->field("my_time,pay_amount,a.game_id,game_name,game_names,a.promote_id,a.promote_account,a.company_relation,a.company_belong,CASE WHEN root_id is null THEN 0 ELSE root_id END as root_id,CASE WHEN account is null THEN '官方渠道' ELSE account END as account,tab_ratio.ratio as ratio,turnover_ratio") ->join("left join tab_promote on root_id = tab_promote.id") ->join("left join tab_promote_game_ratio as tab_ratio on tab_ratio.game_id = a.game_id and tab_ratio.promote_id=root_id") - ->join("left join tab_cp_game_ratio as game_ratio on game_ratio.game_id = a.game_id") +// ->join("left join tab_cp_game_ratio as game_ratio on game_ratio.game_id = a.game_id") ->page($page,$row) ->where($map) ->group("my_time,game_names,root_id") @@ -1505,11 +1510,11 @@ class QueryController extends ThinkController foreach($data as $key => $value) { - if ($value['games_ratio']) { - $data[$key]['upstream'] = $value['pay_amount'] * ($value['games_ratio']*0.01); - } else { - $data[$key]['upstream'] = $value['pay_amount'] * 0; - } +// if ($value['games_ratio']) { +// $data[$key]['upstream'] = $value['pay_amount'] * ($value['games_ratio']*0.01); +// } else { + $data[$key]['upstream'] = caculateUpstream($value['game_id'],$value['pay_amount']); +// } if ($value['ratio']) { $data[$key]['downstream'] = $value['pay_amount'] * ($value['ratio']*0.01); @@ -1520,6 +1525,8 @@ class QueryController extends ThinkController $value['turnover_ratio'] = json_decode($value['turnover_ratio'],true); +// dd($value); + if (is_array($value['turnover_ratio'])) { foreach($value['turnover_ratio'] as $k =>$v) { if($value['pay_amount']>$v['turnover']) { @@ -1594,4 +1601,61 @@ class QueryController extends ThinkController } $this->ajaxReturn(['balance' => $balance]); } + public function getChannelStream() { + + $map = []; +// setPowerPromoteIds($map,'root_id'); + + if ($_REQUEST['promote_id']||$_REQUEST['promote_id']=='0') { + if ($_REQUEST['promote_id']=='0') { + unset($map['root_id']); + $map['promote_account'] = '官方渠道'; + } else { + $map['root_id'] = $_REQUEST['promote_id']; + } + } + + if ($_REQUEST['game_name']) { + $map['game_names'] = $_REQUEST['game_name']; + } + + if ($_REQUEST['count_date']) { + $map['my_time'] = $_REQUEST['count_date']; + } + + if ($_REQUEST['device']) { + $map['game_name'] = ['like','%'.$_REQUEST['device'].'%']; + } + //获取spend表中的数据,同时根据会长id进行group分类 + $data = M('Spend','tab_') + ->field("FROM_UNIXTIME(pay_time,'%Y-%m') as my_time,sum(pay_amount) as pay_amount,game_id,game_name,SUBSTRING_INDEX(`game_name`,\"(\",1) as game_names,promote_id,promote_account,company_relation,company_belong,CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(`chain`,\"/\",2),\"/\",-1)='' THEN promote_id ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(`chain`,\"/\",2),\"/\",-1) END as root_id,pay_way ") + ->join("left join tab_promote on promote_id = tab_promote.id") + ->where(['pay_status'=>1]) + ->group("my_time,game_names,root_id,pay_way") + ->order("my_time Desc") + ->select(false); + + //关联表获取会长账号名 + $data = M()->table('('.$data.') as a') + ->field("pay_amount,a.pay_way") + ->join("left join tab_promote on root_id = tab_promote.id") + ->join("left join tab_promote_game_ratio as tab_ratio on tab_ratio.game_id = a.game_id and tab_ratio.promote_id=root_id") + ->where($map) + ->group("my_time,game_names,root_id,pay_way") + ->order("my_time Desc") + ->select(); + + $returnData = ''; + + foreach($data as $key => $value) { + + $returnData .=get_pay_way($value['pay_way']).':'.$value['pay_amount']."
"; + + + } +// echo $returnData;die(); + $this->ajaxReturn($returnData); + + } + } diff --git a/Application/Admin/Controller/VerifyBillController.class.php b/Application/Admin/Controller/VerifyBillController.class.php index 9408dc618..1c2344f53 100644 --- a/Application/Admin/Controller/VerifyBillController.class.php +++ b/Application/Admin/Controller/VerifyBillController.class.php @@ -32,7 +32,10 @@ class VerifyBillController extends Controller { */ public function index(){ $m_title = '对账单管理'; - $list_data = DM('statement')->order('create_time desc')->select(); + $list_data = DM('statement') + ->where(['company_id' => session('cp_user_auth.company_id')]) + ->order('create_time desc') + ->select(); foreach ($list_data as $key => $value) { $list_data[$key]['statement_type_str'] = $value['statement_type'] ? '工会对账单' : 'cp对账单'; } diff --git a/Application/Admin/View/Public/cp_base.html b/Application/Admin/View/Public/cp_base.html index c8fc9fe41..c6d7fb92c 100644 --- a/Application/Admin/View/Public/cp_base.html +++ b/Application/Admin/View/Public/cp_base.html @@ -70,7 +70,7 @@ --> -
  • 退出
  • +
  • 退出
  • {:session('cp_user_auth.username')} @@ -285,27 +285,7 @@ $(function(){ $window.resize(function(){ $("#main").css("min-height", $window.height() - 130); }).resize(); - $('.tuichujs').click(function(){ - $.ajax({ - type: 'POST', - async: false, - dataType: 'json', - url: "{:U('Public/logout')}", - success: function(data) { - updateAlert('退出成功','tip_right'); - setTimeout(function(){ - $('#tip').find('.tipclose').click(); - },1500); - location.reload(); - }, - error:function(){ - updateAlert("服务器故障!",'tip_error'); - setTimeout(function(){ - $('#tip').find('.tipclose').click(); - },1500); - } - }); - }); + /* 左边菜单高亮 */ url = window.location.pathname + window.location.search; url = url.replace(/(\/(p)\/\d+)|(&p=\d+)|(\/(id)\/\d+)|(&id=\d+)|(\/(group)\/\d+)|(&group=\d+)/, ""); diff --git a/Application/Admin/View/Query/marketList.html b/Application/Admin/View/Query/marketList.html index 8372d688c..8cfddb092 100644 --- a/Application/Admin/View/Query/marketList.html +++ b/Application/Admin/View/Query/marketList.html @@ -29,6 +29,46 @@ } .select2-results__option[aria-selected] {font-size:12px;} .layui-layer-dialog .layui-layer-content{color:red} + .tooltip { + position: relative; + display: inline-block; + color: #056dae; + } + + .tooltip .tooltiptext { + /*visibility: hidden;*/ + width: 250%; + background-color: #fff; + color: #000; + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 80%; + left: 0; + margin-left: -70%; + border: #000 solid 1px; + /*color: #000;*/ + } + + .tooltip .tooltiptext::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: black transparent transparent transparent; + } + + .tooltip:hover .tooltiptext { + + color: #000; + /*visibility: visible;*/ + /*line-height: 20px;*/ + }