gorden 1 rok temu
rodzic
commit
57447158ff

+ 37 - 0
app/admin/controller/sys_manage/AdvController.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace app\admin\controller\sys_manage;
+
+use app\admin\validate\sys_manage\AdvValidate;
+use app\controller\Curd;
+use app\model\Adv;
+use support\Request;
+use support\Response;
+
+class AdvController extends Curd
+{
+    public function __construct()
+    {
+        $this->model = new Adv();
+        $this->validate = true;
+        $this->validateClass = new AdvValidate();
+    }
+
+    /** 列表
+     * @Desc
+     * @Author Gorden
+     * @Date 2024/3/5 10:00
+     *
+     * @param Request $request
+     * @return Response
+     * @throws \support\exception\BusinessException
+     */
+    public function select(Request $request): Response
+    {
+        [$where, $format, $limit, $field, $order] = $this->selectInput($request);
+        $order = $request->get('order', 'desc');
+        $field = $field ?? 'content_sort';
+        $query = $this->doSelect($where, $field, $order);
+        return $this->doFormat($query, $format, $limit);
+    }
+}

+ 51 - 0
app/admin/validate/sys_manage/AdvValidate.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace app\admin\validate\sys_manage;
+
+use think\Validate;
+
+class AdvValidate extends Validate
+{
+    protected $rule = [
+        'adv_id' => 'require|integer',
+        'join_adv_category_id' => 'integer',
+        'adv_status' => 'in:PENDING,ACTIVED,DISABLED',
+        'adv_category' => 'max:32',
+        'adv_name' => 'require|max:64',
+        'adv_title' => 'require|max:64',
+        'adv_carrier' => 'max:64',
+        'adv_media' => 'isJson',
+        'adv_href' => 'max:64',
+        'adv_config_json' => 'isJson',
+        'content_sort' => 'integer',
+        'content_groupby' => 'max:32',
+        'content_remark' => 'max:128',
+        'content_extend_json' => 'isJson'
+    ];
+
+    protected $message = [];
+
+    protected $scene = [
+        'add' => ['join_adv_category_id', 'adv_status', 'adv_category', 'adv_name', 'adv_title', 'adv_carrier', 'adv_media',
+            'adv_href', 'adv_config_json', 'content_sort', 'content_groupby', 'content_remark', 'content_extend_json'],
+        'update' => ['adv_id', 'join_adv_category_id', 'adv_status', 'adv_category', 'adv_name', 'adv_title', 'adv_carrier', 'adv_media',
+            'adv_href', 'adv_config_json', 'content_sort', 'content_groupby', 'content_remark', 'content_extend_json'],
+    ];
+
+    /**
+     * @Desc 验证json
+     * @Author Gorden
+     * @Date 2024/3/5 10:05
+     *
+     * @param $value
+     * @return bool
+     */
+    protected function isJson($value)
+    {
+        if (is_json($value)) {
+            return true;
+        }
+
+        return false;
+    }
+}

+ 18 - 0
app/model/Adv.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace app\model;
+
+use support\Model;
+
+class Adv extends Model
+{
+    protected $table = 'adv';
+
+    protected $primaryKey = 'adv_id';
+
+    protected $dateFormat = 'U';
+
+    const CREATED_AT = 'content_addtimes';
+
+    const UPDATED_AT = null;
+}

+ 8 - 1
route/admin.php

@@ -78,7 +78,6 @@ Route::group('/admin', function () {
             Route::post('/updateStatus/{id:\d+}', [\app\admin\controller\sys_manage\FieldController::class, 'updateStatus']);
             Route::delete('/delete/{id:\d+}', [\app\admin\controller\sys_manage\FieldController::class, 'delField']);
         });
-
         /* 配置管理 */
         Route::group('/config', function () {
             Route::get('/list', [\app\admin\controller\sys_manage\ConfigController::class, 'configList']);
@@ -96,6 +95,14 @@ Route::group('/admin', function () {
             Route::post('/updateStatus', [\app\admin\controller\sys_manage\PostageTemplateController::class, 'updateStatus']);
             Route::delete('/delete', [\app\admin\controller\sys_manage\PostageTemplateController::class, 'delete']);
         });
+        Route::group('/adv', function () {
+            Route::get('/list', [\app\admin\controller\sys_manage\AdvController::class, 'select']);
+            Route::post('/add', [\app\admin\controller\sys_manage\AdvController::class, 'insert']);
+            Route::post('/update', [\app\admin\controller\sys_manage\AdvController::class, 'update']);
+            Route::delete('/delete', [\app\admin\controller\sys_manage\AdvController::class, 'delete']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
     });
 
     /* 业务支撑 */