Controller.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  4. use Illuminate\Foundation\Bus\DispatchesJobs;
  5. use Illuminate\Foundation\Validation\ValidatesRequests;
  6. use Illuminate\Routing\Controller as BaseController;
  7. use Illuminate\Support\Facades\Cookie;
  8. use Illuminate\Support\Facades\Http;
  9. use Illuminate\Http\Request;
  10. use App\Models\AppSession;
  11. class Controller extends BaseController
  12. {
  13. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  14. protected $performer = null;
  15. protected $user = null;
  16. protected $sessionKey = null;
  17. protected $appInternalName = null;
  18. protected $stringMappingConfig = null;
  19. public function __construct()
  20. {
  21. $this->sessionKey = Cookie::get(config('app.sessionKeyName'));
  22. $this->performer = AppSession::where('session_key', $this->sessionKey)->where('is_active', true)->first();
  23. if($this->performer){
  24. $this->user = $this->performer ? $this->performer->user : null;
  25. }
  26. $this->appInternalName = config('app.internalName');
  27. $this->stringMappingConfig = config('constants.' . $this->appInternalName);
  28. view()->share('appInternalName', $this->appInternalName);
  29. view()->share('stringMappingConfig', $this->stringMappingConfig);
  30. view()->share('performer', $this->performer);
  31. view()->share('user', $this->user);
  32. }
  33. public function callJava($endPoint, $data, $sessionKey)
  34. {
  35. $url = config('app.backendUrl') . $endPoint;
  36. $response = Http::asForm()
  37. ->withHeaders([
  38. 'sessionKey' => $sessionKey
  39. ])
  40. ->post($url, $data)
  41. ->body();
  42. return json_decode($response, true);
  43. }
  44. public function pass($data = null): array
  45. {
  46. return [
  47. 'success' => true,
  48. 'data' => $data,
  49. ];
  50. }
  51. public function fail($message): array
  52. {
  53. return [
  54. 'success' => false,
  55. 'message' => $message
  56. ];
  57. return null;
  58. }
  59. public function filterMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2) {
  60. switch($request->input($keyName)) {
  61. case 'EXACTLY':
  62. if($request->input($valueName1)) {
  63. $query->where($columnName, $request->input($valueName1));
  64. }
  65. break;
  66. case 'LESS_THAN':
  67. if($request->input($valueName1)) {
  68. $query->where($columnName, '<', $request->input($valueName1));
  69. }
  70. break;
  71. case 'GREATER_THAN':
  72. if($request->input($valueName1)) {
  73. $query->where($columnName, '>', $request->input($valueName1));
  74. }
  75. break;
  76. case 'BETWEEN':
  77. if($request->input($valueName1) && $request->input($valueName2)) {
  78. $query
  79. ->where($columnName, '>=', $request->input($valueName1))
  80. ->where($columnName, '<=', $request->input($valueName2));
  81. }
  82. break;
  83. case 'NOT_BETWEEN':
  84. if($request->input($valueName1) && $request->input($valueName2)) {
  85. $query
  86. ->where(function ($q) use ($request, $columnName, $valueName1, $valueName2) {
  87. $q->where($columnName, '<', $request->input($valueName1))
  88. ->orWhere($columnName, '>', $request->input($valueName2));
  89. });
  90. }
  91. break;
  92. }
  93. }
  94. public function filterDateMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2) {
  95. switch($request->input($keyName)) {
  96. case 'EXACTLY':
  97. if($request->input($valueName1)) {
  98. $query->whereDate($columnName, $request->input($valueName1));
  99. }
  100. break;
  101. case 'LESS_THAN':
  102. if($request->input($valueName1)) {
  103. $query->whereDate($columnName, '<', $request->input($valueName1));
  104. }
  105. break;
  106. case 'GREATER_THAN':
  107. if($request->input($valueName1)) {
  108. $query->whereDate($columnName, '>', $request->input($valueName1));
  109. }
  110. break;
  111. case 'BETWEEN':
  112. if($request->input($valueName1) && $request->input($valueName2)) {
  113. $query
  114. ->whereDate($columnName, '>=', $request->input($valueName1))
  115. ->whereDate($columnName, '<=', $request->input($valueName2));
  116. }
  117. break;
  118. case 'NOT_BETWEEN':
  119. if($request->input($valueName1) && $request->input($valueName2)) {
  120. $query
  121. ->whereDate(function ($q) use ($request, $columnName, $valueName1, $valueName2) {
  122. $q->whereDate($columnName, '<', $request->input($valueName1))
  123. ->orWhereDate($columnName, '>', $request->input($valueName2));
  124. });
  125. }
  126. break;
  127. }
  128. }
  129. public function filterSimpleQuery(Request $request, $query, $columnName, $valueName) {
  130. if($request->input($valueName)) {
  131. $query->where($columnName, $request->input($valueName));
  132. }
  133. }
  134. public function filterSimpleQueryByValue(Request $request, $query, $columnName, $valueName) {
  135. if($valueName) {
  136. $query->where($columnName, $valueName);
  137. }
  138. }
  139. }