"管理员拒绝", "-1"=>"市场部拒绝", "0"=>"待审核", "1"=>"市场部通过", "2"=>"管理员通过" ]; public function _initialize() { $this->admininfo = $_SESSION['onethink_admin']['user_auth']; $this->DBModel = M("company_game_ratio","tab_"); parent::_initialize(); } public function index() { dd(MODULE_NAME."/".CONTROLLER_NAME ); $params = I('get.'); $page = $params['p'] ? intval($params['p']) : 1; $row = $params['row'] ? intval($params['row']) : 10; $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']; } if(isset($params['status'])){ $where['m.status'] = $params['status']; } //TODO:未计算公司类型 $this->checkListOrCountAuthRestMap($where); $gameres = M("game","tab_")->field("tab_game.relation_game_id,tab_game.relation_game_name,IF(tab_game.original_package_name='','未配置',tab_game.original_package_name) original_package_name,tab_game_type.type_name game_type_name")->where($gamewhere)->join("tab_game_type on tab_game.game_type_id = tab_game_type.id")->group("tab_game.relation_game_id")->select(false); $dbres = M("company_game_ratio_log","tab_") ->alias('m') ->field("m.*,g.*,p.company_name,p.company_belong") ->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) ->order('create_time desc, id desc'); 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['company_belong'] ="下游".getCompanyBlong($v['company_belong']); $v['verify_log'] = json_decode($v['verify_log'], true); $v["create"]= "{$v['verify_log']['create_user']}
{$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']})
{$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']})
{$v['verify_log']['admin_time']}"; }else{ $v["admin"] = '--'; } //新 $thisTurnoverRatios = $v['turnover_ratio'] ? json_decode($v['turnover_ratio'], true) : []; $thisRatioDtl = "默认:{$v['ratio']}%"; if ($thisTurnoverRatios) { if (I('export', 0) == 1) { $symbol = "\n"; } else { $symbol = "
"; } foreach ($thisTurnoverRatios as $thisTurnoverRatio) { $thisIntervalClosedStatusText = isset($thisTurnoverRatio['instanceof']) ? ($thisTurnoverRatio['instanceof'] == 1 ? '≥' : '>') : '≥'; $thisRatioDtl .= "{$symbol}月流水{$thisIntervalClosedStatusText}{$thisTurnoverRatio['turnover']},比例:{$thisTurnoverRatio['ratio']}%"; } } $v['turnover_ratio_str'] = $thisRatioDtl; //旧 $lastTurnoverRatios = $v['last_turnover_ratio'] ? json_decode($v['last_turnover_ratio'], true) : []; $lastRatioDtl = "默认:{$v['last_ratio']}%"; if ($lastTurnoverRatios) { if (I('export', 0) == 1) { $symbol = "\n"; } else { $symbol = "
"; } foreach ($lastTurnoverRatios as $thisTurnoverRatio) { $thisIntervalClosedStatusText = isset($thisTurnoverRatio['instanceof']) ? ($thisTurnoverRatio['instanceof'] == 1 ? '≥' : '>') : '≥'; $lastRatioDtl .= "{$symbol}月流水{$thisIntervalClosedStatusText}{$thisTurnoverRatio['turnover']},比例:{$thisTurnoverRatio['ratio']}%"; } } $v['last_turnover_ratio_str'] = $lastRatioDtl; } $count = M("company_game_ratio_log","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('status',$this->Status); $this->assign("companyList",D("PromoteCompany")->getList()); $this->assign("gameList",D("Game")->getRelationGameLits()); $this->display(); } public function add() { if ($_POST) { $params = I('post.'); 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('默认分成比例不能为空'); } $save['turnover_ratio'] = $this->setTurnoverRatio($params); $save['ratio'] = $params['ratio'] ?? 0; $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")]); //获取旧比例 $this->getOldRatio($save); //判断已有未审核 $where = [ "relation_game_id"=>$save['company_id'], "company_id"=>$save['company_id'], "status"=>["LT",2]//管理员未确认 ]; $hasdb = M("company_game_ratio_log","tab_")->field("count(id) count")->where($where)->find()['count']; if($hasdb > 0){ $this->error('已经有审批单,请直接搜索后修改'); } $id = M("company_game_ratio_log","tab_")->add($save); addOperationLog(['op_type'=>0,'key'=>$id,'op_name'=>'新增','url'=>U('index')]); $this->ajaxReturn(["msg"=>"添加成功","code"=>1,"url"=>U("index")]); } else { $companyList = D("PromoteCompany")->getList(); $this->assign("companyList",$companyList); $this->assign("gameList",D("Game")->getRelationGameLits()); $this->display(); } } public function edit() { } public function del() { } public 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), ]; } $save['turnover_ratio'] = json_encode($save['turnover_ratio']); } } return $save['turnover_ratio']; } public function getOldRatio(&$save) { $tmap = [ "company_id"=>$save['company_id'], "relation_game_id"=>$save['relation_game_id'], ]; $ratio_dbres = $this->DBModel->where($tmap)->find(); if(isset($ratio_dbres['ratio'])){ $save['last_ratio']=$ratio_dbres['ratio']; $save['last_turnover_ratio']=$ratio_dbres['turnover_ratio']; return ; } $cmap = [ "id"=>$save['company_id'], ]; $com = M("promote_company","tab_")->field("company_belong")->where($cmap)->find(); if(!isset($com['company_belong'])){ $save['last_ratio']=0; $save['last_turnover_ratio']=""; return ; } //查询模板 $mmap = [ "company_belong"=>$com['company_belong'], "relation_game_id"=>$save['relation_game_id'] ]; $mould = M("game_ratio_mould","tab_")->where($mmap)->find(); if(isset($mould['ratio'])){ $save['last_ratio']=$mould['ratio']; $save['last_turnover_ratio']=$mould['turnover_ratio']; }else{ $save['last_ratio']=0; $save['last_turnover_ratio']=""; } return ; } }