Controller.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Services\Base\ErrorCode;
  4. use Illuminate\Routing\Controller as BaseController;
  5. use Request,Response,Auth;
  6. /**
  7. * 父控制类类
  8. *
  9. * @author wangzhoudong <m@9026.com>
  10. */
  11. abstract class Controller extends BaseController
  12. {
  13. protected $_user;
  14. protected $_serviceAdminRole;
  15. public function __construct() {
  16. $this->middleware(function ($request, $next) {
  17. $this->_user = Auth::guard('admin')->user();
  18. view()->share('_user',$this->_user);
  19. return $next($request);
  20. });
  21. }
  22. public function getAppId()
  23. {
  24. return session('app_id',0);
  25. }
  26. public function getStoreId(){
  27. $data = session('store_id');
  28. return $data;
  29. }
  30. public function formatImgUrl($url){
  31. if (substr($url, 0, 7) == 'http://' || substr($url, 0, 8) == 'https://') {
  32. if(substr($url, 0, 7) == 'http://'){
  33. $url = str_replace('http://','https://',$url);
  34. }
  35. if(substr($url,0,strlen(env('APP_URL'))) == env('APP_URL') && env('APP_URL') != env('CDN_URL')){
  36. $url = str_replace(env('APP_URL'),env('CDN_URL'),$url);
  37. }
  38. return $url;
  39. } else {
  40. return env('CDN_URL').$url;
  41. }
  42. }
  43. public function deleteUrl($url)
  44. {
  45. $url = str_replace(env('CDN_URL'), public_path(), $url);
  46. if (file_exists($url)) {
  47. unlink($url);
  48. }
  49. return true;
  50. }
  51. /**
  52. * 检测表单篡改
  53. *
  54. * @return true|exception
  55. */
  56. protected function checkFormHash()
  57. {
  58. return (new Formhash())->checkFormHash();
  59. }
  60. /**
  61. * 启用操作日志记录
  62. */
  63. protected function setActionLog($extDatas = [])
  64. {
  65. return app()->make(Mark::BIND_NAME)->setMarkYes()->setExtDatas($extDatas);
  66. }
  67. /**
  68. * 显示提示消息
  69. */
  70. public function showMessage($msg, $links = NULL, $data = NULL, $redirect = true)
  71. {
  72. $this->_showMessage($msg, $links, $data, SUCESS_CODE, $redirect);
  73. }
  74. /**
  75. * 显示错误消息
  76. */
  77. public function showWarning($msg, $links = NULL, $data = NULL, $redirect = true)
  78. {
  79. $this->_showMessage($msg, $links, $data, FAILURE_CODE, $redirect);
  80. }
  81. /**
  82. * 显示消息
  83. */
  84. public function _showMessage($msgs, $links, $data, $code, $redirect)
  85. {
  86. header("Content-type:text/html;charset=utf-8");
  87. if(!is_array($msgs)) {
  88. $msgs = array($msgs);
  89. }
  90. $urls = $links;
  91. if(!is_array($links)) {
  92. $urls = array();
  93. if($links) {
  94. $urls[0]['url'] = $links;
  95. }elseif(isset($_SERVER['HTTP_REFERER'])) {
  96. $urls[0]['url'] = $_SERVER['HTTP_REFERER'];
  97. }else{
  98. $urls[0]['url'] = 'javascript:history.back();';
  99. }
  100. $urls[0]['title'] = '点击立即跳转';
  101. }
  102. if($redirect) {
  103. $redirect = $urls[0]['url'];
  104. $redirect = (strstr($redirect, 'javascript:') !== false) ? $redirect : "location.href='{$redirect}'";
  105. } else {
  106. $redirect = '';
  107. }
  108. if(Request::ajax()){
  109. $retval['msg'] = $msgs;
  110. $retval['redirect'] = $redirect;
  111. $retval['data'] = $data;
  112. $retval['status'] = $code;
  113. echo json_encode($retval);exit;
  114. return ;
  115. }
  116. if($links=="refresh") {
  117. echo "<script>alert('{$msgs[0]}');</script>";
  118. echo "<script>window.close();</script>";
  119. echo "<script>opener.location.reload();</script>";
  120. exit;
  121. }
  122. if($code==SUCESS_CODE) {
  123. $ico = '<i class="fa fa-check"></i>';
  124. $titleHtml = '信息提示';
  125. }else{
  126. $ico = '<i class="fa fa-warning"></i>';
  127. $titleHtml = '错误警告';
  128. }
  129. $msgHtml = '';
  130. foreach ($msgs as $msg) {
  131. $msgHtml .= "<li>$msg</li>";
  132. }
  133. $urlHtml = '';
  134. foreach ($urls as $url) {
  135. if($url['url'] == 'history_back'){
  136. $u = "javascript:history.back();";
  137. }else{
  138. $u = $url['url'];
  139. }
  140. $urlHtml .= '&nbsp;<a class="btn btn-primary" href="' . $u . '" >' . $url['title'] . '</a>';
  141. }
  142. $u = session()->get("is_we7")=="true"?"/addons/online_album/public":"";
  143. $html ='<!DOCTYPE html>
  144. <html>
  145. <head>
  146. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  147. <meta name="renderer" content="webkit">
  148. <title>' . $titleHtml .'</title>
  149. <link href="' . $u .'/base/css/bootstrap.min.css?v=3.4.0.css" rel="stylesheet">
  150. <link href="' . $u .'/base/css/font-awesome.min.css?v=4.3.0.css" rel="stylesheet">
  151. <link href="' . $u .'/base/css/style.min.css?v=3.0.0.css" rel="stylesheet">
  152. <script type="text/javascript">
  153. setTimeout(function(){
  154. var url = "' . $urls[0]['url'] . '";
  155. if(url == "history_back"){
  156. window.location.href = history.back();
  157. }else{
  158. window.location.href = url;
  159. }
  160. }, 3000);
  161. </script>
  162. </head>
  163. <body class="gray-bg">
  164. <div class="ibox-content middle-box" style="width:600px; margin-top: 150px;">
  165. <h2 class="text-center">' . $ico . ' ' . $titleHtml . '</h2>
  166. <ul class="todo-list m-t ui-sortable">
  167. ' . $msgHtml . '
  168. </ul>
  169. <div class="text-center">
  170. 该页面将在 3 秒钟后自动转向
  171. </div>
  172. <div class="text-center" style="margin-top: 10px;">
  173. ' . $urlHtml . '
  174. <a href="javascript:history.back();" class="btn btn-success">
  175. 返回
  176. </a>
  177. </div>
  178. </div>
  179. </body>
  180. </html>';
  181. exit($html);
  182. }
  183. public function api($data, $code = 0, $message = '')
  184. {
  185. $ret = $this->genApiData($data, $code, $message);
  186. $status = $code === 0 ? 200 : 400;
  187. return Response::json($ret, $status);
  188. }
  189. private function genApiData($data, $code = 0, $message = '')
  190. {
  191. if ($code !== 0 && ErrorCode::CLIENT_WRONG_PARAMS && empty($message)) {
  192. $message = ErrorCode::message($code);
  193. }
  194. $ret = [
  195. 'status' => $code == 0,
  196. 'status_code' => $code,
  197. 'message' => $message,
  198. 'data' => $data
  199. ];
  200. return $ret;
  201. }
  202. }