价值系统后台管理服务
系统架构图
项目使用框架
- 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)
任务有限状态机
领域驱动设计-战略建模
领域
限界上下文
上下文映射
领域驱动设计-战术建模
实体
员工实体:Employee
现金池实体:CashPool
客户价值实体:CustomerValue
素币兑换活动实体:ExchangeCashActivity
素币兑换清单实体:ExchangeCashPerson
排行版时间实体:ListInterval
提醒消息实体:Notification
关闭任务记录实体:OffTaskRecord
项目归属实体:ProjectBelong
引用资源实体:ReferenceResource
驳回任务记录实体:RejectTaskRecord
任务实体:Task
素币事务记录实体:SuMoneyTransactionRecord
任务性质实体:TaskNature
已发送通知实体:SentNotification
值对象
员工信息值对象:EmployeeInfo
竞标任务信息值对象:BidInfo
竞标人值对象:BidderInfo
引用资源项值对象:ReferenceResourceItem
抢单任务信息值对象:RobInfo
任务贡献占比项值对象:TaskPercentageItem
解决评分项值对象:SolveScoreItem
聚合根
领域服务
验收任务服务
申请完成任务服务
竞标任务服务
选择竞标成功人服务
确认抢单任务服务
兑换素币服务
关闭任务服务
操作素币服务
已读全部消息服务
已读消息服务
驳回任务服务
发布任务服务
抢单任务服务
领域事件
领域驱动设计工程实现
模块
领域对象
资源库
防腐层
领域服务
数据流转
上下文集成
分离领域
标准产品组工具使用
- 设置全局变量(替换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