Channel.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. namespace app\admin\controller;
  3. use think\App;
  4. use think\facade\Validate;
  5. use think\facade\Db;
  6. class Channel extends Base{
  7. public function __construct(App $app) {parent::__construct($app);}
  8. public function add(){
  9. $param =$this->request->only(["channel_name"=>"","companyNo"=>""],"post","trim");
  10. $valid =Validate::rule(["channel_name|渠道名称"=>"require|max:255|min:4","companyNo|业务公司"=>"require|max:255"]);
  11. if($valid->check($param)==false) return error_show(1006,$valid->getError());
  12. $ist=Db::name("channel")->where("channel_name",$param['channel_name'])->findOrEmpty();
  13. if(!empty($ist)) return error_show(1006,"渠道名称已存在");
  14. $company = \app\admin\common\User::getIns()->handle("getCodeAndName",["code"=>$param['companyNo']]);
  15. if(!isset($company['code'])|| $company['code']!=0) return error_show(1004,"未找到业务公司信息");
  16. $comp = $company['data']??[];
  17. $data=[
  18. "channel_name"=>$param["channel_name"],
  19. "companyName"=>$comp[$param['companyNo']]??"",
  20. "companyNo"=>$param['companyNo'],
  21. "apply_id"=>$this->uid,
  22. "apply_name"=>$this->uname,
  23. ];
  24. $int= Db::name("channel")->insert($data);
  25. if($int==false) return error_show(1004,"渠道新建失败");
  26. return app_show(0,"渠道新建成功");
  27. }
  28. public function edit(){
  29. $param =$this->request->only(["channel_name"=>"","companyNo"=>"","id"=>""],"post","trim");
  30. $valid =Validate::rule([
  31. "channel_name|渠道名称"=>"require|max:255|min:4",
  32. "id|渠道ID"=>"require|number|gt:0",
  33. "companyNo|业务公司"=>"require|max:255"
  34. ]);
  35. if($valid->check($param)==false) return error_show(1006,$valid->getError());
  36. $info=Db::name("channel")->where([["id","=",$param['id']]])->findOrEmpty();
  37. if(empty($info)) return error_show(1006,"渠道信息未找到");
  38. if($info['status']==1) return error_show(1006,"渠道启用状态不可编辑");
  39. $ist=Db::name("channel")->where([["channel_name","=",$param['channel_name']],["id","<>",$param['id']]])->findOrEmpty();
  40. if(!empty($ist)) return error_show(1006,"渠道名称已存在");
  41. $company = \app\admin\common\User::getIns()->handle("getCodeAndName",["code"=>$param['companyNo']]);
  42. if(!isset($company['code'])|| $company['code']!=0) return error_show(1004,"未找到业务公司信息");
  43. $comp = $company['data']??[];
  44. if($company['companyNo']!=$info['companyNo']){
  45. $isbind =Db::name("platform_channel")->where(["channel_id"=>$param['id'],"is_del"=>0])->findOrEmpty();
  46. if(!empty($isbind)) return error_show(1006,"渠道已绑定平台不可编辑业务公司");
  47. }
  48. $data=[
  49. "channel_name"=>$param["channel_name"],
  50. "companyName"=>$comp[$param['companyNo']]??"",
  51. "companyNo"=>$param['companyNo'],
  52. "updatetime"=>date("Y-m-d H:i:s")
  53. ];
  54. $int= Db::name("channel")->where($info)->update($data);
  55. if($int==false) return error_show(1004,"渠道编辑失败");
  56. return app_show(0,"渠道编辑成功");
  57. }
  58. /**
  59. * @return \think\response\Json|void
  60. * @throws \think\db\exception\DbException
  61. */
  62. public function status(){
  63. $param =$this->request->only(["status"=>"","id"=>""],"post","trim");
  64. $valid =Validate::rule([
  65. "id|渠道ID"=>"require|number|gt:0",
  66. "status|状态"=>"require|number|in:0,1"
  67. ]);
  68. if($valid->check($param)==false) return error_show(1006,$valid->getError());
  69. $info=Db::name("channel")->where([["id","=",$param['id']]])->findOrEmpty();
  70. if(empty($info)) return error_show(1006,"渠道信息未找到");
  71. $data=[
  72. "status"=>$param['status'],
  73. "updatetime"=>date("Y-m-d H:i:s")
  74. ];
  75. $int= Db::name("channel")->where($info)->update($data);
  76. if($int==false) return error_show(1004,"渠道编辑失败");
  77. return app_show(0,"渠道编辑成功");
  78. }
  79. public function list(){
  80. $param =$this->request->only([
  81. "channel_name"=>"",
  82. "companyNo"=>"",
  83. "companyName"=>"",
  84. "status"=>"",
  85. "apply_name"=>"",
  86. "page"=>1,
  87. "size"=>10
  88. ],"post","trim");
  89. $where=[["is_del","=",0]];
  90. if($param['channel_name']!=='')$where[]=["channel_name","like","%{$param['channel_name']}%"];
  91. if($param['companyName']!=='')$where[]=["companyName","like","%{$param['companyName']}%"];
  92. if($param['companyNo']!=='')$where[]=["companyNo","like","%{$param['companyNo']}%"];
  93. if($param['apply_name']!=='')$where[]=["apply_name","like","%{$param['apply_name']}%"];
  94. if($param['status']!=='')$where[]=["status","=",$param['status']];
  95. $count=Db::name("channel")->where($where)->count();
  96. $total=ceil($count/$param['size']);
  97. $page= $total>$param['page'] ? $param['page'] : $total;
  98. $list =Db::name("channel")->where($where)->page(intval($page),intval($param['size']))->order("id desc")->select()->toArray();
  99. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  100. }
  101. public function query(){
  102. $param =$this->request->only(["channel_name"=>"","companyNo"=>"","companyName"=>""],"post","trim");
  103. $where=[["is_del","=",0]];
  104. if($param['channel_name']!=='')$where[]=["channel_name","like","%{$param['channel_name']}%"];
  105. if($param['companyName']!=='')$where[]=["companyName","like","%{$param['companyName']}%"];
  106. if($param['companyNo']!=='')$where[]=["companyNo","=",$param['companyNo']];
  107. $list =Db::name("channel")->where($where)->field("*,LENGTH(channel_name) as weight")->order("weight desc")
  108. ->select()->toArray();
  109. return app_show(0,"获取成功",$list);
  110. }
  111. public function delete(){
  112. $param =$this->request->only(["id"=>""],"post","trim");
  113. $list =Db::name("channel")->where(["id"=>$param['id']])->findOrEmpty();
  114. if(empty($list))return error_show(1004,"未找到渠道信息");
  115. if($list["is_del"]==1)return error_show(1004,"渠道已删除");
  116. $int=Db::name("channel")->where(["id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
  117. if($int==false) return error_show(1004,"渠道删除失败");
  118. Db::name("platform_channel")->where(["channel_id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
  119. return app_show(0,"渠道删除成功");
  120. }
  121. public function channelCatList(){
  122. $param =$this->request->only(["channel_id"=>"0","cat_id"=>'',"cat_name"=>"","page"=>1,"size"=>15],"post","trim");
  123. $where=[["is_del","=",0],['pid',"=",0]];
  124. if($param['cat_id']!=='') $where[]=["cat_id","=",$param['cat_id']];
  125. if($param['cat_name']!=='') $where[]=["cat_name","=",$param['cat_name']];
  126. $list =Db::name("cat")
  127. ->field("id as cat_id,cat_name,{$param['channel_id']} channel_id,0 rate")
  128. ->where($where)
  129. ->withAttr("rate",
  130. function ($value,$data){
  131. return Db::name("channel_cat")->where(["channel_id"=>$data['channel_id'],"cat_id"=>$data['cat_id'],"is_del"=>0])->value("rate",0);
  132. })
  133. ->select();
  134. return app_show(0,"获取成功",$list);
  135. }
  136. public function channleCatSave(){
  137. $param =$this->request->only(["channel_id"=>"","cat_id"=>'',"rate"=>""],"post","trim");
  138. $valid =Validate::rule([
  139. "channel_id|渠道"=>"require|number|gt:0",
  140. "cat_id|分类"=>"require|number|gt:0",
  141. "rate|费率"=>"require|float|egt:0",
  142. ]);
  143. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  144. $catifno = Db::name("channel_cat")->where(["channel_id"=>$param['channel_id'],"cat_id"=>$param['cat_id'],"is_del"=>0])->findOrEmpty();
  145. if(empty($catifno)){
  146. $catifno=[
  147. "channel_id"=>$param["channel_id"],
  148. "cat_id"=>$param["cat_id"],
  149. "rate"=>$param["rate"],
  150. "apply_id"=>$this->uid,
  151. "apply_name"=>$this->uname,
  152. ];
  153. }else{
  154. $catifno['rate'] = $param['rate'];
  155. $catifno['updatetime'] = date("Y-m-d H:i:s");
  156. }
  157. $up =Db::name("channel_cat")->save($catifno);
  158. if($up==false) return error_show(1004,"渠道分类费率编辑失败");
  159. return app_show(0,"渠道分类费率编辑成功");
  160. }
  161. }