Browse Source

完善功能

gorden 10 months ago
parent
commit
05bd5b25af

+ 42 - 0
app/admin/controller/asset/HouseTypeController.php

@@ -26,6 +26,47 @@ class HouseTypeController extends Curd
         $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->with([
+            'category' => function ($query) {
+                $query->select('category_id', 'category_name');
+            }
+        ]);
+        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 afterQuery($items)
     {
@@ -35,6 +76,7 @@ class HouseTypeController extends Curd
                 $assetHouseJson['floor_plan'] = getenv('STORAGE_DOMAIN') . $assetHouseJson['floor_plan'];
                 $item->asset_house_json = $assetHouseJson;
             }
+
             $item->asset_json = json_decode($item->asset_json, true);
         }
 

+ 84 - 0
app/admin/controller/member/WellnessRecordController.php

@@ -172,6 +172,90 @@ class WellnessRecordController extends Curd
         return json(['code' => 200, 'msg' => 'success', 'data' => $data]);
     }
 
+    public function checkup($memberId)
+    {
+        $query = $this->model->where('wellness_record_category', '体检')
+            ->where('join_wellness_record_member_id', $memberId)
+            ->orderBy('wellness_record_addtimes', 'desc');
+        $paginator = $query->paginate(20);
+        $total = $paginator->total();
+        $items = $paginator->items();
+        $itemsNew = [];
+        foreach ($items as $item) {
+            $itemNew = [
+                'wellness_record_id' => $item->wellness_record_id,
+                'join_wellness_record_member_id' => $item->join_wellness_record_member_id,
+                'wellness_record_status' => $item->wellness_record_status,
+                'wellness_record_name' => $item->wellness_record_name,
+                'wellness_record_datetime' => $item->wellness_record_datetime,
+                'wellness_record_json' => $item->wellness_record_json,
+                'wellness_record_content' => $item->wellness_record_content,
+                'wellness_record_remark' => $item->wellness_record_remark,
+                'wellness_record_extend_json' => $item->wellness_record_extend_json,
+                'wellness_record_addtimes' => $item->wellness_record_addtimes,
+            ];
+            if (!empty($item->wellness_record_file_json)) {
+                $item->wellness_record_file_json = json_decode($item->wellness_record_file_json, true);
+                foreach ($item->wellness_record_file_json as $value) {
+                    $itemNew['wellness_record_file_json'][] = [
+                        'url' => isset($value['url']) ? getenv('STORAGE_DOMAIN') . $value['url'] : '',
+                        'name' => isset($value['name']) ? $value['name'] : ''
+                    ];
+                }
+            }
+
+            $itemsNew[] = $itemNew;
+        }
+
+        $data = [
+            'total' => $total,
+            'rows' => $itemsNew
+        ];
+        return json(['code' => 200, 'msg' => 'success', 'data' => $data]);
+    }
+
+    public function visit($memberId)
+    {
+        $query = $this->model->where('wellness_record_category', '来访')
+            ->where('join_wellness_record_member_id', $memberId)
+            ->orderBy('wellness_record_addtimes', 'desc');
+        $paginator = $query->paginate(20);
+        $total = $paginator->total();
+        $items = $paginator->items();
+        $itemsNew = [];
+        foreach ($items as $item) {
+            $itemNew = [
+                'wellness_record_id' => $item->wellness_record_id,
+                'join_wellness_record_member_id' => $item->join_wellness_record_member_id,
+                'wellness_record_status' => $item->wellness_record_status,
+                'wellness_record_name' => $item->wellness_record_name,
+                'wellness_record_datetime' => $item->wellness_record_datetime,
+                'wellness_record_json' => $item->wellness_record_json,
+                'wellness_record_content' => $item->wellness_record_content,
+                'wellness_record_remark' => $item->wellness_record_remark,
+                'wellness_record_extend_json' => $item->wellness_record_extend_json,
+                'wellness_record_addtimes' => $item->wellness_record_addtimes,
+            ];
+            if (!empty($item->wellness_record_file_json)) {
+                $item->wellness_record_file_json = json_decode($item->wellness_record_file_json, true);
+                foreach ($item->wellness_record_file_json as $value) {
+                    $itemNew['wellness_record_file_json'][] = [
+                        'url' => isset($value['url']) ? getenv('STORAGE_DOMAIN') . $value['url'] : '',
+                        'name' => isset($value['name']) ? $value['name'] : ''
+                    ];
+                }
+            }
+
+            $itemsNew[] = $itemNew;
+        }
+
+        $data = [
+            'total' => $total,
+            'rows' => $itemsNew
+        ];
+        return json(['code' => 200, 'msg' => 'success', 'data' => $data]);
+    }
+
     /**
      * @Desc 查询列表
      * @Author Gorden

+ 4 - 2
app/admin/controller/order/WholeController.php

@@ -67,7 +67,7 @@ class WholeController extends Curd
             },
             'goods' => function ($query) {
                 $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price');
-            },
+            }
         ])->where('join_sheet_order_id', $orderId)
             ->get()
             ->toArray();
@@ -76,9 +76,11 @@ class WholeController extends Curd
         }
 
         $order = Order::where('order_id', $orderId)->first();
+        $express = OrderExpress::where('join_express_order_id',$orderId)->first();
         $data = [
             'order' => $order,
-            'sheet' => $orderSheet
+            'sheet' => $orderSheet,
+            'express' => $express
         ];
 
         return json_success('', $data);

+ 38 - 0
app/admin/controller/sys_manage/ArticleController.php

@@ -40,6 +40,44 @@ class ArticleController extends Curd
         return $this->doFormat($query, $format, $limit);
     }
 
+    protected function doSelect(array $where, string $field = null, string $order = 'desc')
+    {
+        $model = $this->model->with('category');
+        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;
+    }
+
     /**
      * @Desc
      * @Author Gorden

+ 38 - 0
app/admin/controller/sys_manage/NewsController.php

@@ -40,6 +40,44 @@ class NewsController extends Curd
         return $this->doFormat($query, $format, $limit);
     }
 
+    protected function doSelect(array $where, string $field = null, string $order = 'desc')
+    {
+        $model = $this->model->with('category');
+        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;
+    }
+
     /**
      * @Desc
      * @Author Gorden

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

@@ -29,8 +29,11 @@ class GoodsService
             },
             'running' => function ($query) {
                 $query->select('join_running_goods_id', 'goods_running_storage');
+            },
+            'supplier' => function ($query) {
+                $query->select('supplier_id','supplier_name');
             }
-        ])->select('goods_id', 'join_goods_category_id', 'goods_status', 'goods_sales_price', 'goods_category', 'goods_name', 'goods_title', 'goods_cover', 'goods_sort', 'goods_addtimes')
+        ])->select('goods_id', 'join_goods_category_id','join_goods_supplier_id', 'goods_status', 'goods_sales_price', 'goods_category', 'goods_name', 'goods_title', 'goods_cover', 'goods_sort', 'goods_addtimes')
             ->when($goodsName != '', function ($query) use ($goodsName) {
                 $query->where(function ($q) use ($goodsName) {
                     $q->where('goods_name', 'like', '%' . $goodsName . '%')
@@ -129,9 +132,9 @@ class GoodsService
                     }
                     $storage = json_decode($sku['goods_sku_storage_json'], true);
                     $priceStorage = [
-                        'sku' => rtrim($skuSpecs, ','),
-                        'stock' => $storage['storage'],
-                        'price' => $sku['goods_sku_sales_price'],
+                        'sku' => rtrim($skuSpecs, ',') ?? '',
+                        'stock' => $storage['storage'] ?? '',
+                        'price' => $sku['goods_sku_sales_price'] ?? '',
                     ];
 
                     $submitList[] = array_merge($skuNameValue, $priceStorage);

+ 5 - 0
app/model/Asset.php

@@ -23,4 +23,9 @@ class Asset extends Model
     {
         return $date->format('Y-m-d H:i:s');
     }
+
+    public function category()
+    {
+        return $this->hasOne(SysCategory::class, 'category_id', 'join_asset_category_id');
+    }
 }

+ 5 - 0
app/model/Content.php

@@ -21,4 +21,9 @@ class Content extends Model
     {
         return $date->format('Y-m-d H:i:s');
     }
+
+    public function category(){
+        return $this->hasOne(SysCategory::class,'category_id','join_content_category_id')
+            ->select('category_id','category_name');
+    }
 }

+ 5 - 0
app/model/Goods.php

@@ -50,4 +50,9 @@ class Goods extends Model
     {
         return $this->hasOne(GoodsRunning::class, 'join_running_goods_id', 'goods_id');
     }
+
+    public function supplier()
+    {
+        return $this->hasOne(Supplier::class,'supplier_id','join_goods_supplier_id');
+    }
 }

+ 12 - 0
app/model/OrderSheet.php

@@ -57,4 +57,16 @@ class OrderSheet extends Model
     {
         return $this->hasOne(Order::class, 'order_id', 'join_sheet_order_id');
     }
+
+    /**
+     * @Desc 发货信息
+     * @Author Gorden
+     * @Date 2024/4/23 15:02
+     *
+     * @return \Illuminate\Database\Eloquent\Relations\HasOne
+     */
+    public function express()
+    {
+        return $this->hasOne(OrderExpress::class, 'join_express_order_id', 'join_sheet_order_id');
+    }
 }

+ 2 - 0
route/admin.php

@@ -504,6 +504,8 @@ Route::group('/admin', function () {
             Route::get('/my/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'my']);
             Route::get('/advice/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'advice']);
             Route::get('/archives/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'archives']);
+            Route::get('/checkup/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'checkup']);
+            Route::get('/visit/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'visit']);
             Route::get('/list', [\app\admin\controller\member\WellnessRecordController::class, 'select']);
             Route::post('/add', [\app\admin\controller\member\WellnessRecordController::class, 'insert']);
             Route::post('/update', [\app\admin\controller\member\WellnessRecordController::class, 'update']);