Proorder.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace app\admin\controller;
  3. use think\App;
  4. use think\facade\Db;
  5. //消息(已读未读)
  6. class Proorder extends Base
  7. {
  8. public function __construct(App $app)
  9. {
  10. parent::__construct($app);
  11. }
  12. public function list(){
  13. $page = isset($this->post['page']) && $this->post['page'] !==""? intval($this->post['page']) :"1";
  14. $size = isset($this->post['size']) && $this->post['size'] !==""? intval($this->post['size']) :"10";
  15. $where =[['is_del',"=",0],['a.order_status',"=",2]];
  16. $role=$this->checkRole();
  17. if(!empty($role['write'])){
  18. $where[]=["a.action_uid","in",$role['write']];
  19. }
  20. $count = Db::name('process_order')->alias("a")->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")->where($where)->count();
  21. $total = ceil("$count/$size");
  22. $page = $page>$total ? $total:$page;
  23. $list = Db::name('process_order')->alias("a")->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")
  24. ->field("b.apply_id,b.apply_name,a.addtime,a.action_uid,a.action_name,a.order_status,a.action_status,a.order_type,a.action_process,a.order_code,a.order_id,a.id")
  25. ->where($where)->page($page,$size)->order("a.addtime desc")->select();
  26. $data=[];
  27. foreach ($list as $value){
  28. $str = Db::name("process")->where(['process_type' => $value['order_type']])->field("process_name,status")->find();
  29. $var = Db::name("action_process")->where(['order_type'=>$value['order_type'],'order_process'=>$value['action_status']])->field("status_name,order_process,order_name,roleid")->find();
  30. $value['process_name']=$str['process_name'];
  31. $value['order_name']=$var['order_name'];
  32. $value['status_name'] = $var['status_name'];
  33. $data[]=$value;
  34. }
  35. return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);
  36. }
  37. public function waitlist(){
  38. $page = isset($this->post['page']) && $this->post['page'] !==""? intval($this->post['page']) :"1";
  39. $size = isset($this->post['size']) && $this->post['size'] !==""? intval($this->post['size']) :"10";
  40. $where = [['is_del',"=",0],['a.status',"=",1]];
  41. $role=$this->checkRole();
  42. $comd='';
  43. if(!empty($role['write']) || $role['roleid']==33){
  44. $comd.="FIND_IN_SET({$role['roleid']},roleid) >0";
  45. }
  46. $order_code= isset($this->post['order_code']) && $this->post['order_code'] !==""? intval($this->post['order_code']):"";
  47. if($order_code!=""){
  48. $where[]= ["a.order_code",'like',"%$order_code%"];
  49. }
  50. $apply_id = isset($this->post['apply_id']) && $this->post['apply_id'] !==""? trim($this->post['apply_id']) :"";
  51. if($apply_id!=""){
  52. $where[]=["a.wait_id","=",$apply_id];
  53. }
  54. $action_uid = isset($this->post['action_uid']) && $this->post['action_uid'] !==""? trim($this->post['action_uid']) :"";
  55. if($action_uid!=""){
  56. $where[]=["a.action_uid","=",$action_uid];
  57. }
  58. $count = Db::name('process_wait')
  59. ->alias("a")
  60. ->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")
  61. ->where($comd)
  62. ->where($where)
  63. ->count();
  64. $total = ceil("$count/$size");
  65. $page = $page>$total ? $total:$page;
  66. $list = Db::name('process_wait')
  67. ->alias("a")
  68. ->field("b.apply_id,b.apply_name,a.addtime,a.action_uid,a.action_name,a.order_status,a.order_type,a.order_process,a.order_code,a.order_id,a.id")
  69. ->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")
  70. ->where($where)
  71. ->where($comd)
  72. ->page($page,$size)
  73. ->order("a.addtime desc")
  74. ->cursor();
  75. $data=[];//->field("status,order_name,process_name")
  76. foreach ($list as $value) {
  77. $str = Db::name("process")->where(['process_type' => $value['order_type']])->field("process_name,status")->find();
  78. $var = Db::name("action_process")->where(['order_type'=>$value['order_type'],'order_process'=>$value['order_status']])->field("status_name,order_process,order_name,roleid")->find();
  79. $value['process_name']=$str['process_name'];
  80. $value['order_name']=$var['order_name'];
  81. $value['status_name'] = $var['status_name'];
  82. $data[]=$value;
  83. }
  84. return app_show(0,"获取成功",["list"=>$data,'count'=>$count]);
  85. }
  86. public function all(){
  87. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  88. if($token==""){
  89. return error_show(101,'token不能为空');
  90. }
  91. $effetc = VerifyTokens($token);
  92. if(!empty($effetc) && $effetc['code']!=0){
  93. return error_show($effetc['code'],$effetc['message']);
  94. }
  95. $where=[["is_del","=",0]];
  96. $process_name = isset($this->post['process_name']) && $this->post['process_name'] !==""? trim($this->post['process_name']) :"";
  97. if($process_name!=""){
  98. $where[]=["process_name","like","%$process_name%"];
  99. }
  100. $process_type = isset($this->post['process_type']) && $this->post['process_type'] !==""? trim($this->post['process_type']) :"";
  101. if($process_type!=""){
  102. $where[]=["process_type","like","%$process_type%"];
  103. }
  104. $list = Db::name('process')->where($where)->order("addtime desc")->select();
  105. return app_show(0,"获取成功",$list);
  106. }
  107. }