BaseController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/9/22
  8. * Time: 13:37
  9. */
  10. namespace business\common\controllers\components;
  11. use app\common\exceptions\AppException;
  12. use app\common\exceptions\ShopException;
  13. use app\common\facades\Setting;
  14. use app\common\middleware\BasicInformation;
  15. use app\common\middleware\SingleLogin;
  16. use app\common\services\Check;
  17. use app\common\services\PermissionService;
  18. use app\common\services\Session;
  19. use app\common\services\Utils;
  20. use app\common\traits\JsonTrait;
  21. use app\common\traits\MessageTrait;
  22. use app\common\traits\PermissionTrait;
  23. use app\common\traits\TemplateTrait;
  24. use app\platform\modules\system\models\SystemSetting;
  25. use business\common\services\SettingService;
  26. use Illuminate\Foundation\Bus\DispatchesJobs;
  27. use Illuminate\Foundation\Validation\ValidatesRequests;
  28. use Illuminate\Http\Request;
  29. use Illuminate\Routing\Controller;
  30. use Illuminate\Support\Facades\Validator;
  31. /**
  32. * controller基类
  33. *
  34. * Author: 芸众商城 www.yunzshop.com
  35. * Date: 21/02/2017
  36. * Time: 21:20
  37. */
  38. class BaseController extends Controller
  39. {
  40. use DispatchesJobs, MessageTrait, ValidatesRequests, TemplateTrait, PermissionTrait, JsonTrait;
  41. const SESSION_EXPIRE = 2160000;
  42. /**
  43. * controller中执行报错需要回滚的action数组
  44. * @var array
  45. */
  46. public $transactionActions = [];
  47. public $apiErrMsg = [];
  48. public $apiData = [];
  49. protected $isPublic = false;
  50. public $business_id;
  51. public function __construct()
  52. {
  53. $this->setCookie();
  54. }
  55. public function preAction()
  56. {
  57. $this->business_id = SettingService::getBusinessId();
  58. }
  59. protected function formatValidationErrors(Validator $validator)
  60. {
  61. return $validator->errors()->all();
  62. }
  63. public function callAction($method, $parameters)
  64. {
  65. if (method_exists($this, 'preAction')) {
  66. call_user_func_array([$this, 'preAction'], $parameters);
  67. }
  68. return parent::callAction($method, $parameters); // TODO: Change the autogenerated stub
  69. }
  70. public function getIgnoreAction()
  71. {
  72. return [];
  73. }
  74. public function getPublicAction()
  75. {
  76. return [];
  77. }
  78. /**
  79. * url参数验证
  80. *
  81. * @param array $rules
  82. * @param Request|null $request
  83. * @param array $messages
  84. * @param array $customAttributes
  85. *
  86. * @throws AppException
  87. */
  88. public function validate(array $rules, Request $request = null, array $messages = [], array $customAttributes = [])
  89. {
  90. if (!isset($request)) {
  91. $request = request();
  92. }
  93. $validator = $this->getValidationFactory()->make($request->all(), $rules, $messages, $customAttributes);
  94. if ($validator->fails()) {
  95. throw new AppException($validator->errors()->first());
  96. }
  97. }
  98. /**
  99. * 设置Cookie存储
  100. *
  101. * @return void
  102. */
  103. protected function setCookie()
  104. {
  105. $session_id = '';
  106. if (isset($_COOKIE[session_name()])) {
  107. $session_id = $_COOKIE[session_name()];
  108. }
  109. if (empty($session_id)) {
  110. $session_id = md5(\YunShop::app()->uniacid . ':' . random(20));
  111. setcookie(session_name(), $session_id);
  112. }
  113. session_id($session_id);
  114. Session::factory(\YunShop::app()->uniacid);
  115. }
  116. }