seven 2 tháng trước cách đây
mục cha
commit
f1fed6abad
3 tập tin đã thay đổi với 197 bổ sung0 xóa
  1. 71 0
      app/Http/Controllers/admin/Config.php
  2. 123 0
      app/Services/ConfigService.php
  3. 3 0
      routes/admin.php

+ 71 - 0
app/Http/Controllers/admin/Config.php

@@ -12,9 +12,80 @@ use Exception;
 use Telegram\Bot\Api;
 use Telegram\Bot\Exceptions\TelegramSDKException;
 use Telegram\Bot\FileUpload\InputFile;
+use App\Services\ConfigService;
+use Google\Service\ServiceManagement\ConfigSource;
 
 class Config extends Controller
 {
+
+    /**
+     * @description: 分页数据
+     * @return {*}
+     */    
+    function index()
+    {
+        try {
+            request()->validate([
+                'field' => ['nullable', 'string'],
+                'id' => ['nullable', 'string'],
+            ]);
+            $search = request()->all();
+            $result = ConfigService::paginate($search);
+        } catch (ValidationException $e) {
+            return $this->error(HttpStatus::VALIDATION_FAILED, $e->validator->errors()->first());
+        } catch (Exception $e) {
+            return $this->error(intval($e->getCode()));
+        }
+        return $this->success($result);
+    }
+
+    /**
+     * @description: 修改|新增
+     * @return {*}
+     */    
+    public function store()
+    {
+        // try {
+            $params = request()->all();
+
+            $validator = [
+                'field' => 'required|string|max:50|alpha_dash|unique:config,field',
+                'val' => 'nullable|string',
+                'remark' => 'required|nullable|string',
+            ];
+
+            request()->validate($validator);
+
+            $ret = ConfigService::submit($params);
+            if ($ret['code'] == ConfigService::NOT) {
+                return $this->error($ret['code'], $ret['msg']);
+            }
+        // } catch (ValidationException $e) {
+        //     return $this->error(HttpStatus::VALIDATION_FAILED, '', $e->errors());
+        // } catch (Exception $e) {
+        //     return $this->error(intval($e->getCode()));
+        // }
+        return $this->success([], $ret['msg']);
+
+    }
+
+    /**
+     * @description: 删除
+     */
+    public function destroy()
+    {
+        $id = request()->post('id');
+        // 示例:通过 ID 删除
+        $info = ConfigService::findOne(['id' => $id]);
+        if (!$info) {
+            return $this->error(0, '配置不存在');
+        }
+
+        $info->delete();
+
+        return $this->success([], '删除成功');
+    }
+
     /**
      * @api {get} /admin/config/get 获取指定配置
      * @apiGroup 配置

+ 123 - 0
app/Services/ConfigService.php

@@ -0,0 +1,123 @@
+<?php
+
+
+namespace App\Services;
+
+use App\Services\BaseService;
+use App\Models\Config;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Collection;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\Log;
+
+/**
+ * 配置
+*/
+class ConfigService extends BaseService 
+{
+    /**
+     * @description: 模型
+     * @return {string}
+     */    
+    public static function model() :string
+    {
+        return Config::class;
+    }
+
+    /**
+     * @description: 枚举
+     * @return {*}
+     */    
+    public static function enum() :string
+    {
+        return '';
+    }
+
+    /**
+     * @description: 获取查询条件
+     * @param {array} $search 查询内容
+     * @return {array}
+     */    
+    public static function getWhere(array $search = []) :array
+    {
+        $where = [];
+        if(isset($search['field']) && !empty($search['field'])){
+            $where[] = ['field', '=', $search['field']];
+        }
+        if(isset($search['id']) && !empty($search['id'])){
+            $where[] = ['id', '=', $search['id']];
+        }
+        return $where;
+    }
+
+     /**
+     * @description: 查询单条数据
+     * @param array $search
+     * @return \App\Models\Coin|null
+     */
+    public static function findOne(array $search): ?Config
+    {
+        return self::model()::where(self::getWhere($search))->first();
+    }
+
+    /**
+     * @description: 查询所有数据
+     * @param array $search
+     * @return \Illuminate\Database\Eloquent\Collection
+     */
+    public static function findAll(array $search = [])
+    {
+        return self::model()::where(self::getWhere($search))->get();
+    }
+
+    /**
+     * @description: 分页查询
+     * @param array $search
+     * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
+     */
+    public static function paginate(array $search = [])
+    {
+        $limit = isset($search['limit'])?$search['limit']:15;
+        $paginator = self::model()::where(self::getWhere($search))->paginate($limit);
+        return ['total' => $paginator->total(), 'data' => $paginator->items()];
+    }
+
+    /**
+     * @description: 
+     * @param {*} $params
+     * @return {*}
+     */    
+    public static function submit($params = [])
+    {
+        $result = false;
+        $msg['code'] = self::NOT;
+        $msg['msg'] = '';
+        
+        // 2. 判断是否是更新
+        if (!empty($params['id'])) {
+            // 更新
+            $info = self::findOne(['id'=>$params['id']] );
+            if (!$info) {
+                $msg['msg'] = '配置不存在!';
+            }else{
+                $result = $info->update($params);
+                $id = $params['id'];
+            }
+        } else {
+            // 创建
+            $result = $info = self::model()::create($params);
+            $id = $result->id;
+        }
+        
+       
+        if($result){
+           $msg['code'] = self::YES;
+           $msg['msg'] = '设置成功';
+        }else{
+            $msg['msg'] = empty($msg['msg']) ?'操作失败':$msg['msg'];
+        }
+
+        return $msg;
+    }
+
+}

+ 3 - 0
routes/admin.php

@@ -92,6 +92,9 @@ Route::middleware(['admin.jwt'])->group(function () {
             Route::post('/set', [Config::class, 'set']);
             Route::post('/sendChannelMessage', [Config::class, 'sendChannelMessage']);
             // Route::post('/sendChannelVideo', [Config::class, 'sendChannelVideo']);
+            Route::get('/', [Config::class, 'index']);
+            Route::post('/submit', [Config::class, 'store']); // 
+            Route::post('/delete', [Config::class, 'destroy']); // 删除
         });
 
         Route::prefix('/balance')->group(function () {