91 lines
6.1 KiB
SQL
91 lines
6.1 KiB
SQL
-- ============================================================
|
|
-- 企油通对接 · 多企业支持
|
|
-- 生成:2026-09-08
|
|
-- ------------------------------------------------------------
|
|
-- 依据《企油通接口对接文档.md》:
|
|
-- · appId 与 RSA 密钥是「接入方(慧明)」级别,一个 appId 下可挂多个企业;
|
|
-- · business_license 是企业级标识,几乎所有接口都会校验它是否归属当前 appId;
|
|
-- · institution_id(支付宝企业码机构号)、passageway(通道)都是企业级参数。
|
|
-- 因此:企业级参数入本表,appId/私钥/域名仍走 .env(私钥不入库)。
|
|
--
|
|
-- 执行顺序:qyt_migration.sql -> qyt_migration_channel.sql -> 本文件
|
|
-- ============================================================
|
|
|
|
-- ------------------------------------------------------------
|
|
-- 1. 企油通企业表
|
|
-- ------------------------------------------------------------
|
|
CREATE TABLE `yoshop_qyt_enterprise` (
|
|
`enterprise_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
`company_name` varchar(100) NOT NULL DEFAULT '' COMMENT '企业名称(7.2 company_name)',
|
|
`business_license` varchar(64) NOT NULL DEFAULT '' COMMENT '统一社会信用代码(企油通 business_license)',
|
|
`business_license_url` varchar(255) NOT NULL DEFAULT '' COMMENT '营业执照照片地址(7.2 必填)',
|
|
`contact_name` varchar(50) NOT NULL DEFAULT '' COMMENT '企业联系人姓名',
|
|
`contact_mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '企业联系人电话',
|
|
|
|
-- 通道开关(企业级)
|
|
`passageway` varchar(20) NOT NULL DEFAULT 'alipay' COMMENT '当前启用通道 alipay=支付宝企业码 pingan=平安银行',
|
|
`bound_passageway` varchar(20) NOT NULL DEFAULT '' COMMENT '企油通侧已绑定通道编码,逗号分隔,如 1,2 (7.2申请/7.22回填)',
|
|
`institution_id` varchar(64) NOT NULL DEFAULT '' COMMENT '机构号,支付宝企业码通道7.7必填',
|
|
|
|
-- 可选覆盖项(留空则用 .env 的全局值)
|
|
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT '接入方appId覆盖,留空用.env全局值',
|
|
`no_prefix` varchar(20) NOT NULL DEFAULT '' COMMENT '编号前缀,留空用全局值。batch_no等为全平台唯一,建议各企业不同',
|
|
`voucher_name` varchar(50) NOT NULL DEFAULT '' COMMENT '7.7凭证名称,留空用全局值',
|
|
|
|
-- 企油通侧回填
|
|
`enterprise_number` varchar(64) NOT NULL DEFAULT '' COMMENT '企油通企业编号(7.2返回)',
|
|
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '企业状态 pending待完善/submitted待审核/approved审核通过/rejected审核拒绝/frozen已冻结',
|
|
`account` varchar(64) NOT NULL DEFAULT '' COMMENT '企业账户号(7.5)',
|
|
`account_bank` varchar(100) NOT NULL DEFAULT '' COMMENT '开户行(7.5)',
|
|
`account_name` varchar(100) NOT NULL DEFAULT '' COMMENT '开户名(7.5)',
|
|
`account_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '开户状态 0未知/1审核中/2开户成功(7.5)',
|
|
`sync_time` int(11) NOT NULL DEFAULT 0 COMMENT '最近一次同步企油通的时间',
|
|
`sync_text` varchar(255) NOT NULL DEFAULT '' COMMENT '最近一次同步结果说明',
|
|
|
|
`is_default` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否默认企业(合作商未绑定时兜底使用)',
|
|
`is_enable` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
|
`sort` int(11) NOT NULL DEFAULT 100 COMMENT '排序',
|
|
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
|
`store_id` int(11) NOT NULL DEFAULT 0 COMMENT '商城ID',
|
|
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
|
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间',
|
|
PRIMARY KEY (`enterprise_id`),
|
|
UNIQUE KEY `uk_license` (`store_id`, `business_license`),
|
|
KEY `idx_default` (`store_id`, `is_default`, `is_enable`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='企油通企业(多企业参数与通道开关)';
|
|
|
|
-- ------------------------------------------------------------
|
|
-- 2. 合作商(下单平台)绑定企业
|
|
-- 下游请求进来 -> 按 appKey 找到合作商 -> 用其绑定的企业参数
|
|
-- 留 0 表示未绑定,走默认企业兜底
|
|
-- ------------------------------------------------------------
|
|
ALTER TABLE `yoshop_partners`
|
|
ADD COLUMN `qyt_enterprise_id` int(11) NOT NULL DEFAULT 0 COMMENT '绑定的企油通企业ID,0=用默认企业' AFTER `balance`;
|
|
|
|
-- ------------------------------------------------------------
|
|
-- 3. 订单固化企业
|
|
-- 切换绑定或默认企业后,在途订单仍按下单时确定的企业发放与对账
|
|
-- ------------------------------------------------------------
|
|
ALTER TABLE `yoshop_partners_order`
|
|
ADD COLUMN `qyt_enterprise_id` int(11) NOT NULL DEFAULT 0 COMMENT '本单使用的企油通企业ID' AFTER `passageway`,
|
|
ADD INDEX `idx_qyt_enterprise` (`qyt_enterprise_id`);
|
|
|
|
-- ------------------------------------------------------------
|
|
-- 4. 后台菜单(非超管角色的权限勾选用;超管不依赖此行)
|
|
-- 幂等,可重复执行
|
|
-- ------------------------------------------------------------
|
|
INSERT INTO `yoshop_store_menu` (`module`, `name`, `path`, `action_mark`, `parent_id`, `sort`, `create_time`, `update_time`)
|
|
SELECT 10, '企业管理', '/qyt/enterprise/index', '',
|
|
(SELECT `menu_id` FROM (SELECT `menu_id` FROM `yoshop_store_menu` WHERE `path` = '/setting' LIMIT 1) t),
|
|
90, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE NOT EXISTS (SELECT 1 FROM (SELECT 1 FROM `yoshop_store_menu` WHERE `path` = '/qyt/enterprise/index' LIMIT 1) x);
|
|
|
|
-- ============================================================
|
|
-- 回滚:
|
|
-- DROP TABLE `yoshop_qyt_enterprise`;
|
|
-- ALTER TABLE `yoshop_partners` DROP COLUMN `qyt_enterprise_id`;
|
|
-- ALTER TABLE `yoshop_partners_order` DROP COLUMN `qyt_enterprise_id`, DROP INDEX `idx_qyt_enterprise`;
|
|
-- DELETE FROM `yoshop_store_menu` WHERE `path` = '/qyt/enterprise/index';
|
|
-- ============================================================
|