InterfaceController.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. namespace App\Http\Admin;
  3. use App\Http\Admin\Requests\InterfaceForm;
  4. use Illuminate\Support\Facades\DB;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Str;
  7. use Txj\Elastic\Facades\Eav;
  8. use Txj\Elastic\Facades\ES;
  9. use Illuminate\Http\JsonResponse;
  10. use Illuminate\Http\Request;
  11. class InterfaceController extends AdminBaseController
  12. {
  13. protected string $table = 'dep_interface';
  14. public function __construct()
  15. {
  16. parent::__construct();
  17. $this->setWebsite(__NAMESPACE__);
  18. $this->isLoginJson();
  19. }
  20. /**
  21. * @param Request $request
  22. * @return JsonResponse
  23. */
  24. public function showList(Request $request): JsonResponse
  25. {
  26. $currentPage = $request->post('page', 1);
  27. $size = $request->post('size', 20);
  28. $site_id = $request->post('site_id');
  29. $category_type = $request->post('category_type');
  30. $title = $request->post('title');
  31. $id = $request->post('id');
  32. if (empty($site_id)) {
  33. return responseMessage(2001, '参数错误!');
  34. }
  35. $find = DB::table($this->table);
  36. $find->where(['is_delete' => 0, 'website_id' => $site_id])->orderBy('id', 'desc');
  37. if ($category_type) {
  38. $find->where('category_type', $category_type);
  39. }
  40. // 为了显示input搜索的文本
  41. if ($id) {
  42. $find->where("id", $id);
  43. }
  44. if ($title) {
  45. // 转义特殊字符
  46. $title = str_replace("_", "\_", $title);
  47. $title = str_replace("*", "\*", $title);
  48. $find->where(function ($query) use ($title) {
  49. $query->where('title', 'like', '%' . $title . '%');
  50. $query->orWhere('en_alias', 'like', '%' . $title . '%');
  51. });
  52. }
  53. // DB::connection()->enableQueryLog();#开启执行日志
  54. $total = $find->count();
  55. $list = $find->offset(($currentPage - 1) * $size)->limit($size)->get();
  56. // Log::info(" sql === ", DB::getQueryLog());
  57. return responseMessage(1002, 'success', ['list' => $list, 'total' => $total]);
  58. }
  59. /**
  60. * @param Request $request
  61. * @return JsonResponse
  62. */
  63. public function info(Request $request): JsonResponse
  64. {
  65. $mid = $request->post('mid');
  66. if (empty($mid)) {
  67. return responseMessage(2001, '参数错误!');
  68. }
  69. $info = DB::table($this->table)->where('mid', $mid)->first();
  70. if ($info) {
  71. $info->request_settings = json_decode($info->request_settings, true);
  72. $info->upload_config = json_decode($info->upload_config, true);
  73. $info->result_settings = json_decode($info->result_settings, true);
  74. $info->condition_settings = json_decode($info->condition_settings, true);
  75. $info->sort_settings = json_decode($info->sort_settings, true);
  76. return responseMessage(1002, '', $info);
  77. } else {
  78. return responseMessage(2001, '数据不存在,请重试!');
  79. }
  80. }
  81. /**
  82. * @param InterfaceForm $request
  83. * @return JsonResponse
  84. * @throws \Throwable
  85. */
  86. public function save(InterfaceForm $request): JsonResponse
  87. {
  88. $data = $request->all();
  89. $data['is_use'] = intval($data['is_use']);
  90. $data['is_login'] = intval($data['is_login']);
  91. $data['search_column_id'] = intval($data['search_column_id'] ?? 0);
  92. $alias = $data['en_alias'];
  93. unset($data['isUse']);
  94. unset($data['isLogin']);
  95. $data['request_settings'] = json_encode($data['request_settings']);
  96. $data['upload_config'] = json_encode($data['upload_config']);
  97. $data['result_settings'] = json_encode($data['result_settings']);
  98. $data['condition_settings'] = json_encode($data['condition_settings']);
  99. $data['sort_settings'] = json_encode($data['sort_settings']);
  100. $data['conditions'] = json_encode($data['conditions']);
  101. if (isset($data['id']) && ($id = $data['id'])) {
  102. // 获取信息
  103. $info = DB::table($this->table)->find($id);
  104. if ($info) {
  105. $isExist = DB::table($this->table)
  106. ->where(['en_alias' => $alias, 'website_id' => $data['website_id'], 'is_delete' => 0])
  107. ->where('id', '!=', $id)
  108. ->count();
  109. if ($isExist) {
  110. return responseMessage(2003, '接口英文别名已经存在,换一个名称吧!');
  111. }
  112. $isSuccess = DB::table($this->table)->where('id', $id)->update($data);
  113. } else {
  114. return responseMessage(2005, '数据不存在,请重试!');
  115. }
  116. } else {
  117. $isExist = DB::table($this->table)->where(['en_alias' => $alias, 'website_id' => $data['website_id'], 'is_delete' => 0])->count();
  118. if ($isExist) {
  119. return responseMessage(2004, '接口英文别名已经存在,换一个名称吧!');
  120. }
  121. $data['mid'] = Str::random(12);
  122. $data['created_at'] = time();
  123. $data['updated_at'] = time();
  124. $isSuccess = DB::table($this->table)->insert($data);
  125. }
  126. if ($isSuccess) {
  127. return responseMessage(1001, '操作成功!');
  128. } else {
  129. return responseMessage(2006, '操作失败!');
  130. }
  131. }
  132. /**
  133. * 更新状态
  134. *
  135. * @param Request $request
  136. * @return JsonResponse
  137. * @throws \Throwable
  138. */
  139. public function updateStatus(Request $request): JsonResponse
  140. {
  141. $id = $request->post('id');
  142. $is_use = $request->post('is_use');
  143. $is_login = $request->post('is_login');
  144. // 获取信息
  145. $info = ES::table($this->table)->find($id);
  146. if ($info) {
  147. $data = [];
  148. if ($is_use || $is_use === 0) {
  149. $is_use = intval($is_use);
  150. $data['is_use'] = $is_use;
  151. }
  152. if ($is_login || $is_login === 0) {
  153. $is_login = intval($is_login);
  154. $data['is_login'] = $is_login;
  155. }
  156. if (empty($data)) {
  157. return responseMessage(2001, '数据为空,请重试!');
  158. }
  159. $isSuccess = ES::table($this->table)->toRefresh()->updateEntityById($id, $data);
  160. if ($isSuccess) {
  161. return responseMessage(1001, '操作成功!');
  162. } else {
  163. return responseMessage(2006, '操作失败!');
  164. }
  165. } else {
  166. return responseMessage(2005, '数据不存在,请重试!');
  167. }
  168. }
  169. /**
  170. * 伪删除,
  171. * 删除后,其他接口绑定了该接口,也不影响
  172. */
  173. public function del(Request $request): JsonResponse
  174. {
  175. $mid = $request->input('mid');
  176. if (empty($mid)) {
  177. return responseMessage(2002, '参数错误');
  178. }
  179. return $this->fakeDeleteData($this->table, ['mid' => $mid]);
  180. }
  181. }