Przeglądaj źródła

表单新增填写字段

liugc 1 rok temu
rodzic
commit
bb773b2843

+ 6 - 4
app/adminapi/logic/master_worker_register/MasterWorkerRegisterLogic.php

@@ -145,14 +145,16 @@ class MasterWorkerRegisterLogic extends BaseLogic
                 'nickname' => '用户' . $userSn,
                 'account' => $params['mobile'],
                 'mobile' => $params['mobile'],
+                'real_name' => $params['real_name']??'',
                 'password' => $password,
                 'channel' => 1,
                 'lon' => $params['lon']??0,
                 'lat' => $params['lat']??0,
-                'province' => $params['province'],
-                'city' => $params['city'],
-                'area_name' => $params['area_name'],
+                'province' => $params['province']??0,
+                'city' => $params['city']??0,
+                'area_name' => $params['area_name']??'',
                 'tenant_id' => $params['tenant_id']??0,
+                'category_ids' => $params['category_ids']??'',
             ]);
 
             MasterWorkerRegister::create([
@@ -163,7 +165,7 @@ class MasterWorkerRegisterLogic extends BaseLogic
                 'city' => $params['city']??0,
                 'area_name' => $params['area_name']??'',
                 'vehicle_type' => $params['vehicle_type']??0,
-                'name' => $params['real_name'],
+                'name' => $params['real_name']??'',
                 'age' => $params['age']??0,
                 'sex' => $params['sex']??0,
                 'status' => 1,

+ 38 - 1
app/common.php

@@ -1,5 +1,6 @@
 <?php
 // 应用公共文件
+use app\common\model\goods_category\GoodsCategory;
 use app\common\model\setting\PostageRegion;
 use app\common\service\FileService;
 use think\helper\Str;
@@ -479,4 +480,40 @@ function isPointInPolygon($point, $polygon) {
         $j = $i;
     }
     return $inside;
-}
+}
+
+/**
+ * 获取自己和上级id
+ * @param $point
+ * @param $polygon
+ * @return bool
+ */
+function getSuperiorId($all_category,$id,&$all_category_ids)
+{
+    $all_category_ids[] = $id;
+    $tmp_pid = $all_category[$id];
+    if($tmp_pid > 0) {
+        getSuperiorId($all_category,$tmp_pid,$all_category_ids);
+    }
+    return $all_category_ids;
+}
+
+/**
+ * 获取子分类上级返回树
+ * @param $category_ids array 分类id数组
+ * @return array 分类树结构
+ */
+function getSuperiorCategoryTree($category_ids)
+{
+    $all_category = GoodsCategory::where('status', 1)->column('pid', 'id');
+    $all_category_ids = [];
+    foreach ($category_ids as $v) {
+        getSuperiorId($all_category,$v,$all_category_ids);
+    }
+    $tree_data = GoodsCategory::field('id,pid,name')
+        ->where('status', 1)
+        ->whereIn('id', array_unique($all_category_ids))
+        ->select()
+        ->toArray();
+    return linear_to_tree($tree_data, 'children');
+}

+ 16 - 1
app/workerapi/logic/MasterWorkerTeamLogic.php

@@ -5,6 +5,7 @@ use app\common\enum\worker\WorkerAccountLogEnum;
 use app\common\enum\YesNoEnum;
 use app\common\logic\BaseLogic;
 use app\common\model\bank_account\BankAccount;
+use app\common\model\goods_category\GoodsCategory;
 use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerAccountLog;
 use app\common\model\master_worker\MasterWorkerAgree;
@@ -33,6 +34,14 @@ class MasterWorkerTeamLogic extends  BaseLogic
             }
             $team = $team->toArray();
             $team['count_num'] = MasterWorker::where('team_id',$team['id'])->where('team_role',2)->count();
+            // 团队负责人分类 ID 59,54,55,56,57,58
+            $category_ids = MasterWorker::where('id',$team['master_worker_id'])->value('category_ids');
+            if(!empty($category_ids)){
+                $category_ids = array_map('intval', explode(',',$category_ids));
+                $team['tree_data'] = getSuperiorCategoryTree($category_ids);
+            }else{
+                $team['tree_data'] = [];
+            }
             return $team;
         } catch (\Exception $e) {
             self::setError($e->getMessage());
@@ -51,12 +60,18 @@ class MasterWorkerTeamLogic extends  BaseLogic
             if (!$masterWorker->isEmpty()) {
                 throw new \Exception('该手机号已占用');
             }
+
+            if(isset($params['category_ids']) && !empty($params['category_ids']) && is_array($params['category_ids'])){
+                $params['category_ids'] = implode(',',$params['category_ids']);
+            }
             // 新增工程师 - 所属团队、租户
             $mwId = MasterWorkerRegisterLogic::createMasterWorker([
                 'mobile' => $params['mobile'],
+                'real_name' => $params['real_name'],
                 'lon' => isset($params['lon'])?$params['lon']:0,
                 'lat' => isset($params['lat'])?$params['lat']:0,
-                'tenant_id'=>$team->tenant_id
+                'tenant_id'=>$team->tenant_id,
+                'category_ids' => $params['category_ids']??'',
             ]);
             MasterWorker::where('id',$mwId)->update(['team_id'=>$team->id,'team_role'=>2]);
             return true;