Ver código fonte

✅️ 修复商家审核通过创建管理员问题

罗永浩 3 meses atrás
pai
commit
f966a3f611

+ 2 - 2
addons/admin/src/config/setting.js

@@ -5,8 +5,8 @@ export default {
     version: '1.0',
     name: '后台管理系统',  // 项目名称
     loginName: '后台登录',  // 项目名称
-    baseURL: 'https://dshmp.derkj.com/',  // 本地接口地址
-    // baseURL: 'http://129.204.44.254:8001/',  // 本地接口地址
+    // baseURL: 'https://dshmp.derkj.com/',  // 本地接口地址
+    baseURL: 'http://129.204.44.254:8001/',  // 本地接口地址
     signKey: 'dshApp&688', // 签名密钥
     whiteList: ['/login', '/forget'],  // 路由白名单(不需要登录的)
     keepAliveList: [],  // 需要缓存的组件名称

+ 22 - 10
app/Services/Common/StoreService.php

@@ -18,6 +18,7 @@ use App\Models\MemberModel;
 use App\Services\BaseService;
 use App\Services\RedisService;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
 
 /**
  * 商家店铺管理-服务类
@@ -254,6 +255,7 @@ class StoreService extends BaseService
             return false;
         }
 
+
         // 审核通过
         if ($status == 1) {
             // 使用事务确保数据一致性
@@ -265,12 +267,15 @@ class StoreService extends BaseService
                 // 使用商家手机号作为管理账号用户名
                 $username = $this->generateUsername($info);
 
-                // 创建管理账户
-                $adminUserId = 0;
-                if ($info->user_id > 0) {
-                    // 如果商家已关联用户,更新用户信息
-                    $adminUserId = $info->user_id;
-                    UserModel::where('id', $info->user_id)->update([
+                // 检查是否已存在相同手机号的管理员账号
+                $existingUser = UserModel::where('mobile', $info->phone)
+                    ->where('mark', 1)
+                    ->first();
+
+                if ($existingUser) {
+                    // 如果存在相同手机号的账号,更新该账号
+                    $adminUserId = $existingUser->id;
+                    UserModel::where('id', $adminUserId)->update([
                         'username' => $username,
                         'password' => get_password($password . $username),
                         'realname' => $info->real_name,
@@ -284,6 +289,7 @@ class StoreService extends BaseService
                     $userData = [
                         'user_id' => $info->user_id, // 绑定商户用户ID(member表的ID)
                         'username' => $username,
+                        'nickname' => $username,
                         'password' => get_password($password . $username),
                         'realname' => $info->real_name,
                         'mobile' => $info->phone,
@@ -296,11 +302,11 @@ class StoreService extends BaseService
                     ];
 
                     $adminUserId = UserModel::insertGetId($userData);
-
-                    // 更新商家表的user_id字段
-                    $info->user_id = $adminUserId;
                 }
 
+                // 更新商家表的user_id字段
+                $info->user_id = $adminUserId;
+
                 // 删除已存在的用户角色关系
                 DB::table('user_role')->where('user_id', $adminUserId)->delete();
 
@@ -326,7 +332,13 @@ class StoreService extends BaseService
                 return true;
             } catch (\Exception $e) {
                 DB::rollBack();
-                $this->error = '审核失败:' . $e->getMessage();
+                Log::error('商家审核失败,创建管理员账号出错:' . $e->getMessage(), [
+                    'store_id' => $id,
+                    'store_name' => $info->name,
+                    'phone' => $info->phone,
+                    'exception' => $e->getTraceAsString()
+                ]);
+                $this->error = '审核失败,创建管理员账号失败:' . $e->getMessage();
                 return false;
             }
         }

+ 11 - 4
app/Services/Common/UploadService.php

@@ -31,7 +31,7 @@ class UploadService extends BaseService
      */
     public function __construct()
     {
-       // $this->model = new UploadModel();
+        // $this->model = new UploadModel();
     }
 
     public function save($file_path, $ext, $channel)
@@ -51,8 +51,15 @@ class UploadService extends BaseService
             'is_recycle'  => 0,
             'status'      => 1,
         ];
-        $error = '';
-        $rowId = $this->model->edit($data, $error, false);
-    }
 
+        // 如果 model 存在才保存到数据库
+        // if ($this->model) {
+        //     $error = '';
+        //     $rowId = $this->model->edit($data, $error, false);
+        //     return $rowId;
+        // }
+
+        // 如果没有 model,直接返回 true(文件已经保存到磁盘)
+        return true;
+    }
 }

+ 5 - 2
app/Services/Common/UserService.php

@@ -136,9 +136,12 @@ class UserService extends BaseService
                 ->where('mark', 1)
                 ->first();
 
-            // 如果商家已被关联,且不是当前用户
+            // 如果商家已被关联,且不是当前用户,先解除旧关联
             if ($existingStore && $existingStore->user_id != ($data['id'] ?? 0)) {
-                return message("该商家已被其他用户关联,一个商家只能关联一个账号", false);
+                // 解除旧用户的商家关联
+                \App\Models\StoreModel::where('id', $data['store_id'])
+                    ->where('mark', 1)
+                    ->update(['user_id' => 0]);
             }
         }