diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php
index 5dcb80a9f..e78bd275c 100644
--- a/Application/Admin/Common/extend.php
+++ b/Application/Admin/Common/extend.php
@@ -2159,6 +2159,7 @@ function getGamePromoteCompanyRadio($company_id,$relation_game_id,$endtime,$amou
//判断是否有生效
$rwhere = "(end_time = 0 OR end_time >= '{$endtime}') and company_id='{$company_id}' and relation_game_id='{$relation_game_id}'";
$cgr_res = M("CompanyGameRatio","tab_")->where($rwhere)->find();
+ // dump( M("CompanyGameRatio","tab_")->where($rwhere)->select(false));
if(empty($cgr_res)){
//模板搜索
//获取公司类型
diff --git a/Application/Admin/Controller/CompanyGameRatioController.class.php b/Application/Admin/Controller/CompanyGameRatioController.class.php
index 4d325d7ce..968f39e3d 100644
--- a/Application/Admin/Controller/CompanyGameRatioController.class.php
+++ b/Application/Admin/Controller/CompanyGameRatioController.class.php
@@ -20,8 +20,100 @@ class CompanyGameRatioController extends AdminController
$this->DBModel = M("company_game_ratio","tab_");
parent::_initialize();
}
-
public function index()
+ {
+ $params = I('get.');
+ $page = $params['p'] ? intval($params['p']) : 1;
+ $row = $params['row'] ? intval($params['row']) : 10;
+ //权限分配
+ if(!IS_ROOT){
+ $this->OpAuthList= getModuleControllerAuth();
+ }
+
+ $gamewhere['_string'] = '1 = 1';
+ $where['_string'] = '1 = 1';
+ if(isset($params['relation_game_id'])){
+ $gamewhere['relation_game_id'] = $params['relation_game_id'];
+ $where['m.relation_game_id'] = $params['relation_game_id'];
+ }
+ if(isset($params['company_id'])){
+ $where['m.company_id'] = $params['company_id'];
+ }
+ $this->checkListOrCountAuthRestMap($where);
+
+ $gameres = M("game","tab_")->field("tab_game.relation_game_id,tab_game.relation_game_name,IF(tab_game.original_package_name='','未配置',tab_game.original_package_name) original_package_name,tab_game_type.type_name game_type_name")->where($gamewhere)->join("tab_game_type on tab_game.game_type_id = tab_game_type.id")->group("tab_game.relation_game_id")->select(false);
+ $dbres = M("company_game_ratio","tab_")
+ ->alias('m')
+ ->field("m.*,g.*,p.company_name,p.company_belong,IFNULL(r.settlement_type,0) settlement_type")
+ ->join("left JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id")
+ ->join("left JOIN tab_promote_company p ON m.company_id = p.id")
+ ->join("left JOIN tab_company_relation r ON (r.first_company_type =2 AND r.first_company_id = m.company_id) OR (r.second_company_type =2 AND r.second_company_id = m.company_id)")
+ ->where($where);
+ if(isset($params['export'])){
+ $dbres = $dbres->select();
+ }else{
+ $dbres = $dbres->page($page, $row)->select();
+ }
+ foreach($dbres as $k=>&$v){
+ $v['begin_time'] = date("Y-m-d",$v['begin_time']);
+ $v['end_time'] = $v['end_time'] ? date('Y-m-d', $v['end_time']) : '永久';
+
+ $v["valid"] = "{$v['begin_time']} ~ {$v['end_time']}";
+
+ $v['company_belong'] ="下游".getCompanyBlong($v['company_belong']);
+ if (isset($params['export'])) {
+ $symbol = "\n";
+ } else {
+ $symbol = "
";
+ }
+ if($v['settlement_type'] == 0){
+ $v['settlement_type'] = '--';
+ }else{
+ $v['settlement_type'] = $v['settlement_type']== 1 ? "周结" : '月结';
+ }
+ //新
+ $thisTurnoverRatios = $v['turnover_ratio'] ? json_decode($v['turnover_ratio'], true) : [];
+ $thisRatioDtl = "默认:{$v['ratio']}%";
+ if ($thisTurnoverRatios) {
+
+ foreach ($thisTurnoverRatios as $thisTurnoverRatio) {
+ $thisIntervalClosedStatusText = isset($thisTurnoverRatio['instanceof']) ? ($thisTurnoverRatio['instanceof'] == 1 ? '≥' : '>') : '≥';
+ $thisRatioDtl .= "{$symbol}月流水{$thisIntervalClosedStatusText}{$thisTurnoverRatio['turnover']},比例:{$thisTurnoverRatio['ratio']}%";
+ }
+ }
+ $v['turnover_ratio_str'] = $thisRatioDtl;
+ $v['oplist'] = $this->OpAuth($v);
+ }
+ if(isset($_REQUEST['export'])){
+ $GetData = $_GET;
+ unset($GetData['export']);
+ addOperationLog(['op_type'=>3,'key'=>getNowDate(),"op_name"=>"导出",'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData)]);
+
+ data2csv($dbres,'推广游戏分成管理',array(
+ "company_name"=>"公司名称",
+ "company_belong"=>"内外团",
+ "settlement_type"=>"结算周期",
+ "game_type_name"=>"游戏类型",
+ "original_package_name"=>"原游戏名称",
+ "relation_game_name"=>"现游戏名称",
+ "valid"=>"生效时间",
+ "turnover_ratio_str"=>"分成比例"
+ ));
+ }
+
+ $count = M("company_game_ratio","tab_")->alias('m')->field("count(id) count")->where($where)->find()['count'];
+ $this->assign('data', $dbres);
+ $page = set_pagination($count, $row);
+ if($page) {
+ $this->assign('_page', $page);
+ }
+
+ $this->assign("companyList",D("PromoteCompany")->getList());
+ $this->assign("gameList",D("Game")->getRelationGameLits());
+ $this->display();
+ }
+
+ public function lists()
{
$params = I('get.');
$page = $params['p'] ? intval($params['p']) : 1;
@@ -43,14 +135,15 @@ class CompanyGameRatioController extends AdminController
if(isset($params['status'])){
$where['m.status'] = $params['status'];
}
- //TODO:未计算公司类型,未进行排序
+ //TODO:未计算公司类型
$this->checkListOrCountAuthRestMap($where);
$gameres = M("game","tab_")->field("tab_game.relation_game_id,tab_game.relation_game_name,IF(tab_game.original_package_name='','未配置',tab_game.original_package_name) original_package_name,tab_game_type.type_name game_type_name")->where($gamewhere)->join("tab_game_type on tab_game.game_type_id = tab_game_type.id")->group("tab_game.relation_game_id")->select(false);
$dbres = M("company_game_ratio_log","tab_")
->alias('m')
- ->field("m.*,g.*,p.company_name,p.company_belong")
+ ->field("m.*,g.*,p.company_name,p.company_belong,IFNULL(r.settlement_type,0) settlement_type")
->join("left JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id")
->join("left JOIN tab_promote_company p ON m.company_id = p.id")
+ ->join("left JOIN tab_company_relation r ON (r.first_company_type =2 AND r.first_company_id = m.company_id) OR (r.second_company_type =2 AND r.second_company_id = m.company_id)")
->where($where)
->order("FIELD(m.status,0,1,-1,-2,2),id desc");
if(isset($params['export'])){
@@ -59,7 +152,11 @@ class CompanyGameRatioController extends AdminController
$dbres = $dbres->page($page, $row)->select();
}
foreach($dbres as $k=>&$v){
- $v['settlement_type'] ='--';
+ if($v['settlement_type'] == 0){
+ $v['settlement_type'] = '--';
+ }else{
+ $v['settlement_type'] = $v['settlement_type']== 1 ? "周结" : '月结';
+ }
$v['begin_time'] = date("Y-m-d",$v['begin_time']);
$v['end_time'] = $v['end_time'] ? date('Y-m-d', $v['end_time']) : '永久';
@@ -156,6 +253,8 @@ class CompanyGameRatioController extends AdminController
$this->assign("gameList",D("Game")->getRelationGameLits());
$this->display();
}
+
+
public function marketAgree(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
@@ -170,7 +269,7 @@ class CompanyGameRatioController extends AdminController
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=1;
$company_game_ratio_log->save($v);
- addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
+ addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('lists')]);
}
$this->ajaxReturn(array(
'status' => 1,
@@ -190,7 +289,7 @@ class CompanyGameRatioController extends AdminController
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=-1;
$company_game_ratio_log->save($v);
- addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
+ addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('lists')]);
}
$this->ajaxReturn(array(
'status' => 1,
@@ -210,7 +309,7 @@ class CompanyGameRatioController extends AdminController
$v['verify_log'] = json_encode($v['verify_log']);
$v['status']=-2;
$company_game_ratio_log->save($v);
- addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]);
+ addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('lists')]);
}
$this->ajaxReturn(array(
'status' => 1,
@@ -251,7 +350,7 @@ class CompanyGameRatioController extends AdminController
$company_game_ratio->add($ratiov);
}
//
- addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]);
+ addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('lists')]);
}
$this->ajaxReturn(array(
'status' => 1,
@@ -297,8 +396,8 @@ class CompanyGameRatioController extends AdminController
}
$id = M("company_game_ratio_log","tab_")->add($save);
- addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('index')]);
- $this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("index")]);
+ addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('lists')]);
+ $this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("lists")]);
} else {
$companyList = D("PromoteCompany")->getList();
@@ -331,6 +430,7 @@ class CompanyGameRatioController extends AdminController
$save['id'] = $params['id'];
$save['ratio'] = $params['ratio'] ?? 0;
$save['turnover_ratio'] = $this->setTurnoverRatio($params);
+
$save['begin_time'] = strtotime($params['begin_time']);
$save['end_time'] = $params['end_time'] ? strtotime($params['end_time'])+86399 : 0;
$save['remark'] = $params['remark'] ?? '';
@@ -339,8 +439,8 @@ class CompanyGameRatioController extends AdminController
$save['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]);
}
M("company_game_ratio_log","tab_")->save($save);
- addOperationLog(['op_type'=>1,'key'=>$save['id'],'op_name'=>'修改','url'=>U('index')]);
- $this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("index")]);
+ addOperationLog(['op_type'=>1,'key'=>$save['id'],'op_name'=>'修改','url'=>U('lists')]);
+ $this->ajaxReturn(["msg"=>"修改成功","code"=>1,"url"=>U("lists")]);
} else {
$params = I('get.');
$id = $params['id'] ?? 0;
@@ -369,6 +469,20 @@ class CompanyGameRatioController extends AdminController
}
$id = $_REQUEST['id'];
$res = M("company_game_ratio_log","tab_")->where("id='{$id}'")->delete();
+ if($res !== false){
+ addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('lists')]);
+ $this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("lists")]);
+ }else{
+ $this->error('删除错误');
+ }
+ }
+ public function delGameRatio()
+ {
+ if(!isset($_REQUEST['id'])){
+ $this->error('参数错误');
+ }
+ $id = $_REQUEST['id'];
+ $res = M("company_game_ratio","tab_")->where("id='{$id}'")->delete();
if($res !== false){
addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除','url'=>U('index')]);
$this->ajaxReturn(["msg"=>"删除成功","code"=>1,"url"=>U("index")]);
@@ -376,6 +490,7 @@ class CompanyGameRatioController extends AdminController
$this->error('删除错误');
}
}
+
public function menuAuth()
{
$addurl = U("addRatio");
@@ -405,14 +520,19 @@ class CompanyGameRatioController extends AdminController
$opBtn = [
"editRatio"=>"编辑",
"delRatio"=>"删除",
+ "delGameRatio"=>"删除",
];
//操作对应菜单
-
- if($info['status'] == 2){
- $optist = [];
+ if(!isset($info['status'])){
+ $optist = ["delGameRatio"];
}else{
- $optist = ["editRatio","delRatio"];
+ if($info['status'] == 2){
+ $optist = [];
+ }else{
+ $optist = ["editRatio","delRatio"];
+ }
}
+
//
$resarr = [];
foreach ($optist as $k => $v) {
@@ -427,6 +547,8 @@ class CompanyGameRatioController extends AdminController
return $resarr;
}
+
+
public function setTurnoverRatio($params)
{
$save['turnover_ratio'] = [];
@@ -474,6 +596,9 @@ class CompanyGameRatioController extends AdminController
$save['turnover_ratio'] = json_encode($save['turnover_ratio']);
}
}
+ if(empty($save['turnover_ratio'])){
+ $save['turnover_ratio'] = '';
+ }
return $save['turnover_ratio'];
}
diff --git a/Application/Admin/Controller/CompanyRelationController.class.php b/Application/Admin/Controller/CompanyRelationController.class.php
index 12461b49e..81c3a25ee 100644
--- a/Application/Admin/Controller/CompanyRelationController.class.php
+++ b/Application/Admin/Controller/CompanyRelationController.class.php
@@ -57,6 +57,11 @@ class CompanyRelationController extends AdminController
if(isset($params['company_id'])){
$where['_string'] .= " AND (first_company_id='{$params['company_id']}' OR second_company_id='{$params['company_id']}')";
}
+ if(isset($params['company_type']) && isset($params['company_id'])){
+ unset($where['_string']);
+ $where['_string'] .= " (first_company_id='{$params['company_id']}' AND first_company_type='{$params['company_type']}') OR (second_company_id='{$params['company_id']}' AND second_company_type='{$params['company_type']}')";
+ }
+
if(isset($params['settlement_type'])){
$where['settlement_type'] = $params['settlement_type'];
}
@@ -129,7 +134,13 @@ class CompanyRelationController extends AdminController
}
if(isset($params['company_id'])){
$where['_string'] .= " AND (first_company_id='{$params['company_id']}' OR second_company_id='{$params['company_id']}')";
+
+ }
+ if(isset($params['company_type']) && isset($params['company_id'])){
+ unset($where['_string']);
+ $where['_string'] .= " (first_company_id='{$params['company_id']}' AND first_company_type='{$params['company_type']}') OR (second_company_id='{$params['company_id']}' AND second_company_type='{$params['company_type']}')";
}
+
if(isset($params['settlement_type'])){
$where['settlement_type'] = $params['settlement_type'];
}
@@ -302,18 +313,18 @@ class CompanyRelationController extends AdminController
unset($v['remark']);
unset($v['status']);
unset($v['verify_log']);
+ //判断公司id及类型
+ if($v['first_company_type'] == 0){
+ $t_company_id = $v['second_company_id'];
+ $t_company_type = $v['second_company_type'];
+ }else{
+ $t_company_id = $v['first_company_id'];
+ $t_company_type = $v['first_company_type'];
+ }
$where = "
- (
- (first_company_type ='{$v['first_company_type']}' and first_company_id = '{$v['first_company_id']}')
+ (first_company_type ='{$t_company_type}' and first_company_id = '{$t_company_id}')
OR
- (first_company_type ='{$v['second_company_type']}' and first_company_id = '{$v['second_company_id']}')
- )
- AND
- (
- (second_company_type ='{$v['first_company_type']}' and second_company_id = '{$v['first_company_id']}')
- OR
- (second_company_type ='{$v['second_company_type']}' and second_company_id = '{$v['second_company_id']}')
- )
+ (second_company_type ='{$t_company_type}' and second_company_id = '{$t_company_id}')
";
$hasdb = $this->DBModel->where($where)->find();
if(isset($hasdb['id'])){
diff --git a/Application/Admin/Controller/CompanyStatementController.class.php b/Application/Admin/Controller/CompanyStatementController.class.php
index 806a852b6..8b78724a3 100644
--- a/Application/Admin/Controller/CompanyStatementController.class.php
+++ b/Application/Admin/Controller/CompanyStatementController.class.php
@@ -106,6 +106,9 @@ class CompanyStatementController extends ThinkController
if(isset($_REQUEST['company_belong'])){
$map['company_belong'] = $_REQUEST['company_belong'];
}
+ if(isset($_REQUEST['company_id'])){
+ $map['company_id'] = $_REQUEST['company_id'];
+ }
if(isset($_REQUEST['verify_status'])){
$map['verify_status'] = $_REQUEST['verify_status'];
}
@@ -114,7 +117,7 @@ class CompanyStatementController extends ThinkController
$data = M("company_statement","tab_")
->field("id,withdraw_type,company_name,company_belong,statement_begin_time,statement_end_time,statement_money,platform_amount,verify_status,verify_log,op_time,remark")
->where($map)
- ->order("op_time Desc")->page($page,$row)->select();
+ ->order("FIELD(verify_status,0,1,-1,2,3,-2,4,5),id desc")->page($page,$row)->select();
foreach($data as $k => &$v) {
$v['statement_begin_time'] = date('Y-m-d',$v['statement_begin_time']);
@@ -250,10 +253,14 @@ class CompanyStatementController extends ThinkController
$params['first_party_info'] = json_encode($params['first_party_info'],JSON_UNESCAPED_UNICODE);
$params['second_party_info'] = json_encode($params['second_party_info'],JSON_UNESCAPED_UNICODE);
$params['statement_info'] = json_encode($params['statement_info'],JSON_UNESCAPED_UNICODE);
- $params['verify_status'] = 0;
- $params['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]);
- $params['op_time'] = time();
- M("CompanyStatement","tab_")->save($params);
+
+ $y = M("CompanyStatement", "tab_")->where("id='{$params['id']}'")->find();
+ if($y['first_party_info'] != $params['first_party_info'] || $y['second_party_info'] != $params['second_party_info'] || $y['statement_info'] != $params['statement_info']){
+ $params['verify_status'] = 0;
+ $params['verify_log'] = json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]);
+ $params['op_time'] = time();
+ M("CompanyStatement","tab_")->save($params);
+ }
$this->ajaxReturn(["code"=>0,"msg"=>"ok"]);
}else{
if (!isset($_REQUEST['id'])) {
@@ -310,6 +317,7 @@ class CompanyStatementController extends ThinkController
$v['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s");
$v['verify_log'] = json_encode($v['verify_log']);
$v['verify_status']=$change_status;
+ $v['op_time'] = time();
$this->DBModel->save($v);
$opname = $this->VerifyStatus[$change_status];
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>$opname,'url'=>U('lists')]);
@@ -382,18 +390,18 @@ class CompanyStatementController extends ThinkController
}
if ($data['company_belong'] == 9) {//上游
excelUpStreamTemplate($data, $all_sum_money, $all_pay_amount, $big_all_sum_money);
- } else {//下游
- if($dbres["company_type"] == 1){
+ } else {
+ //下游
+ // if($dbres["company_type"] == 1){
excelDownStreamTemplate($data, $all_sum_money, $all_pay_amount, $big_all_sum_money);
- }else{
- $data['statement_begin_time'] = date('Ymd',$data['statement_begin_time']);
- $data['statement_end_time'] = date('Ymd',$data['statement_end_time']);
- $data['statement_count'] = count($data['statement_info']);
- // dd($data);
- $this->assign("data",$data);
- $this->display("exportPuStatement");
- }
-
+ // }else{
+ // $data['statement_begin_time'] = date('Ymd',$data['statement_begin_time']);
+ // $data['statement_end_time'] = date('Ymd',$data['statement_end_time']);
+ // $data['statement_count'] = count($data['statement_info']);
+ // // dd($data);
+ // $this->assign("data",$data);
+ // $this->display("exportPuStatement");
+ // }
}
}
//汇总
@@ -519,6 +527,7 @@ class CompanyStatementController extends ThinkController
$v['verify_log'][$op_pre.'_num']=$num;
$v['verify_log'] = json_encode($v['verify_log']);
$v['verify_status']=$change_status;
+ $v['op_time']=time();
$this->DBModel->save($v);
}
}
@@ -691,7 +700,95 @@ class CompanyStatementController extends ThinkController
$savedata['statement_end_time'] = $v['statement_end_time'];
}
}
- //设定并保存数据
+ //新增结算
+ //获取要结算的公司及日期
+ public function getNewStatement()
+ {
+ $senddata = [];
+ //1.获取要计算的公司
+ $statement = M("company_statement","tab_")->field("count(id) count,company_id")->group("company_id")->select();
+ $has_company_id =implode(",",array_column($statement, 'company_id'));
+ if(empty($has_company_id)){
+ $where = "1=1";
+ }else{
+ $where = "(first_company_type > 0 AND first_company_id NOT IN ({$has_company_id}) ) OR ( second_company_type > 0 AND second_company_id NOT IN ({$has_company_id}) )";
+ }
+
+ $relation = M("company_relation","tab_")->field("first_company_id,first_company_type,second_company_id,second_company_type")->where($where)->select();
+ $up_company_id = [];
+ $dowm_company_id= [];
+ foreach($relation as $k=>$v){
+ if($v['first_company_type'] == 0){
+ if($v['second_company_type'] == 1){
+ $up_company_id[] = $v['second_company_id'];
+ }else{
+ $dowm_company_id[] = $v['second_company_id'];
+ }
+ }else{
+ if($v['first_company_type'] == 1){
+ $up_company_id[] = $v['first_company_id'];
+ }else{
+ $dowm_company_id[]=$v['first_company_id'];
+ }
+ }
+ }
+ if(count($up_company_id) < 1 && count($dowm_company_id) < 1){
+ $this->ajaxReturn(["error"=>'无新增关系,无需重算']);
+ }
+
+ $senddata['up_company_id'] = implode(",",$up_company_id);
+ $senddata['dowm_company_id'] = implode(",",$dowm_company_id);
+
+ //获取要结算的日期
+ $start = strtotime('-1 month');
+ $end = time();
+
+ $temp_datelist = get_date_list($start,$end,1);
+ $datelist = [];
+ foreach($temp_datelist as $k=>$v){
+ $w = (int)date("w",strtotime($v));
+ $d = (int)date("d",strtotime($v));
+ if($w == 1 || $d == 1){
+ $datelist[] = $v;
+ }
+ }
+ $senddata['datelist'] = $datelist;
+ $senddata['count'] = count($datelist);
+
+ $this->ajaxReturn(["success"=>'ok',"data"=>$senddata]);
+ }
+ public function updateNewStatement()
+ {
+ $up_company_id = $_REQUEST['up_company_id'];
+ $dowm_company_id = $_REQUEST['dowm_company_id'];
+ $date = $_REQUEST['date'];
+ $CompanyStatementSet = A("CompanyStatementSet");
+ // dd($CompanyStatementSet);
+ $stime = strtotime($date);
+ $w = (int)date("w",strtotime($date));
+ $d = (int)date("d",strtotime($date));
+ if($w == 1){
+ if(!empty($up_company_id)){
+ $CompanyStatementSet->cpStatement(0,$stime,$up_company_id,false);
+ }
+ if(!empty($dowm_company_id)){
+ $CompanyStatementSet->promoteCompanyStatement(0,$stime,$dowm_company_id,false);
+ }
+ }
+ if($d == 1){
+ if(!empty($up_company_id)){
+ $CompanyStatementSet->cpStatement(1,$stime,$up_company_id,false);
+ $CompanyStatementSet->cpStatement(2,$stime,$up_company_id,false);
+ }
+ if(!empty($dowm_company_id)){
+ $CompanyStatementSet->promoteCompanyStatement(1,$stime,$dowm_company_id,false);
+ $CompanyStatementSet->promoteCompanyStatement(2,$stime,$dowm_company_id,false);
+ }
+ }
+
+ $this->ajaxReturn(array("success"=>"ok","data"=>[]));
+ }
+
public function OpAuth($info)
@@ -753,7 +850,8 @@ class CompanyStatementController extends ThinkController
"launch"=>"对外发起",
"pool"=>"发起汇总",
"updateStatement"=>"重算金额",
- "export"=>"批量导出"
+ "export"=>"批量导出",
+ "updateNewStatement"=>"新增结算",
];
$resarr = [];
foreach ($mentBtn as $k => $v) {
diff --git a/Application/Admin/Controller/CompanyStatementSetController.class.php b/Application/Admin/Controller/CompanyStatementSetController.class.php
index 8ddba5ba4..6c520083e 100644
--- a/Application/Admin/Controller/CompanyStatementSetController.class.php
+++ b/Application/Admin/Controller/CompanyStatementSetController.class.php
@@ -48,7 +48,7 @@ class CompanyStatementSetController extends Controller {
public function setDailyCount($stime="now")
{
if(!IS_CLI){
- // die("只支持脚本访问");
+ die("只支持脚本访问");
}
if($stime=="now"){
$stime=time();
@@ -97,7 +97,7 @@ class CompanyStatementSetController extends Controller {
* 上游结算
* @param [string] $type 0:周结 1:月结 2:周结补点
*/
- public function cpStatement($type,$stime,$company_id=false)
+ public function cpStatement($type,$stime,$company_id=false,$recount=true)
{
$t = $this->setBeginAndEndTime($type,$stime);;
$begintime = $t[0];
@@ -109,7 +109,7 @@ class CompanyStatementSetController extends Controller {
];
}else{
$where = [
- "_string"=>"(first_company_type = '1' AND first_company_id = '{$company_id}') OR (second_company_type = '1' AND second_company_id = '{$company_id}')"
+ "_string"=>"(first_company_type = '1' AND first_company_id in ({$company_id}) ) OR (second_company_type = '1' AND second_company_id in ({$company_id}) )"
];
}
//获取哪些要结算
@@ -241,6 +241,7 @@ class CompanyStatementSetController extends Controller {
$promote_ratio = $cp[$add_data['company_id']]['channel_rate'] ?? 0;
$fax_ratio = $cp[$add_data['company_id']]['invoice_rate'] ?? 0;
//游戏统计
+ if(!isset($v['list'])){continue;}
foreach($v['list'] as $ke=>$va){
$game =[];
$game['pay_amount'] =$va['pay_money'];
@@ -263,6 +264,7 @@ class CompanyStatementSetController extends Controller {
$tratio1 = getGameCpRadio($game_id['id'],$va['pay_money'],true);
$tratio2 = getGameCpRadio($game_id['id'],$va['pay_money'],false);
$tratio = $tratio1-$tratio2;
+ if($tratio <= 0){continue;}
}
}
@@ -338,12 +340,11 @@ class CompanyStatementSetController extends Controller {
return;
}
//添加
- if($company_id === false){
+ if($recount && $company_id !== false){
//非重算
- $StatementDb->add($add_data);
- }else{
return $add_data;
}
+ $StatementDb->add($add_data);
}
}
@@ -365,6 +366,7 @@ class CompanyStatementSetController extends Controller {
//获取支付记录
$paywhere = [
"pay_status"=>1,
+ "pay_game_status"=>1,
"payed_time"=>["BETWEEN",[$begintime,$endtime]],
"game_id"=>["in",$gmstr]
];
@@ -400,9 +402,8 @@ class CompanyStatementSetController extends Controller {
/**
* 下游结算
*/
- public function promoteCompanyStatement($type,$stime,$company_id=false)
+ public function promoteCompanyStatement($type,$stime,$company_id=false,$recount=true)
{
-
$t = $this->setBeginAndEndTime($type,$stime);
$begintime = $t[0];
$endtime = $t[1];
@@ -414,7 +415,7 @@ class CompanyStatementSetController extends Controller {
];
}else{
$where = [
- "_string"=>"(first_company_type = '2' AND first_company_id = '{$company_id}') OR (second_company_type = '2' AND second_company_id = '{$company_id}')"
+ "_string"=>"(first_company_type = '2' AND first_company_id in ({$company_id}) ) OR (second_company_type = '2' AND second_company_id in ({$company_id}) )"
];
}
//获取哪些要结算
@@ -425,7 +426,6 @@ class CompanyStatementSetController extends Controller {
$where['settlement_type']=1;
$pcDbRes = M("CompanyRelation","tab_")->where($where)->select();
}
-
$pcList=[];
$js_id = [];//己方公司
foreach ($pcDbRes as $k => $v) {
@@ -452,6 +452,7 @@ class CompanyStatementSetController extends Controller {
foreach ($tmpp as $v) {
$pc[$v['id']]=$v;
}
+
unset($tmpp);
//获取己方公司
$our = [];
@@ -469,12 +470,14 @@ class CompanyStatementSetController extends Controller {
$statement_begin_time = date("Y-m-d",$begintime);
$statement_end_time = date("Y-m-d",$endtime);
$RewardRecord = M("RewardRecord","tab_");
+
foreach($pcList as $k=>$v){
+
if(!isset($pc[$k])){continue;}//不存在的公司不结算
$add_data=[];
//1.获取甲乙方信息
- if($v['first_company_type'] == 1){
+ if($v['first_company_type'] > 0){
//甲方合作
$pc[$v['first_company_id']]['invoice_type'] = $v['invoice_type'];
$pc[$v['first_company_id']]['invoice_content'] = $v['invoice_content'];
@@ -509,8 +512,7 @@ class CompanyStatementSetController extends Controller {
$company_belong = $pc[$add_data['company_id']]['company_belong'];
$add_data['company_belong']=$company_belong;
$add_data['company_type']=$pc[$add_data['company_id']]['company_type'];
-
-
+ if(!isset($v['list'])){continue;}
//游戏统计
foreach($v['list'] as $ke=>$va){
$game =[];
@@ -527,6 +529,7 @@ class CompanyStatementSetController extends Controller {
$tratio1 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);;
$tratio2 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong);
$tratio = $tratio1-$tratio2;
+ if($tratio <= 0){ continue;}
}
if($v['type'] == 2){
@@ -546,7 +549,6 @@ class CompanyStatementSetController extends Controller {
$game['statement_type']=0;
$add_data['statement_info'][] = $game;
}
-
$add_data['platform_amount'] = $add_data['pay_amount'];
if($type < 2){
//非补点计算奖罚
@@ -597,17 +599,17 @@ class CompanyStatementSetController extends Controller {
if($add_data['platform_amount'] <= 0){
return;
}
+ // dd($add_data);
//添加
- if($company_id === false){
+ if($recount && $company_id !== false){
//非重算
- $StatementDb->add($add_data);
- }else{
return $add_data;
}
+ $StatementDb->add($add_data);
}
}
//设定开始结束时间
- protected function setBeginAndEndTime($type,$stime){
+ public function setBeginAndEndTime($type,$stime){
if($type == 0){
$begintime = mktime(0,0,0,date('m',$stime),date('d',$stime)-7,date('Y',$stime));
$endtime = mktime(0,0,0,date('m',$stime),date('d',$stime),date('Y',$stime))-1;
@@ -629,7 +631,7 @@ class CompanyStatementSetController extends Controller {
return [$begintime,$endtime];
}
//获取推广公司推广金额
- protected function getPromoteCompanySpend(&$pcList,$idarr,$begintime,$endtime){
+ public function getPromoteCompanySpend(&$pcList,$idarr,$begintime,$endtime){
$res = [];
//获取推广员
if(count($idarr) == 0){return $res;}
@@ -756,6 +758,7 @@ class CompanyStatementSetController extends Controller {
$v['fine'] = 0;
$v['reward'] = 0;
$v['platform_amount'] = 0;
+ if(!isset($v['list'])){continue;}
foreach($v['list'] as $ke=>$va){
$game =[];
$game['pay_amount'] =$va['pay_amount'];
@@ -765,17 +768,19 @@ class CompanyStatementSetController extends Controller {
$game['game_type_name'] = $this->getGameTypeName($va['relation_game_id']);
if($type == 1){
- $tratio = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);
+ $tratio = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);
}elseif($type == 0){
- $tratio = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong);
+ $tratio = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong);
}else{
//补点
- $tratio1 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);;
- $tratio2 = getGamePromoteCompanyRadio($add_data['company_id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong);
+ $tratio1 = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],true,$company_belong);;
+ $tratio2 = getGamePromoteCompanyRadio($v['id'],$va['relation_game_id'],$endtime,$va['pay_amount'],false,$company_belong);
$tratio = $tratio1-$tratio2;
+ if($tratio <= 0){
+ continue;
+ }
}
-
- if($v['type'] == 2){
+ if($type == 2){
$game['increment_ratio']=$tratio;
}else{
$game['ratio']=$tratio;
@@ -862,57 +867,64 @@ class CompanyStatementSetController extends Controller {
array_multisort($last_names,SORT_DESC,SORT_STRING,$v['statement_info']);
}
}
- if($v['statement_money'] < 300){
- //存未满
- if($lackcompany['pay_amount'] > 0){
- $lask_id = $LackStatement->add($lackcompany);
- $countdata['create_lack_ids'][] =$lask_id;
- $countdata['lack_statement_money'] +=$lackcompany['statement_money'];
- $countdata['lack_platform_amount'] +=$lackcompany['platform_amount'];
- }
+
+ if($type == 2 && $v['statement_money'] == 0){
+ //补点不存
}else{
- if($v['pay_amount'] > 0){
- //存成功配置单号
- $company =[
- "pool_id"=>0,
- "company_id"=>$k,
- "company_type"=>2,
- "company_name"=>$v['partner'],
- "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE),
- "statement_money"=>$v['statement_money'],
- "pay_amount"=>$v['pay_amount'],
- "platform_amount"=>$v['platform_amount'],
- "fine"=>$v['fine'],
- "reward"=>$v['reward'],
- "statement_begin_time"=>$begintime,
- "statement_end_time"=>$endtime,
- "statement_info"=>json_encode($v['statement_info'],JSON_UNESCAPED_UNICODE),
- "statement_num"=>"JS_".date('Ymd').date('His').$v['company_id'].sp_random_string(5)
- ];
- if($v['is_payment'] == 1){
- $company['verify_status'] = 0;
- }else{
- $company['verify_status'] = 2;
+ if($v['statement_money'] < 300){
+ //存未满
+ if($lackcompany['pay_amount'] > 0){
+ $lask_id = $LackStatement->add($lackcompany);
+ $countdata['create_lack_ids'][] =$lask_id;
+ $countdata['lack_statement_money'] +=$lackcompany['statement_money'];
+ $countdata['lack_platform_amount'] +=$lackcompany['platform_amount'];
+ }
+
+ }else{
+ if($v['pay_amount'] > 0){
+ //存成功配置单号
+ $company =[
+ "pool_id"=>0,
+ "company_id"=>$k,
+ "company_type"=>2,
+ "company_name"=>$v['partner'],
+ "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE),
+ "statement_money"=>$v['statement_money'],
+ "pay_amount"=>$v['pay_amount'],
+ "platform_amount"=>$v['platform_amount'],
+ "fine"=>$v['fine'],
+ "reward"=>$v['reward'],
+ "statement_begin_time"=>$begintime,
+ "statement_end_time"=>$endtime,
+ "statement_info"=>json_encode($v['statement_info'],JSON_UNESCAPED_UNICODE),
+ "statement_num"=>"JS_".date('Ymd').date('His').$v['company_id'].sp_random_string(5)
+ ];
+ if($v['is_payment'] == 1){
+ $company['verify_status'] = 0;
+ }else{
+ $company['verify_status'] = 2;
+ }
+ $companyid = $StatementInfo->add($company);
+ $countdata['info_ids'][] =$companyid;
+ $countdata['del_lack_ids'] =array_merge($countdata['del_lack_ids'],$del_lack_ids);
+ $countdata['statement_money'] +=$v['statement_money'];
+ $countdata['pay_amount'] +=$v['pay_amount'];
+ $countdata['platform_amount'] +=$v['platform_amount'];
+ $countdata['fine'] +=$v['fine'];
+ $countdata['reward'] +=$v['reward'];
}
- $companyid = $StatementInfo->add($company);
- $countdata['info_ids'][] =$companyid;
- $countdata['del_lack_ids'] =array_merge($countdata['del_lack_ids'],$del_lack_ids);
- $countdata['statement_money'] +=$v['statement_money'];
- $countdata['pay_amount'] +=$v['pay_amount'];
- $countdata['platform_amount'] +=$v['platform_amount'];
- $countdata['fine'] +=$v['fine'];
- $countdata['reward'] +=$v['reward'];
}
}
}
- $this->savePromotateUserPool($users);
- $this->savePromotateUserPool($user);
+ $this->savePromotateUserPool($users,$type);
+ $this->savePromotateUserPool($user,$type);
}
/**
* 保存信息汇总信息
*/
- protected function savePromotateUserPool($data){
+ public function savePromotateUserPool($data){
if(empty($data['create_lack_ids']) && empty($data['del_lack_ids']) && empty($data['info_ids'])){ return;}
+ if($data['statement_money'] == 0 && $type ==2){ return;}
if($data['statement_money'] == 0){
$data['verify_status'] = 5;
$data['verify_log'] = json_encode(["create_user"=>"system","create_time"=>date("Y-m-d H:i:s"),"verify_user"=>"system","verify_time"=>date("Y-m-d H:i:s"),"payment_user"=>"system","payment_time"=>date("Y-m-d H:i:s")]);
@@ -935,7 +947,7 @@ class CompanyStatementSetController extends Controller {
/**
* 获取公司额为信息
*/
- protected function getCompanyOtherInfo($company_info,$company_id)
+ public function getCompanyOtherInfo($company_info,$company_id)
{
$pl = M("promote_company","tab_")
->alias('pc')
@@ -953,7 +965,7 @@ class CompanyStatementSetController extends Controller {
/**
* 获取游戏分类名称
*/
- protected function getGameTypeName($relation_game_id){
+ public function getGameTypeName($relation_game_id){
return M("Game","tab_")->field("game_type_name")->where("relation_game_id = '{$relation_game_id}'")->find()['game_type_name'];
}
diff --git a/Application/Admin/Controller/ToolController.class.php b/Application/Admin/Controller/ToolController.class.php
index 401824cba..9f997e287 100644
--- a/Application/Admin/Controller/ToolController.class.php
+++ b/Application/Admin/Controller/ToolController.class.php
@@ -919,7 +919,6 @@ class ToolController extends ThinkController {
$this->error('参数异常');
}
}
-
$res = M('company_info', 'tab_')->delete($id);
if ($res === false) {
$this->error('删除失败');
diff --git a/Application/Admin/View/CompanyGameRatio/index.html b/Application/Admin/View/CompanyGameRatio/index.html
index e65d04238..2633ac58a 100644
--- a/Application/Admin/View/CompanyGameRatio/index.html
+++ b/Application/Admin/View/CompanyGameRatio/index.html
@@ -52,8 +52,12 @@
+ + | +公司名称 | +内外团 | +结算周期 | +游戏类型 | +原游戏名称 | +现游戏名称 | +生效时间 | +原比例 | +申请比例 | +创建记录 | +市场部审批 | +管理员审批 | +备注 | +操作 | +|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
aOh! 暂时还没有内容! | +|||||||||||||||
+ + | +{$data.company_name} | +{$data.company_belong} | +{$data.settlement_type} | +{$data.game_type_name} | +{$data.original_package_name} | +{$data.relation_game_name} | +{$data.valid} | +
+
+ {$data.last_turnover_ratio_str}
+
+ |
+
+
+ {$data.turnover_ratio_str}
+
+ |
+
+
+
+ {$data.create}
+
+ |
+
+
+
+ {$data.market}
+
+
+ {$data.market}
+
+ |
+
+
+
+ {$data.admin}
+
+
+ {$data.admin}
+
+ |
+ + {$data.remark} + | +
+ |
+