Pay.php 5.7 KB

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