README.md 14.4 KB

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: 服务编码,格式为"模块.命令名称"
  • 用于标识和路由具体的业务命令

命令执行流程

  1. 参数验证: validate() 方法验证请求参数完整性
  2. 业务执行: doCmd() 方法执行业务逻辑
  3. 事务管理: @Java110Transactional 注解确保事务一致性
  4. 结果返回: 统一的结果格式返回

请求格式

{
  "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)

开发说明

命令开发规范

  1. 继承Cmd基类: 所有命令类必须继承 Cmd 基类
  2. 注解声明: 使用 @Java110Cmd 注解声明服务编码
  3. 参数验证: 在 validate() 方法中验证必需参数
  4. 事务管理: 在 doCmd() 方法上使用 @Java110Transactional
  5. 统一响应: 使用 ResultVo.success() 返回成功响应

扩展性设计

  • 命令发现机制: 支持动态命令注册和发现
  • 监听器机制: 支持事件监听和发布
  • 异步处理: 支持异步任务执行
  • 文档生成: 集成文档自动生成功能

核心优势

  1. 标准化接口: 所有功能通过统一的命令接口提供
  2. 事务一致性: 支持分布式事务管理
  3. 微服务集成: 完善的微服务间调用机制
  4. 扩展性强: 支持自定义命令和监听器
  5. 文档完善: 完整的接口文档和技术说明

文档版本: 3.0 最后更新: 基于cmd目录深度分析生成 重点突出命令处理层作为模块核心提供接口 包含26个功能模块的完整命令接口清单