Przeglądaj źródła

增加修改用户信息接口

林海涛 1 rok temu
rodzic
commit
369d3191ba

+ 11 - 0
app/workerapi/controller/MasterWorkerController.php

@@ -126,4 +126,15 @@ class MasterWorkerController extends BaseApiController
         $result = DictData::where(['type_value' => 'customer_support'])->column('value', 'name');
         return $this->data($result);
     }
+
+    public function setInfo()
+    {
+        $params = (new MasterWokerValidate())->post()->goCheck('setInfo');
+
+        $result = MasterWorkerLogic::setInfo($this->userId, $params);
+        if (false === $result) {
+            return $this->fail(MasterWorkerLogic::getError());
+        }
+        return $this->success('操作成功', [], 1, 1);
+    }
 }

+ 5 - 0
app/workerapi/logic/MasterWorkerInfoLogic.php

@@ -27,6 +27,11 @@ class MasterWorkerInfoLogic extends BaseLogic
             $userInfo->id_card_opposite_img = $params['id_card_opposite_img'];
             $userInfo->mobile = $params['mobile'];
             $userInfo->address = $params['address'];
+            $masterWorkerInfo = MasterWorkerInfo::findOrEmpty($userId);
+            if (!$masterWorkerInfo->isEmpty()) {
+                $masterWorkerInfo->real_name =  $userInfo->real_name;
+                $masterWorkerInfo->save();
+            }
             $userInfo->save();
             return true;
         } catch(\Exception $e){

+ 17 - 0
app/workerapi/logic/MasterWorkerLogic.php

@@ -6,6 +6,7 @@ use app\common\logic\BaseLogic;
 use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerAccountLog;
 use app\common\model\works\ServiceWork;
+use app\common\service\FileService;
 use think\Exception;
 use think\facade\Config;
 
@@ -127,4 +128,20 @@ class MasterWorkerLogic extends  BaseLogic
         $worker['fail_work'] = ServiceWork::where(['master_worker_id'=>$worker['id'],'service_status'=>4])->whereTime('create_time', 'month')->count();
         return $worker;
     }
+
+    public static function setInfo(int $userId, array $params)
+    {
+        try {
+            if ($params['field'] == "avatar" || $params['field'] == "real_avatar") {
+                $params['value'] = FileService::setFileUrl($params['value']);
+            }
+            return MasterWorker::update([
+                    'id' => $userId,
+                    $params['field'] => $params['value']]
+            );
+        } catch (\Exception $e) {
+            self::$error = $e->getMessage();
+            return false;
+        }
+    }
 }

+ 20 - 1
app/workerapi/validate/MasterWokerValidate.php

@@ -16,6 +16,8 @@ class MasterWokerValidate  extends BaseValidate
         'code' => 'require|checkCode',
         'password' => 'require|length:6,20|alphaNum',
         'password_confirm' => 'require|confirm',
+        'field' => 'require|checkField',
+        'value' => 'require',
     ];
 
 
@@ -27,8 +29,20 @@ class MasterWokerValidate  extends BaseValidate
         'password.length' => '密码须在6-25位之间',
         'password.alphaNum' => '密码须为字母数字组合',
         'password_confirm.require' => '请确认密码',
-        'password_confirm.confirm' => '两次输入的密码不一致'
+        'password_confirm.confirm' => '两次输入的密码不一致',
+        'field.require' => '参数缺失',
+        'value.require' => '值不存在',
     ];
+    protected function checkField($value, $rule, $data)
+    {
+        $allowField = [
+            'nickname', 'sex', 'real_avatar','avatar', 'real_name',
+        ];
+        if (!in_array($value, $allowField)) {
+            return '参数错误';
+        }
+        return true;
+    }
 
     public function checkCode($code, $rule, $data)
     {
@@ -49,4 +63,9 @@ class MasterWokerValidate  extends BaseValidate
     {
         return $this->only(['password', 'password_confirm']);
     }
+
+    public function sceneSetInfo()
+    {
+        return $this->only(['field', 'value']);
+    }
 }