名称 最后更新
conf 正在载入提交数据...
deploy/k8s 正在载入提交数据...
document 正在载入提交数据...
pkg 正在载入提交数据...
test/integration 正在载入提交数据...
tmp 正在载入提交数据...
vendor 正在载入提交数据...
.air.toml 正在载入提交数据...
.gitignore 正在载入提交数据...
Dockerfile 正在载入提交数据...
README.md 正在载入提交数据...
go.mod 正在载入提交数据...
main.go 正在载入提交数据...
partnermg 正在载入提交数据...

合伙人管理后台项目

代码以及文档

服务端地址

测试开发环境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

系统架构图

diagram

项目整体

  • 项目使用框架

    • 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

值对象

聚合根

领域服务

领域事件

领域驱动设计工程实现

模块

领域对象

资源库

防腐层

领域服务

数据流转

avatar

上下文集成

分离领域

avatar

系统对接的外部数据

  1. 外部数据来源,接收企业平台发送过来的数据。目前接收的是公司和员工的数据 主要内容在文件夹 partnermg/pkg/application/unifiedUserCenter, partnermg/pkg/port/beego/controller/sync_data_controller.go, partnermg/pkg/port/beego/routers/routers.go, 具体对接需要的数据格式文档地址: yapi-企业平台-子系统对接

  2. 外部数据来源,接收香米小程序的订单,需要对接kafka消息。 主要内容在 partnermg/pkg/application/syncOrder, partnermg/pkg/port/consumer, 具体对接需要的数据格式文档地址: yapi-合伙人-后端

  3. 需要调用外部的api接口,调用企业平台,统一用户中心的接口 主要内容在 partnermg/pkg/infrastructure/serviceGateway

系统入口

标准产品组工具使用

  • 设置全局变量(替换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中的文件,需自行进行版本管理。(慎重考虑!慎重考虑!慎重考虑!)。