123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?php
- namespace App\Http\Admin;
- use App\Http\Admin\Requests\InterfaceForm;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Str;
- use Txj\Elastic\Facades\Eav;
- use Txj\Elastic\Facades\ES;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- class InterfaceController extends AdminBaseController
- {
- protected string $table = 'dep_interface';
- public function __construct()
- {
- parent::__construct();
- $this->setWebsite(__NAMESPACE__);
- $this->isLoginJson();
- }
- /**
- * @param Request $request
- * @return JsonResponse
- */
- public function showList(Request $request): JsonResponse
- {
- $currentPage = $request->post('page', 1);
- $size = $request->post('size', 20);
- $site_id = $request->post('site_id');
- $category_type = $request->post('category_type');
- $title = $request->post('title');
- $id = $request->post('id');
- if (empty($site_id)) {
- return responseMessage(2001, '参数错误!');
- }
- $find = DB::table($this->table);
- $find->where(['is_delete' => 0, 'website_id' => $site_id])->orderBy('id', 'desc');
- if ($category_type) {
- $find->where('category_type', $category_type);
- }
- // 为了显示input搜索的文本
- if ($id) {
- $find->where("id", $id);
- }
- if ($title) {
- // 转义特殊字符
- $title = str_replace("_", "\_", $title);
- $title = str_replace("*", "\*", $title);
- $find->where(function ($query) use ($title) {
- $query->where('title', 'like', '%' . $title . '%');
- $query->orWhere('en_alias', 'like', '%' . $title . '%');
- });
- }
- // DB::connection()->enableQueryLog();#开启执行日志
- $total = $find->count();
- $list = $find->offset(($currentPage - 1) * $size)->limit($size)->get();
- // Log::info(" sql === ", DB::getQueryLog());
- return responseMessage(1002, 'success', ['list' => $list, 'total' => $total]);
- }
- /**
- * @param Request $request
- * @return JsonResponse
- */
- public function info(Request $request): JsonResponse
- {
- $mid = $request->post('mid');
- if (empty($mid)) {
- return responseMessage(2001, '参数错误!');
- }
- $info = DB::table($this->table)->where('mid', $mid)->first();
- if ($info) {
- $info->request_settings = json_decode($info->request_settings, true);
- $info->upload_config = json_decode($info->upload_config, true);
- $info->result_settings = json_decode($info->result_settings, true);
- $info->condition_settings = json_decode($info->condition_settings, true);
- $info->sort_settings = json_decode($info->sort_settings, true);
- return responseMessage(1002, '', $info);
- } else {
- return responseMessage(2001, '数据不存在,请重试!');
- }
- }
- /**
- * @param InterfaceForm $request
- * @return JsonResponse
- * @throws \Throwable
- */
- public function save(InterfaceForm $request): JsonResponse
- {
- $data = $request->all();
- $data['is_use'] = intval($data['is_use']);
- $data['is_login'] = intval($data['is_login']);
- $data['search_column_id'] = intval($data['search_column_id'] ?? 0);
- $alias = $data['en_alias'];
- unset($data['isUse']);
- unset($data['isLogin']);
- $data['request_settings'] = json_encode($data['request_settings']);
- $data['upload_config'] = json_encode($data['upload_config']);
- $data['result_settings'] = json_encode($data['result_settings']);
- $data['condition_settings'] = json_encode($data['condition_settings']);
- $data['sort_settings'] = json_encode($data['sort_settings']);
- $data['conditions'] = json_encode($data['conditions']);
- if (isset($data['id']) && ($id = $data['id'])) {
- // 获取信息
- $info = DB::table($this->table)->find($id);
- if ($info) {
- $isExist = DB::table($this->table)
- ->where(['en_alias' => $alias, 'website_id' => $data['website_id'], 'is_delete' => 0])
- ->where('id', '!=', $id)
- ->count();
- if ($isExist) {
- return responseMessage(2003, '接口英文别名已经存在,换一个名称吧!');
- }
- $isSuccess = DB::table($this->table)->where('id', $id)->update($data);
- } else {
- return responseMessage(2005, '数据不存在,请重试!');
- }
- } else {
- $isExist = DB::table($this->table)->where(['en_alias' => $alias, 'website_id' => $data['website_id'], 'is_delete' => 0])->count();
- if ($isExist) {
- return responseMessage(2004, '接口英文别名已经存在,换一个名称吧!');
- }
- $data['mid'] = Str::random(12);
- $data['created_at'] = time();
- $data['updated_at'] = time();
-
- $isSuccess = DB::table($this->table)->insert($data);
- }
- if ($isSuccess) {
- return responseMessage(1001, '操作成功!');
- } else {
- return responseMessage(2006, '操作失败!');
- }
- }
- /**
- * 更新状态
- *
- * @param Request $request
- * @return JsonResponse
- * @throws \Throwable
- */
- public function updateStatus(Request $request): JsonResponse
- {
- $id = $request->post('id');
- $is_use = $request->post('is_use');
- $is_login = $request->post('is_login');
- // 获取信息
- $info = ES::table($this->table)->find($id);
- if ($info) {
- $data = [];
- if ($is_use || $is_use === 0) {
- $is_use = intval($is_use);
- $data['is_use'] = $is_use;
- }
- if ($is_login || $is_login === 0) {
- $is_login = intval($is_login);
- $data['is_login'] = $is_login;
- }
- if (empty($data)) {
- return responseMessage(2001, '数据为空,请重试!');
- }
- $isSuccess = ES::table($this->table)->toRefresh()->updateEntityById($id, $data);
- if ($isSuccess) {
- return responseMessage(1001, '操作成功!');
- } else {
- return responseMessage(2006, '操作失败!');
- }
- } else {
- return responseMessage(2005, '数据不存在,请重试!');
- }
- }
- /**
- * 伪删除,
- * 删除后,其他接口绑定了该接口,也不影响
- */
- public function del(Request $request): JsonResponse
- {
- $mid = $request->input('mid');
- if (empty($mid)) {
- return responseMessage(2002, '参数错误');
- }
- return $this->fakeDeleteData($this->table, ['mid' => $mid]);
- }
- }
|