会员微服务设计文档

版本 修订人 备注 修改时间
V1.0 hamish 初稿 2019.12.26

本文设计文档为19年起草,上市公司会员中心设计概要,适合百万会员的会员中心业务,可以根据业务需要删减逻辑构建微服务,也可以增加业务逻辑构建会员中台。

设计思想实践了DDD, 整体多用了领域服务,没有严格意义的遵循DDD,偏向失血模型。
应用的时候根据自己业务需要改动。


一、引言:

1.1 项目背景

随着业务的扩展,多业务线都会使用到会员服务,为了避免重复开发功能,公司统一各个业务线的会员服务,设计构建会员中台,对接各个业务线。

1.2 术语定****义

本文当中涉及的专业术语定义或解释,一般可以表格形式给出,如表 2-1 所示。

表 2-1

编号 术语名称 术语定义
1 B2B
2 B2C
3 会员 注册激活的用户即为会员
4 企业会员 认证过企业工商营业执照信息的会员
5 个人会员 b2c 消费者会员

1.3 范围

本文档限定在用户中心服务领域,提供用户信息、管理、用户等级、积分公共服务

1.4 其他约定

  • 系统使用 restful 风格接口
  • 与业务系统 HTTP 交互,内网权限。
  • 业务系统根据 memberId 交互。

二、总体设计

2.1 需求概述

因公司业务线拓展,商城、金融、crm 都需要使用会员信息,crm 专注于客户前期线索管理,审批,需要构建一个多租户中台服务提供会员信息、等级、积分的功能。

2.2 基本设计描述

会员中台服务,使用领域驱动设计思想,微服务化多租户系统,会员域包括会员基本信息、会员附件,会员地址。对外提供 HTTP 服务,限制在内网访问,数据持久化使用 mysql.基于 springboot2.2.2 和 springcloud2.2.0 [Hoxton] 提供 HTTP 服务。

功能结构图:
在这里插入图片描述

2.3 主流程设计描述

2.3.1 企业会员信息提交

在这里插入图片描述

2.4 技术目标

  • SLO
    统计周期:1 个月

指标:

  • 基础日志文件(log) 从日志中看到程序运行状态

  • 响应时间(latency) : 99% 访问延迟 < 300ms

  • QPS: 115

  • 平均负载 :cpu: 40% 内存:50% (预估)

  • 错误率:5XX 状态小于 0.1%

  • 可用性:99.5%

  • SLA
    考核指标

三、模块设计

3.1 会员信息模块

会员信息模块,保存会员基本信息,企业会员的企业信息,个人会员的个人信息,会员信息的状态,配合 crm 和商城 实现会员信息提交,修改,会员信息审核,信息状态修改。

3.2 会员附件模块 #

会员信息附件模块,保存会员信息图片附件,图片上传服务暂时由各个业务线独立上传,附件模块保存上传后的信息

3.3 会员地址模块 #

会员地址模块,管理会员的多个收货地址,发票接收地址。

需要确认:收货地址是否有个数,发票地址是否有个数。

3.4 会员积分模块

会员积分,计算,更新 会员的积分

和 crm、商城 交互,支撑多个业务线的营销

积分计算规则由产品提供。

3.5 等级模块

会员等级,计算,更新会员等级信息,用于商城的会员的展示。

等级计算规则由产品提供。

3.6 会员权益模

提供会员权益的服务

四、接口设计

O 的意思是可选,英文缩写 Optional,表示可传可不传。

M 的意思是强制性的,英文缩写 Mandatory,表示是必传的域。

C 的意思是有条件的,英文缩写 Conditional,表示这个域根据条件传输,比如你有个协议是传输商

最新接口文档参见联调环境 swagger 文档

4.1 会员信息查询

URL: http://host:8080/company

HTTP: GET

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回:

{
  "code": 0,
  "data": {
    "companyFlag": "string",
    "companyName": "string",
    "companyType": "string",
    "creator": "string",
    "gmtCreateTime": "2019-12-30T01:26:12.824Z",
    "gmtModifyTime": "2019-12-30T01:26:12.824Z",
    "insertAttachmentReqsList": [
      {
        "businessType": 1,
        "channelId": 1000001,
        "filePath": "/path/123.jgg",
        "fileRealName": "/path/123.jgg",
        "fileStorageName": "123.jgg",
        "fileType": ".jpg",
        "fromType": 1001,
        "productId": 1001,
        "tenantId": 1000,
        "userId": 123456789
      }
    ],
    "legalPerson": "string",
    "legalPersonIdnum": "string",
    "memberId": "string",
    "modifier": "string",
    "registerTime": "2019-12-30T01:26:12.824Z",
    "state": "string",
    "unifiedSocialCreditCode": "string"
  },
  "message": "string",
  "success": true
}

4.2 会员基本信息提交

URL: http://host:8080/company

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
companyName String 营业执照的企业名称 M
unifiedSocialCreditCode String 统一社会信用代码号 M
legalPerson String 法人姓名 M
legalPersonIdnum String 法人身份证号 M
companyFlag
String 企业标识
M 企业标识 1、供方,2、需方,3、两者都是
companyType
String 企业性质
M wjlj01:集团内(杭萧关联公司);wjlj00:集团外(纯外部公司);wjlj02:参股公司

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
}

4.3 会员基本信息删除

URL: http://host:8080/company

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
}

4.4 会员基本信息修改

URL: http://host:8080/company

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
companyName String 营业执照的企业名称 O
unifiedSocialCreditCode String 统一社会信用代码号 O
legalPerson String 法人姓名 O
legalPersonIdnum String 法人身份证号 O
companyFlag
String 企业标识
O 企业标识 1、供方,2、需方,3、两者都是
companyType
String 企业性质
O wjlj01:集团内(杭萧关联公司);wjlj00:集团外(纯外部公司);wjlj02:参股公司

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
}

4.5 会员营业执照信息查询

URL: http://host:8080/businesslicenses/query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回 1:

{
  "code": 200,
  "data": {
    "businessScope": "string",
    "companyName": "string",
    "id": 0,
    "industry": "string",
    "legalPerson": "string",
    "legalPersonIdnum": "string",
    "registerAddress": "string",
    "registerBeginDate": "string",
    "registerBusinessNo": "string",
    "registerCapital": "string",
    "registerCurrency": "string",
    "registerEndDate": "string",
    "registerOrgCode": "string",
    "unifiedSocialCreditCode": "string"
  },
  "message": "操作成功",
  "success": true
}

返回 2:

{
    "data": null,
    "code": 414121,
    "message": "营业执照信息不存在~",
    "success": false
}   

4.6 会员营业执照信息提交

URL: http://host:8080/businesslicenses

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
companyName String 营业执照的企业名称 M
unifiedSocialCreditCode String 统一社会信用代码号 M
registerOrgCode String 组织机构代码号 M
registerBusinessNo String 工商注册号 M
registerAddress String 注册地址 M
registerCapital String 注册资本 M
registerCurrency String 币种 M
registerBeginDate Date 经营期限/起 M
registerEndDate Date 经营期限/止 M
legalPerson String 法人姓名 M
legalPersonIdnum String 法人身份证号 M
industry
String 所属行业
M
businessScope
String 经营(业务)范围
M

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.7 会员营业执照信息删除

URL: http://host:8080/businesslicenses

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }

返回 2:

{
    "data": null,
    "code": 414121,
    "message": "营业执照信息不存在~",
    "success": false
}   

4.8 会员营业执照信息修改

URL: http://host:8080/businesslicenses

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
companyName String 营业执照的企业名称 O
unifiedSocialCreditCode String 统一社会信用代码号 O
registerOrgCode String 组织机构代码号 O
registerBusinessNo String 工商注册号 O
registerAddress String 注册地址 O
registerCapital String 注册资本 O
registerCurrency String 币种 O
registerBeginDate Date 经营期限/起 O
registerEndDate Date 经营期限/止 O
legalPerson String 法人姓名 O
legalPersonIdnum String 法人身份证号 O
industry
String 所属行业
O
businessScope
String 经营(业务)范围
O

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

返回 2:

{
    "data": null,
    "code": 414121,
    "message": "营业执照信息不存在~",
    "success": false
}   

4.9 会员附件信息查询

URL: http://host:8080/attachments/query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
businessType String 业务类型 M

返回 1:

{
  "code": 200,
  "data": {
    "businessType": "string",
    "creator": "string",
    "deleted": "string",
    "filePath": "string",
    "fileRealName": "string",
    "fileStorageName": "string",
    "fileType": "string",
    "fromType": "string",
    "gmtCreateTime": "2019-12-30T02:58:02.941Z",
    "gmtModifyTime": "2019-12-30T02:58:02.941Z",
    "id": 0,
    "modifier": "string",
    "productId": 0,
    "remark": "string",
    "state": "string",
    "tenantId": 0,
    "userId": "string"
  },
  "message": "操作成功",
  "success": true
}

返回 2:

{
    "data": null,
    "code": 414111,
    "message": "附件不存在~",
    "success": false
}  

4.10 会员附件信息提交

URL: http://host:8080/attachments

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
businessType String 业务类型 M
fromType String 来源 M
fileType String 文件类型 M
filePath String 存储路径 M
fileRealName String 文件真实名称 M
fileStorageName String 文件存储名称 M

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.11 会员附件信息删除

URL: http://host:8080/attachments

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }

返回 2:

{
    "data": null,
    "code": 414111,
    "message": "附件不存在~",
    "success": false
} 

4.12 会员附件信息修改

URL: http://host:8080/attachments

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
businessType String 业务类型 M
fromType String 来源 M
fileType String 文件类型 M
filePath String 存储路径 M
fileRealName String 文件真实名称 M
fileStorageName String 文件存储名称 M

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

返回 2:

{
    "data": null,
    "code": 414111,
    "message": "附件不存在~",
    "success": false
}   

4.13 会员发票信息查询

URL: http://host:8080/invoices/query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回 1:

{
  "code": 200,
  "data": {
    "generalTaxpayer": "string",
    "corporationTax": "string",
    "invoiceType": "string",
    "invoiceAddress": "string",
    "invoicePhone": "string"
  },
  "message": "操作成功",
  "success": true
}

4.14 会员发票信息提交

URL: http://host:8080/invoices

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
generalTaxpayer String 一般纳税人 1:是,0:否
corporationTax String 纳税人识别号
invoiceType String 发票类型 spcl、专票;ord、普票
invoiceAddress String 开票地址
invoicePhone String 开票电话

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.15 会员发票信息删除

URL: http://host:8080 /invoices

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }

4.16 会员发票信息修改

URL: http://host:8080/attachments

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
companyId Long 企业 Id M 业务系统使用 companyId 登录作为 userId 使用
generalTaxpayer String 一般纳税人 1:是,0:否
corporationTax String 纳税人识别号
invoiceType String 发票类型 spcl、专票;ord、普票
invoiceAddress String 开票地址
invoicePhone String 开票电话

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

4.17 会员联系人信息查询

URL: http://host:8080/contacts/query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
  "code": 200,
  "data": {
    "generalTaxpayer": "string",
    "corporationTax": "string",
    "invoiceType": "string",
    "invoiceAddress": "string",
    "invoicePhone": "string"
  },
  "message": "操作成功",
  "success": true
}

4.18 会员联系人信息提交

URL: http://host:8080/contacts

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 企业 Id M
contactName String 联系人姓名 O
contactMobile String 联系人手机号 O
contactDuty String 联系人职务 O
contactEmail String 联系人邮箱 O
contactTelephone String 联系人固话 O

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.19 会员联系人信息删除

URL: http://host:8080/contacts

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }

4.20 会员联系人信息修改

URL: http://host:8080/contacts

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 企业 Id M
contactName String 联系人姓名 O
contactMobile String 联系人手机号 O
contactDuty String 联系人职务 O
contactEmail String 联系人邮箱 O
contactTelephone String 联系人固话 O

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

4.21 会员收货地址信息查询

URL: http://host:8080/address /query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
  "code": 200,
  "data": {
    "addressLinkman": "string",
    "linkmanMobile": "string",
    "province": "string",
    "city": "string",
    "zone": "string",
    "town": "string",
    "address": "string",
    "addressDetail": "string"
  },
  "message": "操作成功",
  "success": true
}

4.22 会员收货地址信息提交

URL: http://host:8080/address

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M
addressLinkman String 联系人姓名 O
linkmanMobile String 联系人手机号 O
province String 省份 O
city String 城市 O
zone String 区县 O
town String 乡镇 O
address String 地址 O
addressDetail String 详细地址 O
postalCode String 邮政编码 O
addressType String
地址类型 O 10:发票邮寄地址;20:收货地址

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.23 会员收货地址信息删除

URL: http://host:8080/address

HTTP: DELETE

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }

4.24 会员收货地址信息修改

URL: http://host:8080/address

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M
addressLinkman String 联系人姓名 O
linkmanMobile String 联系人手机号 O
province String 省份 O
city String 城市 O
zone String 区县 O
town String 乡镇 O
address String 地址 O
addressDetail String 详细地址 O
postalCode String 邮政编码 O
addressType String
地址类型 O 10:发票邮寄地址;20:收货地址

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

4.25 会员等级信息查询

URL: http://host:8080/level /query

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
  "code": 200,
  "data": {
    "level": "string"
  },
  "message": "操作成功",
  "success": true
}

4.26 会员等级信息提交

URL: http://host:8080/level

HTTP: POST

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M
level String 等级 O

返回:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true

}

4.27 会员等级信息修改

URL: http://host:8080/level

HTTP: PUT

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M
level String 等级 O

返回 1:

{
    "data": null,
    "code": 200,
    "message": "操作成功",
    "success": true
 }   

4.28 会员积分信查询

URL: http://host:8080/points

HTTP: GET

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
  "code": 200,
  "data": {
    "pointAll": "string"
  },
  "message": "操作成功",
  "success": true
}

4.29 会员权益信查询

URL: http://host:8080/interests

HTTP: GET

参数:

参数名 类型 含义 是否必传 备注
tenantId Long 租户 Id M
productId Long 租户下的产品 Id M
memberId Long 会员 Id M

返回 1:

{
  "code": 200,
  "data": {
    
  },
  "message": "操作成功",
  "success": true
}

五、领域划分

5.1 领域划分

5.1.1 会员信息域

5.1.2 企业信息域

5.1.2 个人信息域

5.1.3 会员信息附件域

5.1.4 会员信息地址域

5.1.5 会员积分域

5.1.6 会员等级域

5.1.7 会员权益

5.2 领域模型图

图 5-1 会员中心领域模型图
在这里插入图片描述

六、数据库****设计

6.1 会员表(mi_member)

字段 类型 长度 是否为空 备注
id bigint 12 主键
user_id varchar 40 用户 id
member_id varchar 40 会员 id
company_id varchar 40 企业 id
state char 1 会员状态
type char 1 会员类型 1 企业需方会员 2 企业供方会员 3 个人会员
remark varchar 255
register_time datetime 注册日期
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.2 企业会员 基本信息(mi_company_info)

字段 类型 长度 是否为空 备注
id bigint 12 主键
user_id varchar 40 用户 id
company_id varchar 40 企业 id
comapny_short_name char 1 企业简称
company_english_name char 1 英文名称
company_code varchar 255 企业编码
company_type datetime 企业性质
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.3 企业背景信息(mi_company_background)

字段 类型 长度 是否为空 备注
id bigint 12 主键
company_id varchar 40 企业 id
business_background char 100 企业背景
enterprise_size varchar 10 企业规模
enterprises_nature varchar 255 企业性质
annual_sales varchar 10 年销售额
local_ranking varchar 10 当地排名
total_assets varchar 10 总资产
ownership_assets varchar 10 自有资产
employee_numbers varchar 10 员工数量
annual_tax_payment varchar 10 年缴税额
product_varieties varchar 需求产品品种
credit_rating varchar 10 资信等级
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.4 企业会员营业执照信息(mi_business_license)

字段 类型 长度 是否为空 备注
id bigint 12 主键
company_id varchar 40 企业 id
company_name char 40 企业名称
unified_social_credit_code varchar 40 统一社会信用代码号
register_org_code varchar 40 组织机构代码号
register_business_no varchar 40 工商注册号
register_address varchar 40 注册地址
register_capital varchar 40 注册资本
register_currency varchar 10 币种
register_begin_date date 0 经营期限/起
register_end_date date 0 经营期限/止
legal_person varchar 10 法人代表
industry varchar 10 所属行业
business_scope varchar 100 经营(业务)范围
legal_person_idnum varchar 20 法人身份证号
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.5企业会员发票信息**(mi_invoice)**

字段 类型 长度 是否为空 备注
id bigint 12 主键
company_id varchar 40 企业 id
general_taxpayer char 40 一般纳税人;1:是,0:否
corporation_tax varchar 40 纳税人识别号
invoice_type varchar 40 发票类型;spcl、专票;ord、普票’
invoice_address varchar 40 开票地址
invoice_phone varchar 40 开票电话
state varchar 40 数据状态 0 未生效 1 生效
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.6会员联系人信息**(mi_contacts)**

字段 类型 长度 是否为空 备注
id bigint 12 主键
member_id varchar 40 会员 id
contact_name char 40 联系人姓名
contact_mobile varchar 11 联系人手机号
contact_duty varchar 10 联系人职务
contact_email varchar 40 联系人邮箱
contact_telephone varchar 32 联系人固话
user_type char 1 1 个人 2 是企业
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.7附件信息**(mi_attachment)**

字段 类型 长度 是否为空 备注
id bigint 12 主键
member_id varchar 40 会员 id
business_type char 40 业务类型
from_type varchar 11 来源(1001 商城 1003 crm)
file_type varchar 10 文件类型(.jpg .png)
file_path varchar 40 存储路径
file_real_name varchar 32 文件真实名称
file_storage_name char 1 文件存储名称
remark varchar 255 备注
state char 1 数据状态 0 未生效 1 生效
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.8会员收货地址**(mi_address)**

字段 类型 长度 是否为空 备注
id bigint 12 主键
member_id varchar 40 会员 id
address_linkman char 40 地址联系人
linkman_mobile varchar 11 联系人手机号
province varchar 10 省份
city varchar 40 城市
zone varchar 32 区县
town char 1 乡镇
address varchar 255 地址
address_detail varchar 32 详细地址
postal_code varchar 10 邮政编码
address_type varchar 2 地址类型
sequence char 1 排序
state char 1 数据状态 0 未生效 1 生效
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.9 会员等级(mi_level)

字段 类型 长度 是否为空 备注
id bigint 12 主键
member_id varchar 40 会员 id
level char 40 等级
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

6.1****0 自然人会员**(mi_person_info)**

字段 类型 长度 是否为空 备注
id bigint 12 主键
user_id varchar 40
用户 Id
member_id varchar 40 会员 id
nick_name varchar 40 昵称
name varchar 11 姓名
moblie varchar 11 电话
email varchar 40 邮箱
sex char 1 性别
id_card varchar 20 身份证号
birthday varchar 255 生日
province varchar 10 省份
city varchar 10 城市
zone varchar 10
state char 1 数据状态 0 未生效 1 生效
tenant_id bigint 20 租户 id
product_id bigint 20 产品 id
deleted char 1 删除状态 1 正常 0 删除
gmt_create_time datetime 创建时间
gmt_modify_time datetime 修改时间
creator varchar 20 创建人
modifier varchar 20 修改人

七、技术架构

7.1 系统分层架构图

图7-1 会员中心技术架构图

在这里插入图片描述

7.2 技术选型

技术栈 用途说明
SpringBoot2.2.2
SpringCloud2.2.0[Hoxton] Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)
Nacos 配置中心、服务注册中心
Mybatis-plus Mybatis 功能加强,分页
Mysql 关系型数据库,数据持久化,业务数据存储

八、数据架构

8.1 持久化机制的选择

Redis 缓存,MySQL 数据库持久化。Mysql 使用阿里云 RDS。建议DBA 搭建MySQL 集群

8.2 持久化存储方案

mybatis-plus + Mysql 持久存储业务数据。

8.3 数据同步与复制策略

RDS 策略。

8.4 数据架构图

图8-1 会员中心数据架构图

在这里插入图片描述

九、部署方案

Jenkins 部署阿里云

十、计划排期

猜你喜欢

转载自blog.csdn.net/keep_learn/article/details/121942991
今日推荐