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 @@
-->
-