README.md
Service-User 模块技术文档
模块概述
Service-User 是一个基于 Spring Boot 的微服务模块,主要负责社区管理系统的用户信息维护和相关服务提供。该模块采用标准的微服务架构,集成了服务发现、Feign客户端、异步处理等关键技术组件,为社区管理系统提供完整的用户管理功能。
核心设计理念:
- 命令驱动架构:所有业务功能通过命令处理层(cmd)提供标准化接口
- 分层设计:清晰的API层、命令层、业务层、数据层分离
- 微服务集成:通过Feign客户端实现服务间调用
- 事务管理:支持分布式事务处理
技术架构
分层架构设计
src/main/java/com/java110/user/
├── api/ # API接口层 - 对外提供RESTful接口
├── bmo/ # 业务模型对象层 - 业务逻辑处理
├── cmd/ # 命令处理层 - 模块核心接口实现(26个功能模块)
├── dao/ # 数据访问层 - 数据库操作
├── smo/ # 服务管理对象层 - 服务调度和管理
└── UserServiceApplicationStart.java # 主启动类
关键技术组件
- Spring Boot 2.x: 微服务框架
- Spring Cloud: 服务发现与注册 (
@EnableDiscoveryClient) - OpenFeign: 微服务间调用 (
@EnableFeignClients) - 异步处理:
@EnableAsync支持异步任务处理 - RESTful API: 基于Spring MVC的REST接口
- 自定义注解: 支持命令发现、监听器发现等扩展功能
- 事务管理:
@Java110Transactional注解支持事务控制
命令处理层(CMD)核心接口
命令处理层是本模块的核心,包含26个功能模块,每个模块提供完整的业务操作接口:
1. 楼栋业主管理 (buildingOwner) - 4个命令
- SaveBuildingOwnerCmd: 保存业主信息
- UpdateBuildingOwnerCmd: 更新业主信息
- DeleteBuildingOwnerCmd: 删除业主信息
- ListBuildingOwnerCmd: 查询业主列表
2. 车辆管理 (car) - 1个命令
- QueryWaitPayFeeTempCarCmd: 查询待缴费临时车辆
3. 车辆黑白名单管理 (carBlackWhite) - 4个命令
- SaveCarBlackWhiteCmd: 保存车辆黑白名单
- UpdateCarBlackWhiteCmd: 更新车辆黑白名单
- DeleteCarBlackWhiteCmd: 删除车辆黑白名单
- ListCarBlackWhitesCmd: 查询车辆黑白名单列表
4. 车辆进出管理 (carInout) - 3个命令
- SaveCarInoutCmd: 保存车辆进出记录
- UpdateCarInoutCmd: 更新车辆进出记录
- ListCarInoutsCmd: 查询车辆进出记录列表
5. 数据权限员工管理 (dataPrivilegeStaff) - 5个命令
- SaveDataPrivilegeStaffCmd: 保存数据权限员工
- UpdateDataPrivilegeStaffCmd: 更新数据权限员工
- DeleteDataPrivilegeStaffCmd: 删除数据权限员工
- ListDataPrivilegeStaffCmd: 查询数据权限员工列表
- ListStaffNotInDataPrivilegeCmd: 查询未分配数据权限的员工
6. 审核管理 (examine) - 15个命令
- SaveExamineProjectCmd: 保存审核项目
- UpdateExamineProjectCmd: 更新审核项目
- DeleteExamineProjectCmd: 删除审核项目
- ListExamineProjectCmd: 查询审核项目列表
- SaveExamineStaffCmd: 保存审核员工
- UpdateExamineStaffCmd: 更新审核员工
- DeleteExamineStaffCmd: 删除审核员工
- ListExamineStaffCmd: 查询审核员工列表
- ListExamineStaffIntroductionCmd: 查询审核员工介绍
- SaveExamineStaffValueCmd: 保存审核员工值
- DeleteExamineStaffValueCmd: 删除审核员工值
- ListExamineStaffValueCmd: 查询审核员工值列表
- SaveExamineStaffProjectCmd: 保存审核员工项目关联
- DeleteExamineStaffProjectCmd: 删除审核员工项目关联
- ListExamineStaffProjectCmd: 查询审核员工项目关联列表
7. 垃圾需求管理 (junkRequirement) - 4个命令
- SaveJunkRequirementCmd: 保存垃圾需求
- UpdateJunkRequirementCmd: 更新垃圾需求
- DeleteJunkRequirementCmd: 删除垃圾需求
- ListJunkRequirementsCmd: 查询垃圾需求列表
8. 登录管理 (login) - 8个命令(核心认证模块)
- UserServiceLoginCmd: 用户服务登录
- PcUserLoginCmd: PC端用户登录
- PhoneWechatLoginCmd: 手机微信登录
- AccessTokenLoginCmd: AccessToken登录
- GetAccessTokenCmd: 获取AccessToken
- AdminLoginPropertyCmd: 管理员物业登录
- GeneratorHcCodeCmd: 生成健康码
- QueryTokenForTeldCmd: 查询Teld令牌
9. 菜单管理 (menu) - 3个命令
- ListCatalogCmd: 查询目录列表
- ListCatalogMenusCmd: 查询目录菜单列表
- QueryMenuInfoCmd: 查询菜单信息
10. 菜单组管理 (menuGroup) - 3个命令
- ListMenuGroupsCmd: 查询菜单组列表
- SaveMenuGroupCmd: 保存菜单组
- UpdateMenuGroupCmd: 更新菜单组
11. 菜单组社区关联 (menuGroupCommunity) - 4个命令
- DeleteMenuGroupCommunityCmd: 删除菜单组社区关联
- ListMenuGroupCommunitysCmd: 查询菜单组社区关联列表
- SaveMenuGroupCommunityCmd: 保存菜单组社区关联
- UpdateMenuGroupCommunityCmd: 更新菜单组社区关联
12. 用户菜单关联 (menuUser) - 3个命令
- DeleteMenuUserCmd: 删除用户菜单关联
- ListMenuUsersCmd: 查询用户菜单关联列表
- SaveMenuUserCmd: 保存用户菜单关联
13. 记事本管理 (notepad) - 4个命令
- DeleteNotepadCmd: 删除记事本
- ListNotepadsCmd: 查询记事本列表
- SaveNotepadCmd: 保存记事本
- UpdateNotepadCmd: 更新记事本
14. 组织架构管理 (org) - 13个命令
- SaveOrgCmd: 保存组织
- UpdateOrgCmd: 更新组织
- DeleteOrgCmd: 删除组织
- ListOrgsCmd: 查询组织列表
- ListOrgCmd: 查询组织详情
- ListOrgTreeCmd: 查询组织树
- ListParentOrgsCmd: 查询父组织列表
- QueryAdminOrgTreeCmd: 查询管理员组织树
- SaveOrgCommunityCmd: 保存组织社区关联
- DeleteOrgCommunityCmd: 删除组织社区关联
- ListOrgCommunitysCmd: 查询组织社区关联列表
- ListOrgNoCommunitysCmd: 查询未关联社区的组织
- ListOrgNoShopsCmd: 查询未关联店铺的组织
15. 业主管理 (owner) - 4个命令
- DeleteOwnerCmd: 删除业主
- ListOwnersCmd: 查询业主列表
- SaveOwnerCmd: 保存业主
- UpdateOwnerCmd: 更新业主
16. 业主车辆属性 (ownerCarAttr) - 4个命令
- DeleteOwnerCarAttrCmd: 删除业主车辆属性
- ListOwnerCarAttrsCmd: 查询业主车辆属性列表
- SaveOwnerCarAttrCmd: 保存业主车辆属性
- UpdateOwnerCarAttrCmd: 更新业主车辆属性
17. 业主车辆开放用户 (ownerCarOpenUser) - 4个命令
- DeleteOwnerCarOpenUserCmd: 删除业主车辆开放用户
- ListOwnerCarOpenUsersCmd: 查询业主车辆开放用户列表
- SaveOwnerCarOpenUserCmd: 保存业主车辆开放用户
- UpdateOwnerCarOpenUserCmd: 更新业主车辆开放用户
18. 业主委员会 (ownerCommittee) - 4个命令
- DeleteOwnerCommitteeCmd: 删除业主委员会
- ListOwnerCommitteesCmd: 查询业主委员会列表
- SaveOwnerCommitteeCmd: 保存业主委员会
- UpdateOwnerCommitteeCmd: 更新业主委员会
19. 业主入驻 (ownerSettled) - 4个命令
- DeleteOwnerSettledCmd: 删除业主入驻信息
- ListOwnerSettledsCmd: 查询业主入驻信息列表
- SaveOwnerSettledCmd: 保存业主入驻信息
- UpdateOwnerSettledCmd: 更新业主入驻信息
20. 权限管理 (privilege) - 5个命令
- SavePrivilegeGroupInfoCmd: 保存权限组信息
- EditPrivilegeGroupInfoCmd: 编辑权限组信息
- DeletePrivilegeGroupInfoCmd: 删除权限组信息
- AddPrivilegePrivilegeGroupCmd: 添加权限到权限组
- DeletePrivilegePrivilegeGroupCmd: 从权限组删除权限
21. 问答管理 (question) - 4个命令
- DeleteQuestionCmd: 删除问题
- ListQuestionsCmd: 查询问题列表
- SaveQuestionCmd: 保存问题
- UpdateQuestionCmd: 更新问题
22. 注册管理 (register) - 4个命令
- DeleteRegisterCmd: 删除注册信息
- ListRegistersCmd: 查询注册信息列表
- SaveRegisterCmd: 保存注册信息
- UpdateRegisterCmd: 更新注册信息
23. 角色管理 (role) - 4个命令
- DeleteRoleCmd: 删除角色
- ListRolesCmd: 查询角色列表
- SaveRoleCmd: 保存角色
- UpdateRoleCmd: 更新角色
24. 角色社区关联 (roleCommunity) - 4个命令
- DeleteRoleCommunityCmd: 删除角色社区关联
- ListRoleCommunitysCmd: 查询角色社区关联列表
- SaveRoleCommunityCmd: 保存角色社区关联
- UpdateRoleCommunityCmd: 更新角色社区关联
25. 用户管理 (user) - 40个命令(核心用户模块)
- SaveUserCmd: 保存用户信息
- UserStaffAddCmd: 添加员工用户
- UserStaffModifyCmd: 修改员工用户
- UserStaffDeleteCmd: 删除员工用户
- UserStaffEnableCmd: 启用员工用户
- UserStaffDisableCmd: 禁用员工用户
- UserLoginCmd: 用户登录
- OwnerUserLoginCmd: 业主用户登录
- OwnerUserLoginByOpenIdCmd: 业主OpenID登录
- GetUserInfoCmd: 获取用户信息
- ListUsersCmd: 查询用户列表
- ListSystemUsersCmd: 查询系统用户列表
- ChangeStaffPwdCmd: 修改员工密码
- ResetStaffPwdCmd: 重置员工密码
- ResetSystemUserPwdCmd: 重置系统用户密码
- ListStaffOrgsCmd: 查询员工组织列表
- ListStaffRolesCmd: 查询员工角色列表
- ListAdminStaffOrgsCmd: 查询管理员员工组织列表
- ListAdminStaffRolesCmd: 查询管理员员工角色列表
- ListStaffCommunitysCmd: 查询员工社区列表
- QueryStaffInfosCmd: 查询员工信息
- QueryStaffByNameCmd: 按名称查询员工
- QueryAdminPropertyStaffCmd: 查询管理员物业员工
- QueryAdminStaffPrivilegeCmd: 查询管理员员工权限
- QueryAdminStaffAppAuthCmd: 查询管理员员工应用权限
- QueryUserPrivilege: 查询用户权限
- QueryUserSecretCmd: 查询用户密钥
- QueryStorePrivilegeGroupCmd: 查询店铺权限组
- QueryPrivilegeGroupNoAddPrivilegeCmd: 查询未添加权限的权限组
- GeneratorUserQrCodeCmd: 生成用户二维码
- UserSendSmsCmd: 用户发送短信
- OwnerSendSmsCmd: 业主发送短信
- SaveStaffOrgRelCmd: 保存员工组织关系
- DeleteOrgRelStaffCmd: 删除组织关系员工
- DeleteSystemUserCmd: 删除系统用户
- SaveOrUpdateUserAttrCmd: 保存或更新用户属性
- ListSystemUserAttrCmd: 查询系统用户属性列表
- ListStaffsNoInOrgCmd: 查询未分配组织的员工
- CheckServiceLoginCmd: 检查服务登录
- UserLogoutServiceCmd: 用户退出服务
26. 微信管理 (wechat) - 4个命令
- DeleteWechatCmd: 删除微信信息
- ListWechatsCmd: 查询微信信息列表
- SaveWechatCmd: 保存微信信息
- UpdateWechatCmd: 更新微信信息
命令接口规范
命令注解
@Java110Cmd(serviceCode = "module.commandName")
- serviceCode: 服务编码,格式为"模块.命令名称"
- 用于标识和路由具体的业务命令
命令执行流程
- 参数验证:
validate()方法验证请求参数完整性 - 业务执行:
doCmd()方法执行业务逻辑 - 事务管理:
@Java110Transactional注解确保事务一致性 - 结果返回: 统一的结果格式返回
请求格式
{
"serviceCode": "user.saveUser",
"reqData": {
"userId": "123456",
"name": "张三",
// ... 其他参数
}
}
API接口映射
| API接口 | 对应命令模块 | 主要功能 |
|---|---|---|
| UserApi | user | 用户信息统一处理 |
| UserLoginApi | login | 用户登录管理 |
| OwnerApi | owner, buildingOwner | 业主信息管理 |
| StaffApi | user | 员工信息管理 |
| OrgApi | org | 组织架构管理 |
| MenuApi | menu, menuGroup | 菜单管理 |
部署配置
环境要求
- JDK 1.8+
- Maven 3.6+
- Spring Cloud 环境
- 服务注册中心(如Eureka、Nacos)
启动配置
@SpringBootApplication(
scanBasePackages = {
"com.java110.service",
"com.java110.core",
"com.java110.user",
"com.java110.config.properties.code",
"com.java110.db",
"com.java110.doc"
},
excludeName = {"com.java110.intf.user"}
)
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {
"com.java110.intf.community",
"com.java110.intf.common",
"com.java110.intf.store",
"com.java110.intf.oa",
"com.java110.intf.fee",
"com.java110.intf.order",
"com.java110.intf.mall",
"com.java110.intf.report",
"com.java110.intf.acct",
"com.java110.intf.job"
})
@EnableAsync
public class UserServiceApplicationStart {
// 主启动类
}
启动命令
mvn spring-boot:run
# 或打包后运行
java -jar service-user-1.0-SNAPSHOT.jar
依赖关系
主要依赖
- java110-service: 核心服务模块依赖
- Spring Boot Starter Web: Web服务支持
- Spring Cloud Starter: 微服务支持
- OpenFeign: 服务间调用
- FastJSON: JSON处理
服务间依赖
通过Feign客户端调用以下服务:
- 社区服务 (community)
- 通用服务 (common)
- 店铺服务 (store)
- OA服务 (oa)
- 费用服务 (fee)
- 订单服务 (order)
- 商城服务 (mall)
- 报表服务 (report)
- 账户服务 (acct)
- 任务服务 (job)
开发说明
命令开发规范
- 继承Cmd基类: 所有命令类必须继承
Cmd基类 - 注解声明: 使用
@Java110Cmd注解声明服务编码 - 参数验证: 在
validate()方法中验证必需参数 - 事务管理: 在
doCmd()方法上使用@Java110Transactional - 统一响应: 使用
ResultVo.success()返回成功响应
扩展性设计
- 命令发现机制: 支持动态命令注册和发现
- 监听器机制: 支持事件监听和发布
- 异步处理: 支持异步任务执行
- 文档生成: 集成文档自动生成功能
核心优势
- 标准化接口: 所有功能通过统一的命令接口提供
- 事务一致性: 支持分布式事务管理
- 微服务集成: 完善的微服务间调用机制
- 扩展性强: 支持自定义命令和监听器
- 文档完善: 完整的接口文档和技术说明
文档版本: 3.0 最后更新: 基于cmd目录深度分析生成 重点突出命令处理层作为模块核心提供接口 包含26个功能模块的完整命令接口清单