123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- namespace app\admin\controller;
- use app\admin\model\ChannelCat;use app\admin\model\PlatformChannel;use think\App;
- use think\facade\Validate;
- class Channel extends Base{
- public function __construct(App $app) {
- parent::__construct($app);
- $this->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('绑定失败');
- }
- }
|