*/ class PromoteCompanyController extends ThinkController { private $modelName = 'PromoteCompany'; //列表 public function lists() { $model = M($this->modelName, 'tab_'); $map = []; $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; } $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") ->page($page,$row) ->select(); //获取公司id $companyids = implode(',', array_column($companyres, 'id')); // //处理公司数据 // $company = array(); // foreach($companyres as $k=>$v){ // $company[] // } //获取所属会长及其游戏分成 $promoteres = M("Promote","tab_") ->field("id,company_id,account,settlement_type") ->where(array( "company_id"=>["in",$companyids] )) ->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']; } } }else{ //空值 $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" ? "是" :'否'); } // dd($companyres); /* 查询记录总数 */ $count = $model ->where($map) ->count(); //分页 $parameter['p'] = $page; $parameter['row'] = $row; $page = set_pagination($count, $row, $parameter); if ($page) { $this->assign('_page', $page); } $this->assign('listData', $companyres); $this->assign('count', $count); $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; if(isset($save['resources'])){ $save['resources'] = json_encode($save['resources'],JSON_UNESCAPED_UNICODE); } $res = $model->add($save); if ($res) { \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 edit() { $model = M($this->modelName, 'tab_'); if ($_POST) { $company_name = I('post.company_name', ''); $status = intval(I('post.status', 1)); $id = intval(I('post.id', 0)); if (empty($company_name)) { $this->error('请输入推广公司名称'); } if (empty(I('post.settlement_contact'))) { $this->error('请输入结算联系人'); } if (empty(I('post.contact_phone'))) { $this->error('请输入联系人电话'); } $pattern = "/^1[3|4|5|6|7|8|9]\\d{9}$/i";//手机号验证修改 if(!preg_match($pattern, I('post.contact_phone'))) { $this->error("手机号码格式不合法"); return false; } if (empty(I('post.address'))) { $this->error('请输入所在地址'); } if (empty(I('post.bank_card'))) { $this->error('请输入银行卡号'); } $bank_card_pattern = "/^\d{10,19}$/u"; if (!preg_match($bank_card_pattern, I('post.bank_card'))) { $this->error('卡号格式错误'); return false; } if (empty(I('post.bank_cardname'))) { $this->error('请输入银行卡名'); } if (empty(I('post.bank_name'))) { $this->error('请输入收款银行'); } if (empty(I('post.bank_address'))) { $this->error('请输入开户网点'); } if (!in_array($status, [0, 1]) || $id == 0) { $this->error('参数异常'); } if (!empty(I('post.content'))) { $save['content'] = I('post.content'); } $data = $model->field('id,company_name')->find($id); if (empty($data)) { $this->error('数据异常'); } $map['company_name'] = $company_name; $res = $model->where($map)->getField('id'); if ($res && $res != $id) { $this->error('推广公司已存在'); } $time = time(); $save['id'] = $id; $save['company_name'] = $company_name; $save['status'] = $status; $save['last_up_time'] = $time; $save['settlement_contact'] = I('post.settlement_contact'); $save['contact_phone'] = I('post.contact_phone'); $save['address'] = I('post.address'); $save['bank_card'] = I('post.bank_card'); $save['bank_cardname'] = I('post.bank_cardname'); $save['bank_name'] = I('post.bank_name'); $save['bank_address'] = I('post.bank_address'); $res = $model->save($save); if ($res === false) { $this->error('保存失败'); } else { \Think\Log::actionLog('PromoteCompany/edit', 'PromoteCompany', $id); $this->success('保存成功', U('lists')); } } else { $id = intval(I('get.id', 0)); $map['id'] = $id; $data = $model->field('id,company_name,status,settlement_contact,contact_phone,address,bank_card,bank_cardname,bank_name,bank_address,content')->find($id); if (empty($data)) { $this->error('数据异常', U('lists')); } $this->assign('data', $data); $this->assign('commonset', M('Kuaijieicon')->where(['url' => 'PromoteCompany/edit'])->find()); $this->meta_title = '编辑推广公司'; $this->display(); } } //删除 public function del() { if (!empty($_POST['ids'])) { if (!is_array($_POST['ids'])) { $this->error('参数异常'); } $id = implode(',', $_POST['ids']); } else { $id = intval(I('get.id', 0)); if ($id == 0) { $this->error('参数异常'); } } $res = M($this->modelName, 'tab_')->delete($id); if ($res === false) { $this->error('删除失败'); } $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']; $index = $_REQUEST['index'] ?: false; $file_path = $_REQUEST['file_path'] ?: false; if($id == 0){ //未存入数据库,不用管 unlink("./".$file_path); $this->ajaxReturn(array( 'status' => 1, 'info' => "删除成功" )); } # code... } }