Pay.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\controller;
  4. use think\App;
  5. use think\Error;use think\Exception;use think\facade\Validate;
  6. use think\Request;
  7. use think\facade\Db;
  8. class Pay extends Base
  9. {
  10. public function __construct(App $app) {
  11. parent::__construct($app);
  12. }
  13. /**
  14. * 显示资源列表
  15. */
  16. public function list()
  17. {
  18. $param =$this->request->param(["pay_name"=>"","page"=>1,"size"=>10],"post","trim");
  19. $where=[];
  20. if($param['pay_name']!='') $where[]=["pay_name","like","%{$param['pay_name']}%"];
  21. $count =Db::name("pay")->where($where)->count();
  22. $total =ceil($count/$param['size']);
  23. $page = $total>=$param['page']? intval($param['page']) : intval($total);
  24. $list =Db::name("pay")->where($where)->page($page,intval($param['size']))
  25. ->order("id desc")->select()->toArray();
  26. return app_show(0,"获取成功",["list"=>$list,'count'=>$count]);
  27. }
  28. /**pay_rate 数据
  29. * ['companyNo'=>'GYS','companyName'=>'供应商']
  30. * [] 业务公司+销售平台
  31. * ['companyNo'=>'KH','companyName'=>'客户']
  32. *
  33. * @return \think\Response
  34. */
  35. public function create()
  36. {
  37. $param = $this->request->only(["pay_name"=>"","pay_rate"=>[]],"post");
  38. $valid = Validate::rule([
  39. "pay_name|名称"=>"require|max:255|min:2",
  40. "pay_rate|内容"=>"require|array",
  41. ]);
  42. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  43. $isT =Db::name("pay")->where("pay_name",$param['pay_name'])->findOrEmpty();
  44. if(!empty($isT)) return error_show(1004,"名称已存在");
  45. Db::startTrans();
  46. try{
  47. $data=[
  48. "pay_name"=>$param['pay_name'],
  49. "apply_id"=>$this->uid,
  50. "apply_name"=>$this->uname,
  51. "status"=>1
  52. ];
  53. $payadd =Db::name("pay")->insertGetId($data);
  54. if($payadd==false) throw new Exception('新建失败');
  55. $payinfo=[];
  56. foreach ($param['pay_rate'] as $key=>$item){
  57. $temp=[];
  58. $temp['pay_id'] = $payadd;
  59. $temp['companyNo'] = $item['companyNo'];
  60. $temp['companyName'] = $item['companyName'];
  61. $temp['rate'] = ($item['rate']??0)/100;
  62. $temp['is_cgd'] = $item['is_cgd']??0;
  63. $temp['is_qrd'] = $item['is_qrd']??0;
  64. $temp['weight'] = $key;
  65. $temp['status'] = 1;
  66. $payinfo[]=$temp;
  67. }
  68. $payin = Db::name("pay_rate")->insertAll($payinfo);
  69. if($payin==false) throw new Exception('新建失败');
  70. Db::commit();
  71. return app_show(0,"新建成功");
  72. }catch (\Exception $e){
  73. Db::rollback();
  74. return error_show(1005,$e->getMessage());
  75. }
  76. }
  77. /**
  78. * 保存新建的资
  79. */
  80. public function save()
  81. {
  82. $param = $this->request->only(["id"=>"","pay_name"=>"","pay_rate"=>[]],"post");
  83. $valid = Validate::rule([
  84. "pay_name|名称"=>"require|max:255|min:2",
  85. "pay_rate|内容"=>"require|array",
  86. "id|主键ID"=>"require|number",
  87. ]);
  88. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  89. $isT =Db::name("pay")->where("id",$param['id'])->findOrEmpty();
  90. if(empty($isT)) return error_show(1004,"未找到数据");
  91. $isT =Db::name("pay")->where([["id","<>",$param['id']],["pay_name","=",$param['pay_name']]])->findOrEmpty();
  92. if(!empty($isT)) return error_show(1004,"名称已存在");
  93. Db::startTrans();
  94. try{
  95. $data=[
  96. "id"=>$param['id'],
  97. "pay_name"=>$param['pay_name'],
  98. "updatetime"=>date("Y-m-d H:i:s")
  99. ];
  100. $payadd =Db::name("pay")->save($data);
  101. if($payadd==false) throw new Exception('更新失败');
  102. foreach ($param['pay_rate'] as $key=>$item){
  103. $temp=[];
  104. $temp['pay_id'] = $param['id'];
  105. $temp['id'] = $item['id']??null;
  106. $temp['companyNo'] = $item['companyNo'];
  107. $temp['companyName'] = $item['companyName'];
  108. $temp['rate'] = ($item['rate']??0)/100;
  109. $temp['is_cgd'] = $item['is_cgd']??0;
  110. $temp['is_qrd'] = $item['is_qrd']??0;
  111. $temp['weight'] = $key;
  112. $temp['status'] = $item['status']??1;
  113. $temp['is_del'] =$item['is_del']??0;
  114. $temp['updatetime'] =date("Y-m-d H:i:s");
  115. $payin = Db::name("pay_rate")->save($temp);
  116. if($payin==false) throw new Exception('更新失败');
  117. }
  118. Db::commit();
  119. return app_show(0,"更新成功");
  120. }catch (\Exception $e){
  121. Db::rollback();
  122. return error_show(1005,$e->getMessage());
  123. }
  124. }
  125. /**
  126. * 显示指定的资源
  127. *
  128. */
  129. public function info()
  130. {
  131. $param =$this->request->only(["id"=>''],"post","trim");
  132. $valid= Validate::rule(["id|主键ID"=>"require|number" ]);
  133. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  134. $isT =Db::name("pay")->where("id",$param['id'])->findOrEmpty();
  135. if(empty($isT)) return error_show(1004,"未找到数据");
  136. $info =Db::name("pay_rate")->where(["pay_id"=>$param['id'],"is_del"=>0])->withAttr("rate",function ($v)
  137. {return $v*100;})->order("weight asc,id desc")->select()->toArray();
  138. $isT["pay_rate"] = $info;
  139. return app_show(0,"获取成功",$isT);
  140. }
  141. /**
  142. * 显示编辑资源表单页.
  143. *
  144. * @param int $id
  145. * @return \think\Response
  146. */
  147. public function status()
  148. {
  149. $param =$this->request->only(["id"=>'',"status"=>""],"post","trim");
  150. $valid= Validate::rule([
  151. "id|主键ID"=>"require|number",
  152. "status|状态"=>"require|number|in:0,1",
  153. ]);
  154. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  155. $isT =Db::name("pay")->where("id",$param['id'])->findOrEmpty();
  156. if(empty($isT)) return error_show(1004,"未找到数据");
  157. if($isT['status']==$param['status']) return error_show(1004,"状态已更新");
  158. $isT['status'] = $param['status'];
  159. $isT['updatetime'] =date("Y-m-d H:i:s");
  160. $upT =Db::name("pay")->save($isT);
  161. return $upT? app_show(0,"状态更新成功"):error_show(1004,"状态更新失败");
  162. }
  163. public function query(){
  164. $param =$this->request->only(["status"=>""],"post","trim");
  165. $where=[];
  166. if($param['status']!=="") $where[]=["status","=",$param['status']];
  167. $list =Db::name("pay")->where($where)->select()->toArray();
  168. return app_show(0,"获取成功",$list);
  169. }
  170. }