request->only(["channel_name"=>"","companyNo"=>""],"post","trim"); $valid =Validate::rule(["channel_name|渠道名称"=>"require|max:255|min:4","companyNo|业务公司"=>"require|max:255"]); if($valid->check($param)==false) return error_show(1006,$valid->getError()); $ist=Db::name("channel")->where("channel_name",$param['channel_name'])->findOrEmpty(); if(!empty($ist)) return error_show(1006,"渠道名称已存在"); $company = \app\admin\common\User::getIns()->handle("getCodeAndName",["code"=>$param['companyNo']]); if(!isset($company['code'])|| $company['code']!=0) return error_show(1004,"未找到业务公司信息"); $comp = $company['data']??[]; $data=[ "channel_name"=>$param["channel_name"], "companyName"=>$comp[$param['companyNo']]??"", "companyNo"=>$param['companyNo'], "apply_id"=>$this->uid, "apply_name"=>$this->uname, ]; $int= Db::name("channel")->insert($data); if($int==false) return error_show(1004,"渠道新建失败"); return app_show(0,"渠道新建成功"); } public function edit(){ $param =$this->request->only(["channel_name"=>"","companyNo"=>"","id"=>""],"post","trim"); $valid =Validate::rule([ "channel_name|渠道名称"=>"require|max:255|min:4", "id|渠道ID"=>"require|number|gt:0", "companyNo|业务公司"=>"require|max:255" ]); if($valid->check($param)==false) return error_show(1006,$valid->getError()); $info=Db::name("channel")->where([["id","=",$param['id']]])->findOrEmpty(); if(empty($info)) return error_show(1006,"渠道信息未找到"); if($info['status']==1) return error_show(1006,"渠道启用状态不可编辑"); $ist=Db::name("channel")->where([["channel_name","=",$param['channel_name']],["id","<>",$param['id']]])->findOrEmpty(); if(!empty($ist)) return error_show(1006,"渠道名称已存在"); $company = \app\admin\common\User::getIns()->handle("getCodeAndName",["code"=>$param['companyNo']]); if(!isset($company['code'])|| $company['code']!=0) return error_show(1004,"未找到业务公司信息"); $comp = $company['data']??[]; if($param['companyNo']!=$info['companyNo']){ $isbind =Db::name("platform_channel")->where(["channel_id"=>$param['id'],"is_del"=>0])->findOrEmpty(); if(!empty($isbind)) return error_show(1006,"渠道已绑定平台不可编辑业务公司"); } $data=[ "channel_name"=>$param["channel_name"], "companyName"=>$comp[$param['companyNo']]??"", "companyNo"=>$param['companyNo'], "updatetime"=>date("Y-m-d H:i:s") ]; $int= Db::name("channel")->where($info)->update($data); if($int==false) return error_show(1004,"渠道编辑失败"); return app_show(0,"渠道编辑成功"); } /** * @return \think\response\Json|void * @throws \think\db\exception\DbException */ public function status(){ $param =$this->request->only(["status"=>"","id"=>""],"post","trim"); $valid =Validate::rule([ "id|渠道ID"=>"require|number|gt:0", "status|状态"=>"require|number|in:0,1" ]); if($valid->check($param)==false) return error_show(1006,$valid->getError()); $info=Db::name("channel")->where([["id","=",$param['id']]])->findOrEmpty(); if(empty($info)) return error_show(1006,"渠道信息未找到"); $data=[ "status"=>$param['status'], "updatetime"=>date("Y-m-d H:i:s") ]; $int= Db::name("channel")->where($info)->update($data); if($int==false) return error_show(1004,"渠道编辑失败"); return app_show(0,"渠道编辑成功"); } public function list(){ $param =$this->request->only([ "channel_name"=>"", "companyNo"=>"", "companyName"=>"", "status"=>"", "apply_name"=>"", "page"=>1, "size"=>10 ],"post","trim"); $where=[["is_del","=",0]]; if($param['channel_name']!=='')$where[]=["channel_name","like","%{$param['channel_name']}%"]; if($param['companyName']!=='')$where[]=["companyName","like","%{$param['companyName']}%"]; if($param['companyNo']!=='')$where[]=["companyNo","like","%{$param['companyNo']}%"]; if($param['apply_name']!=='')$where[]=["apply_name","like","%{$param['apply_name']}%"]; if($param['status']!=='')$where[]=["status","=",$param['status']]; $count=Db::name("channel")->where($where)->count(); $total=ceil($count/$param['size']); $page= $total>$param['page'] ? $param['page'] : $total; $list =Db::name("channel")->where($where)->page(intval($page),intval($param['size']))->order("id desc")->select()->toArray(); return app_show(0,"获取成功",["list"=>$list,"count"=>$count]); } public function query(){ $param =$this->request->only(["channel_name"=>"","companyNo"=>"","companyName"=>""],"post","trim"); $where=[["is_del","=",0]]; if($param['channel_name']!=='')$where[]=["channel_name","like","%{$param['channel_name']}%"]; if($param['companyName']!=='')$where[]=["companyName","like","%{$param['companyName']}%"]; if($param['companyNo']!=='')$where[]=["companyNo","=",$param['companyNo']]; $list =Db::name("channel")->where($where)->field("*,LENGTH(channel_name) as weight")->order("weight desc") ->select()->toArray(); return app_show(0,"获取成功",$list); } public function delete(){ $param =$this->request->only(["id"=>""],"post","trim"); $list =Db::name("channel")->where(["id"=>$param['id']])->findOrEmpty(); if(empty($list))return error_show(1004,"未找到渠道信息"); if($list["is_del"]==1)return error_show(1004,"渠道已删除"); $int=Db::name("channel")->where(["id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]); if($int==false) return error_show(1004,"渠道删除失败"); Db::name("platform_channel")->where(["channel_id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]); return app_show(0,"渠道删除成功"); } public function channelCatList(){ $param =$this->request->only(["channel_id"=>"0","cat_id"=>'',"cat_name"=>"","page"=>1,"size"=>15],"post","trim"); $where=[["is_del","=",0],['pid',"=",0]]; if($param['cat_id']!=='') $where[]=["cat_id","=",$param['cat_id']]; if($param['cat_name']!=='') $where[]=["cat_name","=",$param['cat_name']]; $list =Db::name("cat") ->field("id as cat_id,cat_name,{$param['channel_id']} channel_id,0 rate") ->where($where) ->withAttr("rate", function ($value,$data){ return Db::name("channel_cat")->where(["channel_id"=>$data['channel_id'],"cat_id"=>$data['cat_id'],"is_del"=>0])->value("rate",0); }) ->select(); return app_show(0,"获取成功",$list); } public function channleCatSave(){ $param =$this->request->only(["channel_id"=>"","cat_id"=>'',"rate"=>""],"post","trim"); $valid =Validate::rule([ "channel_id|渠道"=>"require|number|gt:0", "cat_id|分类"=>"require|number|gt:0", "rate|费率"=>"require|float|egt:0", ]); if($valid->check($param)==false) return error_show(1004,$valid->getError()); $catifno = Db::name("channel_cat")->where(["channel_id"=>$param['channel_id'],"cat_id"=>$param['cat_id'],"is_del"=>0])->findOrEmpty(); if(empty($catifno)){ $catifno=[ "channel_id"=>$param["channel_id"], "cat_id"=>$param["cat_id"], "rate"=>$param["rate"], "apply_id"=>$this->uid, "apply_name"=>$this->uname, ]; }else{ $catifno['rate'] = $param['rate']; $catifno['updatetime'] = date("Y-m-d H:i:s"); } $up =Db::name("channel_cat")->save($catifno); if($up==false) return error_show(1004,"渠道分类费率编辑失败"); return app_show(0,"渠道分类费率编辑成功"); } }