cqpCow преди 2 години
родител
ревизия
fd901369e1
променени са 1 файла, в които са добавени 17 реда и са изтрити 2 реда
  1. 17 2
      app/Service/AreaService.php

+ 17 - 2
app/Service/AreaService.php

@@ -32,6 +32,7 @@ class AreaService extends Service
         $model->title = $data['title'];
         $model->code = $data['code'];
         $model->type = $data['type'];
+        $model->parent_id = $data['parent_id'] ?? 0;
         $model->save();
 
         return [true,'保存成功!'];
@@ -40,6 +41,9 @@ class AreaService extends Service
     public function del($data){
         if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
 
+        $bool = Area::where('del_time',0)->whereIn('parent_id',$data['id'])->exists();
+        if($bool) return [false,'区域下存在子区域'];
+
         $bool = Screen::where('del_time',0)->whereIn('area_id',$data['id'])->exists();
         if($bool) return [false,'区域已经绑定仓'];
 
@@ -52,13 +56,17 @@ class AreaService extends Service
 
     public function AreaList($data){
         $model = Area::where('del_time',0)
-            ->select('title','id','code','type')
+            ->select('title','id','code','type','parent_id')
             ->orderby('id', 'desc');
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
         if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
         if(! empty($data['type'])) $model->where('type', $data['type']);
 
-        $list = $this->limit($model,'',$data);
+        $list = $model->get()->toArray();
+        if(! empty($list)) {
+            $list = $this->makeTree(0,$list);
+            $list = $this->set_sort_circle($list);
+        }
 
         return [true,$list];
     }
@@ -69,6 +77,13 @@ class AreaService extends Service
         if(empty($data['type'])) return [false,'区域类型不能为空'];
 
         if($is_check){
+            if(! empty($data['parent_id'])){
+                $bool = Screen::where('del_time',0)
+                    ->where('area_id',$data['parent_id'])
+                    ->exists();
+                if($bool) return [false,'该区域已绑定仓,操作失败!'];
+            }
+
             $bool = Area::whereRaw("(binary code = '{$data['code']}' OR title = '{$data['title']}')")
                 ->where('type',$data['type'])
                 ->where('del_time',0)