Jelajahi Sumber

[AI旅游] 用户详情

tangyuanwang 1 bulan lalu
induk
melakukan
0a911cd4b5

+ 1 - 1
app/Helpers/functions.php

@@ -209,7 +209,7 @@ function is_super($uid,$is_admin,$module='manager'){
     }else{
         switch ($module) {
             case 'manager':
-                $AdminUserModel      = new App\Models\Manager\Personnel\Employee();
+                $AdminUserModel      = new App\Models\Manager\Personnel\User();
                 break;
         }
         // 返回结果

+ 2 - 2
app/Http/Controllers/Api/Api.php

@@ -7,7 +7,7 @@ use App\Exceptions\Api\LoginException;
 use App\Exceptions\Api\ApiException;
 use App\Facades\Servers\Encrypts\AccessToken;
 use App\Http\Controllers\Controller;
-use App\Models\Api\Personnel\Employee as EmployeeModel;
+use App\Models\Api\Personnel\User as UserModel;
 use App\Http\Requests\Manager\Login as Request;
 
 /**
@@ -44,7 +44,7 @@ class Api extends Controller
         if (isset($userInfo['error']))  throw new LoginException("登录失效");
         if ($userInfo['expire'] < time()) throw new LoginException("账户过期");
         // 获取就得令牌
-        $oldToken                       = (new EmployeeModel())->getLogin($userInfo['uid'], 'api');
+        $oldToken                       = (new UserModel())->getLogin($userInfo['uid'], 'api');
         if ($oldToken != md5($this->token))  throw new LoginException("登录失效");
         // 追加入
         return $userInfo;

+ 39 - 0
app/Http/Controllers/Api/Personnel/User.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Api\Personnel;
+
+use App\Http\Controllers\Api\Api;
+use App\Http\Requests\Api\Personnel\User as Request;
+use App\Models\Api\Personnel\User as UserModel;
+
+/**
+ * 用户管理
+ * @author 唐远望
+ * @version 1.0
+ * @date 2026-04-02
+ */
+class User extends Api
+{
+
+
+
+    /**
+     * 个人信息详情
+     * @author    唐远望
+     * @version   1.0
+     * @date      2026-04-02
+     */
+    public function user_info(Request $request, UserModel $UserModel)
+    {
+        $request->scene('user_info')->validate();
+        $user_info = $this->checkLogin();
+        if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
+        // 接收参数
+        $map = ['id' => $user_info['uid']];
+        $field = ['id', 'user_code', 'name', 'mobile', 'email','insert_time', 'update_time', 'status'];
+        $data = $UserModel->where($map)->select($field)->first();
+        if (!$data)     return json_send(['code' => 'error', 'msg' => '记录不存在']);
+        // 加载模板
+        return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $data]);
+    }
+}

+ 19 - 130
app/Http/Controllers/Manager/Login.php

@@ -6,13 +6,9 @@ use App\Models\Manager\AdminUser;
 use App\Http\Requests\Manager\Login as Request;
 use App\Models\Manager\AuthRule;
 use App\Facades\Servers\Encrypts\AccessToken;
-use App\Models\Manager\Personnel\Employee as EmployeeModel;
+use App\Models\Manager\Personnel\User as UserModel;
 use App\Facades\Servers\Sms\VerifyCode as Sms;
-use App\Models\Manager\Personnel\EmployeeOpenid as EmployeeOpenidModel;
-use App\Servers\Wechat\WeChatWebApp;
-use App\Models\Manager\Personnel\RolesAuthRule as RolesAuthRuleModel;
 use Illuminate\Support\Facades\Cache;
-use Illuminate\Support\Facades\DB;
 
 /**
  * 管理后台登录控制器
@@ -33,7 +29,7 @@ class Login extends Manager
 	 * @param string 	password	登录密码
 	 * 
 	 * */
-	public function index(Request $Request, AdminUser $AdminUser, AuthRule $AuthRule, EmployeeModel $EmployeeModel, RolesAuthRuleModel $RolesAuthRuleModel)
+	public function index(Request $Request, AdminUser $AdminUser, UserModel $UserModel)
 	{
 		// 验证规则
 		$Request->scene('login')->validate();
@@ -61,7 +57,7 @@ class Login extends Manager
 			$accessToken['is_system_admin']			= 1;
 			// 获取权限列表
 		} else {
-			$admin    	= $EmployeeModel->where('employee_code', $username)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
+			$admin    	= $UserModel->where('User_code', $username)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
 			// 用户不存在
 			if (!$admin)	return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 			// 用户不存在
@@ -71,7 +67,7 @@ class Login extends Manager
 			// 比对密码
 			if (md5($password) != $admin['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 			// 登录
-			$accessToken 						= $EmployeeModel->Login($admin['uid'], $admin['company_id'], 'manager');
+			$accessToken 						= $UserModel->Login($admin['uid'], $admin['company_id'], 'manager');
 			// 比对密码
 			if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
 			// 获取权限列表
@@ -93,13 +89,13 @@ class Login extends Manager
 	 * @param string 	password	登录密码
 	 * 
 	 */
-	public function auth_rules(Request $Request, AuthRule $AuthRule, RolesAuthRuleModel $RolesAuthRuleModel)
+	public function auth_rules(Request $Request, AuthRule $AuthRule)
 	{
 		$access_token = $Request->input('access_token', '');
 		if (!isset($access_token)) return json_send(['code' => 'error', 'msg' => '缺少参数']);
 		$auth_rules = [];
 		if ($access_token['is_admin'] == 0) {
-			$auth_rules = $RolesAuthRuleModel->getAuthList($access_token['uid'], '0', 'manager');
+			$auth_rules = '';
 		} else {
 			$auth_rules = $AuthRule->getAuthList($access_token['uid'], '1', 'manager');
 		}
@@ -117,7 +113,7 @@ class Login extends Manager
 	 * @param string 	password	登录密码
 	 * 
 	 * */
-	public function out(Request $Request, AdminUser $AdminUser, EmployeeModel $EmployeeModel)
+	public function out(Request $Request, AdminUser $AdminUser, UserModel $UserModel)
 	{
 		$token  = $Request->input('access_token_manager', '');
 		// 解码
@@ -129,7 +125,7 @@ class Login extends Manager
 			// 退出登录
 			$AdminUser->LoginOut($uid, 'manager');
 		} else {
-			$EmployeeModel->LoginOut($uid, 'manager');
+			$UserModel->LoginOut($uid, 'manager');
 		}
 
 		// 表单令牌
@@ -146,7 +142,7 @@ class Login extends Manager
 	 * @param string 	password	登录密码
 	 * 
 	 */
-	public function mobile(Request $Request, AuthRule $AuthRule, EmployeeModel $EmployeeModel)
+	public function mobile(Request $Request, AuthRule $AuthRule, UserModel $UserModel)
 	{
 		// 验证规则
 		$Request->scene('mobile')->validate();
@@ -155,7 +151,7 @@ class Login extends Manager
 		// 接收数据
 		$password    = $Request->input('password', '');
 		// 查询用户
-		$admin    	= $EmployeeModel->where('mobile', $phone)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
+		$admin    	= $UserModel->where('mobile', $phone)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
 		// 用户不存在
 		if (!$admin)	return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 		// 用户不存在
@@ -165,7 +161,7 @@ class Login extends Manager
 		// 比对密码
 		if (md5($password) != $admin['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 		// 登录
-		$accessToken 						= $EmployeeModel->Login($admin['uid'], $admin['company_id'], 'manager');
+		$accessToken 						= $UserModel->Login($admin['uid'], $admin['company_id'], 'manager');
 		// 比对密码
 		if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
 		// 获取权限列表
@@ -183,7 +179,7 @@ class Login extends Manager
 	 * @param string 	phone		手机号码
 	 * 
 	 */
-	public function send_code(Request $Request, EmployeeModel $EmployeeModel)
+	public function send_code(Request $Request, UserModel $UserModel)
 	{
 		// 验证规则
 		$Request->scene('send_code')->validate();
@@ -195,7 +191,7 @@ class Login extends Manager
 		// 如果有数据,并且验证码创建的时间在一分钟之内
 		if ($session && time() - $session['create_time'] < 60) return json_send(['code' => 'error', 'msg' => '请稍后再试']);
 		// 查询用户
-		$admin		= $EmployeeModel->query()->where('mobile', $mobile)->first(['status']);
+		$admin		= $UserModel->query()->where('mobile', $mobile)->first(['status']);
 		if ($admin && $admin['status'])    return json_send(['code' => 'error', 'msg' => '用户已被停用']);
 		$code 		= strval(rand(100000, 999999));
 		$result    = Sms::sendCode($mobile, $code);
@@ -214,7 +210,7 @@ class Login extends Manager
 	 * @param string 	password	登录密码
 	 * 
 	 */
-	public function email(Request $Request, AuthRule $AuthRule, EmployeeModel $EmployeeModel)
+	public function email(Request $Request, UserModel $UserModel)
 	{
 		// 验证规则
 		$Request->scene('email')->validate();
@@ -223,7 +219,7 @@ class Login extends Manager
 		// 接收数据
 		$password    = $Request->input('password', '');
 		// 查询用户
-		$admin    	= $EmployeeModel->where('email', $email)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
+		$admin    	= $UserModel->where('email', $email)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
 		// 用户不存在
 		if (!$admin)	return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 		// 用户不存在
@@ -233,7 +229,7 @@ class Login extends Manager
 		// 比对密码
 		if (md5($password) != $admin['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
 		// 登录
-		$accessToken 						= $EmployeeModel->Login($admin['uid'], $admin['company_id'], 'manager');
+		$accessToken 						= $UserModel->Login($admin['uid'], $admin['company_id'], 'manager');
 		// 比对密码
 		if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
 		// 获取权限列表
@@ -252,7 +248,7 @@ class Login extends Manager
 	 * @param string 	code	验证码
 	 * 
 	 */
-	public function mobile_code(Request $Request, AuthRule $AuthRule, EmployeeModel $EmployeeModel)
+	public function mobile_code(Request $Request, UserModel $UserModel)
 	{
 		// 验证规则
 		$Request->scene('mobile_code')->validate();
@@ -265,7 +261,7 @@ class Login extends Manager
 		if (!$session)                     return json_send(['code' => 'error', 'msg' => '请先获取手机号验证码']);
 		if ($session['code'] != $code || $session['mobile'] != $phone) return json_send(['code' => 'error', 'msg' => '验证码错误']);
 		// 查询用户
-		$admin    	= $EmployeeModel->where('mobile', $phone)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
+		$admin    	= $UserModel->where('mobile', $phone)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
 		// 用户不存在
 		if (!$admin)	return json_send(['code' => 'error', 'msg' => '账号不存在']);
 		// 用户不存在
@@ -273,7 +269,7 @@ class Login extends Manager
 		// 转数组
 		$admin    	= $admin->toArray();
 		// 登录
-		$accessToken 						= $EmployeeModel->Login($admin['uid'], $admin['company_id'], 'manager');
+		$accessToken 						= $UserModel->Login($admin['uid'], $admin['company_id'], 'manager');
 		// 比对密码
 		if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
 		// 获取权限列表
@@ -282,111 +278,4 @@ class Login extends Manager
 		// 表单令牌
 		return    	json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
 	}
-
-
-	/**
-	 * 微信扫码登录			/manager/login/wechat
-	 * @author 唐远望
-	 * @version   1.0
-	 * @date      2026-01-19
-	 * @param string 	open_code		微信扫码登录的code
-	 * 
-	 */
-	public function wechat(Request $Request, AuthRule $AuthRule, EmployeeModel $EmployeeModel, EmployeeOpenidModel $EmployeeOpenidModel)
-	{
-		// 验证规则
-		$Request->scene('wechat')->validate();
-		// 接收数据
-		$open_code    = $Request->input('open_code', '');
-		$wechatApp = new WeChatWebApp();
-		$tokenData = $wechatApp->getAccessTokenByCode($open_code);
-		if (!$tokenData) return json_send(['code' => 'error', 'msg' => '获取微信用户信息失败']);
-		$user_open_data = $EmployeeOpenidModel->where(['openid' => $tokenData['openid']])->first();
-		if (!$user_open_data)   return json_send(['code' => 'error', 'msg' => '未绑定账号']);
-		// 查询用户
-		$admin    	= $EmployeeModel->where('id', $user_open_data->employee_id)->first(['company_id', 'id as uid', 'name as username', 'mobile as phone', 'status', 'password', 'insert_time', 'update_time']);
-		// 用户不存在
-		if (!$admin)	return json_send(['code' => 'error', 'msg' => '账号不存在']);
-		// 用户不存在
-		if ($admin['status']) 				return json_send(['code' => 'error', 'msg' => '该账号已停用']);
-		// 转数组
-		$admin    	= $admin->toArray();
-		// 登录
-		$accessToken 						= $EmployeeModel->Login($admin['uid'], $admin['company_id'], 'manager');
-		// 比对密码
-		if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
-		// 获取权限列表
-		$accessToken['username']			= $admin['username'];
-		$accessToken['is_system_admin']			= 0;
-		// 表单令牌
-		return    	json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
-	}
-
-	/**
-	 * 微信扫码授权绑定			/manager/login/wechat_bind
-	 * @author 唐远望
-	 * @version   1.0
-	 * @date      2026-01-19
-	 * @param string 	open_code		微信扫码登录的code
-	 * 
-	 */
-	public function wechat_bind(Request $Request, EmployeeModel $EmployeeModel, EmployeeOpenidModel $EmployeeOpenidModel)
-	{
-		// 验证规则
-		$Request->scene('wechat_bind')->validate();
-		$uid             = request('access_token.uid', 0);
-		$company_id = request('access_token.company_id', '0');
-		// 接收数据
-		$open_code    = $Request->input('open_code', '');
-		$wechatApp = new WeChatWebApp();
-		$tokenData = $wechatApp->getAccessTokenByCode($open_code);
-		if (!$tokenData) return json_send(['code' => 'error', 'msg' => '获取微信用户信息失败']);
-		// $user_open_data = $EmployeeOpenidModel->where(['openid' => $tokenData['openid']])->first();
-		// if ($user_open_data)   return json_send(['code' => 'error', 'msg' => '微信已绑定,无需重复绑定']);
-		//新增绑定记录
-		$user_info = $EmployeeModel->where(['id' => $uid])->first();
-		if (!$user_info) return json_send(['code' => 'error', 'msg' => '未找到用户信息']);
-		//查询openid是否绑定其它用户
-		$openid_user_info = $EmployeeOpenidModel->where(['openid' => $tokenData['openid']])->first();
-		if ($openid_user_info && $openid_user_info->employee_id != $uid) {
-			return json_send(['code' => 'error', 'msg' => '该微信已绑定其它账号']);
-		}
-		DB::beginTransaction();
-		try {
-			$user_info->band_wechat = 1; //绑定微信0=未绑定1=已绑定
-			$user_info->save();
-			//查询是否存在绑定记录
-			$band_wechat_data = $EmployeeOpenidModel->where(['employee_id' => $uid])->first();
-			if (!$band_wechat_data) {
-				//查询关注公众号记录
-				$unionid = $tokenData['unionid'] ?? '';
-				$official_user_info = $EmployeeOpenidModel->where(['unionid' => $unionid])->first();
-				if ($official_user_info) {
-					$official_user_info->company_id = $company_id;
-					$official_user_info->employee_id = $uid;
-					$official_user_info->openid = $tokenData['openid'];
-					$official_user_info->update_time = time();
-					$official_user_info->save();
-				} else {
-					$EmployeeOpenidModel->insertGetId([
-						'company_id' => $company_id,
-						'employee_id' => $uid,
-						'unionid' => $tokenData['unionid'] ?? '',
-						'openid' => $tokenData['openid'],
-						'insert_time' => time()
-					]);
-				}
-			} else {
-				$band_wechat_data->unionid = $tokenData['unionid'] ?? '';
-				$band_wechat_data->openid = $tokenData['openid'];
-				$band_wechat_data->update_time = time();
-				$band_wechat_data->save();
-			}
-			DB::commit();
-			return json_send(['code' => 'success', 'msg' => '绑定成功', 'data' => '']);
-		} catch (\Exception $e) {
-			DB::rollBack();
-			return json_send(['code' => 'error', 'msg' => '绑定失败', 'data' => $e->getMessage()]);
-		}
-	}
 }

+ 4 - 4
app/Http/Middleware/Manager/Login.php

@@ -64,10 +64,10 @@ class Login
             if ($userInfo['type'] != 'manager' || $userInfo['expire'] < time()) return json_send(['code' => 'no_login', 'msg' => '请您登录', 'data' => '登录失效']);
             // 获取用户信息
             if($userInfo['is_admin'] == 0){
-                $EmployeeModel = new \App\Models\Manager\Personnel\Employee();
-                $Employee = $EmployeeModel->where('id', $userInfo['uid'])->first();
-                if (!$Employee) return json_send(['code' => 'no_login', 'msg' => '记录不存在','data'=>'']);
-                if ($Employee->status == 1) return json_send(['code' => 'no_login', 'msg' => '账号已被禁用','data'=>'']);
+                $UserModel = new \App\Models\Manager\Personnel\User();
+                $User = $UserModel->where('id', $userInfo['uid'])->first();
+                if (!$User) return json_send(['code' => 'no_login', 'msg' => '记录不存在','data'=>'']);
+                if ($User->status == 1) return json_send(['code' => 'no_login', 'msg' => '账号已被禁用','data'=>'']);
             }
             // 是否是超管
             $userInfo['is_super']            = is_super($userInfo['uid'],$userInfo['is_admin'], 'manager') ? 1 : 0;

+ 1 - 1
app/Http/Requests/Api/Personnel/User.php

@@ -43,7 +43,7 @@ class User extends BaseRequest
         'edit'                  => ['id','name', 'mobile'],
         'set_status'              => ['id', 'status'],
         'delete'                  => ['id'],
-        'personal_info'           => [],
+        'user_info'           => [],
     ];
 
     /**

+ 354 - 0
app/Models/Manager/Personnel/User.php

@@ -0,0 +1,354 @@
+<?php
+
+namespace App\Models\Manager\Personnel;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Facades\DB;
+use App\Facades\Servers\Encrypts\AccessToken;
+
+/**
+ * 用户模型
+ * @author 唐远望
+ * @version 1.0
+ * @date 2025-12-04
+ */
+class User extends Model
+{
+    use HasFactory;
+    // 与模型关联的表名
+    protected $table = 'personnel_User';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+
+    /**
+     * 添加
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     */
+    public function addUser_content($data)
+    {
+        $insert_data = [
+            'name' => $data['name'],
+            'mobile'    => $data['mobile'],
+            'email' => $data['email'],
+            'password'  => md5($data['password']),
+            'role_id'     => $data['role_id'],
+            'department_id' => $data['department_id'],
+            'open_notice' => $data['open_notice'],
+            'duty_type' => isset($data['duty_type']) ? $data['duty_type'] : '',
+            'company_id' => $data['company_id'],
+            'insert_time' => time(),
+        ];
+        $User_id = $this->insertGetId($insert_data);
+        if ($User_id) {
+            $this->where('id', $User_id)->update(['User_code' => $this->User_id_rule($data['company_id'], $User_id)]);
+        }
+        return $User_id;
+    }
+
+
+
+
+    /**
+     * id转编码
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param  int  $id 编码
+     * 
+     */
+    public function User_idToCode($id)
+    {
+        return 'RH' . str_pad($id, 9, '0', STR_PAD_LEFT);
+    }
+
+
+     /**
+     * 用户ID生成规则
+     * @author 唐远望
+     * @version 1.0
+     * @date 2026-03-31
+     * @param  int  $company_id 公司ID
+     * @param  int  $id 用户ID
+     * 
+     */
+    public function User_id_rule($company_id,$id)
+    {
+        $new_id =rand(100000000, 999999999);
+        //查询最新一条记录用户ID
+        $latest_User = $this->where('company_id', $company_id)->where([['User_code','!=','']])->orderBy('id', 'desc')->first();
+        if (!$latest_User) {
+            $new_id = $company_id.str_pad(1, 9, '0', STR_PAD_LEFT);
+        } else {
+            //如果包含RH字符,则去除后字符串转数字+1,否则直接字符串数据+1
+            if (strpos($latest_User->User_code, 'RH') === 0) {
+                $latest_id = intval(str_ireplace('RH', '', $latest_User->User_code));
+                $new_id = $company_id.$latest_id + 1;
+            } else if (trim($latest_User->User_code) != '') {
+                $new_id = intval($latest_User->User_code) + 1;
+            } else {
+                $new_id = $company_id.str_pad(1, 9, '0', STR_PAD_LEFT);
+            }
+        }
+        return $new_id;
+    }
+
+
+    /**
+     * 编码转id
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param  string $code 编码
+     * 
+     */
+    public function User_codeToId($code)
+    {
+        return intval(str_ireplace('RH', '', $code));
+    }
+
+
+    /**
+     * 写入数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param $data
+     * @return bool
+     */
+    public function addUser($data)
+    {
+        DB::beginTransaction();
+        try {
+            $insert_data = [
+                'name' => $data['name'],
+                'mobile'    => $data['mobile'],
+                'email' => $data['email'],
+                'password'  => md5($data['password']),
+                'role_id'     => $data['role_id'],
+                'department_ids' => isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : '',
+                'open_notice' => $data['open_notice'],
+                'duty_type' => isset($data['duty_type']) ? $data['duty_type'] : '',
+                'company_id' => $data['company_id'],
+                'insert_time' => time(),
+            ];
+            $User_id = $this->insertGetId($insert_data);
+            if ($User_id) {
+                $this->where('id', $User_id)->update(['User_code' => $this->User_id_rule($data['company_id'],$User_id)]);
+            }
+            DB::commit();
+            return true;
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return false;
+        }
+    }
+
+
+    /**
+     * 编辑内容
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param $data
+     * @return bool
+     */
+    public function editUser_content($where, $data)
+    {
+        $User = $this->where($where)->first();
+        if (!$User) {
+            return false;
+        }
+        $User->name = $data['name'];
+        $User->mobile = $data['mobile'];
+        $User->email = $data['email'];
+        if (isset($data['password']) && $data['password'] != '') $User->password = md5($data['password']);
+        $User->role_id = $data['role_id'];
+        $User->department_ids = isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : '';
+        $User->open_notice = $data['open_notice'];
+        $User->duty_type = isset($data['duty_type']) ? $data['duty_type'] : '';
+        $User->company_id = $data['company_id'];
+        $User->update_time = time();
+        $User->save();
+        return true;
+    }
+
+
+
+    /**
+     * 更新数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param $data
+     * @return bool
+     */
+    public function updateUser($User, $data)
+    {
+        DB::beginTransaction();
+        try {
+            $User->name = $data['name'];
+            $User->mobile = $data['mobile'];
+            $User->email = $data['email'];
+            if (isset($data['password']) && $data['password'] != '') $User->password = md5($data['password']);
+            $User->role_id = $data['role_id'];
+            $User->department_ids = isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : '';
+            $User->open_notice = $data['open_notice'];
+            $User->duty_type = isset($data['duty_type']) ? $data['duty_type'] : '';
+            $User->company_id = $data['company_id'];
+            $User->update_time = time();
+            $User->save();
+
+            DB::commit();
+            return true;
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return false;
+        }
+    }
+
+    /**
+     * 修改状态
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param $id
+     * @param $status
+     * @return bool
+     */
+    public function changeStatus($where, $status)
+    {
+        $User = $this->where($where)->first();
+        if (!$User) {
+            return false;
+        }
+        $User->status = $status;
+        $User->update_time = time();
+        $User->save();
+        return true;
+    }
+
+    /**
+     * 删除数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-04
+     * @param $id
+     * @return bool
+     */
+    public function deleteUser($where)
+    {
+        $User = $this->where($where)->first();
+        if (!$User) {
+            return false;
+        }
+        $User->delete();
+        return true;
+    }
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function edit($id,$data)
+    {
+        // 更新时间
+        $data['update_time']                = time();
+        // 写入数据表
+        $result						        = $this->query()->where(['id'=>$id])->update($data);
+        // 如果操作失败
+        if( !$result )                      return 0;
+        // 更新缓存
+        $this->getList(true);
+        // 返回结果
+        return                              $id;
+    }
+
+    /**
+     * 获取列表
+     * @param   Bool    $force  是否强制更新
+     * 
+     */
+    public function getList($force = false)
+    {
+        // 结果数据
+        $list                  = $force ? [] : cache('manager:admin:User:list');
+        // 不存在数据
+        if ( !$list ) {
+            // 从数据库获取数据
+            $data              = $this->query()->get(['id','name','mobile','status','password','status','insert_time','update_time'])->toArray();
+            // 循环处理数据
+            $list              = [];
+            // 进行更新
+            foreach ($data as $value) {
+                // 重组数据
+                $list[$value['id']] = $value;
+            }
+            // 存起来
+            cache(['manager:admin:User:list'=>$list]);
+        }
+        // 返回结果
+        return                  $list;
+    }
+
+    /**
+     * 获取配置平台对应的应用数据
+     * 
+     * @param   int      用户ID
+     * @param   string     指定字段
+     * 
+     */
+    public function getOne($id,$field='')
+    {
+        // 获取列表数据
+        $list                   = $this->getList();
+        // 获取数据
+        $one                    = isset($list[$id]) ? $list[$id] : [];
+        // 返回值
+        return                  empty($field) ? $one : ( isset($one[$field]) ? $one[$field] : null);
+    }
+
+    /**
+     * 登录
+     * 
+     * @param   int      用户ID
+     * 
+     */
+    public function Login($uid,$company_id=0, $module = 'manager')
+    {
+        // 组合数据
+        $jwtData                            = ['company_id'=>$company_id, 'uid' => $uid, 'is_admin' => '0', 'type' => $module, 'expire' => time() + 3600 * 8];
+        // 登录成功
+        $token                              = AccessToken::encode($jwtData);
+        // 如果异常的话
+        if (isset($token['error']))        return $token;
+        // 登录成功
+        cache([$module . ':User:access_token:' . $uid => md5($token)], 3600 * 8);
+        // 返回结果
+        return                              ['access_token_' . $module => $token, 'expire' => 3600 * 8];
+    }
+
+    /**
+     * 退出登录
+     * 
+     * @param   int      用户ID
+     * 
+     */
+    public function LoginOut($uid, $module = 'manager')
+    {
+        // 删除缓存
+        cache([$module . ':User:access_token:' . $uid => null]);
+        // 返回结果
+        return                              true;
+    }
+}

+ 3 - 1
routes/api.php

@@ -31,4 +31,6 @@ Route::any('login/wechat_phone', [App\Http\Controllers\Api\Login::class, 'wechat
 //发送邮箱验证码
 Route::any('login/send_email_code', [App\Http\Controllers\Api\Login::class,'send_email_code']);
 //邮箱号码注册
-Route::any('login/email_register', [App\Http\Controllers\Api\Login::class, 'email_register']);
+Route::any('login/email_register', [App\Http\Controllers\Api\Login::class, 'email_register']);
+// 个人信息详情
+Route::any('personnel/user_info', [App\Http\Controllers\Api\Personnel\User::class, 'user_info']);