数据库结构设计
1. 概述
| 项 | 说明 |
|---|---|
| Entity 总数 | 以 src/**/Entities 为准 |
| 核心表 | 下文按域精选(部分表字段详述) |
| 域分组 | 按 src/*Bundle 业务域分 8 组(平台基础、商品、订单/交易、支付、会员/营销、渠道/店铺、微信/社交、第三方/ERP) |
| 数据源 | src/**/Entities 注解 |
2. 数据库与 Doctrine 配置
2.1 配置文件
| 文件 | 作用 |
|---|---|
config/database.php | 默认连接名 env('DB_CONNECTION', 'default');connections 由 config_ext('database') 按驱动加载 |
config/database.ext.php | 定义 MySQL / 主从下的多个 Laravel DB 连接 |
config/doctrine.php | Doctrine Entity Manager;仅注册 default 一个 manager |
2.2 七个数据库连接名
config/database.ext.php 的 mysql(及 master_slave)下声明了以下连接:
| 连接名 | prefix 配置值 | 说明 |
|---|---|---|
default | ''(空) | 主业务连接;Doctrine 与多数 Repository 使用 |
companys | companys | Laravel DB 连接级前缀(非 ORM 表名自动拼接) |
datacube | datacube | 同上 |
kaquan | kaquan | 同上 |
members | members | 同上 |
orders | orders | 同上 |
wechat | wechat | 同上 |
注意:
- Doctrine 只有一个 Entity Manager:
default(见config/doctrine.php→managers.default)。路径扫描base_path('src'),元数据驱动为 annotations。 - 上述
prefix是 Laravel/Illuminate 数据库连接上的表前缀配置,用于部分 DBAL/getConnection('xxx')场景;不要理解为「Doctrine ORM 会给所有 Entity 自动加前缀」。 - 当前未启用
TablePrefixExtension;表名以 Entity@ORM\Table为准(例如orders_normal_orders、kaquan_discount_cards)。 - 主从模式下连接结构相同,凭
DB_MASTER/DB_SLAVESJSON 配置读写分离。
3. 命名与设计规范
3.1 无统一表前缀
本仓库没有统一的全局表前缀。物理表名即 Entity @ORM\Table 中的 name,写法多样:无前缀(items、members、trade)、域前缀(orders_*、companys_*)、业务前缀(kaquan_*、thirdparty_*)等。同一 Bundle 内也可能有前缀/无前缀并存,以 Entity 为准。
3.2 多租户键 company_id
绝大多数业务表带有 company_id(公司/租户 ID),查询与写入需带租户条件。主键命名随域而异(如 item_id、order_id、user_id、aftersales_bn),并非统一 id。
3.3 金额单位
金额类字段在 Entity comment 中常见「以分为单位」;文档与代码对照时以 Column comment 为准,勿默认「元」。
4. 核心表按域
4.1 平台基础(EspierBundle、CompanysBundle、ThemeBundle、DataCubeBundle 等)
企业主体、后台账号、开放 API、菜单/装修/监控等平台能力。相关 Bundle:CompanysBundle、OpenapiBundle、SuperAdminBundle、DataCubeBundle、ThemeBundle、EspierBundle 等。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
companys | Companys | CompanysBundle | Y | 多租户公司主体 |
companys_setting | Setting | CompanysBundle | Y | 企业级配置 |
operators | Operators | CompanysBundle | Y | 后台员工账号 |
openapi_developer | OpenapiDeveloper | OpenapiBundle | Y | 开放 API 开发者配置 |
shop_menu | ShopMenu | SuperAdminBundle | N | 商家/平台端菜单 |
datacube_monitors | Monitors | DataCubeBundle | N | 小程序页面监控 |
pages_template | PagesTemplate | ThemeBundle | N | 页面装修模板 |
espier_address | Address | EspierBundle | N | 省市区地区字典 |
super_admin_accounts | Accounts | SuperAdminBundle | N | 平台超管账号 |
companys — Companys(公司表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | companys / CompanysBundle\Entities\Companys |
| 主键 / 租户键 | 主键 company_id(即租户 ID) |
| 路径 | src/CompanysBundle/Entities/Companys.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
company_id | bigint | 公司id |
company_name | string | 公司名称 |
pc_domain | string | PC域名 |
h5_domain | string | H5域名 |
company_admin_operator_id | bigint | 公司管理员id |
industry | string | 所属行业 |
expiredAt | bigint | 过期时间 |
is_disabled | boolean | 是否禁用 |
third_params | json_array | 第三方特殊字段存储 |
salesman_limit | integer | 导购员数量 |
menu_type | integer | 菜单类型。2:'b2c',3:'platform',4:'standard',5:'in_purchase' |
关联说明:company_admin_operator_id → operators.operator_id;业务表普遍以 company_id 引用本表。
companys_setting — Setting(企业设置表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | companys_setting / CompanysBundle\Entities\Setting |
| 主键 / 租户键 | 主键 company_id |
| 路径 | src/CompanysBundle/Entities/Setting.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
company_id | bigint | 公司id |
community_config | text | 社区相关设置 |
withdraw_bank | text | 提现支持银行类型 |
consumer_hotline | string | 客服电话 |
customer_switch | integer | 客服开关 |
fapiao_config | text | 发票相关设置 |
fapiao_switch | integer | 发票开关 |
关联说明:与 companys 一对一(同 company_id)。
operators — Operators(账号表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | operators / CompanysBundle\Entities\Operators |
| 主键 / 租户键 | 主键 operator_id;租户 company_id |
| 路径 | src/CompanysBundle/Entities/Operators.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
operator_id | bigint | 账号id |
company_id | bigint | 公司id |
mobile | string | 手机号 |
login_name | string | 员工账号名 |
username | string | 名称 |
operator_type | string | 操作员类型类型。admin:超级管理员;staff:员工;distributor:店铺管理员;dealer:经销商;merchant:商户;supplier:供应商;self_delivery_staff:自配送员 |
distributor_ids | text | 员工管理的店铺id集合 |
shop_ids | text | 员工管理的门店id集合 |
merchant_id | bigint | 商户id |
regionauth_id | bigint | 区域id |
shopex_bind_account | string | 可选绑定 Shopex 登录账号 |
关联说明:company_id → companys;merchant_id → merchant;distributor_ids 为店铺 ID 集合文本。
openapi_developer — OpenapiDeveloper(openapi开发配置表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | openapi_developer / OpenapiBundle\Entities\OpenapiDeveloper |
| 主键 / 租户键 | 主键 developer_id;租户 company_id |
| 路径 | src/OpenapiBundle/Entities/OpenapiDeveloper.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
developer_id | bigint | developer_id |
company_id | bigint | 公司id |
app_key | string | app_key |
app_secret | string | app_secret |
external_base_uri | string | 外部请求配置uri |
external_app_key | string | 外部请求配置app_key |
external_app_secret | string | 外部请求配置app_secret |
关联说明:按 company_id 归属企业;OpenAPI 鉴权读取 app_key / app_secret。
4.2 商品(GoodsBundle、PointsmallBundle、CommentsBundle 等)
商品 SPU/SKU、分类、属性、评价与积分商城商品。相关 Bundle:GoodsBundle、CommentsBundle、PointsmallBundle 等。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
items | Items | GoodsBundle | Y | 商品 SPU/SKU 主表 |
items_category | ItemsCategory | GoodsBundle | Y | 商品分类 |
items_attributes | ItemsAttributes | GoodsBundle | Y | 商品规格属性 |
goods_items_rel_cats | ItemsRelCats | GoodsBundle | N | 商品-分类关联 |
items_rel_attributes | ItemRelAttributes | GoodsBundle | N | 商品-属性值关联 |
shop_comments | ShopComments | CommentsBundle | N | 店铺/商品评价 |
pointsmall_items | PointsmallItems | PointsmallBundle | N | 积分商城商品 |
items — Items(商品表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | items / GoodsBundle\Entities\Items |
| 主键 / 租户键 | 主键 item_id;租户 company_id |
| 路径 | src/GoodsBundle/Entities/Items.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
item_id | bigint | 商品ID |
company_id | bigint | 公司ID |
goods_id | bigint | 产品ID |
item_name | string | 商品名称 |
item_bn | string | 商品编号 |
item_type | string | 商品类型,services:服务商品,normal: 普通商品 |
price | integer | 销售价,单位为‘分’ |
market_price | integer | 原价,单位为‘分’ |
store | integer | 库存 |
approve_status | string | 商品状态 onsale 前台可销售,offline_sale前端不展示,instock 不可销售, only_show 前台仅展示 |
distributor_id | integer | 店铺id,为0时表示该商品为商城商品,否则为店铺自有商品 |
supplier_id | integer | 供应商id |
is_default | boolean | 商品是否为默认商品 |
nospec | string | 商品是否为单规格 |
brief | string | 简洁的描述 |
关联说明:company_id → companys;distributor_id → distribution_distributor;supplier_id → supplier;分类经 goods_items_rel_cats / item_category 关联;订单明细 orders_normal_orders_items.item_id 引用本表。
items_category — ItemsCategory(商品分类表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | items_category / GoodsBundle\Entities\ItemsCategory |
| 主键 / 租户键 | 主键 category_id;租户 company_id |
| 路径 | src/GoodsBundle/Entities/ItemsCategory.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
category_id | bigint | 商品分类id |
company_id | bigint | 公司ID |
category_name | string | 分类名称 |
category_code | string | 分类编码 |
parent_id | bigint | 父级id, 0为顶级 |
category_level | integer | 商品分类等级 |
path | string | 路径 |
is_main_category | boolean | 是否为商品主类目 |
is_show_front | smallint | 是否前台展示 |
distributor_id | bigint | 店铺ID |
sort | bigint | 排序 |
commission_ratio | integer | 佣金比例 |
关联说明:树形自关联(parent_id);goods_items_rel_cats 关联商品与分类。
items_attributes — ItemsAttributes(商品属性表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | items_attributes / GoodsBundle\Entities\ItemsAttributes |
| 主键 / 租户键 | 主键 attribute_id;租户 company_id |
| 路径 | src/GoodsBundle/Entities/ItemsAttributes.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
attribute_id | bigint | 商品属性id |
company_id | bigint | 公司ID |
attribute_name | string | 商品属性名称 |
attribute_type | string | 商品属性类型 unit单位,brand品牌,item_params商品参数, item_spec规格 |
attribute_show | string | 属性展示方式 select 下拉 input 平铺 |
attribute_memo | string | 商品属性备注 |
shop_id | bigint | 店铺ID,如果为0则表示总部 |
distributor_id | bigint | 店铺ID |
is_show | string | 是否用于筛选 |
is_image | string | 属性是否需要配置图片 |
attribute_code | string | oms 规格编码 |
关联说明:商品取值关联见 items_rel_attributes。
4.3 订单 / 交易 / 售后(OrdersBundle、AftersalesBundle、DepositBundle 等)
实体订单、交易单、售后、购物车、发货、预约/定金/跨境等。相关 Bundle:OrdersBundle、AftersalesBundle、ReservationBundle、DepositBundle、CrossBorderBundle。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
orders_normal_orders | NormalOrders | OrdersBundle | Y | 实体订单主表 |
orders_normal_orders_items | NormalOrdersItems | OrdersBundle | Y | 订单明细 |
trade | Trade | OrdersBundle | Y | 交易单(支付域通用交易代表) |
aftersales | Aftersales | AftersalesBundle | Y | 售后主表 |
aftersales_detail | AftersalesDetail | AftersalesBundle | N | 售后明细 |
aftersales_refund | AftersalesRefund | AftersalesBundle | N | 退款记录 |
orders_cart | Cart | OrdersBundle | N | 购物车 |
orders_delivery | OrdersDelivery | OrdersBundle | N | 发货单 |
orders_rel_promotions | OrderPromotions | OrdersBundle | N | 订单-促销关联 |
reservation_record | ReservationRecord | ReservationBundle | N | 预约记录 |
deposit_trade | DepositTrade | DepositBundle | N | 预存款/定金交易 |
crossborder_identity | CrossBorderIdentity | CrossBorderBundle | N | 跨境实名信息 |
orders_normal_orders — NormalOrders(实体订单表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | orders_normal_orders / OrdersBundle\Entities\NormalOrders |
| 主键 / 租户键 | 主键 order_id;租户 company_id |
| 路径 | src/OrdersBundle/Entities/NormalOrders.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
order_id | bigint | 订单号 |
company_id | bigint | 公司id |
user_id | bigint | 用户id |
order_status | string | 订单状态。可选值有 DONE—订单完成;NOTPAY—未支付;PART_PAYMENT-部分付款;WAIT_GROUPS_SUCCESS-等待拼团成功;PAYED-已支付;CANCEL—已取消;WAIT_BUYER_CONFIRM-待用户收货 |
pay_status | string | 支付状态。可选值有 NOTPAY—未支付;PAYED-已支付;ADVANCE_PAY-预付款完成;TAIL_PAY-支付尾款中 |
delivery_status | string | 发货状态。可选值有 DONE—已发货;PENDING—待发货;PARTAIL-部分发货 |
order_type | string | 订单类型。可选值有 normal:普通实体订单 |
total_fee | string | 订单金额,以分为单位 |
item_fee | string | 商品金额,以分为单位 |
freight_fee | integer | 运费价格,以分为单位 |
distributor_id | bigint | 分销商id |
mobile | string | 手机号 |
receiver_name | string | 收货人姓名 |
receiver_mobile | string | 收货人手机号 |
create_time | integer | 订单创建时间 |
关联说明:user_id → members.user_id;明细 → orders_normal_orders_items.order_id;支付 → trade.order_id;售后 → aftersales.order_id;distributor_id → distribution_distributor。
orders_normal_orders_items — NormalOrdersItems(实体订单明细表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | orders_normal_orders_items / OrdersBundle\Entities\NormalOrdersItems |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/OrdersBundle/Entities/NormalOrdersItems.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | ID |
order_id | bigint | 订单号 |
company_id | bigint | 公司id |
user_id | bigint | 用户id |
item_id | bigint | 商品id |
goods_id | bigint | 产品id |
item_bn | string | 商品编码 |
item_name | string | 商品名称 |
price | integer | 单价,以分为单位 |
distributor_id | bigint | 分销商id |
supplier_id | integer | 供应商id |
shop_id | bigint | 门店id |
act_id | bigint | 营销活动ID,团购ID,社区拼团ID,秒杀活动ID等 |
关联说明:order_id → orders_normal_orders;item_id → items。
trade — Trade(交易单表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | trade / OrdersBundle\Entities\Trade |
| 主键 / 租户键 | 主键 trade_id;租户键字段 company_id(类型为 string) |
| 路径 | src/OrdersBundle/Entities/Trade.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
trade_id | string | 交易单号 |
order_id | string | 订单号 |
company_id | string | 企业ID |
user_id | string | 购买用户 |
trade_source_type | string | 交易单来源类型。可选值有 membercard-会员卡购买;normal-实体订单购买;servers-服务订单购买;normal_community-社区订单购买;diposit-预存款购买;order_pay-买单购买; |
total_fee | integer | 应付总金额,以分为单位 |
pay_fee | integer | 支付金额 |
trade_state | string | 交易状态。可选值有 SUCCESS—支付成功;REFUND—转入退款;NOTPAY—未支付;CLOSED—已关闭;REVOKED—已撤销;PAYERROR--支付失败(其他原因,如银行返回失败) |
pay_type | string | 支付方式。wxpay-微信支付;deposit-预存款支付;pos-刷卡;point-积分 |
transaction_id | string | 支付订单号 |
mch_id | string | 商户号,微信支付 |
mobile | string | 购买用户手机号 |
open_id | string | 用户open_id |
distributor_id | string | 店铺ID |
discount_info | text | 优惠金额,优惠金额,优惠原因json结构 |
关联说明:order_id 关联订单(实体订单场景对应 orders_normal_orders.order_id);user_id → 会员;通道确认单等通过 order_id / transaction_id 与 AdaPay 等通道表衔接。
aftersales — Aftersales(售后主表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | aftersales / AftersalesBundle\Entities\Aftersales |
| 主键 / 租户键 | 主键 aftersales_bn;租户 company_id |
| 路径 | src/AftersalesBundle/Entities/Aftersales.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
aftersales_bn | bigint | 售后单号 |
order_id | bigint | 订单号 |
company_id | bigint | 公司id |
user_id | bigint | 用户id |
aftersales_type | string | 售后服务类型 |
aftersales_status | integer | 售后状态 |
progress | integer | 处理进度 |
refund_fee | integer | 应退总金额,单位(分) |
item_bn | string | 商品编码 |
distributor_id | bigint | 分销商id |
reason | string | 申请售后原因 |
mobile | string | 手机号 |
return_type | string | 退货方式:logistics寄回 offline到店退 |
merchant_id | bigint | 商户id |
关联说明:order_id → orders_normal_orders;明细/退款见 aftersales_detail、aftersales_refund;user_id → members。
4.4 支付(PaymentBundle 无 Entity;AdaPayBundle、BsPayBundle 等)
PaymentBundle 无 Entity;通用交易见 §4.3 trade。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
adapay_paymemt_confirm | AdapayPaymemtConfirm | AdaPayBundle | Y | AdaPay 支付确认 |
bspay_entry_apply | EntryApply | BsPayBundle | Y | 汇付斗拱开户进件 |
chinaumspay_division | ChinaumspayDivision | ChinaumsPayBundle | Y | 银联商务分账流水 |
offline_payment | OfflinePayment | OrdersBundle | N | 线下转账支付订单 |
orders_rel_chinaumspay_division | OrdersRelChinaumspayDivision | OrdersBundle | N | 订单-银联分账关联 |
adapay_paymemt_confirm — AdapayPaymemtConfirm(adapay支付确认表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | adapay_paymemt_confirm / AdaPayBundle\Entities\AdapayPaymemtConfirm |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/AdaPayBundle/Entities/AdapayPaymemtConfirm.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | ID |
company_id | bigint | 公司id |
order_id | string | 订单id |
distributor_id | bigint | 店铺id |
payment_id | string | Adapay生成的支付对象id 对应order表的transaction_id |
payment_confirmation_id | string | 支付确认id |
order_no | string | 支付确认请求订单号 |
confirm_amt | string | 确认金额 单位:元 |
div_members | text | 分账对象信息列表 json |
status | string | 交易状态 |
request_params | text | 请求参数 json |
response_params | text | 响应参数 json |
create_time | integer | 创建时间 |
update_time | integer | 更新时间 |
关联说明:order_id / payment_id 与订单及 trade.transaction_id 衔接(comment 写明对应 order 表的 transaction_id)。
bspay_entry_apply — EntryApply(开户申请表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | bspay_entry_apply / BsPayBundle\Entities\EntryApply |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/BsPayBundle/Entities/EntryApply.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | ID |
company_id | bigint | 公司id |
user_name | string | 用户名 |
user_id | string | 开户进件ID |
operator_id | integer | 操作者id |
operator_type | string | 操作者类型:distributor-店铺;dealer-经销;promoter-推广员 |
user_type | string | 进件类型 |
address | string | 所属地区 |
comments | text | 审批意见 |
status | string | WAIT_APPROVE;APPROVED;REJECT |
关联说明:进件主体通过 operator_type + operator_id 关联店铺/经销/推广员;非订单支付流水表。
chinaumspay_division — ChinaumspayDivision(银联商务支付分账流水)
| 项 | 内容 |
|---|---|
| 表名 / Entity | chinaumspay_division / ChinaumsPayBundle\Entities\ChinaumspayDivision |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/ChinaumsPayBundle/Entities/ChinaumspayDivision.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | ID |
company_id | bigint | 公司id |
distributor_id | bigint | 店铺ID |
total_fee | string | 订单金额,以分为单位 |
actual_fee | string | 订单实际金额,以分为单位 |
commission_rate_fee | integer | 收单手续费金额,以分为单位 |
division_fee | integer | 分账金额,以分为单位 |
create_time | integer | 订单创建时间 |
update_time | integer | 订单更新时间 |
关联说明:distributor_id → 店铺;订单侧关联见 orders_rel_chinaumspay_division。
4.5 会员 / 营销(MembersBundle、KaquanBundle、PromotionsBundle、EmployeePurchaseBundle 等)
会员主数据、地址、卡券、积分、促销与推广。相关 Bundle:MembersBundle、KaquanBundle、PointBundle、PromotionsBundle、PopularizeBundle、EmployeePurchaseBundle 等。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
members | Members | MembersBundle | Y | 会员主表 |
members_info | MembersInfo | MembersBundle | Y | 会员扩展资料 |
members_address | MembersAddress | MembersBundle | Y | 收货地址 |
kaquan_discount_cards | DiscountCards | KaquanBundle | Y | 优惠券模板 |
kaquan_user_discount | UserDiscount | KaquanBundle | N | 用户已领优惠券 |
point_member | PointMember | PointBundle | N | 会员积分余额 |
point_member_log | PointMemberLog | PointBundle | N | 积分流水 |
promotions_marketing_activity | MarketingActivity | PromotionsBundle | N | 营销活动 |
promotions_seckill_activity | SeckillActivity | PromotionsBundle | N | 秒杀活动 |
popularize_promoter | Promoter | PopularizeBundle | N | 推广员 |
employee_purchase_activities | Activities | EmployeePurchaseBundle | N | 员工内购活动 |
members — Members(会员主表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | members / MembersBundle\Entities\Members |
| 主键 / 租户键 | 主键 user_id;租户 company_id |
| 路径 | src/MembersBundle/Entities/Members.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
user_id | bigint | (主键,注解无额外 comment) |
company_id | bigint | (租户键) |
mobile | string | (手机号) |
region_mobile | string | 带区号的手机号 |
mobile_country_code | string | 手机号的区号 |
password | string | 密码 |
login_email | string | 登录邮箱(小写) |
grade_id | bigint | (会员等级) |
inviter_id | bigint | 推荐人id |
source_from | string | 来源类型 default默认 |
disabled | boolean | 是否禁用。0:可用;1:禁用 |
authorizer_appid | string | (微信授权 appid) |
created | integer | |
updated | integer |
关联说明:订单/售后/地址等以 user_id 引用;扩展信息见 members_info(同 user_id)。
members_info — MembersInfo(会员详情信息表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | members_info / MembersBundle\Entities\MembersInfo |
| 主键 / 租户键 | 主键 user_id;租户 company_id |
| 路径 | src/MembersBundle/Entities/MembersInfo.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
user_id | bigint | 用户id |
company_id | bigint | 公司id |
username | string | 姓名 |
name | string | 名称 |
avatar | string | 头像 |
sex | smallint | 性别。0 未知 1 男 2 女 |
birthday | string | 出生日期 |
address | string | 家庭住址 |
email | string | 常用邮箱 |
have_consume | boolean | 是否有消费 |
dm_member_id | string | 达摩CRM会员id |
关联说明:与 members 一对一(user_id)。
members_address — MembersAddress(会员收货地址表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | members_address / MembersBundle\Entities\MembersAddress |
| 主键 / 租户键 | 主键 address_id;租户 company_id |
| 路径 | src/MembersBundle/Entities/MembersAddress.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
address_id | bigint | id |
company_id | bigint | 公司id |
user_id | bigint | 用户id |
username | string | 收货人 |
telephone | string | 手机号码 |
province | string | 地区:省 |
city | string | 地区:市 |
county | string | 地区:区 |
adrdetail | string | 详细地址 |
postalCode | string | 邮编 |
is_def | boolean | 是否默认地址 |
lng | string | 腾讯地图纬度 |
lat | string | 腾讯地图经度 |
关联说明:user_id → members。
kaquan_discount_cards — DiscountCards(优惠券信息表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | kaquan_discount_cards / KaquanBundle\Entities\DiscountCards |
| 主键 / 租户键 | 主键 card_id;租户 company_id |
| 路径 | src/KaquanBundle/Entities/DiscountCards.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
card_id | bigint | 卡券id |
company_id | bigint | 公司id |
card_type | string | 卡券类型,可选值有,discount:折扣券;cash:代金券;gift:兑换券;new_gift:兑换券(新) |
title | string | 卡券名,最大9个汉字 |
brand_name | string | 商户名称 |
logo_url | string | 卡券商户 logo |
notice | string | 卡券使用提醒,最大16汉字 |
description | text | 卡券使用说明 |
date_type | string | 有效期的类型 |
begin_date | integer | 有效期开始时间 |
end_date | integer | 有效期结束时间 |
distributor_id | text | 店铺id |
dm_card_id | string | 达摩CRM卡券ID |
关联说明:用户领券见 kaquan_user_discount;同 Bundle 内表名前缀写法以 Entity 为准。
4.6 渠道 / 店铺(DistributionBundle、MerchantBundle、SupplierBundle 等)
分销店铺、商户、供应商、导购与自助终端。相关 Bundle:DistributionBundle、MerchantBundle、SupplierBundle、SalespersonBundle、SelfserviceBundle。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
distribution_distributor | Distributor | DistributionBundle | Y | 分销店铺主表 |
merchant | Merchant | MerchantBundle | Y | 商户主体 |
supplier | Supplier | SupplierBundle | Y | 供应商档案 |
shop_salesperson | ShopSalesperson | SalespersonBundle | N | 门店导购员 |
distribution_distribute_logs | DistributeLogs | DistributionBundle | N | 分销佣金记录 |
distribution_cash_withdrawal | CashWithdrawal | DistributionBundle | N | 分销商提现 |
selfservice_form_template | FormTemplate | SelfserviceBundle | N | 自助终端表单模板 |
distribution_distributor — Distributor(店铺表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | distribution_distributor / DistributionBundle\Entities\Distributor |
| 主键 / 租户键 | 主键 distributor_id;租户 company_id |
| 路径 | src/DistributionBundle/Entities/Distributor.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
distributor_id | bigint | (主键) |
company_id | bigint | 公司id |
name | string | 店铺名称 |
mobile | string | 店铺手机号 |
address | string | 店铺地址 |
contact | string | 联系人名称 |
logo | string | 店铺logo |
is_valid | string | 店铺状态:true启用云店 false禁用云店 closed闭店 delete撤店 |
is_distributor | boolean | 是否是主店铺 |
shop_id | bigint | 门店id |
merchant_id | bigint | 商户id |
lng | string | 腾讯地图纬度 |
lat | string | 腾讯地图经度 |
is_ziti | boolean | 是否支持自提 |
is_delivery | boolean | 是否支持配送 |
关联说明:订单/商品/售后中的 distributor_id 多指向本表;merchant_id → merchant。
merchant — Merchant(商户表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | merchant / MerchantBundle\Entities\Merchant |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/MerchantBundle/Entities/Merchant.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | ID |
company_id | bigint | 公司id |
merchant_name | string | 商户名称 |
settled_type | string | 商户入驻类型。enterprise:企业;soletrader:个体户 |
social_credit_code_id | string | 统一社会信用代码 |
legal_name | string | 联系人 |
legal_cert_id | string | 法人身份证号码 |
legal_mobile | string | 法人手机号码 |
address | string | 详细地址 |
bank_acct_type | string | 银行账户类型:1-对公;2-对私 |
card_id_mask | string | 结算银行卡号 |
merchant_type_id | bigint | 商户类型ID |
settlement_apply_id | bigint | 入驻申请id |
关联说明:店铺 distribution_distributor.merchant_id、操作员 operators.merchant_id 可引用本表 id。
supplier — Supplier(供应商)
| 项 | 内容 |
|---|---|
| 表名 / Entity | supplier / SupplierBundle\Entities\Supplier |
| 主键 / 租户键 | 主键 id;字段 company_id comment 为「商户id」 |
| 路径 | src/SupplierBundle/Entities/Supplier.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | id |
company_id | bigint | 商户id |
supplier_name | string | 供应商名称 |
contact | string | 联系人 |
mobile | string | 手机号 |
business_license | string | 营业执照 |
service_tel | string | 客服电话 |
bank_name | string | 收款银行 |
bank_account | string | 收款账号 |
audit_remark | string | 审核备注 |
adapay_mch_id | string | 汇付商户ID |
operator_id | bigint | 管理员id |
wx_openid | string | 微信公众号openid |
关联说明:商品 items.supplier_id、订单明细 supplier_id 引用本表。
4.7 微信 / 社交(WechatBundle、WorkWechatBundle、ImBundle、CommunityBundle 等)
公众号/小程序授权、小程序发版、企微关联、社区与 UGC。相关 Bundle:WechatBundle、WorkWechatBundle、CommunityBundle、WsugcBundle。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
wechat_authorization | WechatAuth | WechatBundle | Y | 公众号/小程序授权 |
wechat_weapp | Weapp | WechatBundle | Y | 小程序提交审核 |
work_wechat_rel | WorkWechatRel | WorkWechatBundle | Y | 企业微信用户关联 |
community_activity | CommunityActivity | CommunityBundle | N | 社区拼团活动 |
wsugc_post | Post | WsugcBundle | N | 微信 UGC 笔记 |
wechat_authorization — WechatAuth(微信授权表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | wechat_authorization / WechatBundle\Entities\WechatAuth |
| 主键 / 租户键 | 主键 authorizer_appid;租户 company_id |
| 路径 | src/WechatBundle/Entities/WechatAuth.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
authorizer_appid | string | (公众号,小程序)微信appid |
company_id | bigint | 公司id |
authorizer_appsecret | string | (公众号,小程序)微信appsecret |
authorizer_refresh_token | string | (公众号,小程序)微信refresh_token |
nick_name | string | (公众号,小程序)昵称 |
head_img | string | (公众号,小程序)头像 |
service_type_info | integer | (公众号,小程序)类型。可选值有 0代表订阅号;1代表由历史老帐号升级后的订阅号;2代表服务号;3代表小程序(自定义) |
verify_type_info | integer | (公众号,小程序)认证类型。-1代表未认证;0代表微信认证;… |
user_name | string | (公众号,小程序)原始 ID |
principal_name | string | (公众号,小程序)主体名称 |
qrcode_url | string | (公众号,小程序)二维码图片的URL |
operator_id | bigint | 授权操作者id |
关联说明:会员 members.authorizer_appid、小程序表 wechat_weapp.authorizer_appid 可与本表主键对应。
wechat_weapp — Weapp(微信小程序提交审核表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | wechat_weapp / WechatBundle\Entities\Weapp |
| 主键 / 租户键 | 主键 authorizer_appid;租户 company_id |
| 路径 | src/WechatBundle/Entities/Weapp.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
authorizer_appid | string | 微信appid |
company_id | bigint | 公司id |
audit_status | integer | 审核状态,其中0为审核成功,1为审核失败,2为审核中, 3为待提交审核 |
release_status | integer | 发布状态,其中0为未发布,1为已发布 |
reason | text | 审核失败原因 |
template_id | string | 小程序模板ID |
template_name | string | 小程序模板名称 |
release_ver | string | 小程序已发布的版本 |
template_ver | string | 小程序模板版本 |
visitstatus | integer | 小程序线上代码的可见状态 0不可见 1可见 |
operator_id | bigint | 绑定操作者id |
关联说明:与 wechat_authorization 同 authorizer_appid。
work_wechat_rel — WorkWechatRel(企业微信用户关联表)
| 项 | 内容 |
|---|---|
| 表名 / Entity | work_wechat_rel / WorkWechatBundle\Entities\WorkWechatRel |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/WorkWechatBundle/Entities/WorkWechatRel.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | 企业微信用户关联表id |
company_id | bigint | 公司id |
work_userid | string | 通讯录成员id |
salesperson_id | bigint | 导购员id |
external_userid | string | 企业微信外部成员id |
unionid | string | 企业微信外部成员unionid |
user_id | bigint | 会员id |
is_friend | boolean | 是否好友 0 否 1 是 |
is_bind | boolean | 是否绑定 0 否 1 是 |
bound_time | bigint | 绑定时间 |
add_friend_time | bigint | 添加好友时间 |
关联说明:user_id → members;salesperson_id → 导购(如 shop_salesperson)。
4.8 第三方 / ERP(SystemLinkBundle、ThirdPartyBundle、ShuyunBundle 等)
矩阵节点绑定、SaaS ERP / OMS 通信与短信模板等。相关 Bundle:ThirdPartyBundle、SystemLinkBundle、AliyunsmsBundle。
清单
| 表名 | Entity | Bundle | 深写 | 一句话 |
|---|---|---|---|---|
thirdparty_shop_bind | ShopBind | ThirdPartyBundle | Y | 矩阵节点/店铺绑定 |
thirdparty_saaserp_log | SaasErpLog | ThirdPartyBundle | Y | Shopex SaaS ERP 通信日志 |
systemlink_oms_queuelog | OmsQueueLog | SystemLinkBundle | N | OMS 队列通信日志 |
aliyunsms_template | Template | AliyunsmsBundle | N | 阿里云短信模板 |
thirdparty_shop_bind — ShopBind(矩阵节点绑定)
| 项 | 内容 |
|---|---|
| 表名 / Entity | thirdparty_shop_bind / ThirdPartyBundle\Entities\ShopBind |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/ThirdPartyBundle/Entities/ShopBind.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | id |
company_id | bigint | 公司id |
name | string | 名称 |
node_id | string | 节点 |
node_type | string | 节点类型 |
status | smallint | 绑定状态 1:已绑定 0:未绑定 |
关联说明:按 company_id 归属企业;node_id / node_type 标识外部矩阵节点。
thirdparty_saaserp_log — SaasErpLog(联通saasErp通信日志)
| 项 | 内容 |
|---|---|
| 表名 / Entity | thirdparty_saaserp_log / ThirdPartyBundle\Entities\SaasErpLog |
| 主键 / 租户键 | 主键 id;租户 company_id |
| 路径 | src/ThirdPartyBundle/Entities/SaasErpLog.php |
关键字段
| 字段 | 类型 | Comment |
|---|---|---|
id | bigint | id |
company_id | bigint | 公司id |
api_type | string | 日志同步类型, response:响应,request:请求 |
worker | string | api |
params | json_array | 任务参数 |
result | json_array | 返回数据 |
status | string | 运行状态:running,success,fail |
runtime | string | 运行时间(秒) |
msg_id | string | msg_id |
关联说明:ERP 同步排障日志。
5. 跨域关系
5.1 订单 → 支付 → 售后 → 会员
flowchart LR
M["members\nuser_id"] --> O["orders_normal_orders\norder_id / user_id / company_id"]
O --> OI["orders_normal_orders_items\norder_id / item_id"]
I["items\nitem_id"] --> OI
O --> T["trade\norder_id / trade_id / pay_type / trade_state"]
O --> A["aftersales\naftersales_bn / order_id / user_id"]
T -.-> AP["adapay_paymemt_confirm\norder_id / payment_id"]
M --> A| 从 | 字段 | 到 | 说明 |
|---|---|---|---|
orders_normal_orders | user_id | members.user_id | 下单会员 |
orders_normal_orders_items | order_id | orders_normal_orders.order_id | 订单明细 |
orders_normal_orders_items | item_id | items.item_id | 购买商品 |
trade | order_id | orders_normal_orders.order_id | 支付交易(类型多为 string) |
aftersales | order_id | orders_normal_orders.order_id | 售后单 |
aftersales | user_id | members.user_id | 申请会员 |
adapay_paymemt_confirm | order_id / payment_id | 订单 / trade.transaction_id | 通道确认 |
5.2 租户与店铺
多数表经 company_id → companys.company_id;店铺维度经 distributor_id → distribution_distributor.distributor_id。
ASCII 简图:
companys (company_id)
├── members (company_id, user_id)
├── items (company_id, item_id, distributor_id?)
├── distribution_distributor (company_id, distributor_id)
├── orders_normal_orders (company_id, order_id, user_id, distributor_id)
│ ├── trade (order_id, trade_id)
│ └── aftersales (order_id, aftersales_bn, user_id)
└── kaquan_discount_cards (company_id, card_id)6. Entity / Repository 示例
6.1 Entity:GoodsBundle\Entities\Items
- 路径:
src/GoodsBundle/Entities/Items.php @ORM\Table(name="items", options={"comment"="商品表"}, ...)@ORM\Entity(repositoryClass="GoodsBundle\Repositories\ItemsRepository")- 主键:
item_id(@ORM\Id+@ORM\GeneratedValue(strategy="AUTO"))
/**
* @ORM\Table(name="items", options={"comment"="商品表"}, indexes={ ... })
* @ORM\Entity(repositoryClass="GoodsBundle\Repositories\ItemsRepository")
*/
class Items
{
/**
* @ORM\Id
* @ORM\Column(name="item_id", type="bigint", options={"comment":"商品ID"})
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $item_id;
/**
* @ORM\Column(name="item_name", type="string", length=255, options={"comment":"商品名称"})
*/
private $item_name;
// ... 其余字段见源文件
}6.2 Repository:GoodsBundle\Repositories\ItemsRepository
- 路径:
src/GoodsBundle/Repositories/ItemsRepository.php - 继承
Doctrine\ORM\EntityRepository - 显式维护
$table = 'items'、$prk = 'item_id'、$cols列白名单 create():new Items()→setColumnNamesData→$em->persist/flushinsert():也可走app('registry')->getConnection('default')->insert($this->table, $data)(DBAL,连接名default)
namespace GoodsBundle\Repositories;
class ItemsRepository extends EntityRepository
{
public $table = 'items';
private $prk = 'item_id';
public function create($params)
{
$itemsEnt = new Items();
$itemsEnt = $this->setColumnNamesData($itemsEnt, $params);
$em = $this->getEntityManager();
$em->persist($itemsEnt);
$em->flush();
// ...
}
}查找 Entity 对应 Repository:看 Entity 上 repositoryClass=...,或同 Bundle 下 Repositories/ 目录。
