Bladeren bron

基础类型

cqpCow 1 jaar geleden
bovenliggende
commit
fbce7225e7
2 gewijzigde bestanden met toevoegingen van 30 en 8 verwijderingen
  1. 28 6
      app/Service/BasicTypeService.php
  2. 2 2
      app/Service/EmployeeService.php

+ 28 - 6
app/Service/BasicTypeService.php

@@ -50,10 +50,28 @@ class BasicTypeService extends Service
     }
 
     public function basicTypeRule($data,$is_check = true){
-        if($this->isEmpty($data,'type')) return [false,'基础类型不能为空'];
-        if(! isset(BasicType::$type[$data['type']])) return [false,'基础类型不存在'];
         if($this->isEmpty($data,'data')) return [false,'数据不能为空!'];
 
+        $type = array_column($data['data'],'type');
+        $type = array_map(function($val) {
+            return $val !== null ? $val : 0;
+        }, $type);
+        foreach ($type as $value){
+            if(empty($value)) return [false,'类型不能为空!'];
+            if(! isset(BasicType::$type[$value])) return [false,'类型不存在!'];
+        }
+
+        $map = [];
+        foreach ($data['data'] as $value){
+            if(! isset($map[$value['title']])){
+                $map[$value['title']][] = $value['type'];
+            }else{
+                if(! in_array($value['type'],$map[$value['title']])){
+                    $map[$value['title']][] = $value['type'];
+                }
+            }
+        }
+
         $title = array_column($data['data'],'title');
         $title = array_map(function($val) {
             return $val !== null ? $val : 0;
@@ -61,22 +79,22 @@ class BasicTypeService extends Service
         $title_count = array_count_values($title);
         foreach ($title as $value){
             if(empty($value)) return [false,'名称不能为空!'];
-            if($title_count[$value] > 1) return [false,'名称不能重复'];
+            if($title_count[$value] > 1 && count($map[$value]) != $title_count[$value]) return [false,'同一归属类别下,名称不能重复'];
         }
 
         foreach ($data['data'] as $key => $value){
-            $data['data'][$key]['type'] = $data['type'];
+            $data['data'][$key]['type'] = $value['type'];
             $data['data'][$key]['upd_time'] = time();
             if($is_check){
                 $bool = BasicType::where('title',$value['title'])
-                    ->where('type',$data['type'])
+                    ->where('type',$value['type'])
                     ->where('del_time',0)
                     ->exists();
                 $data['data'][$key]['crt_time'] = time();
             }else{
                 if($this->isEmpty($data,'id')) return [false,'id不能为空!'];
                 $bool = BasicType::where('title',$value['title'])
-                    ->where('type',$data['type'])
+                    ->where('type',$value['type'])
                     ->where('id','<>',$data['id'])
                     ->where('del_time',0)
                     ->exists();
@@ -90,6 +108,10 @@ class BasicTypeService extends Service
     public function fillData($data){
         if(empty($data['data'])) return $data;
 
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['type_name'] = BasicType::$type[$value['type']] ?? '';
+        }
+
         return $data;
     }
 }

+ 2 - 2
app/Service/EmployeeService.php

@@ -142,9 +142,9 @@ class EmployeeService extends Service
     }
 
     public function employeeDel($data){
-        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
+        if($this->isEmpty($data,'id')) return [false,'请选择删除的数据!'];
 
-        Employee::where('id',$data['id'])->update([
+        Employee::whereIn('id',$data['id'])->update([
             'del_time'=>time()
         ]);