M

mmm-worth

价值系统

zhuangmx提交了 · 9c9ad90c fixed

价值系统后台管理服务

系统架构图

diagram

项目使用框架

  • http框架:beego
  • orm框架:go-pg
  • 数据存储:postgresql
  • 项目结构分层:基于端口适配器架构(六边形架构)实现领域驱动设计(DDD领域驱动)

项目目录结构

  ├─conf     项目配置文件 
  ├─deploy   项目部署文件
  ├─document 接口文档
  ├─test     业务接口集成测试
  ├─dsl      领域描述语言文档
  ├─pkg
  │  ├─application 应用层
  │  │      ├─employee            员工
  │  │      ├─task                任务
  │  │      ├─suMoney             素币
  │  │      ├─statistics          统计
  │  │      ├─notification        消息通知
  │  │      ├─customerValue       客户价值
  │  │      ├─projectBelong       项目归属
  │  │      ├─taskNature          任务性质
  │  │      ├─unifiedUserCenter    统一用户中心适配
  │  │      ├─event               注册领域业务事件订阅以及处理
  │  │      └─factory             工厂类,组装复杂对象或者聚合
  │  ├─domain 领域层(核心业务逻辑建模,实体,聚合根)
  │  │    ├─event      领域事件
  │  │    ├─service    领域服务
  │  │    ├─domain...   领域对象
  │  │    └─task        任务状态机实现
  │  ├─infrastructure    基础设施层
  │  │      ├─dao                 数据访问对象
  │  │      ├─domain_service      领域服务具体实现
  │  │      ├─pg                  数据模型定义
  │  │      ├─repository          实体或者聚合根模型仓储
  │  │      └─service_gateway     微服务网关,其他业务接口或者第三方服务接口网关
  │  ├─constant  项目配置常量设置
  │  ├─log  日志模块
  │  └─port 用户接入层
  │      └─beego beego框架接入实现http接口
  └─logs  日志文件

主要业务模块

  • 企业员工模块(application/employee)
  • 素币模块(application/suMoney)
  • 任务模块(application/task)
  • 统计模块(application/statistics)
  • 消息通知模块(application/notification)
  • 适配统一用户中心模块(application/unifiedUserCenter)

任务有限状态机

taskFSM

领域驱动设计-战略建模

领域

限界上下文

上下文映射

领域驱动设计-战术建模

实体

员工实体:Employee

现金池实体:CashPool

客户价值实体:CustomerValue

素币兑换活动实体:ExchangeCashActivity

素币兑换清单实体:ExchangeCashPerson

排行版时间实体:ListInterval

提醒消息实体:Notification

关闭任务记录实体:OffTaskRecord

项目归属实体:ProjectBelong

引用资源实体:ReferenceResource

驳回任务记录实体:RejectTaskRecord

任务实体:Task

素币事务记录实体:SuMoneyTransactionRecord

任务性质实体:TaskNature

已发送通知实体:SentNotification

值对象

员工信息值对象:EmployeeInfo

竞标任务信息值对象:BidInfo

竞标人值对象:BidderInfo

引用资源项值对象:ReferenceResourceItem

抢单任务信息值对象:RobInfo

任务贡献占比项值对象:TaskPercentageItem

解决评分项值对象:SolveScoreItem

聚合根

领域服务

验收任务服务

申请完成任务服务

竞标任务服务

选择竞标成功人服务

确认抢单任务服务

兑换素币服务

关闭任务服务

操作素币服务

已读全部消息服务

已读消息服务

驳回任务服务

发布任务服务

抢单任务服务

领域事件

领域驱动设计工程实现

模块

领域对象

资源库

防腐层

领域服务

数据流转

avatar

上下文集成

分离领域

avatar

标准产品组工具使用

  • 设置全局变量(替换YOUR-USER-PATH为你真实的项目路径)

1.生成路径(项目生成路径):/YOUR-USER-PATH/GolandProjects/

2.eggs根目录路径(领域描述语言DSL文档路径生成或引用路径):/YOUR-USER-PATH/GolandProjects/mmm-worth/document/

3.egg名称(通常为项目名称,同样是DSL文件夹名称):mmm-worth

  • 应用描述语言生成

1.应用描述语言egg脚手架生成

2.生成属性(Attribute)

3.生成模式(Schema)

4.生成服务(Service)

5.生成接口(Api)

  • 具体工程生成

1.生成接口文档(OpenApi)

2.生成项目代码脚手架

3.生成领域模型

4.生成应用服务

5.生成Http协议接口

安装与使用

价值系统代码仓库地址

新建开发分支,如:xxx-dev,下载相应分支代码

git clone -b xxx-dev http://gitlab.fjmaimaimai.com/linmadan/mmm-worth.git

安装项目依赖:

go mod tidy

启动项目

bee run