会员微服务设计文档

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

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

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


一、引言:

1.1 项目背景

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

1.2 术语定****义

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

表 2-1

编号术语名称术语定义
1B2B
2B2C
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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 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

参数:

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

返回:

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

4.3 会员基本信息删除

URL: http://host:8080/company

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用

返回:

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

4.4 会员基本信息修改

URL: http://host:8080/company

HTTP: PUT

参数:

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

返回:

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

4.5 会员营业执照信息查询

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

HTTP: POST

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
companyNameString营业执照的企业名称M
unifiedSocialCreditCodeString统一社会信用代码号M
registerOrgCodeString组织机构代码号M
registerBusinessNoString工商注册号M
registerAddressString注册地址M
registerCapitalString注册资本M
registerCurrencyString币种M
registerBeginDateDate经营期限/起M
registerEndDateDate经营期限/止M
legalPersonString法人姓名M
legalPersonIdnumString法人身份证号M
industry
String所属行业
M
businessScope
String经营(业务)范围
M

返回:

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

}

4.7 会员营业执照信息删除

URL: http://host:8080/businesslicenses

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
companyNameString营业执照的企业名称O
unifiedSocialCreditCodeString统一社会信用代码号O
registerOrgCodeString组织机构代码号O
registerBusinessNoString工商注册号O
registerAddressString注册地址O
registerCapitalString注册资本O
registerCurrencyString币种O
registerBeginDateDate经营期限/起O
registerEndDateDate经营期限/止O
legalPersonString法人姓名O
legalPersonIdnumString法人身份证号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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
businessTypeString业务类型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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
businessTypeString业务类型M
fromTypeString来源M
fileTypeString文件类型M
filePathString存储路径M
fileRealNameString文件真实名称M
fileStorageNameString文件存储名称M

返回:

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

}

4.11 会员附件信息删除

URL: http://host:8080/attachments

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
businessTypeString业务类型M
fromTypeString来源M
fileTypeString文件类型M
filePathString存储路径M
fileRealNameString文件真实名称M
fileStorageNameString文件存储名称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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
generalTaxpayerString一般纳税人1:是,0:否
corporationTaxString纳税人识别号
invoiceTypeString发票类型spcl、专票;ord、普票
invoiceAddressString开票地址
invoicePhoneString开票电话

返回:

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

}

4.15 会员发票信息删除

URL: http://host:8080 /invoices

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用

返回 1:

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

4.16 会员发票信息修改

URL: http://host:8080/attachments

HTTP: PUT

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
companyIdLong企业 IdM业务系统使用 companyId 登录作为 userId 使用
generalTaxpayerString一般纳税人1:是,0:否
corporationTaxString纳税人识别号
invoiceTypeString发票类型spcl、专票;ord、普票
invoiceAddressString开票地址
invoicePhoneString开票电话

返回 1:

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

4.17 会员联系人信息查询

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

HTTP: POST

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong企业 IdM
contactNameString联系人姓名O
contactMobileString联系人手机号O
contactDutyString联系人职务O
contactEmailString联系人邮箱O
contactTelephoneString联系人固话O

返回:

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

}

4.19 会员联系人信息删除

URL: http://host:8080/contacts

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 1:

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

4.20 会员联系人信息修改

URL: http://host:8080/contacts

HTTP: PUT

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong企业 IdM
contactNameString联系人姓名O
contactMobileString联系人手机号O
contactDutyString联系人职务O
contactEmailString联系人邮箱O
contactTelephoneString联系人固话O

返回 1:

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

4.21 会员收货地址信息查询

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

HTTP: POST

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 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

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM
addressLinkmanString联系人姓名O
linkmanMobileString联系人手机号O
provinceString省份O
cityString城市O
zoneString区县O
townString乡镇O
addressString地址O
addressDetailString详细地址O
postalCodeString邮政编码O
addressTypeString
地址类型O10:发票邮寄地址;20:收货地址

返回:

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

}

4.23 会员收货地址信息删除

URL: http://host:8080/address

HTTP: DELETE

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 1:

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

4.24 会员收货地址信息修改

URL: http://host:8080/address

HTTP: PUT

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM
addressLinkmanString联系人姓名O
linkmanMobileString联系人手机号O
provinceString省份O
cityString城市O
zoneString区县O
townString乡镇O
addressString地址O
addressDetailString详细地址O
postalCodeString邮政编码O
addressTypeString
地址类型O10:发票邮寄地址;20:收货地址

返回 1:

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

4.25 会员等级信息查询

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

HTTP: POST

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 1:

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

4.26 会员等级信息提交

URL: http://host:8080/level

HTTP: POST

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM
levelString等级O

返回:

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

}

4.27 会员等级信息修改

URL: http://host:8080/level

HTTP: PUT

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM
levelString等级O

返回 1:

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

4.28 会员积分信查询

URL: http://host:8080/points

HTTP: GET

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 1:

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

4.29 会员权益信查询

URL: http://host:8080/interests

HTTP: GET

参数:

参数名类型含义是否必传备注
tenantIdLong租户 IdM
productIdLong租户下的产品 IdM
memberIdLong会员 IdM

返回 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)

字段类型长度是否为空备注
idbigint12主键
user_idvarchar40用户 id
member_idvarchar40会员 id
company_idvarchar40企业 id
statechar1会员状态
typechar1会员类型 1 企业需方会员 2 企业供方会员 3 个人会员
remarkvarchar255
register_timedatetime注册日期
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
user_idvarchar40用户 id
company_idvarchar40企业 id
comapny_short_namechar1企业简称
company_english_namechar1英文名称
company_codevarchar255企业编码
company_typedatetime企业性质
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

6.3 企业背景信息(mi_company_background)

字段类型长度是否为空备注
idbigint12主键
company_idvarchar40企业 id
business_backgroundchar100企业背景
enterprise_sizevarchar10企业规模
enterprises_naturevarchar255企业性质
annual_salesvarchar10年销售额
local_rankingvarchar10当地排名
total_assetsvarchar10总资产
ownership_assetsvarchar10自有资产
employee_numbersvarchar10员工数量
annual_tax_paymentvarchar10年缴税额
product_varietiesvarchar需求产品品种
credit_ratingvarchar10资信等级
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
company_idvarchar40企业 id
company_namechar40企业名称
unified_social_credit_codevarchar40统一社会信用代码号
register_org_codevarchar40组织机构代码号
register_business_novarchar40工商注册号
register_addressvarchar40注册地址
register_capitalvarchar40注册资本
register_currencyvarchar10币种
register_begin_datedate0经营期限/起
register_end_datedate0经营期限/止
legal_personvarchar10法人代表
industryvarchar10所属行业
business_scopevarchar100经营(业务)范围
legal_person_idnumvarchar20法人身份证号
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
company_idvarchar40企业 id
general_taxpayerchar40一般纳税人;1:是,0:否
corporation_taxvarchar40纳税人识别号
invoice_typevarchar40发票类型;spcl、专票;ord、普票’
invoice_addressvarchar40开票地址
invoice_phonevarchar40开票电话
statevarchar40数据状态 0 未生效 1 生效
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
member_idvarchar40会员 id
contact_namechar40联系人姓名
contact_mobilevarchar11联系人手机号
contact_dutyvarchar10联系人职务
contact_emailvarchar40联系人邮箱
contact_telephonevarchar32联系人固话
user_typechar11 个人 2 是企业
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
member_idvarchar40会员 id
business_typechar40业务类型
from_typevarchar11来源(1001 商城 1003 crm)
file_typevarchar10文件类型(.jpg .png)
file_pathvarchar40存储路径
file_real_namevarchar32文件真实名称
file_storage_namechar1文件存储名称
remarkvarchar255备注
statechar1数据状态 0 未生效 1 生效
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
member_idvarchar40会员 id
address_linkmanchar40地址联系人
linkman_mobilevarchar11联系人手机号
provincevarchar10省份
cityvarchar40城市
zonevarchar32区县
townchar1乡镇
addressvarchar255地址
address_detailvarchar32详细地址
postal_codevarchar10邮政编码
address_typevarchar2地址类型
sequencechar1排序
statechar1数据状态 0 未生效 1 生效
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

6.9 会员等级(mi_level)

字段类型长度是否为空备注
idbigint12主键
member_idvarchar40会员 id
levelchar40等级
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

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

字段类型长度是否为空备注
idbigint12主键
user_idvarchar40
用户 Id
member_idvarchar40会员 id
nick_namevarchar40昵称
namevarchar11姓名
moblievarchar11电话
emailvarchar40邮箱
sexchar1性别
id_cardvarchar20身份证号
birthdayvarchar255生日
provincevarchar10省份
cityvarchar10城市
zonevarchar10
statechar1数据状态 0 未生效 1 生效
tenant_idbigint20租户 id
product_idbigint20产品 id
deletedchar1删除状态 1 正常 0 删除
gmt_create_timedatetime创建时间
gmt_modify_timedatetime修改时间
creatorvarchar20创建人
modifiervarchar20修改人

七、技术架构

7.1 系统分层架构图

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

在这里插入图片描述

7.2 技术选型

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

八、数据架构

8.1 持久化机制的选择

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

8.2 持久化存储方案

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

8.3 数据同步与复制策略

RDS 策略。

8.4 数据架构图

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

在这里插入图片描述

九、部署方案

Jenkins 部署阿里云

十、计划排期

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值