# Service-Common 模块技术文档 ## 模块概述 Service-Common 是 MicroCommunity 微服务架构中的通用服务模块,提供社区管理系统中的通用功能服务。该模块采用命令驱动架构设计,通过35个核心命令接口为系统提供广告管理、区域管理、文件管理、工作流引擎、充电设备管理、门禁密钥管理等通用业务能力。 ## 技术架构 ### 核心架构 - **框架**: Spring Boot + Spring Cloud - **架构模式**: 命令驱动架构 (Command-Driven Architecture) - **数据库**: MySQL + MyBatis - **工作流引擎**: Activiti 6.0.0 - **文件存储**: 支持本地存储和OSS云存储 ### 项目结构 ``` service-common/ ├── src/main/java/com/java110/common/ │ ├── cmd/ # 命令接口层 (35个核心接口) │ ├── activity/ # 活动管理 │ ├── api/ # API接口 │ ├── bmo/ # 业务模型对象 │ ├── dao/ # 数据访问层 │ ├── smo/ # 服务管理对象 │ ├── thread/ # 线程管理 │ └── CommonServiceApplicationStart.java ├── .bpmn/ # 工作流定义文件 └── pom.xml # Maven配置 ``` ### 依赖关系 ```xml com.java110 java110-service org.activiti activiti-bpmn-layout org.activiti activiti-spring-boot-starter-basic ``` ## 核心命令接口清单 ### 1. 广告管理 (advert) - **SaveAdvertCmd**: 创建广告 - 功能: 创建新的广告信息,支持图片和视频广告 - 调用方式: POST /app/advert.saveAdvert - 业务场景: 物业管理人员创建社区广告 - **ListAdvertsCmd**: 查询广告列表 - 功能: 分页查询广告信息,支持按类型筛选 - 调用方式: POST /app/advert.listAdverts - 业务场景: 前端展示广告列表 - **UpdateAdvertCmd**: 更新广告 - **DeleteAdvertCmd**: 删除广告 - **ListAdvertItemsCmd**: 查询广告项 - **ListAdvertPhotoCmd**: 查询广告图片 - **ListAdvertPhotoAndVediosCmd**: 查询广告图片和视频 ### 2. 应用密钥管理 (applicationKey) - **SaveApplicationKeyCmd**: 创建应用密钥 - 功能: 生成门禁访问密钥,支持临时密码和长期密钥 - 调用方式: POST /app/applicationKey.saveApplicationKey - 业务场景: 业主申请门禁访问权限 - **ApplyApplicationKeyCmd**: 申请应用密钥 - **ApplyVisitorApplicationKeyCmd**: 访客申请密钥 - **AuditApplicationKeyCmd**: 审核应用密钥 - **AuthApplicationKeyCmd**: 认证应用密钥 - **ListApplicationKeysCmd**: 查询密钥列表 - **UpdateApplicationKeyCmd**: 更新密钥信息 - **DeleteApplicationKeyCmd**: 删除密钥 ### 3. 区域管理 (area) - **ListAreas**: 查询区域列表 - 功能: 获取行政区划信息 - 调用方式: POST /app/area.listAreas - 业务场景: 地址选择、区域统计 - **QueryAreaTreeCmd**: 查询区域树 - **SaveCityAreaCmd**: 保存城市区域 - **UpdateCityAreaCmd**: 更新城市区域 - **DeleteCityAreaCmd**: 删除城市区域 ### 4. 考勤管理 (attendanceClasses) - 提供考勤班次管理功能 ### 5. 用户审核 (auditUser) - 提供用户信息审核功能 ### 6. 车辆进出管理 (carInout) - 提供车辆进出记录管理 ### 7. 充电设备管理 (chargeMachine) - **SaveChargeMachineCmd**: 创建充电设备 - **ListChargeMachinePortCmd**: 查询充电端口 - **ListChargeMachineOrderCmd**: 查询充电订单 - **ListPhoneChargeMachineCmd**: 手机端查询充电设备 - **SaveChargeMachineFactoryCmd**: 创建设备厂商 - **SaveChargeMachinePortCmd**: 创建充电端口 - **SaveChargeMachineSpecCmd**: 创建设备规格 - 其他相关管理接口... ### 8. 充电卡管理 (chargeCard) - 提供充电卡管理功能 ### 9. 充电规则管理 (chargeRule) - 提供充电计费规则管理 ### 10. 订单管理 (corders) - 提供通用订单管理功能 ### 11. 设备台账管理 (equipmentAccount) - 提供设备资产台账管理 ### 12. 设备操作日志 (equipmentOperatingLog) - 记录设备操作日志 ### 13. 文件管理 (file) - **SaveFileCmd**: 保存文件 - 功能: 上传并保存文件,支持图片、文档等 - 调用方式: POST /app/file.saveFile - 业务场景: 用户上传头像、证件照等 - **GetFileCmd**: 获取文件 - **GetFileByObjIdCmd**: 按对象ID获取文件 ### 14. 物品发布管理 (itemRelease) - 提供物品发布管理功能 ### 15. 日志管理 (log) - 提供系统日志管理 ### 16. 设备管理 (machine) - 提供通用设备管理功能 ### 17. 设备认证 (machineAuth) - 提供设备认证管理 ### 18. 设备记录 (machineRecord) - 记录设备操作记录 ### 19. 设备翻译 (machineTranslate) - 提供设备数据翻译功能 ### 20. 设备类型 (machineType) - 管理设备类型信息 ### 21. 商城管理 (mall) - 提供商城相关功能 ### 22. 营销黑名单 (marketBlacklist) - 管理营销黑名单 ### 23. 营销商品 (marketGoods) - 管理营销商品信息 ### 24. 营销图片 (marketPic) - 管理营销相关图片 ### 25. 营销规则 (marketRule) - 配置营销活动规则 ### 26. 营销短信 (marketSms) - 管理营销短信发送 ### 27. 营销文本 (marketText) - 管理营销文本内容 ### 28. 计量设备 (meterMachine) - 管理计量设备信息 ### 29. 消息管理 (msg) - 提供消息推送管理 ### 30. 打印机管理 (printer) - 提供打印设备管理 ### 31. 宣传管理 (publicity) - 提供宣传内容管理 ### 32. 系统管理 (system) - 提供系统配置管理 ### 33. 工作流管理 (workflow) - **SaveWorkflowCmd**: 创建工作流 - 功能: 创建新的工作流定义 - 调用方式: POST /app/workflow.saveWorkflow - 业务场景: 管理员配置业务流程 - **ListWorkflowCmd**: 查询工作流 - **ListWorkflowsCmd**: 查询工作流列表 - **ListWorkflowStepsCmd**: 查询工作流步骤 - **ListWorkflowStepStaffsCmd**: 查询步骤处理人员 - **ListWorkflowAuditInfoCmd**: 查询审核信息 - **ListWorkflowImageCmd**: 查询工作流图片 - **ListRunWorkflowImageCmd**: 查询运行中工作流图片 - **GetFirstStaffCmd**: 获取首节点处理人员 - **ListWorkflowNextNodeCmd**: 查询下一节点 - **UpdateWorkflowCmd**: 更新工作流 - **DeleteWorkflowCmd**: 删除工作流 ## 核心业务功能 ### 1. 广告投放系统 - 支持图片、视频广告 - 多终端投放(业主端、员工端) - 精准投放(按项目、楼栋、单元、房间) - 时间控制(开始时间、结束时间) ### 2. 门禁密钥管理 - 长期密钥和临时密码 - 密钥审核机制 - 设备绑定管理 - 访客权限管理 ### 3. 工作流引擎 - 基于Activiti的工作流引擎 - 可视化流程设计 - 多级审核流程 - 动态节点配置 ### 4. 充电设备管理 - 充电设备注册管理 - 充电端口配置 - 充电订单处理 - 设备厂商管理 ### 5. 文件管理系统 - 多格式文件支持 - 文件关联管理 - 存储方式灵活(本地/云存储) - 文件权限控制 ## 部署配置 ### 启动配置 ```bash # Spring Boot 方式启动 mvn spring-boot:run -f pom-boot.xml # Spring Cloud 方式启动 mvn spring-boot:run -f pom-cloud.xml ``` ### 环境配置 - 开发环境: application-dev.properties - 测试环境: application-test.properties - 生产环境: application-prod.properties ## 接口调用示例 ### 创建广告接口调用 ```json POST /app/advert.saveAdvert { "adName": "社区活动通知", "adTypeCd": "2000", "classify": "9001", "locationTypeCd": "1000", "locationObjId": "-1", "seq": "1", "startTime": "2023-09-01 00:00:00", "endTime": "2023-12-31 23:59:59", "photos": [ { "url": "https://example.com/image.jpg", "fileId": "img/20230901/abc123.jpg" } ] } ``` ### 创建工作流接口调用 ```json POST /app/workflow.saveWorkflow { "flowId": "WF001", "flowName": "费用报销流程", "skipLevel": "1", "communityId": "9999", "storeId": "1001", "statusCd": "0", "flowType": "EXPENSE" } ``` ## 注意事项 1. **事务管理**: 关键业务操作使用@Java110Transactional注解确保数据一致性 2. **参数校验**: 所有接口都包含完整的参数校验逻辑 3. **异常处理**: 统一的异常处理机制,返回标准化的错误信息 4. **权限控制**: 接口调用需要相应的权限认证 5. **日志记录**: 关键操作都有详细的日志记录 ## 版本信息 - 当前版本: 1.0-SNAPSHOT - 最后更新: 2024年1月 - 维护团队: Java110 Team ---