Channel.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. $ist=Db::name("channel")->where([["channel_name","=",$param['channel_name']],["id","<>",$param['id']]])->findOrEmpty();
  39. if(!empty($ist)) return error_show(1006,"渠道名称已存在");
  40. $company = \app\admin\common\User::getIns()->handle("getCodeAndName",["code"=>$param['companyNo']]);
  41. if(!isset($company['code'])|| $company['code']!=0) return error_show(1004,"未找到业务公司信息");
  42. $comp = $company['data']??[];
  43. $data=[
  44. "channel_name"=>$param["channel_name"],
  45. "companyName"=>$comp[$param['companyNo']]??"",
  46. "companyNo"=>$param['companyNo'],
  47. "updatetime"=>date("Y-m-d H:i:s")
  48. ];
  49. $int= Db::name("channel")->where($info)->update($data);
  50. if($int==false) return error_show(1004,"渠道编辑失败");
  51. return app_show(0,"渠道编辑成功");
  52. }
  53. /**
  54. * @return \think\response\Json|void
  55. * @throws \think\db\exception\DbException
  56. */
  57. public function status(){
  58. $param =$this->request->only(["status"=>"","id"=>""],"post","trim");
  59. $valid =Validate::rule([
  60. "id|渠道ID"=>"require|number|gt:0",
  61. "status|状态"=>"require|number|in:0,1"
  62. ]);
  63. if($valid->check($param)==false) return error_show(1006,$valid->getError());
  64. $info=Db::name("channel")->where([["id","=",$param['id']]])->findOrEmpty();
  65. if(empty($info)) return error_show(1006,"渠道信息未找到");
  66. $data=[
  67. "status"=>$param['status'],
  68. "updatetime"=>date("Y-m-d H:i:s")
  69. ];
  70. $int= Db::name("channel")->where($info)->update($data);
  71. if($int==false) return error_show(1004,"渠道编辑失败");
  72. return app_show(0,"渠道编辑成功");
  73. }
  74. public function list(){
  75. $param =$this->request->only(["channel_name"=>"","companyNo"=>"","companyName"=>"","page"=>1,"size"=>10],
  76. "post","trim");
  77. $where=[["is_del","=",0]];
  78. if($param['channel_name']!=='')$where[]=["channel_name","like","%{$param['channel_name']}%"];
  79. if($param['companyName']!=='')$where[]=["companyName","like","%{$param['companyName']}%"];
  80. if($param['companyNo']!=='')$where[]=["companyNo","like","%{$param['companyNo']}%"];
  81. $count=Db::name("channel")->where($where)->count();
  82. $total=ceil($count/$param['size']);
  83. $page= $total>$param['page'] ? $param['page'] : $total;
  84. $list =Db::name("channel")->where($where)->page(intval($page),intval($param['size']))->order("id desc")->select()->toArray();
  85. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  86. }
  87. public function query(){
  88. $param =$this->request->only(["channel_name"=>"","companyNo"=>"","companyName"=>""],"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","=",$param['companyNo']];
  93. $list =Db::name("channel")->where($where)->field("*,LENGTH(channel_name) as weight")->order("weight desc")
  94. ->select()->toArray();
  95. return app_show(0,"获取成功",$list);
  96. }
  97. public function delete(){
  98. $param =$this->request->only(["id"=>""],"post","trim");
  99. $list =Db::name("channel")->where(["id"=>$param['id']])->findOrEmpty();
  100. if(empty($list))return error_show(1004,"未找到渠道信息");
  101. if($list["is_del"]==1)return error_show(1004,"渠道已删除");
  102. $int=Db::name("channel")->where(["id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
  103. if($int==false) return error_show(1004,"渠道删除失败");
  104. Db::name("platform_channel")->where(["channel_id"=>$param['id']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
  105. return app_show(0,"渠道删除成功");
  106. }
  107. public function channelCatList(){
  108. $param =$this->request->only(["channel_id"=>"0","cat_id"=>'',"cat_name"=>"","page"=>1,"size"=>15],"post","trim");
  109. $where=[["is_del","=",0],['pid',"=",0]];
  110. if($param['cat_id']!=='') $where[]=["cat_id","=",$param['cat_id']];
  111. if($param['cat_name']!=='') $where[]=["cat_name","=",$param['cat_name']];
  112. $list =Db::name("cat")
  113. ->field("id as cat_id,cat_name,{$param['channel_id']} channel_id,0 rate")
  114. ->where($where)
  115. ->withAttr("rate",
  116. function ($value,$data){
  117. return Db::name("channel_cat")->where(["channel_id"=>$data['channel_id'],"cat_id"=>$data['cat_id'],"is_del"=>0])->value("rate",0);
  118. })
  119. ->select();
  120. return app_show(0,"获取成功",$list);
  121. }
  122. public function channleCatSave(){
  123. $param =$this->request->only(["channel_id"=>"","cat_id"=>'',"rate"=>""],"post","trim");
  124. $valid =Validate::rule([
  125. "channel_id|渠道"=>"require|number|gt:0",
  126. "cat_id|分类"=>"require|number|gt:0",
  127. "rate|费率"=>"require|float|egt:0",
  128. ]);
  129. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  130. $catifno = Db::name("channel_cat")->where(["channel_id"=>$param['channel_id'],"cat_id"=>$param['cat_id'],"is_del"=>0])->findOrEmpty();
  131. if(empty($catifno)){
  132. $catifno=[
  133. "channel_id"=>$param["channel_id"],
  134. "cat_id"=>$param["cat_id"],
  135. "rate"=>$param["rate"],
  136. "apply_id"=>$this->uid,
  137. "apply_name"=>$this->uname,
  138. ];
  139. }else{
  140. $catifno['rate'] = $param['rate'];
  141. $catifno['updatetime'] = date("Y-m-d H:i:s");
  142. }
  143. $up =Db::name("channel_cat")->save($catifno);
  144. if($up==false) return error_show(1004,"渠道分类费率编辑失败");
  145. return app_show(0,"渠道分类费率编辑成功");
  146. }
  147. }