Browse Source

完善功能

gorden 9 months ago
parent
commit
6ebadcd0de

+ 135 - 0
app/admin/controller/device/MetadataController.php

@@ -0,0 +1,135 @@
+<?php
+
+namespace app\admin\controller\device;
+
+use app\admin\validate\device\DeviceValidate;
+use app\controller\Curd;
+use app\model\Device;
+use app\model\Metadata;
+use app\model\SysSerial;
+use support\exception\BusinessException;
+use support\Request;
+use support\Response;
+
+class MetadataController extends Curd
+{
+    public function __construct()
+    {
+        $this->model = new Metadata();
+//        $this->validate = true;
+//        $this->validateClass = new DeviceValidate();
+    }
+
+    public function select(Request $request): Response
+    {
+        [$where, $format, $limit, $field, $order] = $this->selectInput($request);
+        $order = $request->get('order', 'desc');
+        $field = $field ?? 'metadata_addtimes';
+        $query = $this->doSelect($where, $field, $order);
+        return $this->doFormat($query, $format, $limit);
+    }
+
+    protected function doSelect(array $where, string $field = null, string $order = 'desc')
+    {
+        $model = $this->model;
+        foreach ($where as $column => $value) {
+            if (is_array($value)) {
+                if ($value[0] === 'like' || $value[0] === 'not like') {
+                    $model = $model->where($column, $value[0], "%$value[1]%");
+                } elseif (in_array($value[0], ['>', '=', '<', '<>'])) {
+                    $model = $model->where($column, $value[0], $value[1]);
+                } elseif ($value[0] == 'in' && !empty($value[1])) {
+                    $valArr = $value[1];
+                    if (is_string($value[1])) {
+                        $valArr = explode(",", trim($value[1]));
+                    }
+                    $model = $model->whereIn($column, $valArr);
+                } elseif ($value[0] == 'not in' && !empty($value[1])) {
+                    $valArr = $value[1];
+                    if (is_string($value[1])) {
+                        $valArr = explode(",", trim($value[1]));
+                    }
+                    $model = $model->whereNotIn($column, $valArr);
+                } elseif ($value[0] == 'null') {
+                    $model = $model->whereNull($column);
+                } elseif ($value[0] == 'not null') {
+                    $model = $model->whereNotNull($column);
+                } elseif ($value[0] !== '' || $value[1] !== '') {
+                    $model = $model->whereBetween($column, $value);
+                }
+            } else {
+                $model = $model->where($column, $value);
+            }
+        }
+        if ($field) {
+            $model = $model->orderBy($field, $order);
+        }
+        return $model;
+    }
+
+    /* 设备列表(下拉选项)*/
+    public function selectList()
+    {
+        $class = get_class($this->model);
+        $data = $class::select('metadata_id', 'metadata_name', 'metadata_key')
+            ->get()
+            ->toArray();
+
+        return json_success('', $data);
+    }
+
+    public function insert(Request $request): Response
+    {
+        if ($this->validate && !$this->validateClass->scene('add')->check($request->post())) {
+            return json_fail($this->validateClass->getError());
+        }
+
+        try {
+            $data = $this->insertInput($request);
+            $this->doInsert($data);
+        } catch (BusinessException $customException) {
+            return json_fail($customException->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getMessage());
+            return json_fail('数据写入失败');
+        }
+
+        _syslog("添加元数据", "元数据名称【" . $request->post('metadata_name') . '】');
+
+        return json_success('success');
+    }
+
+    public function update(Request $request): Response
+    {
+        if ($this->validate && !$this->validateClass->scene('update')->check($request->post())) {
+            return json_fail($this->validateClass->getError());
+        }
+
+        try {
+            [$id, $data] = $this->updateInput($request);
+            $this->doUpdate($id, $data);
+        } catch (BusinessException $e) {
+            return json_fail($e->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getTrace());
+            return json_fail('数据更新失败');
+        }
+
+        _syslog("编辑元数据", "元数据名称【" . $request->post('metadata_name') . '】');
+
+        return json_success('success');
+    }
+
+    public function delete(Request $request): Response
+    {
+        $ids = $this->deleteInput($request);
+
+        $metas = Metadata::whereIn('metadata_id', $ids)->get()->toArray();
+
+        $this->doDelete($ids);
+
+        _syslog("删除元数据", "删除的元数据ID【" . implode(',', $ids) . '】', $metas);
+
+        return json_success('success');
+    }
+}

+ 4 - 2
app/admin/service/goods/GoodsService.php

@@ -481,6 +481,8 @@ class GoodsService
 
             $data['goods_on_addtimes'] = date('Y-m-d\TH:i:s.u\Z', $data['goods_on_addtimes'] - 60 * 60 * 8);
 
+            $data = json_decode(json_encode($data), true);
+
             return json_success('', $data);
         } catch (\Exception $e) {
             dump($e->getMessage());
@@ -876,7 +878,7 @@ class GoodsService
                         'duration' => $time['appointmentTimeStart'] . '-' . $time['appointmentTimeEnd']
                     ];
                 }
-                $attributeJsonTime = date('H:i',min($attributeJsonTimeArr)).'至'.date('H:i',max($attributeJsonTimeArr));
+                $attributeJsonTime = date('H:i', min($attributeJsonTimeArr)) . '至' . date('H:i', max($attributeJsonTimeArr));
 
                 $newDates = [];
                 foreach ($params['dates'] as $date) {
@@ -1166,7 +1168,7 @@ class GoodsService
                         'duration' => $time['appointmentTimeStart'] . '-' . $time['appointmentTimeEnd']
                     ];
                 }
-                $attributeJsonTime = date('H:i',min($attributeJsonTimeArr)).'至'.date('H:i',max($attributeJsonTimeArr));
+                $attributeJsonTime = date('H:i', min($attributeJsonTimeArr)) . '至' . date('H:i', max($attributeJsonTimeArr));
 
                 $newDates = [];
                 foreach ($params['dates'] as $date) {

+ 4 - 0
app/admin/service/sys_manage/ConfigService.php

@@ -167,6 +167,8 @@ class ConfigService
             $res = SysConfig::where('config_key', 'app-name')
                 ->orWhere('config_key', 'app-version')
                 ->orWhere('config_key', 'app-common-css')
+                ->orWhere('config_key', 'app-license')
+                ->orWhere('config_key', 'app-hide')
                 ->get()
                 ->toArray();
             $data = [];
@@ -205,6 +207,8 @@ class ConfigService
                 SysConfig::where('config_key', 'app-name')->update(['config_value' => $params['app_name']]);
                 SysConfig::where('config_key', 'app-version')->update(['config_value' => $params['app_version']]);
                 SysConfig::where('config_key', 'app-common-css')->update(['config_value' => $params['app_common_css']]);
+                SysConfig::where('config_key', 'app-license')->update(['config_value' => $params['app_license']]);
+                SysConfig::where('config_key', 'app-hide')->update(['config_value' => $params['app_hide']]);
             } else if (!in_array($params['type'], ['shortcutMenu', 'navigationMenu', 'footerMenu'])) {
                 $data = [
                     'config_status' => $params['status'],

+ 24 - 0
app/model/Metadata.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace app\model;
+
+use DateTimeInterface;
+use support\Model;
+
+class Metadata extends Model
+{
+    protected $table = 'metadata';
+
+    protected $primaryKey = 'metadata_id';
+
+    protected $dateFormat = 'U';
+
+    const CREATED_AT = 'metadata_addtimes';
+
+    const UPDATED_AT = null;
+
+    protected function serializeDate(DateTimeInterface $date)
+    {
+        return $date->format('Y-m-d H:i:s');
+    }
+}

+ 9 - 0
route/admin.php

@@ -668,6 +668,15 @@ Route::group('/admin', function () {
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);
+        Route::group('/meta', function () {
+            Route::get('/list', [\app\admin\controller\device\MetadataController::class, 'select']);
+            Route::get('/select', [\app\admin\controller\device\MetadataController::class, 'selectList']);
+            Route::post('/add', [\app\admin\controller\device\MetadataController::class, 'insert']);
+            Route::post('/update', [\app\admin\controller\device\MetadataController::class, 'update']);
+            Route::delete('/delete', [\app\admin\controller\device\MetadataController::class, 'delete']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
     });
     /* 优惠券管理 */
     Route::group('/coupon', function () {