新增分成生效模板

master
chenzhi 4 years ago
parent 891f2b6a7f
commit 553d9b0f91

@ -20,7 +20,6 @@ class CompanyGameRatioController extends AdminController
$this->DBModel = M("company_game_ratio","tab_");
parent::_initialize();
}
public function index()
{
$params = I('get.');
@ -31,6 +30,95 @@ class CompanyGameRatioController extends AdminController
$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")
->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($where);
if(isset($params['export'])){
$dbres = $dbres->select();
}else{
$dbres = $dbres->page($page, $row)->select();
}
foreach($dbres as $k=>&$v){
$v['settlement_type'] ='--';
$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 = "<br>";
}
//新
$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();
dd( $dbres);
}
public function lists()
{
$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'])){
@ -43,7 +131,7 @@ 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_")
@ -157,6 +245,8 @@ class CompanyGameRatioController extends AdminController
$this->display();
}
public function marketAgree(){
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
$ids = $_REQUEST['ids'];
@ -369,6 +459,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 +480,7 @@ class CompanyGameRatioController extends AdminController
$this->error('删除错误');
}
}
public function menuAuth()
{
$addurl = U("addRatio");
@ -405,14 +510,19 @@ class CompanyGameRatioController extends AdminController
$opBtn = [
"editRatio"=>"<a class='confirm editRatio' data-id='{$id}'>编辑</a>",
"delRatio"=>"<a class='confirm delRatio' data-id='{$id}' style='color: red;'>删除</a>",
"delGameRatio"=>"<a class='confirm delGameRatio' data-id='{$id}' style='color: red;'>删除</a>",
];
//操作对应菜单
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 +537,8 @@ class CompanyGameRatioController extends AdminController
return $resarr;
}
public function setTurnoverRatio($params)
{
$save['turnover_ratio'] = [];

@ -52,8 +52,12 @@
<div class="cf top_nav_list">
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">推广游戏分成管理</h3>
<p class="description_text"></p>
<div class="fr">
<a class="tabchose" href="{:U('index')}">生效列表</a>
<a href="{:U('lists')}">审核列表</a>
</div>
<h3 class="page_title">推广游戏分成</h3>
<p class="description_text">未进行公司绑定的公司结算单将无法进行审核及打款</p>
</div>
<!-- <div class="fl button_list">
<div class="tools">
@ -83,15 +87,6 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="status" name="status" class="select_gallery" >
<option value="">请选择审核状态</option>
<volist name="status" id="vo">
<option value="{$key}" <if condition="isset($_GET['status']) && $key eq I('status')">selected</if> >{$vo}</option>
</volist>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('index','&row='.I('row'),false)}">搜索</a>
</div>
@ -123,12 +118,7 @@
<th>原游戏名称</th>
<th>现游戏名称</th>
<th>生效时间</th>
<th>原比例</th>
<th>申请比例</th>
<th>创建记录</th>
<th>市场部审批</th>
<th>管理员审批</th>
<th>备注</th>
<th>分成比例</th>
<th>操作</th>
</tr>
</thead>
@ -152,49 +142,12 @@
<td>{$data.original_package_name}</td>
<td>{$data.relation_game_name}</td>
<td>{$data.valid}</td>
<td style="line-height: 16px;text-indent: 0;">
<div style="text-align: left;width: 90%;margin-left: 5%;margin-top: 10px;margin-bottom: 10px;">
{$data.last_turnover_ratio_str}
</div>
</td>
<td style="line-height: 16px;text-indent: 0;">
<div style="text-align: left;width: 90%;margin-left: 5%;margin-top: 10px;margin-bottom: 10px;">
{$data.turnover_ratio_str}
</div>
</td>
<td>
<div style="line-height: 2;">
{$data.create}
</div>
</td>
<td>
<if condition="$data.status eq -1 ">
<div style="line-height: 2;color: red;">
{$data.market}
</div>
<else />
<div style="line-height: 2;">
{$data.market}
</div>
</if>
</td>
<td>
<if condition="$data.status eq -2 ">
<div style="line-height: 2;color: red;">
{$data.admin}
</div>
<else />
<div style="line-height: 2;">
{$data.admin}
</div>
</if>
</td>
<td>
{$data.remark}
</td>
<td>
<foreach name="data.oplist" item="vo" >
{$vo}
@ -263,14 +216,10 @@ $(function(){
$("#search").click();
}
});
$(".editRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('editRatio')}"+"&id="+id;
window.location.href = url;
})
$(".delRatio").on("click",function(){
$(".delGameRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('delRatio')}"+"&id="+id;
var url = "{:U('delGameRatio')}"+"&id="+id;
layer.confirm('删除后将无法恢复,请慎重选择', {
closeBtn:0,
title:false,
@ -291,70 +240,6 @@ $(function(){
});
})
$("#marketAgree,#marketRefuse,#adminAgree,#adminRefuse").on("click",function(){
var id = $(this).attr("id");
if(id == "marketAgree"){
var opname = "市场部审批通过";
var opurl = "{:U('marketAgree')}";
var opst ="[未进行审批]";
var status = 0;
}else if(id=="marketRefuse"){
var opname = "市场部审批拒绝";
var opurl = "{:U('marketRefuse')}";
var opst ="[未进行审批]";
var status = 0;
}else if(id=="adminAgree"){
var opname = "管理员审批通过";
var opurl = "{:U('adminAgree')}";
var opst ="[市场部审批通过]";
var status = 1;
}else if(id=="adminRefuse"){
var opname = "管理员审批拒绝";
var opurl = "{:U('adminRefuse')}";
var opst ="[市场部审批通过]";
var status = 1;
}
var flag = false;
var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
if($(elem).data("status") != status){
flag = true;
}else{
return $(elem).val();
}
}).get().join(",");
if(text == ''){
layer.msg("<font style='color:white'>" + '无需要'+opname+'的申请,仅'+opst+'状态可以进行'+opname+"</font>");
return;
}
if(flag){
layer.confirm(opname+"仅会对"+opst+"的申请进行处理,选择中包含其他的状态的申请将被忽略,点击取消停止操作",{title:false}, function(index){
_doAgreeApply();
layer.close(index);
});
}else{
_doAgreeApply();
}
function _doAgreeApply(){
//执行
$.ajax({
type: "POST",
url: opurl,
dataType: 'json',
async: false,
data: {ids:text},
success:function(data){
if(data.status==1){
layer.msg("<font style='color:white'>" + data.info + "</font>");
setTimeout(function(){
window.location.reload();
},1500);
}
}
});
}
})
})

@ -0,0 +1,367 @@
<extend name="Public/base"/>
<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;}
.layui-layer-dialog .layui-layer-content{color:red}
.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;}
.layui-layer-title {
text-align: center;
height: 80px;
line-height: 80px;
font-weight: 600;
font-size: 18px;
}
</style>
<div class="cf top_nav_list">
<div class="cf main-place top_nav_list navtab_list">
<div class="fr">
<a href="{:U('index')}">生效列表</a>
<a class="tabchose" href="{:U('lists')}">审核列表</a>
</div>
<h3 class="page_title">推广游戏分成审核列表</h3>
<p class="description_text">未进行公司绑定的公司结算单将无法进行审核及打款</p>
</div>
<!-- <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">
<label>搜索:</label>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="company_id" name="company_id" class="select_gallery" >
<option value="">请选择公司</option>
<volist name="companyList" id="vo">
<option value="{$vo.id}" <if condition="$vo.id eq I('company_id')">selected</if> >{$vo.company_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="relation_game_id" name="relation_game_id" class="select_gallery" >
<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 input-list-game search_label_rehab">
<select id="status" name="status" class="select_gallery" >
<option value="">请选择审核状态</option>
<volist name="status" id="vo">
<option value="{$key}" <if condition="isset($_GET['status']) && $key eq I('status')">selected</if> >{$vo}</option>
</volist>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" 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>
<!-- 表头 -->
<thead>
<tr>
<th>
<input class="check-all" type="checkbox">
</th>
<th>公司名称</th>
<th>内外团</th>
<th>结算周期</th>
<th>游戏类型</th>
<th>原游戏名称</th>
<th>现游戏名称</th>
<th>生效时间</th>
<th>原比例</th>
<th>申请比例</th>
<th>创建记录</th>
<th>市场部审批</th>
<th>管理员审批</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<if condition = "empty($data)">
<tr>
<td colspan="16" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
<else/>
<volist name="data" id="data">
<tr>
<td>
<input class="ids" type="checkbox" data-status="{$data.status}" value="{$data['id']}" name="ids[]" >
</td>
<td>{$data.company_name}</td>
<td>{$data.company_belong}</td>
<td>{$data.settlement_type}</td>
<td>{$data.game_type_name}</td>
<td>{$data.original_package_name}</td>
<td>{$data.relation_game_name}</td>
<td>{$data.valid}</td>
<td style="line-height: 16px;text-indent: 0;">
<div style="text-align: left;width: 90%;margin-left: 5%;margin-top: 10px;margin-bottom: 10px;">
{$data.last_turnover_ratio_str}
</div>
</td>
<td style="line-height: 16px;text-indent: 0;">
<div style="text-align: left;width: 90%;margin-left: 5%;margin-top: 10px;margin-bottom: 10px;">
{$data.turnover_ratio_str}
</div>
</td>
<td>
<div style="line-height: 2;">
{$data.create}
</div>
</td>
<td>
<if condition="$data.status eq -1 ">
<div style="line-height: 2;color: red;">
{$data.market}
</div>
<else />
<div style="line-height: 2;">
{$data.market}
</div>
</if>
</td>
<td>
<if condition="$data.status eq -2 ">
<div style="line-height: 2;color: red;">
{$data.admin}
</div>
<else />
<div style="line-height: 2;">
{$data.admin}
</div>
</if>
</td>
<td>
{$data.remark}
</td>
<td>
<foreach name="data.oplist" item="vo" >
{$vo}
</foreach>
</td>
</tr>
</volist>
</if>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn export-btn"
href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a>
</if>
{$_page|default=''}
</div>
<!--弹出层-->
<div class="promote-layer mb20">
<form id="ajaxForm" action="{:U('set_withdraw')}" method="post">
<ol class="promote-con">
<li class="promote-con-con " id="deny">
<div class="mb20">
<span class="promote-name">备注:</span>
<textarea class="textarea-style" name="remark" id="remark"></textarea>
</div>
<a class="ajax-post pack" style="cursor: pointer;" target-form="ids" url="{:U('setStatus',array('status'=>-1))}"><div class="promote-btn">拒绝</div></a>
</li>
</ol>
</form>
</div>
</block>
<block name="script">
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
$(".select_gallery").select2();
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('index')}");
$(function(){
//搜索功能
$("#search").click(function(){
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&"+$('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".editRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('editRatio')}"+"&id="+id;
window.location.href = url;
})
$(".delRatio").on("click",function(){
var id = $(this).data("id");
var url = "{:U('delRatio')}"+"&id="+id;
layer.confirm('删除后将无法恢复,请慎重选择', {
closeBtn:0,
title:false,
btn: ['取消','删除'] //按钮
}, function(index){
layer.close(index);
}, function(){
$.get(url,function(data){
if(data.code == 1){
layer.msg('<span style="color:white">'+data.msg+'<span>',{time: 1000},function(){
window.location.reload();
});
}else{
layer.msg(data.msg,{icon: 2});
}
});
});
})
$("#marketAgree,#marketRefuse,#adminAgree,#adminRefuse").on("click",function(){
var id = $(this).attr("id");
if(id == "marketAgree"){
var opname = "市场部审批通过";
var opurl = "{:U('marketAgree')}";
var opst ="[未进行审批]";
var status = 0;
}else if(id=="marketRefuse"){
var opname = "市场部审批拒绝";
var opurl = "{:U('marketRefuse')}";
var opst ="[未进行审批]";
var status = 0;
}else if(id=="adminAgree"){
var opname = "管理员审批通过";
var opurl = "{:U('adminAgree')}";
var opst ="[市场部审批通过]";
var status = 1;
}else if(id=="adminRefuse"){
var opname = "管理员审批拒绝";
var opurl = "{:U('adminRefuse')}";
var opst ="[市场部审批通过]";
var status = 1;
}
var flag = false;
var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
if($(elem).data("status") != status){
flag = true;
}else{
return $(elem).val();
}
}).get().join(",");
if(text == ''){
layer.msg("<font style='color:white'>" + '无需要'+opname+'的申请,仅'+opst+'状态可以进行'+opname+"</font>");
return;
}
if(flag){
layer.confirm(opname+"仅会对"+opst+"的申请进行处理,选择中包含其他的状态的申请将被忽略,点击取消停止操作",{title:false}, function(index){
_doAgreeApply();
layer.close(index);
});
}else{
_doAgreeApply();
}
function _doAgreeApply(){
//执行
$.ajax({
type: "POST",
url: opurl,
dataType: 'json',
async: false,
data: {ids:text},
success:function(data){
if(data.status==1){
layer.msg("<font style='color:white'>" + data.info + "</font>");
setTimeout(function(){
window.location.reload();
},1500);
}
}
});
}
})
})
</script>
</block>
Loading…
Cancel
Save