Name Last Update
..
.bpmn/src/main/resources/processes Loading commit data...
src/main Loading commit data...
README.md Loading commit data...
pom-boot.xml Loading commit data...
pom-cloud.xml Loading commit data...
pom.xml Loading commit data...

README.md

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配置

依赖关系

<dependencies>
    <dependency>
        <groupId>com.java110</groupId>
        <artifactId>java110-service</artifactId>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-layout</artifactId>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter-basic</artifactId>
    </dependency>
    <!-- 其他依赖... -->
</dependencies>

核心命令接口清单

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. 文件管理系统

  • 多格式文件支持
  • 文件关联管理
  • 存储方式灵活(本地/云存储)
  • 文件权限控制

部署配置

启动配置

# 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

接口调用示例

创建广告接口调用

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"
    }
  ]
}

创建工作流接口调用

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