# 合伙人管理后台项目 ## 代码以及文档 - [代码地址](http://gitlab.fjmaimaimai.com/mmm-go/partnermg.git) - [项目原型svn](svn://218.106.157.184/repo/项目文件/项目【合伙人】) - [yapi-合伙人前端](http://47.97.5.102:36666/project/209/interface/api) 服务端地址 ``` 测试开发环境pg数据库地址:114.55.200.59:31543,开发库:partner_dev,测试库:partner_test 正式环境pg数据库地址:114.55.200.59:31544,正式库:partner 服务端开发环境地址:http://mmm-partnermg-dev.fjmaimaimai.com 服务端测试环境地址:http://mmm-partnermg-test.fjmaimaimai.com 服务端正式环境地址:https://public-interface.fjmaimaimai.com/mmm-partnermg ``` ## 系统架构图  ## 项目整体 - 项目使用框架 - http框架:beego - orm框架:go-pg - 数据存储:postgresql - 项目结构分层:DDD领域驱动 - 项目结构 ``` ├─conf 项目配置文件 ├─deploy 项目部署文件 ├─pkg │ ├─application │ │ ├─adminPermission 用户权限菜单 │ │ ├─businessBonus (在0.5.0后已经移除) │ │ ├─company 企业公司功能 │ │ ├─event 事件订阅以及处理 │ │ ├─factory 工厂类,实例具体的实现(数据仓储) │ │ ├─orderinfo 合伙人订单以及分红数据 │ │ ├─partnerCategory 合伙人分类信息 │ │ ├─partnerInfo 合伙人信息 │ │ ├─syncOrder 同步其他系统的订单数据 │ │ ├─unifiedUserCenter 从企业平台接收企业和管理员用户数据 │ │ └─users 管理员用户信息 │ ├─constant 变量配置(数据库等) │ ├─domain 领域模型(核心数据处理,接口定义) │ │ ├─event 领域事件定义 │ │ └─service 领域服务定义 │ ├─infrastructure 基础设施 │ │ ├─dao 特殊的数据库操作 │ │ ├─domainService 实现领域服务 │ │ ├─pg postgresql 数据库模型定义 │ │ ├─repository 数据仓储具体实现(对应domain定义数据库的数据存储接口) │ │ ├─serviceGateway 其他系统服务调用 │ │ │ ├─lib │ ├─log │ └─port 数据接入层(http接入,消息) │ ├─beego beego接入 │ └─consumer kafka消息订阅 └─vendor ``` ## 领域驱动设计-战略建模 ### 领域 ### 限界上下文 ### 上下文映射 ## 领域驱动设计-战术建模 ### 实体 实发订单实体:OrderBase 栏目设置实体:ColumnSetting 合伙人实体:Partner 用户实体:User 公司实体:Company 管理员实体:AdminUser ### 值对象 ### 聚合根 ### 领域服务 ### 领域事件 ## 领域驱动设计工程实现 ### 模块 ### 领域对象 ### 资源库 ### 防腐层 ### 领域服务 ### 数据流转  ### 上下文集成 ### 分离领域  ## 系统对接的外部数据 1. 外部数据来源,接收企业平台发送过来的数据。目前接收的是公司和员工的数据 主要内容在文件夹 partnermg/pkg/application/unifiedUserCenter, partnermg/pkg/port/beego/controller/sync_data_controller.go, partnermg/pkg/port/beego/routers/routers.go, 具体对接需要的数据格式文档地址: [yapi-企业平台-子系统对接](http://47.97.5.102:36666/project/187/interface/api) 2. 外部数据来源,接收香米小程序的订单,需要对接kafka消息。 主要内容在 partnermg/pkg/application/syncOrder, partnermg/pkg/port/consumer, 具体对接需要的数据格式文档地址: [yapi-合伙人-后端](http://47.97.5.102:36666/project/211/interface/api/9013) 3. 需要调用外部的api接口,调用企业平台,统一用户中心的接口 主要内容在 partnermg/pkg/infrastructure/serviceGateway ## 系统入口 - [测试环境--企业平台网站地址](https://enterprise-platform-dev.fjmaimaimai.com) - [开发环境--企业平台网站地址](https://enterprise-platform-local.fjmaimaimai.com) - 天联共创后台自身没有独立的登录入口,需要经过企业平台进行跳转登录 ## 标准产品组工具使用 - 设置全局变量(替换YOUR-USER-PATH为你真实的项目路径) 1.生成路径(项目生成路径):/YOUR-USER-PATH/GolandProjects/ 2.eggs根目录路径(领域描述语言DSL文档路径生成或引用路径):/YOUR-USER-PATH/GolandProjects/partnermg/document/ 3.egg名称(通常为项目名称,同样是DSL文件夹名称):partnermg - 应用描述语言生成 1.应用描述语言egg脚手架生成 2.生成属性(Attribute) 3.生成模式(Schema) 4.生成服务(Service) 5.生成接口(Api) - 具体工程生成 1.生成接口文档(OpenApi) 2.生成项目代码脚手架 3.生成领域模型 4.生成应用服务 5.生成Http协议接口 ## 建议 1. vendor 目前作用是存放依赖,加快在容器中的构建速度。 2. 有"go.mod"文件存在,可以直接删除vendor文件夹。不过相应的dockerfile 也要进行一定的修改。 3. vendor 文件夹如果不是迫不得已,请不要手动修改其中的文件!可以使用命令 “go mod vendor”。 如果手动修改vendor中的文件,需自行进行版本管理。(慎重考虑!慎重考虑!慎重考虑!)。