123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- /**
- * @Name
- * @Description
- * @Author 刘学玺
- * @Date 2023/11/23 20:59
- */
- namespace App\Http\Services;
- use App\Exceptions\ApiException;
- use App\Exceptions\Code;
- use App\Exceptions\Message;
- use function PHPUnit\Framework\stringStartsWith;
- class BaseService
- {
- function queryCondition(object $model, array $params, string $key = 'name'): object
- {
- if (!empty($params['created_at'])) {
- $model = $model->whereBetween('created_at', $params['created_at']);
- }
- if (!empty($params['updated_at'])) {
- $model = $model->whereBetween('updated_at', $params['updated_at']);
- }
- if (!empty($params[$key])) {
- $model = $model->where($key, 'like', '%' . $params[$key] . '%');
- }
- if (isset($params['status']) && $params['status'] != '') {
- $model = $model->where('status', $params['status']);
- }
- return $model;
- }
- public function commonCreate($model, array $data = [], string $successMessage = Message::ADD_API_SUCCESS, string $errorMessage = Message::ADD_API_ERROR, $timestamps = true)
- {
- if ($timestamps)
- $data['created_at'] = date('Y-m-d H:i:s');
- // $model->save();
- // $token = Auth::fromUser($user);
- if ($model->insert($data)) {
- return $this->apiSuccess($successMessage);
- }
- $this->apiError($errorMessage);
- }
- public function commonUpdate($model, $id, array $data = [], string $successMessage = Message::UPDATE_API_SUCCESS, string $errorMessage = Message::UPDATE_API_ERROR, $timestamps = true)
- {
- // if ($timestamps) $data['updated_at'] = date('Y-m-d H:i:s');
- if ($model->where('id', $id)->update($data)) {
- return $this->apiSuccess($successMessage);
- }
- $this->apiError($errorMessage);
- }
- public function apiSuccess(string $message = '', array $data = array(), int $code = Code::Ok,)
- {
- if (!$message) {
- $message = Message::Ok;
- }
- return response([
- 'code' => $code,
- 'message' => $message,
- 'data' => $data
- ]);
- }
- /**
- * @throws ApiException
- */
- public function apiError(string $message = Message::API_ERROR_EXCEPTION, int $code = Code::BAD_REQUEST)
- {
- throw new ApiException([
- 'code' => $code,
- 'message' => $message
- ]);
- }
- /**
- * 物理删除
- * Method : Interface commonDestroy
- * @param $model
- * @param array $ArrId
- * @param string $successMessage
- * @param string $errorMessage
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Foundation\Application|\Illuminate\Http\Response|void
- * @throws ApiException
- */
- public function commonDestroy($model, array $ArrId, string $successMessage = Message::DELETE_API_SUCCESS, string $errorMessage = Message::DELETE_API_ERROR)
- {
- if ($model->whereIn('id', $ArrId)->forceDelete()) {
- return $this->apiSuccess($successMessage);
- }
- $this->apiError($errorMessage);
- }
- /**
- * 软删除
- * @description
- **/
- public function commonIsDelete($model, array $ids, string $successMessage = Message::DELETE_API_SUCCESS, string $errorMessage = Message::DELETE_API_ERROR)
- {
- if ($model->whereIn('id', $ids)->delete()) {
- return $this->apiSuccess($successMessage);
- }
- $this->apiError($errorMessage);
- }
- public function buildMenu(array $array, int $pid = 0): array
- {
- $tree = array();
- foreach ($array as $key => $value) {
- if ($value['pid'] == $pid) {
- $path = trim($value['path'], '/');
- $name = ucfirst($value['name'] ?: $path);
- $value['children'] = $this->buildMenu($array, $value['id']);
- $menu = [
- 'name' => $name,
- 'path' => '/' . $path,
- "meta" => [
- "locale" => $value['title'],
- "icon" => $value['icon'],
- "order" => $value['sort'],
- // "activeMenu" => true,
- // "hideChildrenInMenu" => true,
- ]
- ];
- if ($value['component'])
- $menu['component'] = $value['component'];
- if ($value['redirect'])
- $menu['redirect'] = $value['redirect'];
- if ($value['children'])
- $menu['children'] = $value['children'];
- if ($value['requires_auth'])
- $menu['meta']['requiresAuth'] = true;
- if ($value['hide'])
- $menu['meta']['hideInMenu'] = true;
- if ($value['keep_alive'])
- $menu['meta']['keepAlive'] = true;
- $tree[] = $menu;
- }
- }
- return $tree;
- }
- }
|