特殊补点结算功能添加

master
zhengyongxing
parent 250d2ac2c0
commit e6bc6853aa

@ -540,6 +540,50 @@ class AjaxController extends ThinkController{
$this->ajaxReturn($data);
}
/**
*获取下游公司
*/
public function getPromoteCompany()
{
$company_belong = I('company_belong');
if ($company_belong == 1) {
$map['company_belong'] = ['in','1,2'];
} else {
$map['company_belong'] = $company_belong;
}
$data = M('promote_company','tab_')
->field('id, company_name as name,game_ids')
->where(['status' => 1])
->where($map)
->select();
$this->ajaxReturn($data);
}
/**
* 获取下游公司游戏列表
*/
public function getPromoteGameList() {
$game_ids = I('game_ids');
if ($game_ids) {
$map['relation_game_id'] = ['in',$game_ids];
} else {
$this->ajaxReturn([]);
}
$data = M("game","tab_")
->field("relation_game_id,relation_game_name")
->where($map)
->group("relation_game_id")
->select();
$this->ajaxReturn($data);
}
/**
* 操作日志
* option:

@ -98,20 +98,33 @@ class CompanyGameRatioController extends AdminController
$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,-1) settlement_type")
->field("m.*,g.*,p.company_name,p.company_belong,IFNULL(r.settlement_type,-1) settlement_type,group_concat(ratio SEPARATOR '|') ratio,group_concat(begin_time SEPARATOR '|') begin_time,group_concat(end_time SEPARATOR '|') end_time,group_concat(m.turnover_ratio SEPARATOR '|') turnover_ratio,group_concat(m.id SEPARATOR '|') operate_id")
->join("JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id")
->join("JOIN tab_promote_company p ON ( m.company_id = p.id".$pwhere.")")
->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)");
if(isset($params['export'])){
$dbres = $dbres->where($where)->select();
$dbres = $dbres->where($where)->group("company_id,m.relation_game_id")->select();
}else{
$dbres = $dbres->where($where)->page($page, $row)->select();
$dbres = $dbres->where($where)->page($page, $row)->group("company_id,m.relation_game_id")->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']}";
$begin_time = explode('|',$v['begin_time']);
$end_time = explode('|',$v['end_time']);
foreach ($begin_time as $tk => $tv) {
$begintime = date("Y-m-d",$tv);
$endtime = $end_time[$tk] ? date('Y-m-d', $end_time[$tk]) : '永久';
$v["valid"][$tk] = "{$begintime} ~ {$endtime}";
}
// $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'])) {
@ -119,11 +132,17 @@ class CompanyGameRatioController extends AdminController
} else {
$symbol = "<br>";
}
$v['settlement_type'] = $this->SettlementType[$v['settlement_type']];
$this->readTurnoverRatio($v);
$v['oplist'] = $this->OpAuth($v);
$getId = explode('|',$v['operate_id']);
foreach ($getId as $key => $value) {
$v['oplist'][] = $this->OpAuth(['id'=>$value]);
}
}
$this->assign('data', $dbres);
if(isset($_REQUEST['export'])){
$GetData = $_GET;
@ -133,10 +152,14 @@ class CompanyGameRatioController extends AdminController
exit();
}
$count = M("company_game_ratio","tab_")->alias('m')->field("count(m.id) count")
->join("JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id")
->join("JOIN tab_promote_company p ON ( m.company_id = p.id".$pwhere.")")
->where($where)->find()['count'];
$count = M("company_game_ratio","tab_")->alias('m')->field("m.id")
->join("JOIN ({$gameres}) g ON m.relation_game_id = g.relation_game_id")
->join("JOIN tab_promote_company p ON ( m.company_id = p.id".$pwhere.")")
->where($where)
->group("company_id,m.relation_game_id")
->select(false);
$count = M()->table("({$count})a")->count();
$page = set_pagination($count, $row,$params);
if($page) {
@ -413,13 +436,15 @@ class CompanyGameRatioController extends AdminController
"end_time"=>$v['end_time'],
];
$has = $company_game_ratio->where("company_id='{$v['company_id']}' and relation_game_id='{$v['relation_game_id']}'")->find();
if(isset($has['id'])){
$ratiov['id'] = $has['id'];
$company_game_ratio->save($ratiov);
}else{
$company_game_ratio->add($ratiov);
}
$this->companyRatioTimeChange($v['company_id'],$v['relation_game_id'],$v['begin_time'],$v['end_time'],$ratiov);
// $has = $company_game_ratio->where("company_id='{$v['company_id']}' and relation_game_id='{$v['relation_game_id']}' and begin_time={$v['begin_time']} and end_time={$v['end_time']}")->find();
// if(isset($has['id'])){
// $ratiov['id'] = $has['id'];
// $company_game_ratio->save($ratiov);
// }else{
// $company_game_ratio->add($ratiov);
// }
//
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('lists')]);
}
@ -429,6 +454,106 @@ class CompanyGameRatioController extends AdminController
));
}
public function companyRatioTimeChange($company_id = 0, $relation_game_id = 0, $begin_time = 0, $end_time = 0,$ratiov=[]) {
if (!$company_id || !$relation_game_id) {
$this->error("公司与游戏的参数错误.");
}
$check_data = M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$begin_time,'end_time'=>$end_time])
->find();
if ($check_data) {
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$begin_time,'end_time'=>$end_time])
->save($ratiov);
return;
}
M("company_game_ratio","tab_")
// ->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>['egt',$begin_time],'end_time'=>['elt',$end_time]])
->where("company_id={$company_id} and relation_game_id={$relation_game_id} and begin_time>={$begin_time} and end_time <= {$end_time} and end_time!=0")
->delete();
$data = M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id])
->select();
foreach($data as $key => $value) {
if ($value['begin_time'] > $begin_time) {
if ($value['begin_time'] >= $end_time && $value['end_time']!=0) {
continue;
}
if ($end_time > $value['begin_time'] && ($end_time < $value['end_time']||$value['end_time']==0)) {
// $value['begin_time'] = $end_time;
// M("company_game_ratio","tab_")->save($value);
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['begin_time'=>$end_time+1]);
} else if ($end_time > $value['begin_time'] && ($end_time >= $value['end_time']&&$value['end_time']!=0)) {
// $value['begin_time'] = $begin_time;
// $value['end_time'] = $end_time;
// M("company_game_ratio","tab_")->save($value);
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['begin_time'=>$begin_time,'end_time'=>$end_time]);
}
} else if ($value['begin_time'] <= $begin_time) {
if ($begin_time >= $value['end_time']&& $value['end_time']!=0) {
continue;
}
if ($begin_time > $value['begin_time'] && ($end_time >= $value['end_time'] && $value['end_time']!=0)) {
// $value['end_time'] = $begin_time;
// M("company_game_ratio","tab_")->save($value);
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['end_time'=>$begin_time-1]);
} else if ($begin_time > $value['begin_time'] && ($end_time < $value['end_time']||$value['end_time']==0)) {
// $value['end_time'] = $begin_time;
// M("company_game_ratio","tab_")->save($value);
// dump(2);die();
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['end_time'=>$begin_time-1]);
$dataValue = $value;
$dataValue['begin_time'] = $end_time+1;
unset($dataValue['id']);
M("company_game_ratio","tab_")->add($dataValue);
} else if ($begin_time == $value['begin_time'] && ($end_time < $value['end_time']||$value['end_time']==0)) {
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['begin_time'=>$end_time+1]);
} else if ($end_time == $value['end_time']&&$begin_time>$value['begin_time']) {
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['end_time'=>$begin_time-1]);
} else if ($end_time == $value['end_time']&&$begin_time == $value['begin_time']) {
// $value['begin_time'] = $begin_time;
// $value['end_time'] = $end_time;
M("company_game_ratio","tab_")
->where(['company_id'=>$company_id,'relation_game_id'=>$relation_game_id,'begin_time'=>$value['begin_time'],'end_time'=>$value['end_time']])
->save(['begin_time'=>$begin_time,'end_time'=>$end_time]);
}
}
}
M("company_game_ratio","tab_")->add($ratiov);
}
public function addRatio()
{
if ($_POST) {
@ -457,9 +582,11 @@ class CompanyGameRatioController extends AdminController
$this->getOldRatio($save);
//判断已有未审核
$where = [
"relation_game_id"=>$save['company_id'],
"relation_game_id"=>$save['relation_game_id'],
"company_id"=>$save['company_id'],
"status"=>["LT",2]//管理员未确认
"status"=>["LT",2],//管理员未确认
"begin_time"=>$save['begin_time'],
"end_time"=>$save['end_time']
];
$hasdb = M("company_game_ratio_log","tab_")->field("count(id) count")->where($where)->find()['count'];
if($hasdb > 0){
@ -478,6 +605,66 @@ class CompanyGameRatioController extends AdminController
}
}
public function edit()
{
if ($_POST) {
$params = I('post.');
if(!isset($params['id'])){
$this->error('参数错误');
}
if (empty($params['begin_time'])) {
$this->error('请选择开始时间');
}
if (!empty($params['end_time'])) {
if (strtotime($params['end_time']) < strtotime($params['begin_time'])) {
$this->error('结束时间不得小于开始时间');
}
}
if (!isset($params['ratio']) || $params['ratio'] === '') {
$this->error('默认分成比例不能为空');
}
//查询
$y = M("company_game_ratio_log","tab_")->where("id='{$params['id']}'")->find();
$save['turnover_ratio'] = $this->setTurnoverRatio($params);
$save['ratio'] = $params['ratio'] ?? 0;
$save['last_turnover_ratio'] = $params['last_turnover_ratio'];
$save['last_ratio'] = $params['last_ratio'];
$save['relation_game_id'] = $params['relation_game_id'] ?? 0;
$save['company_id'] = $params['company_id'] ?? 0;
$save['begin_time'] = strtotime($params['begin_time']);
$save['end_time'] = $params['end_time'] ? strtotime($params['end_time'])+86399 : 0;
$save['remark'] = $params['remark'] ?? '';
$save['status'] = 0;
$save['verify_log']=json_encode(["create_user"=>$this->admininfo["username"],"create_time"=>date("Y-m-d H:i:s")]);
if($y['ratio'] != $save['ratio'] || $y['turnover_ratio'] != $save['turnover_ratio'] || $y['begin_time'] != $save['begin_time'] || $y['end_time'] != $save['end_time']){
$save['status'] = 0;
$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_")->add($save);
addOperationLog(['op_type'=>1,'key'=>$params['id'],'op_name'=>'修改','url'=>U('index')]);
$this->ajaxReturn(["msg"=>"修改申请提交成功","code"=>1,"url"=>U("index")]);
} else {
$params = I('get.');
$id = $params['id'] ?? 0;
$id = intval($id);
$map['m.id'] = $id;
$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")->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")
->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")
->where($map)
->find();
$dbres['turnover_ratio'] = $dbres['turnover_ratio'] ? json_decode($dbres['turnover_ratio'], true) : $dbres['turnover_ratio'];
$dbres['begin_time'] = date("Y-m-d",$dbres['begin_time']);
$dbres['end_time'] = empty($dbres['end_time']) ? '' :date("Y-m-d",$dbres['end_time']);
$this->assign('data', $dbres);
$this->display();
}
}
public function editRatio()
{
if ($_POST) {
@ -595,7 +782,7 @@ class CompanyGameRatioController extends AdminController
];
//操作对应菜单
if(!isset($info['status'])){
$optist = ["delGameRatio"];
$optist = ["editRatio","delGameRatio"];
}else{
if($info['status'] == 2){
$optist = [];
@ -742,28 +929,65 @@ class CompanyGameRatioController extends AdminController
$company_id = implode(",",$company_id);
return $company_id;
}
//设置比例阶梯
protected function readTurnoverRatio(&$v){
$turnover_ratio = json_decode($v['turnover_ratio'],true);
$v['turnover_ratio'] = array(
array("ratio"=>$v['ratio']."%","name"=>"默认比例")
);
foreach($turnover_ratio as $ke=>$va){
$t=array("ratio"=>$va["ratio"]."%");
if(array_key_exists("instanceof",$va)){
//存在
if($va['instanceof']=='1'){
$t['name']="月流水≥".$va['turnover'];
// //设置比例阶梯
// protected function readTurnoverRatio(&$v){
// $turnover_ratio = json_decode($v['turnover_ratio'],true);
// $v['turnover_ratio'] = array(
// array("ratio"=>$v['ratio']."%","name"=>"默认比例")
// );
//
// foreach($turnover_ratio as $ke=>$va){
// $t=array("ratio"=>$va["ratio"]."%");
// if(array_key_exists("instanceof",$va)){
// //存在
// if($va['instanceof']=='1'){
// $t['name']="月流水≥".$va['turnover'];
// }else{
// $t['name']="月流水>".$va['turnover'];
// }
// }else{
// $t['name']="月流水≥".$va['turnover'];
// }
// $v['turnover_ratio'][]=$t;
// }
// $v['row'] = count($v['turnover_ratio']);
// }
//设置比例阶梯
protected function readTurnoverRatio(&$v){
$radio = explode('|',$v['ratio']);
$turnover_ratio = explode('|',$v['turnover_ratio']);
$sec_row = 1;
foreach ($radio as $key => $value) {
$turnoverratio = json_decode($turnover_ratio[$key],true);
$v['turnover_ratios'][$key] = array(
array("ratio"=>$value."%","name"=>"默认比例")
);
foreach($turnoverratio as $ke=>$va){
$t=array("ratio"=>$va["ratio"]."%");
if(array_key_exists("instanceof",$va)){
//存在
if($va['instanceof']=='1'){
$t['name']="月流水≥".$va['turnover'];
}else{
$t['name']="月流水>".$va['turnover'];
}
}else{
$t['name']="月流水>".$va['turnover'];
$t['name']="月流水".$va['turnover'];
}
}else{
$t['name']="月流水≥".$va['turnover'];
$sec_row++;
$v['turnover_ratios'][$key][]=$t;
}
$v['turnover_ratio'][]=$t;
$v['sec_row'][$key] = $sec_row;
$sec_row = 1;
}
$v['row'] = count($v['turnover_ratio']);
$v['row'] = array_sum($v['sec_row']);
}

@ -866,8 +866,329 @@ class CompanyStatementController extends ThinkController
$this->ajaxReturn(array("success"=>"ok","data"=>[]));
}
public function viewSpecialComplement() {
$this->display();
}
public function addSpecialComplement() {
$map = [];
$radioMap = [];
$relation_game_id = implode(',',$_REQUEST['relation_game_id']);
$relation_game_data = $_REQUEST['relation_game_id'];
if ($_REQUEST['relation_game_id']) {
$relation_game_id = implode(',',$_REQUEST['relation_game_id']);
$map['relation_game_id'] = ['in',$relation_game_id];
$radioMap['tab_company_game_ratio.relation_game_id'] = ['in',$relation_game_id];
}
if ($_REQUEST['company_id']) {
$promote_id = M("promote","tab_")
->field("id")
->where(['company_id'=>$_REQUEST['company_id']])
->select();
if ($promote_id) {
$map['promote_id'] = ['in',array_column($promote_id,'id')];
} else {
$map['promote_id'] = '-1';
}
$radioMap['company_id'] = $_REQUEST['company_id'];
}
$start_time = strtotime($_REQUEST['time_start']);
$end_time = strtotime($_REQUEST['time_end']) + 86399;
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
$map['payed_time'] = ['between', [$start_time, $end_time]];
$radioMap['_string'] = "(begin_time>{$start_time} and begin_time<{$end_time})
or (end_time>{$start_time} and (end_time<{$end_time} and end_time!=0)) or (begin_time<{$start_time} and end_time>{$end_time})";
} elseif (isset($_REQUEST['time_start'])) {
$map['payed_time'] = ['GT', $start_time];
$radioMap['_string'] = "end_time > {$start_time}";
} elseif (isset($_REQUEST['time_end'])) {
$map['payed_time'] = ['LT', $end_time];
$radioMap['_string'] = "start_time < {$end_time}";
}
$map['tab_spend.pay_status'] = 1;
$map['pay_way'] = ['egt',1];
$data = M("spend","tab_")
->field("pay_amount,relation_game_id,relation_game_name,payed_time")
->join("left join tab_game game on tab_spend.game_id=game.id")
->where($map)
->select(false);
//默认游戏模板比例
$gameRatioMould = M("game_ratio_mould","tab_")
->field("ratio,turnover_ratio,relation_game_id")
->where(['relation_game_id'=>['in',$relation_game_id],'company_belong'=>$_REQUEST['company_type']])
->select();
//各个游戏的模板比例
$handleRadioMould = [];
foreach($gameRatioMould as $key => $value) {
$handleRadioMould[$value['relation_game_id']]['ratio'] = $value['ratio'];
$handleRadioMould[$value['relation_game_id']]['turnover_ratio'] = $value['turnover_ratio'];
}
$game_data = M("game","tab_")->field("relation_game_id,relation_game_name")->group("relation_game_id")->select(false);
$radioData = M("company_game_ratio","tab_")
->field("tab_company_game_ratio.*,game.relation_game_name")
->join("left join ({$game_data}) game on tab_company_game_ratio.relation_game_id=game.relation_game_id")
->where($radioMap)
->order("begin_time ASC")
->select();
$handleRadioData = [];
foreach($radioData as $key => $value) {
$handleRadioData[$value['relation_game_id']] = $value['relation_game_name'];
}
$companyData = M("promote_company","tab_")
->field("company_name")
->where(['id'=>$_REQUEST['company_id']])
->find();
$num = 0;
$handleData = [];
foreach ($relation_game_data as $rkey => $rvalue) {
if (!$handleRadioData[$rvalue]) {
$game_name = M("game","tab_")
->field("relation_game_id,relation_game_name")
->where(['relation_game_id'=>['in',$rvalue]])
->find();
$handleData[$_REQUEST['company_id']]['company_id'] = $_REQUEST['company_id'];
$handleData[$_REQUEST['company_id']]['company_name'] = $companyData['company_name'];
$handleData[$_REQUEST['company_id']]['begin_time'][] = strtotime(I('time_start'));
$handleData[$_REQUEST['company_id']]['end_time'][] = strtotime(I('time_end')) + 86399;
$handleData[$_REQUEST['company_id']]['relation_game_id'][] = $rvalue;
$handleData[$_REQUEST['company_id']]['relation_game_name'][] = $game_name['relation_game_name'];
$handleData[$_REQUEST['company_id']]['ratio'][] = $handleRadioMould[$value['relation_game_id']]['ratio']?$handleRadioMould[$value['relation_game_id']]['ratio']:0;
$handleData[$_REQUEST['company_id']]['turnover_ratio'][] = $handleRadioMould[$value['relation_game_id']]['turnover_ratio'];
}
}
foreach ($radioData as $key => $value) {
if (strtotime(I('time_start')) <= $value['begin_time']) {
$handleData[$_REQUEST['company_id']]['begin_time'][] = $value['begin_time'];
} else {
$handleData[$_REQUEST['company_id']]['begin_time'][] = strtotime(I('time_start'));
}
if (strtotime(I('time_end')) > $value['end_time'] && $value['end_time']!=0) {
$handleData[$_REQUEST['company_id']]['end_time'][] = $value['end_time'];
} else {
$handleData[$_REQUEST['company_id']]['end_time'][] = strtotime(I('time_end')) + 86399;
}
$handleData[$_REQUEST['company_id']]['company_id'] = $_REQUEST['company_id'];
$handleData[$_REQUEST['company_id']]['company_name'] = $companyData['company_name'];
$handleData[$_REQUEST['company_id']]['relation_game_id'][] = $value['relation_game_id'];
$handleData[$_REQUEST['company_id']]['relation_game_name'][] = $value['relation_game_name'];
$handleData[$_REQUEST['company_id']]['ratio'][] = $value['ratio'];
$handleData[$_REQUEST['company_id']]['turnover_ratio'][] = $value['turnover_ratio'];
$num++;
//如果结算时间小于比例开始时间
if ($key == 0) {
if (strtotime(I('time_start')) < $value['begin_time']) {
$handleData[$_REQUEST['company_id']]['company_id'] = $_REQUEST['company_id'];
$handleData[$_REQUEST['company_id']]['company_name'] = $companyData['company_name'];
$handleData[$_REQUEST['company_id']]['begin_time'][] = strtotime(I('time_start'));
$handleData[$_REQUEST['company_id']]['end_time'][] = $value['begin_time']-1;
$handleData[$_REQUEST['company_id']]['relation_game_id'][] = $value['relation_game_id'];
$handleData[$_REQUEST['company_id']]['relation_game_name'][] = $value['relation_game_name'];
$handleData[$_REQUEST['company_id']]['ratio'][] = $gameRatioMould['ratio']?$gameRatioMould['ratio']:0;
$handleData[$_REQUEST['company_id']]['turnover_ratio'][] = $gameRatioMould['turnover_ratio'];
}
}
if(!$radioData[$key+1]) {
if (strtotime(I('time_end')) > $value['end_time'] && $value['end_time']!=0) {
$handleData[$_REQUEST['company_id']]['company_id'] = $_REQUEST['company_id'];
$handleData[$_REQUEST['company_id']]['company_name'] = $companyData['company_name'];
$handleData[$_REQUEST['company_id']]['begin_time'][] = $value['end_time'] + 1;
$handleData[$_REQUEST['company_id']]['end_time'][] = strtotime(I('time_end'))-86399;
$handleData[$_REQUEST['company_id']]['relation_game_id'][] = $value['relation_game_id'];
$handleData[$_REQUEST['company_id']]['relation_game_name'][] = $value['relation_game_name'];
$handleData[$_REQUEST['company_id']]['ratio'][] = $gameRatioMould['ratio']?$gameRatioMould['ratio']:0;
$handleData[$_REQUEST['company_id']]['turnover_ratio'][] = $gameRatioMould['turnover_ratio'];
}
}
//如果结算时间中有时间段间隔
if ($radioData[$key+1]) {
if ($radioData[$key+1]['begin_time'] != ($value['end_time']+1)) {
$handleData[$_REQUEST['company_id']]['company_id'] = $_REQUEST['company_id'];
$handleData[$_REQUEST['company_id']]['company_name'] = $companyData['company_name'];
$handleData[$_REQUEST['company_id']]['begin_time'][] = $value['end_time'] + 1;
$handleData[$_REQUEST['company_id']]['end_time'][] = $radioData[$key+1]['begin_time'] - 1;
$handleData[$_REQUEST['company_id']]['relation_game_id'][] = $value['relation_game_id'];
$handleData[$_REQUEST['company_id']]['relation_game_name'][] = $value['relation_game_name'];
$handleData[$_REQUEST['company_id']]['ratio'][] = $gameRatioMould['ratio']?$gameRatioMould['ratio']:0;
$handleData[$_REQUEST['company_id']]['turnover_ratio'][] = $gameRatioMould['turnover_ratio'];
}
}
}
// dump($handleData);die();
foreach ($handleData as $key => $value) {
$handleData[$key]['row'] = 0;
$timeArr = $value['begin_time'];
foreach ($timeArr as $k => $v) {
$handleData[$key]['row']++;
$turnover_ratio = json_decode($value['turnover_ratio'][$k],true);
$amount_time['_string'] = "payed_time between {$value['begin_time'][$k]} and {$value['end_time'][$k]} and relation_game_id={$value['relation_game_id'][$k]}";
$pay_amount = M()->table("({$data})a")
->field("sum(pay_amount) pay_amount")
->where($amount_time)
->find();
$handleData[$key]['pay_amount'][$k] = $pay_amount['pay_amount']?$pay_amount['pay_amount']:0;
$handleData[$key]['withdraw_amount'][$k] = number_format($pay_amount['pay_amount'] * (((int)$value['ratio'][$k])/100),2,'.','');
foreach($turnover_ratio as $ke=>$va){
if(array_key_exists("instanceof",$va)){
//存在
if($va['instanceof']=='1'&&$pay_amount['pay_amount']>=$va['turnover']){
$handleData[$key]['ratio'] = $va["ratio"];
$handleData[$key]['withdraw_amount'][$k] = number_format($pay_amount['pay_amount'] * ($va["ratio"]/100),2,'.','');
}elseif($pay_amount['pay_amount']>$va['turnover']){
$handleData[$key]['ratio'] = $va["ratio"];
$handleData[$key]['withdraw_amount'][$k] = number_format($pay_amount['pay_amount'] * ($va["ratio"]/100),2,'.','');
}
}else{
if ($pay_amount['pay_amount']>=$va['turnover']) {
$handleData[$key]['ratio'] = $va["ratio"];
$handleData[$key]['withdraw_amount'][$k] = number_format($pay_amount['pay_amount'] * ($va["ratio"]/100),2,'.','');
}
}
}
$handleData[$key]['begin_time'][$k] = date("Y.m.d",$value['begin_time'][$k]);
$handleData[$key]['end_time'][$k] = date("Y.m.d",$value['end_time'][$k]);
}
}
$this->ajaxReturn(['status'=>1,'data'=>$handleData]);
}
public function addSpecialComplementPost( ) {
$data = json_decode($_REQUEST['data'],true);
$withdraw_type = 3;
foreach ($data as $key => $value) {
$company_data = M("promote_company","tab_")->where(['id'=>$value['company_id']])->find();
$company_type = M("company_relation","tab_")->where("first_company_id={$value['company_id']} or second_company_id={$value['company_id']}")->find();
$insert['is_payment'] = $company_type['is_payment'];
$insert['statement_begin_time'] = $value['statement_begin_time'];
$insert['statement_end_time'] = $value['statement_end_time'];
$insert['withdraw_type'] = $withdraw_type;
$insert['company_belong'] = $company_data['company_belong'];
$insert['company_name'] = $company_data['company_name'];
$insert['company_id'] = $value['company_id'];
$insert['company_type'] = $value['company_type'];
$proCompany_info['id'] = $company_data['id'];
$proCompany_info['partner'] =$company_data['company_name'];
$proCompany_info['link_man'] = $company_data['settlement_contact'];
$proCompany_info['link_phone'] =$company_data['contact_phone'];
$proCompany_info['address'] = $company_data['address'];
$proCompany_info['payee_name'] =$company_data['company_name'];
$proCompany_info['bank_account'] = $company_data['bank_card'];
$proCompany_info['opening_bank'] =$company_data['bank_name'];
$proCompany_info['fax_ratio'] = $company_data['fax_ratio'];
$proCompany_info['taxation_rate'] = $company_data['taxation_rate'];
$proCompany_info['company_belong'] = $company_data['company_belong'];
$proCompany_info['company_type'] =$company_data['company_type'];
$proCompany_info['ali_user'] = $company_data['ali_user'];
$proCompany_info['ali_account'] =$company_data['ali_account'];
$proCompany_info['has_server_fee'] = $company_data['has_server_fee'];
$proCompany_info['server_fee'] =$company_data['server_fee'];
$proCompany_info['has_ratio'] = $company_data['has_ratio'];
$proCompany_info['turnover_ratio'] =$company_data['turnover_ratio'];
$proCompany_info['invoice_type'] = $company_type['invoice_type'];
$proCompany_info['invoice_content'] = $company_type['invoice_content'];
if ($company_type['first_company_id'] == $value['company_id']) {
$weCompany = M("company_info","tab_")->where(['id'=>$company_type['second_company_id']])->find();
} elseif ($company_type['second_company_id'] == $value['company_id']) {
$weCompany = M("company_info","tab_")->where(['id'=>$company_type['first_company_id']])->find();
}
$secord_info['id'] = $weCompany['id'];
$secord_info['partner'] =$weCompany['company_name'];
$secord_info['link_man'] = $weCompany['link_man'];
$secord_info['link_phone'] =$weCompany['link_phone'];
$secord_info['address'] = $weCompany['address'];
$secord_info['company_tax_no'] = $weCompany['company_tax_no'];
$secord_info['payee_name'] =$weCompany['payee_name'];
$secord_info['bank_account'] = $weCompany['bank_account'];
$secord_info['opening_bank'] =$weCompany['opening_bank'];
$secord_info['invoice_type'] = $company_type['invoice_type'];
$secord_info['invoice_content'] = $company_type['invoice_content'];
$statement_info =$value['statement_info'];
$pay_amount = 0;
$statement_money = 0;
foreach($statement_info as $k => $v) {
$pay_amount += $v['pay_amount'];
$statement_money += $v['sum_money'];
}
$insert['pay_amount'] = $pay_amount;
$insert['platform_amount'] = $pay_amount;
$insert['statement_money'] = $statement_money;
if ($company_type['first_company_id'] == $value['company_id']) {
} elseif ($company_type['second_company_id'] == $value['company_id']) {
}
}
dump($data);
}
public function OpAuth($info)
{
@ -929,6 +1250,7 @@ class CompanyStatementController extends ThinkController
"export"=>"<a class='butn' id='export'>批量导出</a>",
"updateNewStatement"=>"<a class='butn' id='updateNewStatement' style='background-color: green;'>新增结算</a>",
"launch"=>"<a class='butn' id='launch'>对外发起</a>",
"specialComplement"=>"<a class='butn' id='specialComplement'>特殊补点</a>",
];
$resarr = [];
foreach ($mentBtn as $k => $v) {

@ -0,0 +1,441 @@
<extend name="Public/base" />
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<link href="__STATIC__/icons_alibaba/iconfont.css" rel="stylesheet">
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript" src="__STATIC__/provincecityarea/AreaData_min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.tabcon1711 input.time {
width: 150px;
}
#form .txt_area {
width: 300px;
height: 150px;
}
.tabcon1711 .form_unit {
margin-left: 2px;
}
.tabcon1711 .mustmark {
margin-left:-7px;
}
.list-ratio {
display: table;
}
.list-ratio .li-ratio {
display: flex;
margin-bottom: 20px;
align-items: center;
}
.list-ratio .li-ratio .turnover, .list-ratio .li-ratio .turnover-ratio {
position: relative;
}
.list-ratio .li-ratio .turnover span, .list-ratio .li-ratio .turnover-ratio .error-message {
color: red;
position: absolute;
left: 0;
top: 30px;
white-space: nowrap;
display: none;
}
.iconfont-btn {
cursor: pointer;
}
.iconfont-style {
font-size: 18px;
color: #fff;
border-radius: 4px;
border: 0;
padding: 5px;
margin-left: 10px;
}
.iconfont-selected {
background-color: #0A9AF2;
}
.iconfont-selected:hover {
background-color: #03a9f4;
}
.iconfont-unselected {
background-color: #999;
}
.iconfont-unselected:hover {
background-color: #ababab;
}
input[type=number]{
padding: 4px 6px;
font-size: 12px;
line-height: 20px;
color: #555;
vertical-align: middle;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
background-color: #fff;
border: 1px solid #ccc;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
-webkit-transition: border linear .2s, box-shadow linear .2s;
-moz-transition: border linear .2s, box-shadow linear .2s;
-o-transition: border linear .2s, box-shadow linear .2s;
transition: border linear .2s, box-shadow linear .2s;
}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">特殊比例申请修改</h3>
<p class="description_text" style="color: red;">说明:除了备注其他项的修改将会重走审批流程,若不需要修改请点击返回</p>
</div>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="form" action="{:U('edit')}" method="post" class="form-horizontal">
<!-- 基础文档模型 -->
<div id="tab1" class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">推广公司:</td>
<td class="r table_radio">
<input name="company_id" value="{$data.company_id}" style="display: none"/>
<input name="relation_game_id" value="{$data.relation_game_id}" style="display: none"/>
<input name="last_ratio" value="{$data.ratio}" style="display: none"/>
<input name="last_turnover_ratio" value="{$data.turnover_ratio}" style="display: none"/>
<span class="form_radio table_btn">{$data.company_name}</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">现包名:</td>
<td class="r table_radio">
<span class="form_radio table_btn">{$data.relation_game_name}</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">原包名:</td>
<td class="r table_radio">
<span class="form_radio table_btn">{$data.original_package_name}</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>分成比例设定:</td>
<td class="r table_radio">
<label>默认分成比例:</label>
<input type="number" class="txt ratio" name="ratio" id="ratio" value="{$data.ratio|default='0.00'}" placeholder="" οninput="value=value.replace(/[^\w\.\/]/ig, '')" style="width: 60px;float: left;">
<span class="form_unit">%</span>
<span class="notice-text">当前需要修改成的分成比例</span>
</td>
</tr>
<tr><td style="height: 10px;"></td></tr>
<tr>
<td class="l"></td>
<td class="r table_radio">
<div class="list-ratio">
<div class="li-ratio">
<label class="instanceof_text" style="margin-right: 10px;">流水分成设定:</label>
<span class="iconfont-btn iconfont-btn-add" title="添加流水比例"><i class="iconfont-style iconfont-selected iconfont iconjiahao1"></i></span>
<span class="iconfont-btn iconfont-btn-del" title="删除流水比例"><i class="iconfont-style iconfont-selected iconfont iconjianhao"></i></span>
</div>
<volist name="data['turnover_ratio']" key="key" id="vo">
<div class="li-ratio">
<label class="instanceof_text" style="margin-right: 10px;">月流水</label>
<select name="instanceof[]" style="width: 50px;margin-right: 10px;">
<option value="1" <if condition="empty($vo['instanceof']) or $vo['instanceof'] eq 1">selected</if>>≥</option>
<option value="2" <if condition="!empty($vo['instanceof']) and $vo['instanceof'] eq 2">selected</if>>></option>
</select>
<div class="turnover">
<input type="text" class="txt turnover_money" name="turnover[]" value="{$vo['turnover']|default=''}" placeholder="" onKeyUp="value=value.replace(/[^\w\.\/]/ig,'')" style="width: 100px;margin-right: 10px;">
<span class="error-message"></span>
</div>
<label>分成比例:</label>
<div class="turnover-ratio">
<input type="text" class="txt turnover_ratio" name="turnover_ratio[]" value="{$vo['ratio']|default=''}" placeholder="" onKeyUp="value=value.replace(/[^\w\.\/]/ig,'')" style="width: 60px;">
<span class="form_unit" style="margin-right: 10px;">%</span>
<span class="error-message"></span>
</div>
</div>
</volist>
</div>
<span class="notice-text" style="width: auto;"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>生效期限:</td>
<td class="r table_radio">
<div style="float: left;">
<span>{$data.begin_time}</span>
<input type="text" class="txt time" name="begin_time" id="begin_time" placeholder="开始时间" value="{$data.begin_time}" style="display: none">
-
<input type="text" class="txt time" name="end_time" id="end_time" placeholder="结束时间" value="{$data.end_time}" style="display: none">
<span>{$data.end_time}</span>
</div>
<span class="notice-text">结束时间不填则默认永久。</span>
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r table_radio">
<textarea type="text" name="remark" id="remark" class="txt_area">{$data.remark}</textarea>
<span class="notice-text"></span>
</td>
</tr>
</tbody>
</table>
</div>
<input type="hidden" name="id" id="id" value="{$data['id']|default=''}" />
<div class="form-item cf">
<button class="submit_btn mlspacing" id="submit" type="submit" target-form="form-horizontal">
保存
</button>
<a class="submit_btn " alt="返回上一页" title="返回上一页" href="javascript:window.history.back();" >
返回
</a>
</div>
</form>
</div>
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="Promote/lists/type/1">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script src="__STATIC__/czinputcheck.js?v=1.29" type="text/javascript"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('index')}");
$(".select_gallery").select2();
$(function(){
$('.time').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
var promoteGameRatioData = {};
promoteGameRatioData.ratio = '0.00';
promoteGameRatioData.begin_time = '';
promoteGameRatioData.end_time = '';
promoteGameRatioData.remark = '';
$('#ratio, #begin_time, #end_time, #remark').change(function () {
var val = $(this).val();
var elementIdName = $(this).attr('id');
promoteGameRatioData[elementIdName] = val;
});
subevn();
function subevn(){
$('#submit').off("click");
$('#submit').click(function (e) {
//查看是否报错
var flag = true;
var obj = {
"ratio":["number","默认比例必须是大于0的数字"],
"begin_time":["date","开始时间不能为空"],
"end_time":["nocheck"],
"remark":["nocheck",'',"textarea"]
}
var cres = CIC.checkAddInput(obj);
if(!cres){
return false;
}
if(cres.ratio > 100){
layer.msg("默认比例不能大于100", {icon: 2});
return false;
}
$(".error-message").each(function(index,elm){
var t = $(elm).css("display");
if(t == 'block' || t == 'inline'){
flag = false;
layer.msg("请先处理错误的比例配置", {icon: 2});
return false;
}
})
$(".turnover_money").each(function(index,elm){
var t = $(elm).val();
if(t == ''){
flag = false;
layer.msg("流水及比例不允许为空", {icon: 2});
return false;
}
})
if(!flag){
return false;
}
var target = $('form').get(0).action;
var query = $('form').serialize();
var that = this;
$(that).addClass('disabled').attr('autocomplete','off').prop('disabled',true);
$.post(target,query).success(function(data){
if(layer) {layer.closeAll('loading');}
if (data.code==1) {
if (data.url) {
updateAlert(data.msg + ' 页面即将自动跳转~');
}else{
updateAlert(data.msg);
}
setTimeout(function(){
$(that).removeClass('disabled').prop('disabled',false);
if (data.url) {
location.href=data.url;
}else if( $(that).hasClass('no-refresh')){
$('#tip').find('.tipclose').click();
}else{
location.reload();
}
},1500);
}else{
$(that).removeClass('disabled').prop('disabled',false);
layer.msg(data.msg,{icon: 2});
}
});
});
}
$('.iconfont-btn-add').click(function (e) {
var delBtn = $('.iconfont-btn-del');
var html = '';
html += '<div class="li-ratio">';
html += '<label class="instanceof_text">月流水:</label>';
html += '<select name="instanceof[]" style="width: 50px;margin-right: 10px;">';
html += '<option value="1"></option>';
html += '<option value="2">></option>';
html += '</select>';
html += '<div class="turnover">';
html += '<input type="text" class="txt turnover_money" name="turnover[]" value="" placeholder="请输入金额" onKeyUp="value=value.replace(/[^\\w\\.\\/]/ig, \'\')" style="width: 100px;margin-right: 10px;">';
html += '<span class="error-message"></span>';
html += '</div>';
html += '<label>分成比例:</label>';
html += '<div class="turnover-ratio">';
html += '<input type="text" class="txt turnover_ratio" name="turnover_ratio[]" value="" placeholder="请输入比例" onKeyUp="value=value.replace(/[^\\w\\.\\/]/ig, \'\')" style="width: 60px;">';
html += '<span class="form_unit" style="margin-right: 10px;">%</span>';
html += '<span class="error-message"></span>';
html += '</div>';
html += '</div>';
$('.list-ratio').append(html);
subevn();
if ($('.list-ratio').children().length > 1 && delBtn.children('i').hasClass('iconfont-unselected')) {
delBtn.children('i').removeClass('iconfont-unselected');
delBtn.children('i').addClass('iconfont-selected');
}
$('.list-ratio').children(':last-child').children('.turnover').children('input').change(function (e) {
turnoverChangeHandle();
});
$('.list-ratio').children(':last-child').children('.turnover-ratio').children('input').change(function (e) {
turnoverRatioChangeHandle();
});
});
$('.list-ratio').children('.li-ratio').children('.turnover').children('input').change(function (e) {
turnoverChangeHandle();
});
$('.list-ratio').children('.li-ratio').children('.turnover-ratio').children('input').change(function (e) {
turnoverRatioChangeHandle();
});
function turnoverChangeHandle()
{
$('.list-ratio').children('.li-ratio').children('.turnover').children('input').each(function () {
var that = $(this);
var thatLiRatio = that.parent().parent();
var thatLiRatioIndex = thatLiRatio.index();
var prevTurnover = 0;
var prev = thatLiRatio.prev().children().children('input');
var thatTurnover = parseFloat(that.val());
if (thatLiRatioIndex > 0) {
prevTurnover = parseFloat(prev.val());
prevTurnoverHandle(thatTurnover, prevTurnover, that);
}
});
}
function turnoverRatioChangeHandle() {
var ratio = parseFloat($('#ratio').val());
$('.list-ratio').children('.li-ratio').children('.turnover-ratio').children('input').each(function () {
var that = $(this);
var thatLiRatio = that.parent().parent();
var thatLiRatioIndex = thatLiRatio.index();
var thatTurnoverRatio = parseFloat(that.val());
if (thatLiRatioIndex === 1) {
prevTurnoverRatio = ratio;
prevTurnoverRatioHandle(thatTurnoverRatio, prevTurnoverRatio, that, true);
} else {
var prev = thatLiRatio.prev().children('.turnover-ratio').children('input');
var prevTurnoverRatio = parseFloat(prev.val());
prevTurnoverRatioHandle(thatTurnoverRatio, prevTurnoverRatio, that);
}
});
}
function prevTurnoverHandle(thatTurnover, prevTurnover, that)
{
if (thatTurnover <= prevTurnover) {
that.parent().children('span').text('月流水必须大于上一个月流水');
that.parent().children('span').show();
} else {
that.parent().children('span').hide();
}
return true;
}
function prevTurnoverRatioHandle(thatTurnoverRatio, prevTurnoverRatio, that, isDefault = false)
{
// if (thatTurnoverRatio <= prevTurnoverRatio) {
// var msg = isDefault ? '月流水分成比例必须大于默认分成比例' : '月流水分成比例必须大于上一个月流水分成比例';
// that.parent().children('.error-message').text(msg);
// that.parent().children('.error-message').show();
// } else {
// that.parent().children('.error-message').hide();
// }
return true;
}
$('.iconfont-btn-del').click(function (e) {
var that = $(this);
if ($('.list-ratio').children().length > 1) {
$('.list-ratio').children(':last-child').remove();
if ($('.list-ratio').children().length === 1) {
that.children('i').removeClass('iconfont-selected');
that.children('i').addClass('iconfont-unselected');
}
}
});
});
</script>
</block>

@ -172,31 +172,70 @@
<td rowspan="{$data.row}">{$data.game_type_name}</td>
<td rowspan="{$data.row}">{$data.original_package_name}</td>
<td rowspan="{$data.row}">{$data.relation_game_name}</td>
<td rowspan="{$data.row}">{$data.valid}</td>
<notempty name="data['turnover_ratio'][0]">
<td>{$data['turnover_ratio'][0]['name']|default="--"}</td>
<td>{$data['turnover_ratio'][0]['ratio']|showPercent}</td>
<notempty name="data['valid'][0]">
<td rowspan="{$data['sec_row'][0]}">{$data['valid'][0]}</td>
<else />
<td>--</td>
</notempty>
<notempty name="data['turnover_ratios'][0][0]">
<td >{$data['turnover_ratios'][0][0]['name']|default="--"}</td>
<td >{$data['turnover_ratios'][0][0]['ratio']|showPercent}</td>
<else />
<td>--</td>
<td>--</td>
</notempty>
</notempty>
<td rowspan="{$data.row}">
<foreach name="data.oplist" item="vo" >
<td rowspan="{$data['sec_row'][0]}">
<foreach name="data['oplist'][0]" item="vo" >
{$vo}
</foreach>
</td>
</tr>
<if condition="$data['row'] gt 1">
<foreach name="data['turnover_ratio']" item="game_ratio" key="gamekey">
<if condition="$gamekey gt 0">
<tr>
<td>{$game_ratio['name']|default="--"}</td>
<td>{$game_ratio['ratio']|showPercent}</td>
</tr>
</if>
</foreach>
</if>
<foreach name="data['valid']" item="valid" key="keys">
<if condition="$keys gt 0">
<tr>
<td rowspan="{$data['sec_row'][$keys]}">{$valid|default="--"}</td>
<td>{$data['turnover_ratios'][$keys][0]['name']|default="--"}</td>
<td>{$data['turnover_ratios'][$keys][0]['ratio']|showPercent}</td>
<td rowspan="{$data['sec_row'][$keys]}">
<foreach name="data['oplist'][$keys]" item="vo" >
{$vo}
</foreach>
</td>
</tr>
<foreach name="data['turnover_ratios'][$keys]" item="game_ratio" key="gamekey">
<if condition="$gamekey gt 0">
<tr>
<td>{$game_ratio['name']|default="--"}</td>
<td>{$game_ratio['ratio']|showPercent}</td>
</tr>
</if>
</foreach>
<else/>
<foreach name="data['turnover_ratios'][$keys]" item="game_ratio" key="gamekey">
<if condition="$gamekey gt 0">
<tr>
<td>{$game_ratio['name']|default="--"}</td>
<td>{$game_ratio['ratio']|showPercent}</td>
</tr>
</if>
</foreach>
</if>
</foreach>
<!-- <if condition="$data['row'] gt 1">-->
<!-- <foreach name="data['turnover_ratios']" item="game_ratio" key="gamekey">-->
<!-- <foreach name="game_ratio" item="game_ratio_sec" key="key">-->
<!-- <if condition="$gamekey neq 0 and $key neq 0">-->
<!-- <tr>-->
<!-- <td>{$game_ratio_sec['name']|default="&#45;&#45;"}</td>-->
<!-- <td>{$game_ratio_sec['ratio']|showPercent}</td>-->
<!-- </tr>-->
<!-- </if>-->
<!-- </foreach>-->
<!-- </foreach>-->
<!-- </if>-->
</volist>
</if>
</tbody>
@ -283,7 +322,11 @@ $(function(){
});
})
$(".editRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('edit')}"+"&id="+id;
window.location.href = url;
})
$(".delGameRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('delGameRatio')}"+"&id="+id;

@ -441,6 +441,20 @@
content: url
});
});
$("#specialComplement").click(function () {
var id = $(this).data("id");
var url = "{:U('viewSpecialComplement')}"+"&id="+id
layer.open({
type: 2,
title: "海南万盟天下科技有限公司",
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: url
});
});
$(".editStatement").click(function () {
var id = $(this).data("id");
var url = "{:U('editStatement')}"+"&id="+id

@ -0,0 +1,561 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="__CSS__/base.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/common.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/style.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/default_color.css" media="all">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__STATIC__/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer3/layer.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"charset="UTF-8"></script>
<script src="__STATIC__/juicer-min.js" type="text/javascript"></script>
</head>
<style>
html {
min-width:100%;
}
body {
max-width: 90%;
padding: 5% 0 0 5%;
}
.tabcon1711 table{
width: 480px;
}
table{
margin: auto;
}
.hidebox{
display: none;
}
.r{
width: 300px;
}
.l{
width: 180px;
}
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;
height: 35px;
height: 28px;
border-radius: 3px;
font-size: 12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 35px;
line-height: 28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height: 26px;
line-height: 26px;
font-size: 12px;
}
.select2-results__option[aria-selected] {
font-size: 12px;
}
.input-list, .i_list {
float: left;
margin: 0;
}
</style>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" href="__CSS__/pro_promote.css" type="text/css" />
<script src="__STATIC__/jquery.form.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js"></script>
<link rel="stylesheet" href="__CSS__/promote.css" type="text/css"/>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
.butnbox {padding:10px 0 10px;}
.butnbox .butnlist {overflow:hidden;clear:both;}
.butnbox .butnlist .butn,.butnbox .butnlist .butn:hover {text-decoration:none;border:none;}
.butnbox .butnlist .butn {display:inline-block;width:120px;height:28px;line-height:28px;text-align:center;color:#FFF;background:#3C95C8;border-radius:3px;}
.butnbox .butnlist .butn.last {background:#009900;}
.butnbox .butnlist .butn~.butn {margin-left:20px;}
.butnbox a{
cursor:pointer
}
.data_list table tbody tr a.disabled,.data_list table tbody tr a.disabled:hover {color:#999;cursor:default;}
.data_list table td{
line-height: 2;
}
#tablebox tr{
border-bottom: 1px solid #e6e6e6;
}
</style>
<div class="cf top_nav_list">
<!-- <div class="fl button_list">
<div class="tools">
<a class=" " href="{:U('add')}"><span class="button_icon button_icon1"></span>新增推广游戏分成</a>
</div>
</div> -->
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list" style="margin-bottom:12px">
<div class="input-list search-title-box" style="margin-left: 20px">
<label>公司类型:</label>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="company_type" name="company_type" class="select_gallery" >
<option value="">请选择公司类型</option>
<option value="0">下游内团</option>
<option value="1">下游外团</option>
<option value="3">下游无</option>
</select>
</div>
<div class="input-list search-title-box" style="margin-left: 20px">
<label>选择下游公司:</label>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="company_id" name="company_id" class="select_gallery" >
<option value="">请选择下游合作公司</option>
</select>
</div>
<div class="input-list search-title-box" style="margin-left: 20px">
<label>结算时间:</label>
</div>
<div class="input-list">
<input type="text" readonly id="time_start" name="time_start" class="" value="{:I('time_start')}" placeholder="开始时间" />
&nbsp;-&nbsp;
<div class="input-append date" style="display:inline-block">
<input type="text" readonly id="time_end" name="time_end" class="" value="{:I('time_end')}" placeholder="结束时间" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list search-title-box" style="margin-left: 20px">
<label>产品:</label>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="relation_game_id" name="relation_game_id[]" class="select_gallery" multiple="multiple">
<option value="">请选择游戏产品</option>
<volist name="gameList" id="vo">
<option value="{$vo.relation_game_id}" <if condition="$vo.relation_game_id eq I('relation_game_id')">selected</if> >{$vo.relation_game_name}</option>
</volist>
</select>
</div>
<div class="input-list" style="margin-left: 20px">
<a class="sch-btn" href="javascript:;" id="add_company" url="{:U('index','&row='.I('row'),false)}">添加</a>
</div>
</div>
</div>
<div class="butnbox" style="margin-bottom: 10px;">
<div class="butnlist jscheckbutn" style="margin-left: 2px">
<foreach name="menubtn" item="vo" >
{$vo}
</foreach>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table id="tablebox">
<!-- 表头 -->
<thead>
<tr>
<th>公司</th>
<th>结算时间</th>
<th>产品</th>
<th>平台总额</th>
<th>分成比例</th>
<th>特殊补点</th>
<th>结算金额</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
</tbody>
</table>
<button class="submit_btn ajax-post" id="submit" type="submit" target-form="form-horizontal" style="margin-top: 50px;float: right">
确认保存
</button>
</div>
</div>
<script type="text/javascript">
$(function(){
$("#company_type").select2();
$("#company_id").select2();
$("#relation_game_id").select2();
$('#time_start').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#time_end').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
pickerPosition:'bottom-left'
});
$('#submit').on({
click: function () {
var time_start = $("#time_start").val();
var time_end = $("#time_end").val();
var send = [];
$('#tablebox').find('.company_id').each(function(ckey, cval) {
var data = {};
var sec_data = {};
var statement_info = [];
data['company_id'] = $(cval).attr('data-company_id');
data['company_name'] = $(cval).html();
data['statement_begin_time'] = time_start;
data['statement_end_time'] = time_end;
sec_data['pay_amount'] = $(cval).next().next().next().text();
sec_data['sum_money'] = $(cval).next().next().next().next().next().next().text();
sec_data['relation_game_id'] = $(cval).next().next().next().next().next().next().next().find('a').attr('data-game_id');
sec_data['game_name'] = $(cval).next().next().text();
var ratio = $(cval).next().next().next().next().text();
ratio = parseFloat(ratio.slice(0, -1)) + parseFloat($(cval).next().next().next().next().next().find('input').val());
sec_data['ratio'] = ratio;
sec_data['statement_begin_time'] = $(cval).next().find('.begin_time').text();
sec_data['statement_end_time'] = $(cval).next().find('.end_time').text();
statement_info.push(sec_data);
var _append = $(cval).parent();
var row = $(cval).attr('rowspan');
for (var i=0;i<row-1;i++) {
sec_data = {};
_append = _append.next();
sec_data['statement_begin_time'] = _append.find('.relation_game_name').prev().find('.begin_time').text();
sec_data['statement_end_time'] = _append.find('.relation_game_name').prev().find('.end_time').text();
sec_data['game_name'] = _append.find('.relation_game_name').text();
sec_data['pay_amount'] = _append.find('.relation_game_name').next().text();
sec_data['sum_money'] = _append.find('.relation_game_name').next().next().next().next().text();
sec_data['relation_game_id'] = _append.find('.relation_game_name').next().next().next().next().next().find('a').attr('data-game_id');
var ratio = _append.find('.relation_game_name').next().next().text();
ratio = parseFloat(ratio.slice(0, -1)) + parseFloat(_append.find('.relation_game_name').next().next().next().find('input').val());
sec_data['ratio'] = ratio;
statement_info.push(sec_data);
console.log(_append.find('.relation_game_name').next().next().next().find('input').val())
}
data['statement_info'] = statement_info;
send.push(data);
});
if (send.length != 0) {
$.ajax({
url: '{:U("addSpecialComplementPost")}',
type: 'post',
dataType: 'json',
data: {data:JSON.stringify(send)},
success: function(result) {
}});
} else {
layer.msg('数据为空不能提交');
}
}
});
//添加公司比例操作
$('#add_company').click(function (e) {
var company_id = $("#company_id").find("option:selected").val();
var time_start = $("#time_start").val();
var time_end = $("#time_end").val();
var relation_game_id = $("#relation_game_id").val();
var company_type = $("#company_type").find("option:selected").val();
if (!company_type) {
layer.msg('请选择公司类型');
return;
}
if (!company_id) {
layer.msg('请选择公司');
return;
}
if (!time_start || !time_end) {
layer.msg('开始时间与结束时间至少选择一个');
return;
}
if (!relation_game_id) {
layer.msg('请选择游戏');
return;
}
$.ajax({
url: '{:U("addSpecialComplement")}',
type: 'post',
dataType: 'json',
data: {company_id:company_id, time_start:time_start, time_end:time_end, relation_game_id:relation_game_id, company_type:company_type},
success: function(result) {
if (result.status == 1) {
// $('#tablebox').find('tbody').empty();
var data = result.data;
var html = '';
var is_continue = 0;
for (var item in data) {
is_continue = 0;
$('#tablebox').find('.company_id').each(function(ckey, cval) {
if ($(cval).html() == data[item]['company_name']) {
//时间数组定义用于判断当前选择的游戏是否有结算过的区间
var begin_time = [];
var end_time = [];
var get_time = $(cval).parent();
var row =$(cval).attr('rowspan');
for (var i=0; i<row; i++) {
for(var item_sec in data[item]['relation_game_name']) {
if (get_time.find('.relation_game_name').text() == data[item]['relation_game_name'][item_sec]) {
begin_time.push(get_time.find('.begin_time').text());
end_time.push(get_time.find('.end_time').text());
}
}
get_time = get_time.next();
}
for (var time in begin_time) {
if ((begin_time[time]>=time_start && begin_time[time]<=time_end) || (end_time[time]>=time_start && end_time[time]<=time_end)||(begin_time[time]<=time_start && end_time[time] >= time_end)) {
layer.msg(data[item]['company_name'] + "结算日期"+begin_time[time]+"-"+end_time[time]+"有结算过的部分,请重新选择");
is_continue = 2;
return;
}
}
$(cval).attr('rowspan',parseInt(row)+parseInt(data[item]['row']));
for(var item_sec in data[item]['begin_time']) {
html += "<tr>" +
"<td><span class='begin_time'>"+data[item]['begin_time'][item_sec]+"</span>-<span class='end_time'>"+data[item]['end_time'][item_sec]+"</span></td>" +
"<td class='relation_game_name'>"+data[item]['relation_game_name'][item_sec]+"</td>" +
"<td>"+data[item]['pay_amount'][item_sec]+"</td>" +
"<td>"+data[item]['ratio'][item_sec]+"%</td>" +
"<td><input value='0' style='width: 20px;text-align: center' class='complement'/>%</td>" +
"<td>"+data[item]['withdraw_amount'][item_sec]+"</td>" +
"<td><a data-value='"+data[item]['company_name']+"' class='delete' data-game_id='"+data[item]['relation_game_id'][item_sec]+"'>删除</a></td></tr>";
}
//轮询寻找最后一个
var _append = $(cval).parent();
for (var i=0; i<row-1; i++) {
_append = _append.next();
}
_append.after(html);
is_continue = 1;
complementChange();
DeleteTd();
}
});
if (is_continue == 1) {
continue;
} else if(is_continue == 2) {
return;
}
html += "<tr><td class='company_id' rowspan='"+data[item]['row']+"' data-company_id='"+data[item]['company_id']+"'>"+data[item]['company_name']+"</td>" +
"<td><span class='begin_time'>"+data[item]['begin_time'][0]+"</span>-<span class='end_time'>"+data[item]['end_time'][0]+"</span></td>" +
"<td class='relation_game_name'>"+data[item]['relation_game_name'][0]+"</td>" +
"<td>"+data[item]['pay_amount'][0]+"</td>" +
"<td>"+data[item]['ratio'][0]+"%</td>" +
"<td><input value='0' style='width: 20px;text-align: center' class='complement'/>%</td>" +
"<td>"+data[item]['withdraw_amount'][0]+"</td>" +
"<td><a data-value='"+data[item]['company_name']+"' data-game_id='"+data[item]['relation_game_id'][0]+"' class='delete'>删除</a></td></tr>";
for(var item_sec in data[item]['begin_time']) {
if (item_sec != 0) {
html += "<tr>" +
"<td><span class='begin_time'>"+data[item]['begin_time'][item_sec]+"</span>-<span class='end_time'>"+data[item]['end_time'][item_sec]+"</span></td>" +
"<td class='relation_game_name'>"+data[item]['relation_game_name'][item_sec]+"</td>" +
"<td>"+data[item]['pay_amount'][item_sec]+"</td>" +
"<td>"+data[item]['ratio'][item_sec]+"%</td>" +
"<td><input value='0' style='width: 20px;text-align: center' class='complement'/>%</td>" +
"<td>"+data[item]['withdraw_amount'][item_sec]+"</td>" +
"<td><a data-value='"+data[item]['company_name']+"' class='delete' data-game_id='"+data[item]['relation_game_id'][item_sec]+"'>删除</a></td></tr>";
}
}
$('#tablebox').find('tbody').append(html);
complementChange();
DeleteTd();
}
} else {
layer.msg('获取数据失败');
}
}
})
});
//补点改变函数
function complementChange() {
$(".complement").off("change");
$('.complement').change(function() {
//获取总流水
var pay_amount = parseFloat($(this).parent().prev().prev().text());
//计算最终分配比率
var ratio = ($(this).parent().prev().text());
console.log(ratio);
ratio = parseFloat(ratio.slice(0, -1))+parseFloat($(this).val());
//最终的分配金额
var withdraw_amount = ((pay_amount * ratio)/100).toFixed(2);
$(this).parent().next().text(withdraw_amount);
});
}
//删除操作
function DeleteTd() {
$('.delete').off('click');
$('.delete').click(function() {
var company_name = $(this).data();
var is_first = $(this).parent().parent().children(":first").text();
var first_row = $(this).parent().parent().children(":first").attr('rowspan');
var company_id = $(this).parent().parent().children(":first").attr('data-company_id');
//判断公司是否隶属于该公司
if (is_first == company_name['value']) {
var html = "<td class='company_id' rowspan='"+(first_row-1)+"' data-company_id='"+company_id+"'>"+is_first+"</td>";
var next_company = $(this).parent().parent().next().find(".company_id").text();
console.log(next_company);
//判断接下来还有没有该公司的比例,如有增添加公司名称行
if (!next_company) {
$(this).parent().parent().next().prepend(html);
}
} else {
$('#tablebox').find('.company_id').each(function(ckey, cval) {
if($(cval).html() == company_name['value']){
var rowspan = $(cval).attr('rowspan');
$(cval).attr('rowspan',rowspan-1);
}
});
}
$(this).parent().parent().remove();
});
}
var company_id = "{$_GET['company_id']??0}";
$("#company_type").on("change",function(){
var val = $(this).find("option:selected").val();
var url = "{:U('Ajax/getPromoteCompany')}"+"&company_belong="+val;
$.get(url,function(data){
var company = data;
var companystr = '<option value="">请选择下游合作公司</option>';
for (var i in company) {
if(company[i].id == company_id){
companystr += "<option value='" + company[i].id + "' data-value='"+ company[i].game_ids +"' selected='selected'>" + company[i].name + "</option>"
}else{
companystr += "<option value='" + company[i].id + "' data-value='"+ company[i].game_ids +"' >" + company[i].name + "</option>"
}
}
$("#company_id").html(companystr);
$("#company_id").select2();
$("#relation_game_id").html('')
$("#relation_game_id").select2();
})
});
var game_id = "{$_GET['game_id']??0}";
$("#company_id").on("change",function(){
var data = $(this).find("option:selected").data().value;
var url = "{:U('Ajax/getPromoteGameList')}"+"&game_ids="+data;
$.get(url,function(data){
var game = data;
var gamestr = '<option value="">请选择游戏商品</option>';
for (var i in game) {
if(game[i].id == game_id){
gamestr += "<option value='" + game[i].relation_game_id + "' selected='selected'>" + game[i].relation_game_name + "</option>"
}else{
gamestr += "<option value='" + game[i].relation_game_id + "'>" + game[i].relation_game_name + "</option>"
}
}
$("#relation_game_id").html(gamestr);
$("#relation_game_id").select2();
})
});
});
</script>
</block>
</html>
Loading…
Cancel
Save