Browse Source

完善功能

gorden 10 months ago
parent
commit
1cef4d022d
2 changed files with 44 additions and 0 deletions
  1. 38 0
      app/admin/controller/customer/IndexController.php
  2. 6 0
      app/model/Customer.php

+ 38 - 0
app/admin/controller/customer/IndexController.php

@@ -23,6 +23,44 @@ class IndexController extends Curd
         $this->validateClass = new IndexValidate();
     }
 
+    protected function doSelect(array $where, string $field = null, string $order = 'desc')
+    {
+        $model = $this->model->with('user');
+        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;
+    }
+
     protected function afterQuery($items)
     {
         foreach ($items as &$item) {

+ 6 - 0
app/model/Customer.php

@@ -15,4 +15,10 @@ class Customer extends Model
     {
         return $date->format('Y-m-d H:i:s');
     }
+
+    public function user()
+    {
+        return $this->hasOne(SysUser::class, 'user_id', 'creator')
+            ->select('user_id', 'user_name');
+    }
 }