model=new \app\admin\model\Channel(); } /**@param channel_name 渠道名称 * @param companyNo 业务公司 * @return \think\Response|\think\response\Json|void */ public function create(){ $param =$this->request->only(['channel_name'=>'','companyNo'=>'','is_del'=>'0'],'post','trim'); $valid =Validate::rule([ 'channel_name|渠道名称'=>'require|max:255|min:4|unique:app\admin\model\Channel,channel_name^is_del^companyNo', 'companyNo|业务公司'=>'require|max:255' ]); if(!$valid->check($param)) return error($valid->getError()); $data=[ 'channel_name'=>$param['channel_name'], 'companyName'=>\app\user\model\Business::where('companyNo',$param['companyNo'])->value('company'), 'companyNo'=>$param['companyNo'], 'apply_id'=>$this->uid, 'apply_name'=>$this->uname, ]; $int= $this->model->create($data); if(!$int) return error('渠道新建失败'); return success('渠道新建成功'); } /**@param channel_name 渠道名称 * @param id 渠道ID * @param companyNo 业务公司 * */ public function save(){ $param =$this->request->only(['channel_name'=>'','companyNo'=>'','id'=>'','is_del'=>'0'],'post','trim'); $valid =Validate::rule([ 'id|渠道ID'=>'require|number|gt:0', 'channel_name|渠道名称'=>'require|max:255|min:4|unique:app\admin\model\Channel,channel_name^is_del^companyNo', 'companyNo|业务公司'=>'require|max:255' ]); if(!$valid->check($param)) return error($valid->getError()); $info = $this->model->findOrEmpty($param['id']); if($info->isEmpty()) return error('渠道信息未找到'); if($info->is_del==1) return error('渠道已删除'); if($info->status==1) return error('渠道启用状态不可编辑'); if($param['companyNo']!=$info->companyNo){ $isbind =PlatformChannel::where(['channel_id'=>$param['id'],'is_del'=>0])->findOrEmpty(); if(!$isbind->isEmpty()) return error('渠道已绑定平台不可编辑业务公司'); } $data=[ 'channel_name'=>$param['channel_name'], 'companyName'=>\app\user\model\Business::where('companyNo',$param['companyNo'])->value('company'), 'companyNo'=>$param['companyNo'], ]; $int= $info->save($data); if(!$int) return error('渠道编辑失败'); return success('渠道编辑成功'); } /**@param status 状态 * @param id 渠道ID * */ 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)) return error($valid->getError()); $info = $this->model->findOrEmpty($param['id']); if($info->isEmpty()) return error('渠道信息未找到'); if($info->is_del==1) return error('渠道已删除'); if($info->status==$param['status']) return error('渠道状态未改变'); $info->status=$param['status']; if($info->save()) return success('渠道状态修改成功'); return error('渠道状态修改失败'); } /**@param channel_name 渠道名称 * @param companyNo 业务公司 * @param page 页码 * @param size 每页显示数量 *@param status 状态 * @param apply_id 申请人ID */ public function list(){ $param =$this->request->only(['channel_name'=>'','companyNo'=>'','status'=>'','apply_id'=>'','page'=>'1','size'=>'10'],'post','trim'); $where=[["is_del","=",0]]; if($param['channel_name']!=="") $where[]=['channel_name','like',"%{$param['channel_name']}%"]; if($param['companyNo']!=="") $where[]=['companyNo','=',$param['companyNo']]; if($param['status']!=="") $where[]=['status','=',$param['status']]; if($param['apply_id']!=="") $where[]=['apply_id','=',$param['apply_id']]; $data = $this->model->where($where) ->order('id','desc') ->paginate(["page"=>$param['page'],"list_rows"=>$param['size']]); return success("获取成功",["list"=>$data->items(),"count"=>$data->total()]); } /**@param channel_name 渠道名称 * @param status 状态 * @param companyNo 业务公司 * */ public function query(){ $param =$this->request->only(['channel_name'=>'','companyNo'=>'','status'=>''],'post','trim'); $where=[["is_del","=",0]]; if($param['channel_name']!=="") $where[]=['channel_name','like',"%{$param['channel_name']}%"]; if($param['companyNo']!=="") $where[]=['companyNo','=',$param['companyNo']]; if($param['status']!=="") $where[]=['status','=',$param['status']]; $data = $this->model->where($where) ->field('*,LENGTH(channel_name) as weight')->order('weight desc') ->select(); return success("获取成功",$data); } /**@param id 渠道ID **/ public function delete(){ $param =$this->request->only(['id'=>''],'post','trim'); $valid =Validate::rule([ 'id|渠道ID'=>'require|number|gt:0' ]); if(!$valid->check($param)) return error($valid->getError()); $info = $this->model->findOrEmpty($param['id']); if($info->isEmpty()) return error('渠道信息未找到'); if($info->is_del==1) return error('渠道已删除'); if($info->status==1) return error('渠道启用状态不可删除'); $info->is_del=1; $this->model->startTrans(); try{ if($info->save()){ $pc= PlatformChannel::where(['channel_id'=>$param['id'],'is_del'=>0])->update(['is_del'=>1]); if(!$pc)throw new \Exception('删除渠道平台绑定失败'); }else{ throw new \Exception('删除渠道失败'); } $this->model->commit(); }catch(\Exception $e){ $this->model->rollback(); return error($e->getMessage()); } return success('删除渠道成功'); } /**@param channel_id 渠道ID * @param cat_id 分类ID * @param cat_name 分类名称 * */ public function CatChannelList(){ $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['channel_id']!=="0")$where[]=['channel_id','=',$param['channel_id']]; if($param['cat_id']!=="") $where[]=['id','=',$param['cat_id']]; if($param['cat_name']!=="") $where[]=['cat_name','like',"%{$param['cat_name']}%"]; $data = \app\admin\model\Cat::alias('a')->join('channel_cat b','a.id=b.cat_id') ->where($where) ->field('a.id as cat_id,cat_name,ifnull(b.rate,0) rate,ifnull(b.id,0) as channel_cat_id,ifnull(b.channel_id,0) channel_id') ->order('id','desc') ->paginate(["page"=>$param['page'],"list_rows"=>$param['size']]); return success("获取成功",["list"=>$data->items(),"count"=>$data->total()]); } /**@param channel_id 渠道ID * @param cat_id 分类ID * @param rate 费率 * */ public function CatChannelSave(){ $param=$this->request->only(["channel_id"=>"0","cat_id"=>"","rate"=>"0"],'post','trim'); $valid =Validate::rule([ 'channel_id|渠道ID'=>'require|number|gt:0', 'cat_id|分类ID'=>'require|number|gt:0', 'rate|费率'=>'require|number|between:0,100' ]); if(!$valid->check($param)) return error($valid->getError()); $cat = \app\admin\model\Cat::findOrEmpty($param['cat_id']); if($cat->isEmpty()) return error('分类信息未找到'); if($cat->pid!=0) return error('只能绑定一级分类'); $channel = $this->model->findOrEmpty($param['channel_id']); if($channel->isEmpty()) return error('渠道信息未找到'); $catChannel = ChannelCat::where(['channel_id'=>$param['channel_id'],'cat_id'=>$param['cat_id'],'is_del'=>0])->findOrEmpty(); $catChannel->channel_id=$param['channel_id']; $catChannel->cat_id=$param['cat_id']; $catChannel->rate=$param['rate']; if($catChannel->save()) return success('绑定成功'); return error('绑定失败'); } }