修改用户角色,添加管理员相关逻辑
Some checks failed
构建并部署 Spring Boot 应用 / build-and-deploy (push) Has been cancelled

This commit is contained in:
2025-10-17 02:15:49 +08:00
parent c83db8d927
commit 1540fe6dab
5 changed files with 100 additions and 43 deletions

View File

@@ -35,6 +35,11 @@ Light Delivery 是一个为小程序配送服务设计的后端系统,提供
- REST API位置查询接口
- 位置过期处理机制
### 5. 员工管理(新增)
- 员工信息维护(仅限管理员)
- 员工增删改查功能
- 员工角色管理(管理员/配送员)
## 项目结构
```
@@ -93,9 +98,20 @@ src
- 所有用户首先以游客身份静默登录创建User记录
- 用户签到或注册时系统根据手机号在Employee表中查找匹配记录
- 如果匹配成功将用户的openid写入Employee表表示该员工已成为系统用户
- 根据Employee中的角色信息更新User的角色
- 根据Employee中的角色信息动态确定User的角色
- 对于配送员还会创建或更新DeliveryPerson记录
### 用户角色管理优化(新增)
为了解决数据一致性问题,我们对用户角色管理进行了优化:
1. 移除了User表中的role字段避免在User表和Employee表中重复维护角色信息
2. 用户角色现在完全通过Employee表进行管理
3. 当需要获取用户角色时系统会根据用户的手机号在Employee表中查找对应记录
4. 如果用户未注册没有手机号或在Employee表中找不到对应记录则默认为游客角色
这种设计确保了数据的一致性,避免了在多个表中维护相同信息可能带来的问题。
## 本地开发与测试
### 环境配置
@@ -103,7 +119,7 @@ src
项目支持多种运行环境配置:
1. **本地开发环境** (`local`)
- 端口: 8443
- 端口: 8080
- 数据库: 远程MySQL (与生产环境相同)
- SSL: 禁用
- 日志级别: DEBUG
@@ -132,7 +148,7 @@ src
```bash
# 使用local配置文件运行
mvn spring-boot:run -Dspring-boot.run.profiles=local
mvn spring-boot:run -D"spring.profiles.active"="local"
# 或者使用test配置文件运行使用内存数据库
mvn spring-boot:run -Dspring-boot.run.profiles=test
@@ -158,7 +174,7 @@ java -jar target/light-delivery-1.0.0.jar --spring.profiles.active=test
build-local.bat
# 运行容器
docker run -d --name light-delivery -p 8443:8443 light-delivery-app
docker run -d --name light-delivery -p 8080:8080 light-delivery-app
```
## 部署说明
@@ -234,11 +250,32 @@ deploy.bat
- `GET /delivery-persons/{id}` - 获取配送员详情
- `PUT /delivery-persons/{id}/location` - 更新配送员位置
### 员工管理相关(仅限管理员访问)
- `GET /employees` - 获取员工列表
- `POST /employees` - 添加员工
- `PUT /employees/{id}` - 更新员工信息
- `DELETE /employees/{id}` - 删除员工
### 位置同步相关
- `GET /location-sync/delivery-persons/locations` - 获取所有配送员位置
## 最近更新
### 用户角色管理优化(新增)
为解决数据一致性问题,我们优化了用户角色管理机制:
- 移除了User表中的role字段
- 用户角色现在完全通过Employee表进行管理
- 系统会根据用户的手机号在Employee表中动态查找角色信息
- 未注册用户默认为游客角色
### 员工管理功能(新增)
为便于管理员维护员工信息,我们新增了员工管理功能:
- 新增EmployeeController控制器提供员工信息的增删改查接口
- 新增EmployeeService服务层处理员工相关的业务逻辑
- 新增EmployeeDto数据传输对象用于前后端数据交互
- 添加权限控制,仅管理员可访问员工管理接口
- 添加全局异常处理机制
### 位置历史记录功能移除
为了简化系统架构并提高性能,我们移除了位置历史记录功能。具体变更包括:
- 删除了`LocationHistory`实体类
@@ -253,4 +290,6 @@ deploy.bat
1. 系统仅支持微信登录,不再支持用户名密码登录
2. 所有敏感接口都需要通过JWT Token认证
3. 配送员位置信息具有时效性默认5分钟内有效
4. 位置历史记录功能已被移除,如有需要可使用第三方服务进行位置追踪
4. 位置历史记录功能已被移除,如有需要可使用第三方服务进行位置追踪
5. 员工管理接口仅限管理员角色访问
6. 用户角色信息现在通过员工表动态获取,确保数据一致性