Requestapi.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. namespace app\monitor\controller;
  3. use think\Controller;
  4. use think\Validate;
  5. use think\Db;
  6. use app\common\service\HelperService;
  7. /**
  8. * api接口
  9. * Class RequestApi
  10. */
  11. class Requestapi extends Controller
  12. {
  13. private function getInput(){
  14. $params = file_get_contents("php://input");
  15. return @json_decode($params,true);
  16. }
  17. public function getProjectCodes(){
  18. $params = $this->getInput();
  19. $rule = [
  20. 'startTime|开始时间' => 'require|number',
  21. 'companyCode|公司编号' => 'require',
  22. ];
  23. $validate = new Validate($rule);
  24. if(!$validate->check($params)){
  25. HelperService::returnJson(['code'=>'400','msg'=>$validate->getError(),'data'=>[]]);
  26. }
  27. $date = date('Ymd', $params['startTime']);
  28. $list = Db::connect('monitor')->table("api_request_$date")
  29. ->where(['company_code'=>"{$params['companyCode']}"])->distinct('project_code')->field('project_code')->select();
  30. $list = !empty($list)?array_column($list, 'project_code'):[];
  31. HelperService::returnJson(['code'=>200,'data'=>['count'=>count($list),'list'=>$list]]);
  32. }
  33. public function getARProjectCodes(){
  34. $params = $this->getInput();
  35. $rule = [
  36. 'startTime|开始时间' => 'require',
  37. 'companyCode|公司编号' => 'require',
  38. ];
  39. $validate = new Validate($rule);
  40. if(!$validate->check($params)){
  41. helperService::returnJson(['code'=>'400','msg'=>$validate->getError(),'data'=>[]]);
  42. }
  43. if(empty($params['startTime'])){
  44. $params['startTime'] = date('Y-m-d H:i:s');
  45. }
  46. $date = date('Ymd', strtotime($params['startTime']));
  47. $list = Db::connect('monitor')->table("abnormal_request_$date")
  48. ->where(['company_code'=>"{$params['companyCode']}"])->distinct('project_code')->field('project_code')->select();
  49. $list = !empty($list)?array_column($list, 'project_code'):[];
  50. HelperService::returnJson(['code'=>200,'data'=>['count'=>count($list),'list'=>$list]]);
  51. }
  52. public function getApiRequestList(){
  53. $params = $this->getInput();
  54. $rule = [
  55. 'page|页码' => 'number',
  56. 'pageSize|分页大小' => 'number|between:10,100',
  57. 'startTime|开始时间'=>'require|number',
  58. 'endTime|结束时间'=>'require|number',
  59. 'requestUrl|请求url'=>'max:1000',
  60. 'requestParam|请求参数'=>'max:1000',
  61. 'returnCode|返回状态码'=>'max:1000',
  62. 'returnMsg|返回消息'=>'max:1000',
  63. 'returnData|返回数据'=>'max:1000',
  64. 'projectCode|项目code'=>'require|max:100'
  65. ];
  66. $validate = new Validate($rule);
  67. if(!$validate->check($params)){
  68. helperService::returnJson(['code'=>'400','msg'=>$validate->getError(),'data'=>[]]);
  69. }
  70. $where = [];
  71. if(!empty($params['projectCode']) || $params['projectCode'] === "0"){
  72. $where['project_code'] = "{$params['projectCode']}";
  73. }
  74. $where['insert_time'] = ['between',[date('Y-m-d H:i:s',$params['startTime']),date('Y-m-d H:i:s',$params['endTime'])]];
  75. if(!empty($params['returnCode']) || $params['returnCode'] === "0"){
  76. $where['return_code'] = ['like',"%{$params['returnCode']}%"];
  77. }
  78. if(!empty($params['returnMsg']) || $params['returnMsg'] === "0"){
  79. $where['return_msg'] = ['like',"%{$params['returnMsg']}%"];
  80. }
  81. if(!empty($params['returnData']) || $params['returnData'] === "0"){
  82. $where['return_data'] = ['like',"%{$params['returnData']}%"];
  83. }
  84. if(!empty($params['requestUrl']) || $params['requestUrl'] === "0"){
  85. $where['request_url'] = ['like',"%{$params['requestUrl']}%"];
  86. }
  87. if(!empty($params['requestParam']) || $params['requestParam'] === "0"){
  88. $where['request_param'] = ['like',"%{$params['requestParam']}%"];
  89. }
  90. $date = date('Ymd', $params['startTime']);
  91. $count = Db::connect('monitor')->table("api_request_$date")
  92. ->where($where)->count();
  93. $pageCount = ceil($count/$params['pageSize']);
  94. $page = $params['page']>$pageCount?$pageCount:($params['page']<1?1:$params['page']);
  95. $list = Db::connect('monitor')->table("api_request_$date")
  96. ->where($where)->page($page,$params['pageSize'])->order("id desc")->select();
  97. foreach($list as &$item){
  98. $item['return_data'] = htmlentities($item['return_data']);
  99. }
  100. $list = HelperService::convertUnderline($list);
  101. HelperService::returnJson(['code'=>200,'data'=>['count'=>$count,'list'=>$list]]);
  102. }
  103. public function getAbnormalRequestList(){
  104. $params = $this->getInput();
  105. $rule = [
  106. 'page|页码' => 'number',
  107. 'pageSize|分页大小' => 'number|between:10,100',
  108. 'startTime|开始时间'=>'number',
  109. 'endTime|结束时间'=>'number',
  110. 'requestUrl|请求url'=>'max:1000',
  111. 'requestParam|请求参数'=>'max:1000',
  112. 'msg|返回消息'=>'max:1000',
  113. 'path|路径'=>'max:1000',
  114. 'isSend|是否发送'=>'max:100',
  115. 'projectCode|项目code'=>'require|max:100'
  116. ];
  117. $validate = new Validate($rule);
  118. if(!$validate->check($params)){
  119. helperService::returnJson(['code'=>'400','msg'=>$validate->getError(),'data'=>[]]);
  120. }
  121. if(!empty($params['startTime'])){
  122. $params['startTime'] = strtotime(date('Y-m-d'));
  123. }
  124. if(!empty($params['endTime'])){
  125. $params['endTime'] = strtotime(date('Y-m-d 23:59:59'));
  126. }
  127. $where = [];
  128. if(!empty($params['projectCode']) || $params['projectCode'] === "0"){
  129. $where['project_code'] = "{$params['projectCode']}";
  130. }
  131. $where['insert_time'] = ['between',[date('Y-m-d H:i:s',$params['startTime']),date('Y-m-d H:i:s',$params['endTime'])]];
  132. if(!is_null($params['isSend']) && is_numeric($params['isSend'])){
  133. $where['is_send'] = $params['isSend'];
  134. }
  135. if(!empty($params['path']) || $params['path'] === "0"){
  136. $where['path'] = ['like',"%{$params['path']}%"];
  137. }
  138. if(!empty($params['msg']) || $params['msg'] === "0"){
  139. $where['msg'] = ['like',"%{$params['msg']}%"];
  140. }
  141. if(!empty($params['requestUrl']) || $params['requestUrl'] === "0"){
  142. $where['request_url'] = ['like',"%{$params['requestUrl']}%"];
  143. }
  144. if(!empty($params['requestParam']) || $params['requestParam'] === "0"){
  145. $where['request_param'] = ['like',"%{$params['requestParam']}%"];
  146. }
  147. $date = date('Ymd', $params['startTime']);
  148. $count = Db::connect('monitor')->table("abnormal_request_$date")
  149. ->where($where)->count();
  150. $pageCount = ceil($count/$params['pageSize']);
  151. $page = $params['page']>$pageCount?$pageCount:($params['page']<1?1:$params['page']);
  152. $list = Db::connect('monitor')->table("abnormal_request_$date")
  153. ->where($where)->page($page,$params['pageSize'])->order("id desc")->select();
  154. $list = HelperService::convertUnderline($list);
  155. HelperService::returnJson(['code'=>200,'data'=>['count'=>$count,'list'=>$list]]);
  156. }
  157. }