You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1366 lines
56 KiB
PHP
1366 lines
56 KiB
PHP
<?php
|
|
|
|
namespace Admin\Controller;
|
|
|
|
use mysql_xdevapi\Exception;
|
|
use User\Api\UserApi as UserApi;
|
|
use OSS\OssClient;
|
|
use OSS\Core\OSsException;
|
|
use Base\Service\PresidentDepositService;
|
|
use Think\Controller;
|
|
|
|
/**
|
|
* 后台首页控制器
|
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
|
*/
|
|
class PromoteCompanyController extends ThinkController
|
|
{
|
|
private $modelName = 'PromoteCompany';
|
|
public $ratio = [];
|
|
public function _initialize()
|
|
{
|
|
$this->admininfo = $_SESSION['onethink_admin']['user_auth'];
|
|
parent::_initialize();
|
|
}
|
|
//列表
|
|
public function lists()
|
|
{
|
|
$model = M($this->modelName, 'tab_');
|
|
$is_export= false;
|
|
if (isset($_REQUEST['export']) && $_REQUEST['export']==1){
|
|
$is_export = true;
|
|
}
|
|
$map = [];
|
|
$promotemap=[];
|
|
$company_name = trim(I('company_name'));
|
|
|
|
//市场部权限begin
|
|
$pro_id = getMarketAuthPromoteId();
|
|
if($pro_id){
|
|
$promotemap["_string"]="p.id in ({$pro_id})";
|
|
$c_id = throwPromoteIdToCompanyId($pro_id);
|
|
$map["_string"]="id in ({$c_id})";
|
|
}
|
|
//市场部权限end
|
|
|
|
if($company_name) $map['tab_promote_company.company_name'] = array('like',"%{$company_name}%");
|
|
if (isset($_REQUEST['status']) && $_REQUEST['status'] !== '') {
|
|
$status = intval($_REQUEST['status']);
|
|
$map['tab_promote_company.status'] = $status;
|
|
}
|
|
if (isset($_REQUEST['promote_id'])) {
|
|
$map['id'] = M("Promote","tab_")->field("company_id")->where("id={$_REQUEST['promote_id']}")->find()['company_id'];
|
|
$promotemap['p.id']=$_REQUEST['promote_id'];
|
|
}
|
|
if (isset($_REQUEST['company_type'])) {
|
|
$map['company_type'] = $_REQUEST['company_type'];
|
|
}
|
|
if (isset($_REQUEST['company_belong'])) {
|
|
$map['company_belong'] = $_REQUEST['company_belong'];
|
|
}
|
|
if (isset($_REQUEST['game_name'])) {
|
|
//换成id
|
|
$g_name = $_REQUEST['game_name'];
|
|
$g_id = M("Game","tab_")->where("relation_game_name = '{$g_name}'")->field("relation_game_id")->find()['relation_game_id'];
|
|
$reg_str = "([^0-9]|^){$g_id },";
|
|
$map["game_ids"]=["EXP","REGEXP '{$reg_str}'"];
|
|
}
|
|
|
|
if (isset($_REQUEST['is_sign_contact'])) {
|
|
$map["is_sign_contact"]=$_REQUEST['is_sign_contact'];
|
|
}
|
|
|
|
if (isset($_REQUEST['pay_type'])) {
|
|
$pay_type = $_REQUEST['pay_type'];
|
|
$promote_id = M("president_deposit","tab_")->where("pay_type = '$pay_type'")->group("promote_id")->getField("promote_id",true);
|
|
if(empty($promote_id)){
|
|
$promote_id = -1;
|
|
}
|
|
$promote_id = implode(",",$promote_id);
|
|
|
|
$c_id = throwPromoteIdToCompanyId($promote_id);
|
|
if(isset($promotemap["_string"])){
|
|
$promotemap["_string"] .= " ADN p.id in ($promote_id)";
|
|
}else{
|
|
$promotemap["_string"] = "p.id in ($promote_id)";
|
|
}
|
|
if(isset($map["_string"])){
|
|
$map["_string"] .= " ADN id in ($c_id)";
|
|
}else{
|
|
$map["_string"] = "id in ($c_id)";
|
|
}
|
|
|
|
}
|
|
// dd($map);
|
|
|
|
|
|
$page = intval(I('get.p', 0));
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
$row = intval(I('row', 0));
|
|
$row = empty($row) ? 10 : $row;//每页条数
|
|
|
|
//获取分页公司数据
|
|
$companyres = $model->field("*")
|
|
->where($map)
|
|
->order("last_up_time desc");
|
|
if($is_export){
|
|
$companyres = $companyres->select();
|
|
}else{
|
|
$companyres = $companyres->page($page,$row)->select();
|
|
}
|
|
//获取公司信息
|
|
if(!empty($companyres)){
|
|
foreach($companyres as $k=>&$v){
|
|
$tmpr = D("CompanyRelation")->getCompanyRelation(2,$v['id']);
|
|
$v["settlement_type"] = $tmpr['settlement_type'];
|
|
$v["collection"] = $tmpr['collection'];
|
|
$v["invoice_type"] = $tmpr['invoice_type'];
|
|
$v["invoice_content"] = $tmpr['invoice_content'];
|
|
|
|
$v["company_belong"] = getCompanyBlong($v["company_belong"]);
|
|
$v["develop_type"] = getCompanyRelation($v["develop_type"]);
|
|
$v['company_type'] = $v['company_type'] == 2 ? '个人' : '公司';
|
|
$v['is_sign_contact'] = $v['is_sign_contact'] ? '是' : '否';
|
|
|
|
$contract_start_time = $v['company_info']['contact_begin'] ?
|
|
time_format($v['company_info']['contact_begin'], 'Y/m/d') : '-';
|
|
$contract_end_time = $v['company_info']['contact_end'] ?
|
|
time_format($v['company_info']['contact_end'], 'Y/m/d') : '-';
|
|
$v['contract_time'] = $contract_start_time . '-' . $contract_end_time;
|
|
|
|
$validity_start_time = $v['company_info']['validity_start_time'] ?
|
|
time_format($v['company_info']['validity_start_time'], 'Y/m/d') : '-';
|
|
$validity_end_time = $v['company_info']['validity_end_time'] ?
|
|
time_format($v['company_info']['validity_end_time'], 'Y/m/d') : '-';
|
|
$v['validity_time'] = $validity_start_time . '-' . $validity_end_time;
|
|
if(!$is_export){
|
|
$v['can_del'] = $this->promoteCompanyIsCanDel($v["id"]) ? 1 : 0;
|
|
}
|
|
//遍历获取游戏信息
|
|
if(empty($v["game_ids"])){
|
|
$senddata=false;
|
|
}else{
|
|
if(isset($_REQUEST['game_name'])) {
|
|
$v["game_ids"] = $g_id;
|
|
}
|
|
$senddata = $this->getGamePromoteCompanyRadio($v["id"],$v["game_ids"],$is_export);
|
|
}
|
|
$game = $this->getPromoteGameRadio($v["id"],$senddata,$promotemap);
|
|
$v += $game;
|
|
}
|
|
}
|
|
|
|
//公司及会长数量统计
|
|
$companycount = $model->field("id")->where($map)->select();
|
|
$count = count($companycount);
|
|
$companyallids = implode(',', array_column($companycount, 'id'));
|
|
$promotemap['p.company_id']=["in",$companyallids];
|
|
$promotemap['p.level']=1;
|
|
$promotecount = M("Promote","tab_")->alias('p')->where($promotemap)->count();
|
|
// dd($companyres);
|
|
$this->assign('listData', $companyres);
|
|
$this->assign('count', $count);
|
|
$this->assign('promotecount', $promotecount);
|
|
if($is_export){
|
|
|
|
$getData = $_GET;
|
|
unset($getData['export']);
|
|
|
|
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-导出推广公司']);
|
|
|
|
//导出
|
|
$this->display("export");
|
|
die();
|
|
}
|
|
//分页
|
|
$parameter['p'] = $page;
|
|
$parameter['row'] = $row;
|
|
$page = set_pagination($count, $row);
|
|
if ($page) {
|
|
$this->assign('_page', $page);
|
|
}
|
|
//分配其他页面需要参数
|
|
$this->assign('promoteList', getPromoteByLevel(1));
|
|
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Partner/lists'])->find());
|
|
|
|
$payTypes = PresidentDepositService::$payTypes;
|
|
$this->assign('payTypes', $payTypes);
|
|
$this->meta_title = '下游推广公司';
|
|
$this->display();
|
|
}
|
|
public function index()
|
|
{
|
|
$page = intval(I('get.p', 0));
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
$row = intval(I('row', 0));
|
|
$row = empty($row) ? 10 : $row;//每页条数
|
|
$p = $_REQUEST;
|
|
|
|
if(!IS_ROOT){
|
|
$this->OpAuthList= getModuleControllerAuth();
|
|
}
|
|
|
|
$map = [];
|
|
if (!empty(I('company_name'))) {
|
|
$map['company_name'] = ['like', '%' . I('company_name') . '%'];
|
|
}
|
|
if (!empty($p['verify_type'])) {
|
|
if($p['verify_type'] == 1){
|
|
$map['company_id'] = 0;
|
|
}else{
|
|
$map['company_id'] = ["neq",0];
|
|
}
|
|
}
|
|
if (!empty($p['verify_status'])) {
|
|
$map['verify_status'] = $p['verify_status'];
|
|
}
|
|
|
|
if (isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])) {
|
|
$time_start = strtotime($_REQUEST['timestart']);
|
|
$time_end = strtotime($_REQUEST['timeend'])+ 86399;
|
|
$map["create_time"] =['BETWEEN',[$time_start, $time_end]];
|
|
} elseif (isset($_REQUEST['timestart'])) {
|
|
$time_start = strtotime($_REQUEST['timestart']);
|
|
$map["create_time"] =['EGT',$time_start];
|
|
} elseif (isset($_REQUEST['timeend'])) {
|
|
$time_end = strtotime($_REQUEST['timeend'])+ 86399;
|
|
$map["create_time"] = ['ELT',$time_end];
|
|
}
|
|
$model = M("promote_company_verify", 'tab_');
|
|
$data = $model->where($map)->page($page,$row)->order("FIELD(verify_status,0,1,-1,-2,2),id desc")->select();
|
|
foreach ($data as $k => &$v) {
|
|
$v['company_info'] = json_decode($v['company_info'],true);
|
|
if($v['company_id'] == 0){
|
|
$v['verify_type'] = "新增";
|
|
}else{
|
|
$v['verify_type'] = "修改";
|
|
}
|
|
$v['company_info']['company_type'] = $v['company_info']['company_type'] == 2 ? '个人' : '公司';
|
|
|
|
$contract_start_time = $v['company_info']['contact_begin'] ?
|
|
time_format($v['company_info']['contact_begin'], 'Y/m/d') : '-';
|
|
$contract_end_time = $v['company_info']['contact_end'] ?
|
|
time_format($v['company_info']['contact_end'], 'Y/m/d') : '-';
|
|
$v['contract_time'] = $contract_start_time . '-' . $contract_end_time;
|
|
|
|
$validity_start_time = $v['company_info']['validity_start_time'] ?
|
|
time_format($v['company_info']['validity_start_time'], 'Y/m/d') : '-';
|
|
$validity_end_time = $v['company_info']['validity_end_time'] ?
|
|
time_format($v['company_info']['validity_end_time'], 'Y/m/d') : '-';
|
|
$v['validity_time'] = $validity_start_time . '-' . $validity_end_time;
|
|
$create_time = date("Y-m-d H:i:s",$v["create_time"]);
|
|
|
|
$v['verify_log'] = json_decode($v['verify_log'], true);
|
|
$v["create"]= "{$v['verify_log']['create_user']} <br> {$v['verify_log']['create_time']}";
|
|
if(isset($v['verify_log']['market_user'])){
|
|
if($v['status'] == -1){
|
|
$ts = "审核拒绝";
|
|
}else{
|
|
$ts = "审核通过";
|
|
}
|
|
$v["market"]= "{$ts}({$v['verify_log']['market_user']}) <br> {$v['verify_log']['market_time']}";
|
|
}else{
|
|
$v["market"] = '--';
|
|
}
|
|
|
|
if(isset($v['verify_log']['admin_user'])){
|
|
if($v['status'] == -2){
|
|
$ts = "审核拒绝";
|
|
}else{
|
|
$ts = "审核通过";
|
|
}
|
|
$v["admin"]= "{$ts}({$v['verify_log']['admin_user']}) <br> {$v['verify_log']['admin_time']}";
|
|
}else{
|
|
$v["admin"] = '--';
|
|
}
|
|
|
|
}
|
|
$count = $model->where($map)->count();
|
|
$page = set_pagination($count, $row);
|
|
if ($page) {
|
|
$this->assign('_page', $page);
|
|
}
|
|
$this->assign('menubtn',$this->menuAuth());
|
|
$this->assign('listData', $data);
|
|
$this->assign('count', $count);
|
|
$this->assign('VerifyStatus', D("PromoteCompanyVerify")->VerifyStatus);
|
|
$this->meta_title = '下游推广公司审核列表';
|
|
$this->display();
|
|
}
|
|
|
|
public function marketAgree(){
|
|
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
|
|
$ids = $_REQUEST['ids'];
|
|
$dbres = M("PromoteCompanyVerify", 'tab_')->field("id,verify_status,verify_log")->where("id in ({$ids})")->select();
|
|
foreach($dbres as $k=>&$v){
|
|
if($v['verify_status'] != 0) continue;
|
|
$v['verify_log'] = json_decode($v['verify_log'],true);
|
|
$v['verify_log']['market_user']=$this->admininfo["username"];
|
|
$v['verify_log']['market_time']=date("Y-m-d H:i:s");
|
|
$v['verify_log'] = json_encode($v['verify_log']);
|
|
$v['verify_status']=1;
|
|
M("PromoteCompanyVerify", 'tab_')->save($v);
|
|
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
|
|
}
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
"info"=>"市场部审核通过成功"
|
|
));
|
|
}
|
|
public function marketRefuse(){
|
|
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
|
|
$ids = $_REQUEST['ids'];
|
|
$dbres = M("PromoteCompanyVerify", 'tab_')->field("id,verify_status,verify_log")->where("id in ({$ids})")->select();
|
|
foreach($dbres as $k=>&$v){
|
|
if($v['verify_status'] != 0) continue;
|
|
$v['verify_log'] = json_decode($v['verify_log'],true);
|
|
$v['verify_log']['market_user']=$this->admininfo["username"];
|
|
$v['verify_log']['market_time']=date("Y-m-d H:i:s");
|
|
$v['verify_log'] = json_encode($v['verify_log']);
|
|
$v['verify_status']=-1;
|
|
M("PromoteCompanyVerify", 'tab_')->save($v);
|
|
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"市场部审核",'url'=>U('index')]);
|
|
}
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
"info"=>"市场部审核拒绝成功"
|
|
));
|
|
}
|
|
public function adminRefuse(){
|
|
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
|
|
$ids = $_REQUEST['ids'];
|
|
$dbres = M("PromoteCompanyVerify", 'tab_')->field("id,verify_status,verify_log")->where("id in ({$ids})")->select();
|
|
foreach($dbres as $k=>&$v){
|
|
if($v['verify_status'] != 1) continue;
|
|
$v['verify_log'] = json_decode($v['verify_log'],true);
|
|
$v['verify_log']['admin_user']=$this->admininfo["username"];
|
|
$v['verify_log']['admin_time']=date("Y-m-d H:i:s");
|
|
$v['verify_log'] = json_encode($v['verify_log']);
|
|
$v['verify_status']=-2;
|
|
M("PromoteCompanyVerify", 'tab_')->save($v);
|
|
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]);
|
|
}
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
"info"=>"管理员审核拒绝成功"
|
|
));
|
|
}
|
|
|
|
public function adminAgree(){
|
|
if(!isset($_REQUEST['ids'])) $this->error("参数错误");
|
|
$ids = $_REQUEST['ids'];
|
|
$dbres = M("PromoteCompanyVerify", 'tab_')->field("*")->where("id in ({$ids})")->select();
|
|
foreach($dbres as $k=>&$v){
|
|
if($v['verify_status'] != 1) continue;
|
|
$v['verify_log'] = json_decode($v['verify_log'],true);
|
|
$v['verify_log']['admin_user']=$this->admininfo["username"];
|
|
$v['verify_log']['admin_time']=date("Y-m-d H:i:s");
|
|
$v['verify_log'] = json_encode($v['verify_log']);
|
|
$v['verify_status']=2;
|
|
$company_info = json_decode($v['company_info'],true);
|
|
if($v['company_id'] == 0){
|
|
//新增
|
|
$v['company_id'] = M("promote_company","tab_")->add($company_info);
|
|
}else{
|
|
//编辑
|
|
|
|
M("promote_company","tab_")->save($company_info);
|
|
$this->changePromote($company_info);
|
|
}
|
|
|
|
//业务逻辑
|
|
M("PromoteCompanyVerify", 'tab_')->save($v);
|
|
addOperationLog(['op_type'=>1,'key'=>$v['id'],"op_name"=>"管理员审核",'url'=>U('index')]);
|
|
}
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
"info"=>"管理员审核通过成功"
|
|
));
|
|
}
|
|
|
|
//添加
|
|
public function add()
|
|
{
|
|
if ($_POST) {
|
|
$time = time();
|
|
$save = I('post.');//前端已经验证
|
|
$this->checkData($save);
|
|
$save['create_time'] = $time;
|
|
$save['turnover_ratio'] = $this->setTurnoverRatio($save);
|
|
$res = D("PromoteCompanyVerify")->add_db($save);
|
|
if ($res) {
|
|
addOperationLog(['op_type'=>0,'key'=>$save['company_name'],'op_name'=>'新增推广公司','url'=>U('PromoteCompany/lists')]);
|
|
\Think\Log::actionLog('PromoteCompany/add', 'partner', $res);
|
|
$array=array(
|
|
"info"=>"添加成功,请联系管理员尽快审核",
|
|
"status"=>1
|
|
);
|
|
$this->ajaxReturn($array);
|
|
} else {
|
|
$this->ajaxReturn(array(
|
|
'status' => 0,
|
|
'info' => "保存失败"
|
|
));
|
|
}
|
|
} else {
|
|
$this->assign('serviceAgreements', M('service_agreement', 'tab_')->select());
|
|
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'PromoteCompany/add'])->find());
|
|
$this->meta_title = '新增下游推广公司';
|
|
$this->display();
|
|
}
|
|
}
|
|
//查看
|
|
public function view()
|
|
{
|
|
$model = M($this->modelName, 'tab_');
|
|
$id = $_REQUEST['id'] ?: 0;
|
|
$map['id'] = $id;
|
|
$data = $model->field('*')->find($id);
|
|
if (empty($data)) {
|
|
$this->error('数据异常', U('lists'));
|
|
}
|
|
if($data['contact_begin'] >0){
|
|
$data['contact_begin']=date("Y-m-d",$data['contact_begin']);
|
|
}else{
|
|
$data['contact_begin']='';
|
|
}
|
|
if($data['contact_end'] >0){
|
|
$data['contact_end']=date("Y-m-d",$data['contact_end']);
|
|
}else{
|
|
$data['contact_end']='';
|
|
}
|
|
if($data['resources'] == ''){
|
|
$data['resources'] ="[]";
|
|
}
|
|
|
|
if($data['validity_start_time'] >0){
|
|
$data['validity_start_time']=date("Y-m-d",$data['validity_start_time']);
|
|
}else{
|
|
$data['validity_start_time']='';
|
|
}
|
|
if($data['validity_end_time'] >0){
|
|
$data['validity_end_time']=date("Y-m-d",$data['validity_end_time']);
|
|
}else{
|
|
$data['validity_end_time']='';
|
|
}
|
|
|
|
if($data['resources'] == ''){
|
|
$data['resources'] ="[]";
|
|
}
|
|
$data['turnover_ratio'] = $data['turnover_ratio'] ? json_decode($data['turnover_ratio'], true) : $data['turnover_ratio'];
|
|
|
|
$this->assign('data', $data);
|
|
$this->meta_title ='推广公司信息查看';
|
|
$this->display();
|
|
}
|
|
public function verifyView()
|
|
{
|
|
if(!isset($_REQUEST['id'])) $this->error('数据异常', U('index'));
|
|
$id = $_REQUEST['id'];
|
|
$map['id'] = $id;
|
|
$dbres = M("PromoteCompanyVerify", 'tab_')->find($id);
|
|
$data = json_decode($dbres['company_info'],true);
|
|
|
|
|
|
if($data['contact_begin'] >0){
|
|
$data['contact_begin']=date("Y-m-d",$data['contact_begin']);
|
|
}else{
|
|
$data['contact_begin']='';
|
|
}
|
|
if($data['contact_end'] >0){
|
|
$data['contact_end']=date("Y-m-d",$data['contact_end']);
|
|
}else{
|
|
$data['contact_end']='';
|
|
}
|
|
if($data['resources'] == ''){
|
|
$data['resources'] ="[]";
|
|
}
|
|
|
|
if($data['validity_start_time'] >0){
|
|
$data['validity_start_time']=date("Y-m-d",$data['validity_start_time']);
|
|
}else{
|
|
$data['validity_start_time']='';
|
|
}
|
|
if($data['validity_end_time'] >0){
|
|
$data['validity_end_time']=date("Y-m-d",$data['validity_end_time']);
|
|
}else{
|
|
$data['validity_end_time']='';
|
|
}
|
|
|
|
if($data['resources'] == ''){
|
|
$data['resources'] ="[]";
|
|
}
|
|
$data['turnover_ratio'] = $data['turnover_ratio'] ? json_decode($data['turnover_ratio'], true) : $data['turnover_ratio'];
|
|
|
|
$this->assign('data', $data);
|
|
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Partner/edit'])->find());
|
|
$this->meta_title ='审核信息查看';
|
|
$this->display("view");
|
|
}
|
|
public function verifyDel(){
|
|
if(!isset($_REQUEST['id'])) $this->error('数据异常', U('index'));
|
|
$id = $_REQUEST['id'];
|
|
|
|
M("PromoteCompanyVerify", 'tab_')->where("id = '{$id}'")->delete();
|
|
addOperationLog(['op_type'=>2,'key'=>$id,'op_name'=>'删除审核','url'=>U('PromoteCompany/index')]);
|
|
$this->success('删除成功', U('index'));
|
|
}
|
|
|
|
|
|
public function marketingDirectorShow($ids=[], $isShow=0)
|
|
{
|
|
$upt = M('promote_company','tab_')->where(['id'=>['in', $ids]])->save(['marketing_director_show'=>$isShow]);
|
|
return $upt ? $this->success('更新成功'): $this->error('更新失败');
|
|
}
|
|
|
|
|
|
//编辑
|
|
public function edit()
|
|
{
|
|
if ($_POST) {
|
|
$save = I('post.');//前端已经验证
|
|
$this->checkData($save);
|
|
$save['turnover_ratio'] = $this->setTurnoverRatio($save);
|
|
$res = D("PromoteCompanyVerify")->edit_db($save);
|
|
if ($res) {
|
|
addOperationLog(['op_type'=>1,'key'=>$_POST['company_name'],'op_name'=>'编辑推广公司','url'=>U('PromoteCompany/lists')]);
|
|
$array=array(
|
|
"info"=>"修改成功,请联系管理员尽快审核",
|
|
"status"=>1
|
|
);
|
|
$this->ajaxReturn($array);
|
|
} else {
|
|
$this->ajaxReturn(array(
|
|
'status' => 0,
|
|
'info' => "修改失败"
|
|
));
|
|
}
|
|
} else {
|
|
$model = M($this->modelName, 'tab_');
|
|
$id = $_REQUEST['id'] ?: 0;
|
|
$map['id'] = $id;
|
|
$data = $model->field('*')->find($id);
|
|
if (empty($data)) {
|
|
$this->error('数据异常', U('lists'));
|
|
}
|
|
if($data['contact_begin'] >0){
|
|
$data['contact_begin']=date("Y-m-d",$data['contact_begin']);
|
|
}else{
|
|
$data['contact_begin']='';
|
|
}
|
|
if(empty($data['contact_phone'])){
|
|
$data['contact_phone'] = '';
|
|
}
|
|
if($data['contact_end'] >0){
|
|
$data['contact_end']=date("Y-m-d",$data['contact_end']);
|
|
}else{
|
|
$data['contact_end']='';
|
|
}
|
|
if($data['validity_start_time'] >0){
|
|
$data['validity_start_time']=date("Y-m-d",$data['validity_start_time']);
|
|
}else{
|
|
$data['validity_start_time']='';
|
|
}
|
|
if($data['validity_end_time'] >0){
|
|
$data['validity_end_time']=date("Y-m-d",$data['validity_end_time']);
|
|
}else{
|
|
$data['validity_end_time']='';
|
|
}
|
|
|
|
if($data['resources'] == ''){
|
|
$data['resources'] ="[]";
|
|
}
|
|
$data['turnover_ratio'] = $data['turnover_ratio'] ? json_decode($data['turnover_ratio'], true) : $data['turnover_ratio'];
|
|
// $data['game_ids'] = explode(',', $data['game_ids']);
|
|
$this->assign('serviceAgreements', M('service_agreement', 'tab_')->select());
|
|
$this->assign('data', $data);
|
|
$this->display();
|
|
}
|
|
}
|
|
|
|
//删除
|
|
public function del()
|
|
{
|
|
$model = M($this->modelName, 'tab_');
|
|
if (!empty($_POST['id'])) {
|
|
if (!is_array($_POST['id'])) {
|
|
$this->error('参数异常');
|
|
}
|
|
|
|
$id = $_POST['id'];
|
|
} else {
|
|
$id = intval(I('get.id', 0));
|
|
if ($id == 0) {
|
|
$this->error('参数异常');
|
|
}
|
|
}
|
|
//删除所有资源
|
|
$data = $model->field('resources')->find($id)['resources'];
|
|
$data = json_encode($data,true);
|
|
if(is_array($data) && count($data) >0){
|
|
foreach($data as $k=>$v){
|
|
unlink("./".$v['file_path']);
|
|
}
|
|
}
|
|
|
|
$companyData = M('promote_company','tab_')->field('company_name')->where(['id'=>$_REQUEST['id']])->find();
|
|
|
|
$res = $model->delete($id);
|
|
//删除对应的推广员
|
|
if ($res === false) {
|
|
$this->error('删除失败');
|
|
}
|
|
|
|
|
|
addOperationLog(['op_type'=>2,'key'=>$companyData['company_name'],'op_name'=>'删除推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-删除推广公司']);
|
|
|
|
$this->success('删除成功', U('lists'));
|
|
}
|
|
//处理上传图片
|
|
public function saveFile()
|
|
{
|
|
$path = '/Uploads/';
|
|
$upload = new \Think\Upload();// 实例化上传类
|
|
$upload->maxSize = 0 ;// 设置附件上传大小
|
|
$upload->exts = '';// 设置附件上传类型
|
|
$upload->rootPath = '.'.$path; // 设置附件上传根目录
|
|
$upload->savePath = ''; // 设置附件上传(子)目录
|
|
// 上传文件
|
|
$info = $upload->upload();
|
|
// dump($info);
|
|
if(!$info) {// 上传错误提示错误信息
|
|
$msg = $upload->getError();
|
|
$array= array('status' => 0, 'info' => $msg);
|
|
}else{// 上传成功
|
|
$array=array(
|
|
"info"=>"上传成功",
|
|
"status"=>1,
|
|
"file_path"=>$path.$info['file']['savepath'].$info['file']['savename'],
|
|
"file_name"=>$_POST['file_name'],
|
|
"file_type"=>$_FILES['file']['type'],
|
|
"file_size"=>$_FILES['file']['size'],
|
|
"upload_time"=>date("Y-m-d H:i:s",time())
|
|
);
|
|
}
|
|
$this->ajaxReturn($array);
|
|
}
|
|
//删除图片
|
|
public function delFile()
|
|
{
|
|
$id = $_REQUEST['id'];
|
|
$file_path = $_REQUEST['file_path'] ?: false;
|
|
unlink("./".$file_path);
|
|
if($id == 0){
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
'info' => "删除成功"
|
|
));
|
|
}else{
|
|
//需要修改
|
|
$array = array(
|
|
"resources"=>json_encode($_REQUEST['resources'],JSON_UNESCAPED_UNICODE)
|
|
);
|
|
$res = M($this->modelName, 'tab_')->where("id='{$id}'")->save($array);
|
|
if($res === false){
|
|
$this->ajaxReturn(array(
|
|
'status' => 0,
|
|
'info' => "删除保存失败"
|
|
));
|
|
}else{
|
|
$this->ajaxReturn(array(
|
|
'status' => 1,
|
|
'info' => "删除成功"
|
|
));
|
|
}
|
|
}
|
|
# code...
|
|
}
|
|
|
|
public function promoteDataConfigIndex() {
|
|
|
|
if (IS_POST) {
|
|
|
|
$changeData = I('post.','');
|
|
|
|
$promoteData = M("promote","tab_")
|
|
->field("id")
|
|
->where(['company_belong'=>2])
|
|
->select();
|
|
|
|
$promoteData = implode(',',array_column($promoteData,'id'));
|
|
|
|
if ($changeData['admin_type'] == 1) {
|
|
|
|
|
|
$num_pend = 0;
|
|
$num_deposit = 0;
|
|
if ($promoteData) {
|
|
|
|
$sql_spend = "UPDATE `tab_spend` SET `old_change_promote_id`=`promote_id`,`old_change_promote_account`=`promote_account`,`promote_id`=0,`promote_account`='无' WHERE promote_id in({$promoteData})";
|
|
$sql_deposit = "UPDATE `tab_deposit` SET `old_change_promote_id`=`promote_id`,`old_change_promote_account`=`promote_account`,`promote_id`=0,`promote_account`='无' WHERE promote_id in({$promoteData})";
|
|
|
|
$model = new \Think\Model();
|
|
$num_pend = $model->execute($sql_spend,true);
|
|
$num_deposit = $model->execute($sql_deposit,true);
|
|
|
|
$this->ajaxReturn(['info'=>"处理订单数据".($num_pend+$num_deposit).'条']);
|
|
|
|
}
|
|
|
|
} else if ($changeData['admin_type'] == 2){
|
|
$num_pend = 0;
|
|
$num_deposit = 0;
|
|
|
|
if ($promoteData) {
|
|
|
|
$sql_spend = "UPDATE `tab_spend` SET `promote_id`=`old_change_promote_id`,`promote_account`=`old_change_promote_account`,`old_change_promote_id`=0,`old_change_promote_account`=''
|
|
WHERE old_change_promote_id in ({$promoteData})";
|
|
$sql_deposit = "UPDATE `tab_deposit` SET `promote_id`=`old_change_promote_id`,`promote_account`=`old_change_promote_account`,`old_change_promote_id`=0,`old_change_promote_account`=''
|
|
WHERE old_change_promote_id in ({$promoteData})";
|
|
|
|
$model = new \Think\Model();
|
|
$num_pend = $model->execute($sql_spend,true);
|
|
$num_deposit = $model->execute($sql_deposit,true);
|
|
|
|
$this->ajaxReturn(['info'=>"将数据还原,处理订单数据".($num_pend+$num_deposit).'条']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$promoteData = M("promote","tab_")
|
|
->field("id")
|
|
->where(['company_belong'=>2])
|
|
->select();
|
|
|
|
$promoteData = implode(',',array_column($promoteData,'id'));
|
|
|
|
$spendData = M('spend','tab_')->field("old_change_promote_account")->where(['old_change_promote_id'=>['in',$promoteData]])->find();
|
|
|
|
// var_dump($spendData);die();
|
|
|
|
if ($spendData['old_change_promote_account']) {
|
|
$this->assign('old_change_promote_account',1);
|
|
}
|
|
|
|
$this->display('promotedataconfigindex');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public function serviceAgreementList($row = 10, $p = 1)
|
|
{
|
|
$map = [];
|
|
$map['_string'] = " 1=1 ";
|
|
if (isset($_GET['time-start'])) {
|
|
$map['_string'] .= " and created_time >= " . strtotime($_GET['time-start']);
|
|
}
|
|
if (isset($_GET['time-end'])) {
|
|
$map['_string'] .= " and created_time < " . (strtotime($_GET['time-end']) + 86400);
|
|
}
|
|
if (isset($_GET['type'])) {
|
|
$map['type'] = $_GET['type'];
|
|
}
|
|
if (!empty($_GET['title'])) {
|
|
$map['title'] = ['like', "%{$_GET['title']}%"];
|
|
}
|
|
$list = M('service_agreement', 'tab_')
|
|
->field("tab_service_agreement.*, group_concat(distinct(tab_promote_company.company_name)) as company_name")
|
|
->join('tab_promote_company on tab_promote_company.service_agreement_show = tab_service_agreement.id', 'LEFT')->where($map)->group('tab_service_agreement.id asc')->page($p, $row)->order("status desc")->select();
|
|
$count = M('service_agreement', 'tab_')->where($map)->count();
|
|
$page = set_pagination($count, $row);
|
|
if ($page) {
|
|
$this->assign('_page', $page);
|
|
}
|
|
$this->assign('list_data', $list);
|
|
$this->display('service_agreement_list');
|
|
}
|
|
|
|
public function serviceAgreementSave($id=0, $delete=0)
|
|
{
|
|
if (IS_POST) {
|
|
if (!empty(I('ids'))) {
|
|
$ids = is_array(I('ids')) ? I('ids') : [I('ids')];
|
|
if ($delete) {
|
|
// 获取默认合同id
|
|
$defaultService = M('service_agreement', 'tab_')->where(['status'=>2])->find();
|
|
if(in_array($defaultService['id'], $ids)) {
|
|
return $this->error('无法删除默认模板');
|
|
}
|
|
$usingService = M('promote_company', 'tab_')->where(['service_agreement_show'=>['in', $ids]])->find();
|
|
if (!empty($usingService)) return $this->error('有正在使用该服务合同的公司,无法删除');
|
|
$result = M('service_agreement', 'tab_')->where(['id'=>['in', $ids]])->delete();
|
|
return $result ? $this->success('删除完成') : $this->error('删除失败');
|
|
}
|
|
}
|
|
if (empty($_POST['name']) || empty($_POST['content'])) {
|
|
return $this->error('请填写完整内容');
|
|
}
|
|
if ($id) {
|
|
$result = M('service_agreement', 'tab_')->where(['id'=>$id])->save($_POST);
|
|
return $result ? $this->success('更新完成') : $this->error('更新失败');
|
|
} else {
|
|
$data = $_POST;
|
|
$data['creator'] = is_login();
|
|
$data['created_time'] = time();
|
|
$result = M('service_agreement', 'tab_')->add($data);
|
|
return $result ? $this->success('生成协议完成') : $this->error('生成协议失败');
|
|
}
|
|
} else {
|
|
if (!empty($id)) {
|
|
if ($delete) {
|
|
$ids = [$id];
|
|
// 获取默认合同id
|
|
$defaultService = M('service_agreement', 'tab_')->where(['status'=>2])->find();
|
|
if(in_array($defaultService['id'], $ids)) {
|
|
return $this->error('无法删除默认模板');
|
|
}
|
|
$usingService = M('promote_company', 'tab_')->where(['service_agreement_show'=>['in', $ids]])->find();
|
|
if (!empty($usingService)) return $this->error('有正在使用该服务合同的公司,无法删除');
|
|
$result = M('service_agreement', 'tab_')->where(['id'=>['in', $ids]])->delete();
|
|
return $result ? $this->success('删除完成') : $this->error('删除失败');
|
|
}
|
|
$info = M('service_agreement', 'tab_')->where(['id'=>$id])->find();
|
|
if (empty($info)) return $this->error('未找到协议');
|
|
$this->assign('info', $info);
|
|
}
|
|
$this->display('service_agreement_save');
|
|
}
|
|
}
|
|
|
|
public function serviceAgreementSetDefault($id)
|
|
{
|
|
M('service_agreement', 'tab_')->where('id > 0')->save(['status'=>1]);
|
|
M('service_agreement', 'tab_')->where(['id'=>$id])->save(['status'=>2]);
|
|
return $this->success('设置完成');
|
|
}
|
|
|
|
//
|
|
public function getCompanyGame()
|
|
{
|
|
if (IS_AJAX) {
|
|
//获取所有游戏
|
|
$game_list = M('game', 'tab_')->field('relation_game_id id,relation_game_name game_name,short')->where(['game_status'=>1,'down_port'=>1])->group("relation_game_id")->select();
|
|
$data['data']['game_list'] = empty($game_list) ? '' : $game_list;
|
|
//获取推广员信息
|
|
$promote_info = M('promote_company', 'tab_')->field('id,company_name,game_ids')->where(['id'=>I('id', 0, 'intval')])->find();
|
|
if (!empty($promote_info['game_ids'])) {
|
|
$promote_info['game_ids'] = explode(',', $promote_info['game_ids']);
|
|
}
|
|
$data['data']['promote_info'] = empty($promote_info) ? '' : $promote_info;
|
|
$data['msg'] = '请求成功';
|
|
$data['code'] = 1;
|
|
|
|
$this->ajaxReturn($data);
|
|
exit;
|
|
}
|
|
}
|
|
//更新推广员可推广游戏
|
|
public function saveCompanyGame()
|
|
{
|
|
if (IS_AJAX) {
|
|
$id = I('promote_id', 0, 'intval');
|
|
if (empty($id)) {
|
|
$this->ajaxReturn(['code'=>0,'msg'=>'请选择推广公司']);
|
|
}
|
|
$promoter = M('promote_company', 'tab_')->where(['id'=>$id])->find();
|
|
if (empty($promoter)) {
|
|
$this->ajaxReturn(['code'=>0,'msg'=>'未找到推广公司']);
|
|
}
|
|
$game_ids = I('game_ids', '');
|
|
if (!empty($game_ids)) {
|
|
$game_ids = implode(',', $game_ids);
|
|
} else {
|
|
$game_ids = '';
|
|
}
|
|
// 获取下级id
|
|
$res = M('promote_company', 'tab_')->where(['id'=>$id])->save(['game_ids'=>$game_ids]);
|
|
if ($res) {
|
|
$this->ajaxReturn(['code'=>1,'msg'=>'更新成功']);
|
|
} else {
|
|
$this->ajaxReturn(['code'=>0,'msg'=>'数据未发生变化']);
|
|
}
|
|
}
|
|
}
|
|
//
|
|
protected function setTurnoverRatio($params)
|
|
{
|
|
$save['turnover_ratio'] = [];
|
|
if (!empty(array_filter($params['turnover'])) || !empty(array_filter($params['turnover_ratio'])) ) {
|
|
if (is_array($params['turnover']) && is_array($params['turnover_ratio']) && is_array($params['instanceof'])) {
|
|
foreach ($params['turnover'] as $turnover) {
|
|
if (empty($turnover)) {
|
|
$this->error('月流水不能为空');
|
|
}
|
|
}
|
|
foreach ($params['turnover_ratio'] as $turnoverRatio) {
|
|
if (empty($turnoverRatio)) {
|
|
$this->error('月流水分成比例不能为空');
|
|
}
|
|
}
|
|
foreach ($params['instanceof'] as $intervalClosedStatus) {
|
|
if (!in_array($intervalClosedStatus, [1, 2])) {
|
|
$this->error('月流水分符号不能为空');
|
|
}
|
|
}
|
|
$turnoverCount = count($params['turnover']);
|
|
$sortTurnover = $params['turnover'];
|
|
sort($sortTurnover);
|
|
if ($params['turnover'] != $sortTurnover || $turnoverCount != count(array_unique($params['turnover']))) {
|
|
$this->error('月流水必须以正序的方式填写,且必须大于上一个月流水');
|
|
}
|
|
$ratio = $params['ratio'] ?? 0;
|
|
// if ($params['turnover_ratio'][0] <= $ratio) {
|
|
// $this->error('月流水分成比例必须大于默认分成比例');
|
|
// }
|
|
$turnoverRatioCount = count($params['turnover_ratio']);
|
|
$sortTurnoverRatio = $params['turnover_ratio'];
|
|
sort($sortTurnoverRatio);
|
|
// if ($params['turnover_ratio'] != $sortTurnoverRatio || $turnoverRatioCount != count(array_unique($params['turnover_ratio']))) {
|
|
// $this->error('月流水分成比例必须以正序的方式填写,且必须大于上一个月流水分成比例');
|
|
// }
|
|
|
|
foreach ($params['turnover'] as $key => $turnover) {
|
|
$save['turnover_ratio'][] = [
|
|
'turnover' => bcdiv($turnover, 1, 2),
|
|
'ratio' => bcdiv($params['turnover_ratio'][$key], 1, 2),
|
|
'instanceof' => (isset($params['instanceof'][$key]) ? $params['instanceof'][$key] : 1),
|
|
];
|
|
}
|
|
}
|
|
}
|
|
return json_encode($save['turnover_ratio']);
|
|
}
|
|
protected function checkData(&$save)
|
|
{
|
|
$company_name = trim($save["company_name"]);
|
|
$status = intval($save['status']);
|
|
|
|
if (empty($company_name)) {
|
|
$this->error('请输入推广公司名称');
|
|
}
|
|
|
|
$model = M("promote_company", 'tab_');
|
|
$map['company_name'] = $company_name;
|
|
$res = $model->where($map)->field("id")->find();
|
|
|
|
if ($res) {
|
|
if(isset($save['id'])){
|
|
if($save['id'] !=$res['id']){
|
|
$this->error('推广公司已存在');
|
|
}
|
|
}else{
|
|
$this->error('推广公司已存在');
|
|
}
|
|
}
|
|
|
|
if(!empty(I("contact_phone")) && !checkPhone(I('contact_phone'))) {
|
|
$this->error('联系电话格式不正确');
|
|
}
|
|
if(!empty(I('reg_phone')) && !checkPhone(I('reg_phone'))) {
|
|
$this->error('注册电话格式不正确');
|
|
}
|
|
if(!empty(I('taxation_rate')) && I('taxation_rate') > 0) {
|
|
if(!checkNumber(I('taxation_rate'))){
|
|
$this->error('税费费率格式错误');
|
|
}else{
|
|
$save['taxation_rate'] = ($save['taxation_rate'] ?: 0);
|
|
}
|
|
}else{
|
|
$save['taxation_rate']=0;
|
|
}
|
|
if(!empty(I('channel_rate')) && I('channel_rate') > 0) {
|
|
if(!checkNumber(I('channel_rate'))){
|
|
$this->error('渠道费率格式不对');
|
|
}else{
|
|
$save['channel_rate'] = ($save['channel_rate'] ?: 0);
|
|
}
|
|
}else{
|
|
$save['channel_rate']=0;
|
|
}
|
|
if(!empty(I('fax_ratio')) && I('fax_ratio') > 0) {
|
|
if(!checkNumber(I('fax_ratio'))){
|
|
$this->error('开票税点格式不对');
|
|
}else{
|
|
$save['fax_ratio'] = ($save['fax_ratio'] ?: 0);
|
|
}
|
|
}else{
|
|
$save['fax_ratio']=0;
|
|
}
|
|
if(!empty(I('server_fee')) && !checkNumber(I('server_fee')) && I("has_server_fee") == 1) {
|
|
$this->error('服务器费用格式不对');
|
|
}else{
|
|
if(empty(I('server_fee'))){
|
|
$save['server_fee']=0;
|
|
}else{
|
|
$save['server_fee']=I('server_fee');
|
|
}
|
|
}
|
|
$time =time();
|
|
$save['contact_begin'] = strtotime($save['contact_begin']);
|
|
$save['contact_end'] = strtotime($save['contact_end']);
|
|
$save['validity_start_time'] = strtotime($save['validity_start_time']);
|
|
$save['validity_end_time'] = strtotime($save['validity_end_time']);
|
|
$save['last_up_time'] = $time;
|
|
}
|
|
/**
|
|
* 由于修改公司信息引起的会长信息修改
|
|
* @param [type] $save
|
|
* @return void
|
|
*/
|
|
protected function changePromote(&$save){
|
|
$is_change_belong = false;
|
|
$is_change_relation =false;
|
|
$is_change_game =false;
|
|
if(empty($save['id'])){
|
|
return false;
|
|
}
|
|
$company_id = $save['id'];
|
|
$old_info = M("PromoteCompany","tab_")->field("company_belong,develop_type,game_ids")->where("id = {$save['id']}")->find();
|
|
if(isset($save['company_belong']) && ($old_info['company_belong'] != $save['company_belong'])){
|
|
$is_change_belong = true;
|
|
}
|
|
if(isset($save['develop_type']) && ($old_info['develop_type'] != $save['develop_type'])){
|
|
$is_change_relation = true;
|
|
}
|
|
//获取需要扣除的游戏
|
|
if($old_info['game_ids'] != $save['game_ids']){
|
|
// $is_change_game = true;
|
|
$oids = explode(',', $old_info['game_ids']);
|
|
$nids = explode(',', $save['game_ids']);
|
|
$diff_ids = [];
|
|
if(count($oids) == 0){
|
|
$is_change_game = false;
|
|
}elseif(count($nids) == 0){
|
|
$diff_ids = $oids;
|
|
}else{
|
|
foreach ($oids as $k => $v) {
|
|
if(!in_array($v,$nids)){
|
|
$diff_ids[] = $v;
|
|
}
|
|
}
|
|
}
|
|
if(count($diff_ids) > 0){
|
|
$is_change_game = true;
|
|
$diff_ids = $this->changeRelationGameidToGameid($diff_ids,true);
|
|
}
|
|
}
|
|
|
|
//处理底下所有会长的公会属性
|
|
if($is_change_belong || $is_change_relation || $is_change_game){
|
|
|
|
if(!$is_change_game){
|
|
$savedata = array(
|
|
"company_belong"=>$save['company_belong'],
|
|
"company_relation"=>$save['develop_type']
|
|
);
|
|
M("Promote","tab_")->where("company_id = '{$company_id}'")->save($savedata);
|
|
}else{
|
|
//需要扣除游戏
|
|
$Promote = M("Promote","tab_");
|
|
$dbres = $Promote->field("id,game_ids,company_belong,company_relation")->where("company_id = '{$company_id}'")->select();
|
|
foreach($dbres as $k=>&$v){
|
|
$temp_ids = explode(',',$v['game_ids']);
|
|
$v['game_ids'] = implode(',', array_diff($temp_ids,$diff_ids));
|
|
$v['company_belong'] = $save['company_belong'];
|
|
$v['company_relation'] = $save['develop_type'];
|
|
$Promote->save($v);
|
|
}
|
|
}
|
|
// 权限跟随
|
|
if($is_change_belong){
|
|
$authGroup = M('auth_group',"sys_")->where(['title'=>'市场总监'])->find();
|
|
$subPromoteIds = M('promote', 'tab_')->where(['level' => 1, 'company_id' => $company_id])->getField('id', true);
|
|
$dataPresident = explode(',', $authGroup['data_president']);
|
|
if ($save['company_belong'] == 1 || $save['company_belong'] == 2) {
|
|
$dataPresident = array_unique(array_merge($dataPresident, $subPromoteIds));
|
|
} else {
|
|
$dataPresident = array_diff($dataPresident, $subPromoteIds);
|
|
}
|
|
M('auth_group',"sys_")->where(['title'=>'市场总监'])->save(['data_president'=>implode(',', $dataPresident)]);
|
|
}
|
|
}
|
|
}
|
|
protected function menuAuth()
|
|
{
|
|
$addurl = U("addRelation");
|
|
$mentBtn = [
|
|
"marketAgree"=>"<a class='butn' id='marketAgree'>市场部审批通过</a>",
|
|
"marketRefuse"=>"<a class='butn' id='marketRefuse' style='background-color: red;'>市场部审核拒绝</a>",
|
|
"adminAgree"=>"<a class='butn' id='adminAgree'>管理员审核通过</a>",
|
|
"adminRefuse"=>"<a class='butn' id='adminRefuse' style='background-color: red;'>管理员审核拒绝</a>"
|
|
];
|
|
$resarr = [];
|
|
foreach ($mentBtn as $k => $v) {
|
|
if(IS_ROOT){
|
|
$resarr[] = $v;
|
|
}else{
|
|
if(in_array($k,$this->OpAuthList)){
|
|
$resarr[] = $v;
|
|
}
|
|
}
|
|
}
|
|
return $resarr;
|
|
}
|
|
/**
|
|
* 返回公司的游戏分成比例
|
|
*
|
|
* @param [type] $company_id
|
|
* @param [type] $game_ids
|
|
* @param boolean $is_export
|
|
* @return void
|
|
*/
|
|
protected function getGamePromoteCompanyRadio($company_id,$game_ids,$is_export = false){
|
|
//判断是否有生效
|
|
$senddata = [];
|
|
$game = $this->getGameInfo($game_ids);
|
|
//获取cp分成比例
|
|
if($is_export){
|
|
$CpRadio = $this->getPromoteCompanyCpRadio($game_ids);
|
|
}
|
|
|
|
$endtime = time();
|
|
$rwhere = "(end_time = 0 OR end_time >= '{$endtime}') and company_id='{$company_id}' and relation_game_id in ({$game_ids})";
|
|
$cgr_res = M("CompanyGameRatio","tab_")->where($rwhere)->select();
|
|
//判断哪些游戏为空
|
|
$game_arr = array_flip(explode(",",$game_ids));
|
|
if(!empty($cgr_res)){
|
|
foreach ($cgr_res as $k => $v) {
|
|
$t_gid = $v['relation_game_id'];
|
|
unset($game_arr[$t_gid]);
|
|
$senddata[$t_gid] = ["turnover_ratio"=>$v['turnover_ratio'],"ratio"=>$v['ratio'],"relation_game_id"=>$v['relation_game_id']];
|
|
$senddata[$t_gid] += $game[$t_gid];
|
|
|
|
$this->setPromoteRadio($senddata[$t_gid]);
|
|
|
|
if($is_export){
|
|
if(isset($CpRadio[$t_gid])){
|
|
$senddata[$t_gid]["cp_ratio"] = $CpRadio[$t_gid];
|
|
if( count($CpRadio[$t_gid]) >= $senddata[$t_gid]['row'] ){
|
|
$c = count($CpRadio[$t_gid]) - $senddata[$t_gid]['row'];
|
|
for ($x=0; $x<$c; $x++) {
|
|
$senddata[$t_gid]['turnover_ratio'][]=["name"=>"--","ratio"=>"--"];
|
|
}
|
|
$senddata[$t_gid]['row'] = count($CpRadio[$t_gid]);
|
|
}else{
|
|
$c = $senddata[$t_gid]['row'] - count($CpRadio[$t_gid]);
|
|
for ($x=0; $x<$c; $x++) {
|
|
$senddata[$t_gid]['cp_ratio'][]=["name"=>"--","ratio"=>"--"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(empty($game_arr)){
|
|
return $senddata;
|
|
}
|
|
|
|
$diff_ids = implode(",",array_keys($game_arr));
|
|
$company_belong = M("PromoteCompany","tab_")->field("company_belong")->where("id='{$company_id}'")->find()['company_belong'];
|
|
$mwhere = "company_belong='{$company_belong}' and relation_game_id in ({$diff_ids})";
|
|
$m_res = M("GameRatioMould","tab_")->where($mwhere)->select();
|
|
|
|
if(!empty($m_res)){
|
|
foreach ($m_res as $k => $v) {
|
|
$t_gid = $v['relation_game_id'];
|
|
unset($game_arr[$t_gid]);
|
|
$senddata[$t_gid] = ["turnover_ratio"=>$v['turnover_ratio'],"ratio"=>$v['ratio'],"relation_game_id"=>$v['relation_game_id']];
|
|
$senddata[$t_gid] += $game[$t_gid];
|
|
$this->setPromoteRadio($senddata[$t_gid]);
|
|
if($is_export){
|
|
if(isset($CpRadio[$t_gid])){
|
|
$senddata[$t_gid]["cp_ratio"] = $CpRadio[$t_gid];
|
|
if( count($CpRadio[$t_gid]) >= $senddata[$t_gid]['row'] ){
|
|
$c = count($CpRadio[$t_gid]) - $senddata[$t_gid]['row'];
|
|
for ($x=0; $x<$c; $x++) {
|
|
$senddata[$t_gid]['turnover_ratio'][]=["name"=>"--","ratio"=>"--"];
|
|
}
|
|
$senddata[$t_gid]['row'] = count($CpRadio[$t_gid]);
|
|
}else{
|
|
$c = $senddata[$t_gid]['row'] - count($CpRadio[$t_gid]);
|
|
for ($x=0; $x<$c; $x++) {
|
|
$senddata[$t_gid]['cp_ratio'][]=["name"=>"--","ratio"=>"--"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
if(empty($game_arr)){
|
|
return $senddata;
|
|
}
|
|
|
|
foreach($game_arr as $k=>$v){
|
|
$senddata[$k]= ["turnover_ratio"=>[["name"=>"--","ratio"=>"--"]],"ratio"=>0,"relation_game_id"=>$k,"cp_ratio"=>[["name"=>"--","ratio"=>"--"]],"row"=>1];
|
|
$senddata[$k]+= $game[$k];;
|
|
}
|
|
return $senddata;
|
|
}
|
|
protected function getPromoteGameRadio($company_id,$ratio,$p_map = false){
|
|
//获取会长信息
|
|
$payWays = PresidentDepositService::$payWays;
|
|
$payTypes = PresidentDepositService::$payTypes;
|
|
$statusList = PresidentDepositService::$statusList;
|
|
|
|
$rdata = [];
|
|
$promotemap['p.company_id']=$company_id;
|
|
$promotemap['p.level'] = 1;
|
|
if($p_map){
|
|
$promotemap += $p_map;//外界条件
|
|
}
|
|
$company_row = 0;
|
|
|
|
$promoteres = M("Promote","tab_")
|
|
->alias('p')
|
|
->field("p.id,p.company_id,p.account,p.game_ids,d.amount,IFNULL(d.pay_way,-1) pay_way,d.status,d.pay_type")
|
|
->join("tab_president_deposit as d ON p.id = d.promote_id","left")
|
|
->where($promotemap)
|
|
->select();
|
|
// dd($promoteres);
|
|
$adminList = getMarketAdminsByPromoteIds(array_column($promoteres, 'id'));
|
|
if(empty($promoteres)){
|
|
//无会长
|
|
return ["list"=>["account" => "--","list" => ["turnover_ratio"=>[["name"=>"--","ratio"=>"--"]],"ratio"=>0,"relation_game_id"=>$k,"cp_ratio"=>[["name"=>"--","ratio"=>"--"]],"row"=>1,"original_package_name"=>"--","relation_game_name"=>"--","game_type_name"=>"--"]],"row"=>1];
|
|
}
|
|
|
|
foreach ($promoteres as $k => &$v) {
|
|
$v['market_admin_username'] = isset($adminList[$v['id']]) && $adminList[$v['id']]['admin'] ? $adminList[$v['id']]['admin']['username'] : '无';
|
|
if($v['pay_way'] == -1){
|
|
$v['pay_way'] = "--";
|
|
$v['status'] = "--";
|
|
$v['pay_type']="--";
|
|
}else{
|
|
$v['status'] = $statusList[$v['status']] ?? '--';
|
|
$v['pay_type'] = $payTypes[$v['pay_type']] ?? '--';
|
|
$v['pay_way'] = $payWays[$v['pay_way']] ?? '--';
|
|
}
|
|
|
|
if($ratio == false || empty($v['game_ids'])){
|
|
$v['row']=1;
|
|
$v['list'] = ["turnover_ratio"=>[["name"=>"--","ratio"=>"--"]],"ratio"=>0,"relation_game_id"=>$k,"cp_ratio"=>[["name"=>"--","ratio"=>"--"]],"row"=>1,"original_package_name"=>"--","relation_game_name"=>"--","game_type_name"=>"--"];
|
|
$rdata[] = $v;
|
|
$company_row += $v['row'];
|
|
}else{
|
|
$v['list'] = [];
|
|
$v['row']=0;
|
|
$v['game_ids'] = $this->changeGameidToRelationGameid($v['game_ids']);
|
|
$game_arr = array_flip(explode(",",$v['game_ids']));
|
|
foreach($game_arr as $ke=>$va){
|
|
if(isset($ratio[$ke])){
|
|
$v['list'][] = $ratio[$ke];
|
|
$v['row'] += $ratio[$ke]["row"];
|
|
}
|
|
}
|
|
if($v['row'] == 0) $v['row']=1;
|
|
$rdata[] = $v;
|
|
$company_row += $v['row'];
|
|
}
|
|
// dd($v);
|
|
}
|
|
return ["list"=>$rdata,"row"=>$company_row];
|
|
}
|
|
//获取cp分成比例
|
|
protected function getPromoteCompanyCpRadio($game_ids)
|
|
{
|
|
$cp_game_ratio_map['game_id'] = ["in", $game_ids];
|
|
$cp_game_ratio_map['is_del'] = '0';
|
|
$gameradiores = M("cp_game_ratio","tab_")
|
|
->alias("cg")
|
|
->field("cg.ratio,cg.instanceof,cg.game_id,cg.begin_total_amount")
|
|
->where($cp_game_ratio_map)
|
|
->group('game_id,begin_total_amount')
|
|
->order("begin_total_amount asc")
|
|
->select();
|
|
$parseGameRadiores = array();//合作方分成比例
|
|
foreach ($gameradiores as $key =>$val) {
|
|
$val['row'] = 1;
|
|
if ($val['begin_total_amount'] == 0) {
|
|
$val['name'] = '默认比例';
|
|
if (isset($parseGameRadiores[$val['game_id']])) {
|
|
$parseGameRadiores[$val['game_id']] = [];
|
|
}
|
|
} else {
|
|
if($val['instanceof']=='1'){
|
|
$val['name']="月流水≥".$val['begin_total_amount'];
|
|
}else{
|
|
$val['name']="月流水>".$val['begin_total_amount'];
|
|
}
|
|
}
|
|
$parseGameRadiores[$val['game_id']][] =['name'=>$val['name'],"ratio"=>$val['ratio']];
|
|
}
|
|
return $parseGameRadiores;
|
|
}
|
|
//设置比例阶梯
|
|
protected function setPromoteRadio(&$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 getGameInfo($game_ids){
|
|
|
|
$gameinfo = [];
|
|
$dbres = M("Game","tab_")->where("relation_game_id in ($game_ids)")->field("relation_game_id,relation_game_name,game_type_name,original_package_name")->group("relation_game_id")->select();
|
|
foreach($dbres as $k=>$v){
|
|
$gameinfo[$v['relation_game_id']] = $v;
|
|
}
|
|
return $gameinfo;
|
|
}
|
|
//普通游戏id转唯一游戏id
|
|
protected function changeGameidToRelationGameid($ids,$type=false)
|
|
{
|
|
$rid = M('game', 'tab_')->field('relation_game_id')->where(["id"=>["in",$ids]])->group("relation_game_id")->select();
|
|
if($type){
|
|
return array_column($rid,'relation_game_id');
|
|
}else{
|
|
return implode(",",array_column($rid,'relation_game_id'));
|
|
}
|
|
}
|
|
//唯一游戏id转普通游戏id
|
|
protected function changeRelationGameidToGameid($ids,$type=false)
|
|
{
|
|
$rid = M('game', 'tab_')->field('id')->where(["relation_game_id"=>["in",$ids]])->select();
|
|
if($type){
|
|
return array_column($rid,'id');
|
|
}else{
|
|
return implode(",",array_column($rid,'id'));
|
|
}
|
|
|
|
}
|
|
protected function promoteCompanyIsCanDel($company_id){
|
|
$r = M("Promote","tab_")->where("company_id={$company_id}")->count();
|
|
if($r > 0){
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|