# 新增用户自动创建员工功能说明 ## 功能概述 在新增用户功能中,当用户创建成功后,系统会自动在系统管理的员工管理中添加对应的员工记录,并根据用户类型设置相应的岗位。 ## 实现细节 ### 1. 用户类型映射 系统支持以下用户类型: - **1**: 司机 - **2**: 供应商(农户) - **3**: 资金方 - **4**: 采购商 ### 2. 自动创建流程 当新增用户成功后,系统会执行以下步骤: 1. **检查重复性**: 检查手机号是否已存在于员工表中,如果存在则跳过创建 2. **获取或创建岗位**: 根据用户类型获取对应的岗位,如果岗位不存在则自动创建 3. **创建员工记录**: 在`sys_user`表中创建员工记录,包含以下信息: - 员工姓名(来自用户姓名) - 手机号(来自用户手机号) - 岗位ID(根据用户类型自动分配) - 默认密码:`123456`(已加密) - 账号状态(继承自用户状态,默认为启用) - 创建时间 - 创建人 ### 3. 岗位自动创建 系统会根据用户类型自动创建对应的岗位: | 用户类型 | 岗位名称 | 岗位描述 | |---------|---------|---------| | 1 | 司机 | 司机用户岗位 | | 2 | 供应商 | 供应商用户岗位 | | 3 | 资金方 | 资金方用户岗位 | | 4 | 采购商 | 采购商用户岗位 | | 其他 | 普通用户 | 普通用户岗位 | ### 4. 密码处理 - 默认密码设置为:`123456` - 使用系统统一的密码加密方式:`MD5(aiot + 密码)` - 与现有员工管理系统的密码加密方式保持一致 ## 技术实现 ### 修改的文件 - `tradeCattle/aiotagro-cattle-trade/src/main/java/com/aiotagro/cattletrade/business/controller/MemberController.java` ### 新增的方法 1. **`createEmployeeRecord()`**: 创建员工记录的核心方法 2. **`getOrCreateRoleByUserType()`**: 根据用户类型获取或创建岗位 ### 依赖注入 新增了`SysRoleMapper`的依赖注入,用于岗位管理操作。 ## 使用说明 ### 前端调用 前端无需修改,继续使用现有的新增用户API: ```javascript // 调用新增用户API userAdd({ username: '张三', mobile: '13800138000', type: 2, // 供应商 status: 0, // 启用 cbkAccount: 'account123', remark: '备注信息' }) ``` ### 后端处理 后端会自动: 1. 创建用户记录(原有功能) 2. 自动创建对应的员工记录(新增功能) 3. 如果岗位不存在,自动创建岗位 ## 错误处理 - 员工记录创建失败不会影响用户创建的成功 - 错误信息会记录到系统日志中 - 如果手机号已存在于员工表中,会跳过创建并记录日志 ## 注意事项 1. **数据一致性**: 确保用户表和员工表中的手机号保持一致 2. **权限管理**: 新创建的员工记录需要管理员手动分配菜单权限 3. **密码安全**: 建议用户首次登录后修改默认密码 4. **岗位管理**: 自动创建的岗位可以在系统管理的岗位管理中进行编辑和权限分配 ## 测试建议 1. 测试不同用户类型的用户创建 2. 验证员工记录是否正确创建 3. 检查岗位是否按预期创建 4. 确认密码加密是否正确 5. 测试重复手机号的处理逻辑