*/ class PromoteCompanyController extends ThinkController { private $modelName = 'PromoteCompany'; //列表 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')); 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; $parameter['status'] = $status; } if (isset($_REQUEST['promote_id'])) { $map['id'] = M("Promote","tab_")->field("company_id")->where("id={$_REQUEST['promote_id']}")->find()['company_id']; $promotemap['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']; } $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(); } //获取公司id $companyids = implode(',', array_column($companyres, 'id')); //获取所属会长及其游戏分成 $promotemap['company_id']=["in",$companyids]; $promotemap['level'] = 1; $promoteres = M("Promote","tab_") ->field("id,company_id,account,settlement_type") ->where($promotemap) ->select(); //获取会长id $promoteids = implode(',', array_column($promoteres, 'id')); //获取游戏比例 $gameradiores = M("PromoteGameRatio","tab_") ->alias("pg") ->field("pg.ratio,pg.relation_game_id,pg.turnover_ratio,pg.game_id,pg.promote_id,ga.relation_game_name,ga.game_type_name") ->join("tab_game ga ON pg.game_id = ga.id") ->where(array( "status"=>1, "promote_id"=>["in",$promoteids] )) ->group("relation_game_id,promote_id") ->select(); //比例数据处理 $gameradiotemp = array(); foreach($gameradiores as $k=>$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']); unset($v["ratio"]); unset($v["relation_game_id"]); unset($v["game_id"]); $gameradiotemp[$v['promote_id']][]=$v; } unset($gameradiores); //会长数据处理 $promoterestemp=[]; foreach($promoteres as $k=>$v){ if(array_key_exists($v['id'],$gameradiotemp)){ //存在 $v['list'] = $gameradiotemp[$v['id']]; foreach($gameradiotemp[$v['id']] as $ke=>$va){ $v['row'] += $va['row']; } }else{ $v['list']=[ ["relation_game_name"=>"--","game_type_name"=>"--", "turnover_ratio"=>[ ["name"=>"--","ratio"=>"--"] ], "row"=>1 ] ]; $v["row"]=1; } if($v['settlement_type'] == 1){ $v['settlement_type']="周结"; }else{ $v['settlement_type']="月结"; } $promoterestemp[$v['company_id']]["list"][]=$v; } unset($promoteres); //处理公司数据 foreach($companyres as $k=>&$v){ if(array_key_exists($v['id'],$promoterestemp)){ //存在 $v['list'] = $promoterestemp[$v['id']]['list']; foreach($promoterestemp[$v['id']] as $ke=>$va){ foreach($va as $key=>$val){ $v['row'] += $val['row']; } } $v['can_del'] = 0; }else{ //空值 $v['can_del'] = 1; $v['list']=[ [ "account"=>"--", "settlement_type"=>"--", 'list'=>[ [ "relation_game_name"=>"--", "game_type_name"=>"--", "turnover_ratio"=>[ ["name"=>"--","ratio"=>"--"] ], "row"=>1 ] ] ] ]; $v['row'] += 1; } if( $v["contact_begin"] >0 ){ $v["contact_begin"] = date('Y/m/d', $v["contact_begin"]); }else{ $v["contact_begin"] = "--"; } if( $v["contact_end"] > 0){ $v["contact_end"] = date('Y/m/d', $v["contact_end"]); }else{ $v["contact_end"] = "--"; } if($v['platform_name'] == '' || $v['platform_name'] == "0"){ $v['platform_name'] = "--"; } $v["is_sign_contact"] = ($v["is_sign_contact"]=="1" ? "是" :'否'); $v["company_type"] = ($v["company_type"]=="1" ? "公司" :'个人'); $v["company_belong"] = ($v["company_belong"]=="0" ? "内团" : ($v["company_belong"]=="1" ? "外团" : ($v["company_belong"]=="2" ? "外团分发" : '无'))); } // dd($companyres); //公司及会长数量统计 $companycount = $model->field("id")->where($map)->select(); $count = count($companycount); $companyallids = implode(',', array_column($companycount, 'id')); $promotemap['company_id']=["in",$companyallids]; $promotecount = M("Promote","tab_")->where($promotemap)->count(); $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, $parameter); if ($page) { $this->assign('_page', $page); } //分配其他页面需要参数 $this->assign('promoteList', getPromoteByLevel(1)); $this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Partner/lists'])->find()); $this->meta_title = '推广公司'; $this->display(); } //添加 public function add() { if ($_POST) { $company_name = I('post.company_name', ''); $model = M($this->modelName, 'tab_'); $map['company_name'] = $company_name; $res = $model->where($map)->getField('id'); if ($res) { $this->ajaxReturn(array( 'status' => 0, 'info' => "推广公司已经存在" )); } $time = time(); $save = I('post.');//前端已经验证 $save['create_time'] = $time; $save['last_up_time'] = $time; $save['contact_begin']=strtotime($save['contact_begin']); $save['contact_end']=strtotime($save['contact_end']); if(isset($save['resources'])){ $save['resources'] = json_encode($save['resources'],JSON_UNESCAPED_UNICODE); } $res = $model->add($save); if ($res) { addOperationLog(['op_type'=>0,'key'=>$company_name,'op_name'=>'新增推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-新增推广公司']); \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('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'] ="[]"; } $this->assign('data', $data); $this->display(); } //编辑 public function edit() { $model = M($this->modelName, 'tab_'); if ($_POST) { $time = time(); $save = I('post.');//前端已经验证 $save['create_time'] = $time; $save['last_up_time'] = $time; $save['contact_begin']=strtotime($save['contact_begin']); $save['contact_end']=strtotime($save['contact_end']); if(isset($save['resources'])){ $save['resources'] = json_encode($save['resources'],JSON_UNESCAPED_UNICODE); } //判断内外团是否修改 $is_change_belong = false; $company_id = $save['id']; $y_belong = $model->field("company_belong")->where("id = {$save['id']}")->find()['company_belong']; if(isset($save['company_belong']) && ($y_belong != $save['company_belong'])){ $is_change_belong = true; } $res = $model->save($save); if ($res) { \Think\Log::actionLog('PromoteCompany/edit', 'partner', $res); //处理底下所有会长的公会属性 if($is_change_belong){ $savedata = array( "company_belong"=>$save['company_belong'] ); M("Promote","tab_")->where("company_id = '{$company_id}'")->save($savedata); } addOperationLog(['op_type'=>1,'key'=>$_POST['company_name'],'op_name'=>'编辑推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-编辑推广公司']); $array=array( "info"=>"修改成功", "status"=>1 ); $this->ajaxReturn($array); } else { $this->ajaxReturn(array( 'status' => 0, 'info' => "修改失败" )); } } else { $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'] ="[]"; } $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('删除失败'); } // echo M()->_sql();die(); 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... } }