初始化
This commit is contained in:
21
manifest/deploy/kustomize/base/deployment.yaml
Normal file
21
manifest/deploy/kustomize/base/deployment.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: template-single
|
||||
labels:
|
||||
app: template-single
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: template-single
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: template-single
|
||||
spec:
|
||||
containers:
|
||||
- name : main
|
||||
image: template-single
|
||||
imagePullPolicy: Always
|
||||
|
||||
8
manifest/deploy/kustomize/base/kustomization.yaml
Normal file
8
manifest/deploy/kustomize/base/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
|
||||
|
||||
|
||||
12
manifest/deploy/kustomize/base/service.yaml
Normal file
12
manifest/deploy/kustomize/base/service.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: template-single
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
targetPort: 8000
|
||||
selector:
|
||||
app: template-single
|
||||
|
||||
14
manifest/deploy/kustomize/overlays/develop/configmap.yaml
Normal file
14
manifest/deploy/kustomize/overlays/develop/configmap.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: template-single-configmap
|
||||
data:
|
||||
config.yaml: |
|
||||
server:
|
||||
address: ":8000"
|
||||
openapiPath: "/api.json"
|
||||
swaggerPath: "/swagger"
|
||||
|
||||
logger:
|
||||
level : "all"
|
||||
stdout: true
|
||||
10
manifest/deploy/kustomize/overlays/develop/deployment.yaml
Normal file
10
manifest/deploy/kustomize/overlays/develop/deployment.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: template-single
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name : main
|
||||
image: template-single:develop
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- ../../base
|
||||
- configmap.yaml
|
||||
|
||||
patchesStrategicMerge:
|
||||
- deployment.yaml
|
||||
|
||||
namespace: default
|
||||
|
||||
|
||||
|
||||
16
manifest/docker/Dockerfile
Normal file
16
manifest/docker/Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM loads/alpine:3.8
|
||||
|
||||
###############################################################################
|
||||
# INSTALLATION
|
||||
###############################################################################
|
||||
|
||||
ENV WORKDIR /app
|
||||
ADD resource $WORKDIR/
|
||||
ADD ./temp/linux_amd64/main $WORKDIR/main
|
||||
RUN chmod +x $WORKDIR/main
|
||||
|
||||
###############################################################################
|
||||
# START
|
||||
###############################################################################
|
||||
WORKDIR $WORKDIR
|
||||
CMD ./main
|
||||
8
manifest/docker/docker.sh
Normal file
8
manifest/docker/docker.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This shell is executed before docker build.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
manifest/i18n/.gitkeep
Normal file
0
manifest/i18n/.gitkeep
Normal file
0
manifest/protobuf/.keep-if-necessary
Normal file
0
manifest/protobuf/.keep-if-necessary
Normal file
371
manifest/sql/xk_of_schema.sql
Normal file
371
manifest/sql/xk_of_schema.sql
Normal file
@@ -0,0 +1,371 @@
|
||||
CREATE DATABASE IF NOT EXISTS `xk_of` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '萧康云医官网与SaaS后台数据库';
|
||||
|
||||
USE `xk_of`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_admin` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`open_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'OpenID,后期整合萧康服务中心会用到',
|
||||
`wx_open_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '微信小程序OpenID',
|
||||
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '头像',
|
||||
`nick_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '昵称',
|
||||
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
|
||||
`phone` char(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户手机',
|
||||
`email` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户邮箱',
|
||||
`code` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '业务员推广码',
|
||||
`role_id` int NOT NULL DEFAULT '0' COMMENT '角色',
|
||||
`province_id` int NOT NULL DEFAULT '0' COMMENT '省',
|
||||
`city_id` int NOT NULL DEFAULT '0' COMMENT '市',
|
||||
`reg_ip` bigint NOT NULL DEFAULT '0' COMMENT '注册IP',
|
||||
`last_login_time` int NOT NULL DEFAULT '0' COMMENT '最后登录时间',
|
||||
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '最后登录IP',
|
||||
`ip_table` json NOT NULL COMMENT '常用登录IP地址列表',
|
||||
`operation_password` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '操作密码',
|
||||
`desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '用户状态 0正常 1禁用',
|
||||
`last_reset_password_at` datetime DEFAULT NULL COMMENT '最后一次更新密码时间',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_phone` (`phone`) USING BTREE,
|
||||
KEY `idx_role_id` (`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='管理员表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_role` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(32) NOT NULL DEFAULT '' COMMENT '角色名称',
|
||||
`code` varchar(64) NOT NULL DEFAULT '' COMMENT '角色编码',
|
||||
`desc` varchar(255) NOT NULL DEFAULT '' COMMENT '角色说明',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_code` (`code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_admin_role` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '关联ID',
|
||||
`admin_id` int unsigned NOT NULL DEFAULT '0' COMMENT '管理员ID',
|
||||
`role_id` int unsigned NOT NULL DEFAULT '0' COMMENT '角色ID',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_admin_role` (`admin_id`,`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='管理员角色关联表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_menu` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
||||
`parent_id` int unsigned NOT NULL DEFAULT '0' COMMENT '父级菜单ID',
|
||||
`title` varchar(64) NOT NULL DEFAULT '' COMMENT '菜单标题',
|
||||
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '路由名称',
|
||||
`path` varchar(255) NOT NULL DEFAULT '' COMMENT '路由路径',
|
||||
`component` varchar(255) NOT NULL DEFAULT '' COMMENT '前端组件路径',
|
||||
`redirect` varchar(255) NOT NULL DEFAULT '' COMMENT '重定向地址',
|
||||
`icon` varchar(64) NOT NULL DEFAULT '' COMMENT '菜单图标',
|
||||
`type` tinyint NOT NULL DEFAULT '1' COMMENT '菜单类型 1目录 2菜单 3按钮',
|
||||
`permission` varchar(128) NOT NULL DEFAULT '' COMMENT '权限标识',
|
||||
`visible` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示 0隐藏 1显示',
|
||||
`keep_alive` tinyint NOT NULL DEFAULT '0' COMMENT '是否缓存页面 0否 1是',
|
||||
`menu_area` tinyint NOT NULL DEFAULT '1' COMMENT '双列菜单区域 1主列 2次列',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_parent_id` (`parent_id`) USING BTREE,
|
||||
KEY `idx_permission` (`permission`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='后台多级菜单表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_role_menu` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '授权ID',
|
||||
`role_id` int unsigned NOT NULL DEFAULT '0' COMMENT '角色ID',
|
||||
`menu_id` int unsigned NOT NULL DEFAULT '0' COMMENT '菜单ID',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_role_menu` (`role_id`,`menu_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色菜单授权表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_system_config` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '配置ID',
|
||||
`config_key` varchar(128) NOT NULL DEFAULT '' COMMENT '配置键',
|
||||
`config_value` text NOT NULL COMMENT '配置值',
|
||||
`desc` varchar(255) NOT NULL DEFAULT '' COMMENT '配置说明',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_config_key` (`config_key`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统配置表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_admin_preference` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '偏好ID',
|
||||
`admin_id` int unsigned NOT NULL DEFAULT '0' COMMENT '管理员ID',
|
||||
`menu_layout` varchar(16) NOT NULL DEFAULT '' COMMENT '菜单布局 single单列 double双列 空则使用全局配置',
|
||||
`theme` varchar(16) NOT NULL DEFAULT '' COMMENT '后台主题 light明亮 dark暗色 空则跟随系统',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_admin_id` (`admin_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='管理员个人偏好表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_site_page` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '页面ID',
|
||||
`code` varchar(64) NOT NULL DEFAULT '' COMMENT '页面编码',
|
||||
`title` varchar(128) NOT NULL DEFAULT '' COMMENT '页面标题',
|
||||
`seo_title` varchar(255) NOT NULL DEFAULT '' COMMENT 'SEO标题',
|
||||
`seo_keywords` varchar(255) NOT NULL DEFAULT '' COMMENT 'SEO关键词',
|
||||
`seo_description` varchar(500) NOT NULL DEFAULT '' COMMENT 'SEO描述',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_code` (`code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='官网页面表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_site_section` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '模块ID',
|
||||
`page_id` int unsigned NOT NULL DEFAULT '0' COMMENT '页面ID',
|
||||
`section_key` varchar(64) NOT NULL DEFAULT '' COMMENT '模块标识',
|
||||
`title` varchar(128) NOT NULL DEFAULT '' COMMENT '模块标题',
|
||||
`subtitle` varchar(255) NOT NULL DEFAULT '' COMMENT '模块副标题',
|
||||
`content` json NOT NULL COMMENT '模块内容JSON',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_page_id` (`page_id`) USING BTREE,
|
||||
KEY `idx_section_key` (`section_key`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='官网页面模块表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_site_lead` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '线索ID',
|
||||
`name` varchar(32) NOT NULL DEFAULT '' COMMENT '联系人姓名',
|
||||
`phone` char(11) NOT NULL DEFAULT '' COMMENT '联系电话',
|
||||
`clinic_name` varchar(128) NOT NULL DEFAULT '' COMMENT '诊所名称',
|
||||
`city` varchar(64) NOT NULL DEFAULT '' COMMENT '所在城市',
|
||||
`plan_code` varchar(64) NOT NULL DEFAULT '' COMMENT '意向套餐编码',
|
||||
`source_page` varchar(64) NOT NULL DEFAULT '' COMMENT '来源页面',
|
||||
`remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`follow_status` tinyint NOT NULL DEFAULT '0' COMMENT '跟进状态 0待跟进 1跟进中 2已成交 3无效',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_phone` (`phone`) USING BTREE,
|
||||
KEY `idx_plan_code` (`plan_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='官网咨询线索表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_saas_plan` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '套餐ID',
|
||||
`code` varchar(64) NOT NULL DEFAULT '' COMMENT '套餐编码',
|
||||
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '套餐名称',
|
||||
`description` varchar(500) NOT NULL DEFAULT '' COMMENT '套餐说明',
|
||||
`monthly_fee` int unsigned NOT NULL DEFAULT '0' COMMENT '月付金额,单位分',
|
||||
`yearly_fee` int unsigned NOT NULL DEFAULT '0' COMMENT '年付金额,单位分',
|
||||
`recommended` tinyint NOT NULL DEFAULT '0' COMMENT '是否推荐 0否 1是',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_code` (`code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS套餐表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_saas_plan_feature` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '权益ID',
|
||||
`plan_id` int unsigned NOT NULL DEFAULT '0' COMMENT '套餐ID',
|
||||
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '权益名称',
|
||||
`value` varchar(255) NOT NULL DEFAULT '' COMMENT '权益值',
|
||||
`highlight` tinyint NOT NULL DEFAULT '0' COMMENT '是否重点展示 0否 1是',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_plan_id` (`plan_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS套餐权益表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_tenant` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '租户ID',
|
||||
`tenant_name` varchar(128) NOT NULL DEFAULT '' COMMENT '租户名称或诊所名称',
|
||||
`contact_name` varchar(32) NOT NULL DEFAULT '' COMMENT '联系人姓名',
|
||||
`phone` char(11) NOT NULL DEFAULT '' COMMENT '联系电话',
|
||||
`city` varchar(64) NOT NULL DEFAULT '' COMMENT '所在城市',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_phone` (`phone`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS订购主体表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_subscription` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '订阅ID',
|
||||
`tenant_id` int unsigned NOT NULL DEFAULT '0' COMMENT '租户ID',
|
||||
`plan_id` int unsigned NOT NULL DEFAULT '0' COMMENT '套餐ID',
|
||||
`start_at` int NOT NULL DEFAULT '0' COMMENT '订阅开始时间',
|
||||
`end_at` int NOT NULL DEFAULT '0' COMMENT '订阅结束时间',
|
||||
`auto_renew` tinyint NOT NULL DEFAULT '0' COMMENT '是否自动续费 0否 1是',
|
||||
`subscription_status` tinyint NOT NULL DEFAULT '0' COMMENT '订阅状态 0待生效 1生效中 2已过期 3已取消',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
|
||||
KEY `idx_plan_id` (`plan_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS订阅关系表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_order` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '订单ID',
|
||||
`order_no` varchar(64) NOT NULL DEFAULT '' COMMENT '订单号',
|
||||
`tenant_id` int unsigned NOT NULL DEFAULT '0' COMMENT '租户ID',
|
||||
`plan_id` int unsigned NOT NULL DEFAULT '0' COMMENT '套餐ID',
|
||||
`billing_cycle` varchar(16) NOT NULL DEFAULT 'month' COMMENT '订购周期 month月付 year年付',
|
||||
`amount` int unsigned NOT NULL DEFAULT '0' COMMENT '订单金额,单位分',
|
||||
`pay_status` tinyint NOT NULL DEFAULT '0' COMMENT '支付状态 0待支付 1已支付 2已退款 3已关闭',
|
||||
`order_status` tinyint NOT NULL DEFAULT '0' COMMENT '订单状态 0待支付 1已完成 2已取消 3已关闭',
|
||||
`expired_at` int NOT NULL DEFAULT '0' COMMENT '订单过期时间',
|
||||
`paid_at` int NOT NULL DEFAULT '0' COMMENT '支付完成时间',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_order_no` (`order_no`) USING BTREE,
|
||||
KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
|
||||
KEY `idx_plan_id` (`plan_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS套餐订购订单表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_payment` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '支付ID',
|
||||
`order_no` varchar(64) NOT NULL DEFAULT '' COMMENT '订单号',
|
||||
`channel` varchar(32) NOT NULL DEFAULT '' COMMENT '支付渠道 wxpay微信 alipay支付宝 manual线下',
|
||||
`channel_trade_no` varchar(128) NOT NULL DEFAULT '' COMMENT '渠道交易号',
|
||||
`amount` int unsigned NOT NULL DEFAULT '0' COMMENT '支付金额,单位分',
|
||||
`pay_status` tinyint NOT NULL DEFAULT '0' COMMENT '支付状态 0待支付 1成功 2失败 3退款',
|
||||
`notify_payload` json NOT NULL COMMENT '支付回调原始数据',
|
||||
`paid_at` int NOT NULL DEFAULT '0' COMMENT '支付完成时间',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_order_no` (`order_no`) USING BTREE,
|
||||
KEY `idx_channel_trade_no` (`channel_trade_no`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SaaS支付流水表';
|
||||
|
||||
INSERT INTO `nl_system_config` (`config_key`, `config_value`, `desc`, `status`, `created_at`, `updated_at`)
|
||||
VALUES ('admin_menu_layout', 'double', '后台默认菜单布局 single单列 double双列', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `config_value` = VALUES(`config_value`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
INSERT INTO `nl_role` (`id`, `name`, `code`, `desc`, `status`, `sort`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
(1, '超级管理员', 'super_admin', '拥有后台全部权限', 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(2, '运营人员', 'operator', '管理官网内容、线索、套餐和订单', 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
INSERT INTO `nl_menu` (`id`, `parent_id`, `title`, `name`, `path`, `component`, `icon`, `type`, `permission`, `visible`, `menu_area`, `status`, `sort`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
(1, 0, '控制台', 'Dashboard', '/dashboard', 'Dashboard', 'dashboard', 2, 'dashboard:view', 1, 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(2, 0, '官网运营', 'Site', '/site', 'Layout', 'global', 1, 'site:view', 1, 1, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(21, 2, '页面模块', 'SiteSections', '/site/sections', 'SiteSections', 'blocks', 2, 'site:section:view', 1, 2, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(22, 2, '咨询线索', 'SiteLeads', '/site/leads', 'SiteLeads', 'message', 2, 'site:lead:view', 1, 2, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(3, 0, '商业化', 'Commerce', '/commerce', 'Layout', 'wallet', 1, 'commerce:view', 1, 1, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(31, 3, '套餐管理', 'PlanList', '/commerce/plans', 'PlanList', 'package', 2, 'plan:view', 1, 2, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(32, 3, '订单管理', 'OrderList', '/commerce/orders', 'OrderList', 'orders', 2, 'order:view', 1, 2, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(4, 0, '系统管理', 'System', '/system', 'Layout', 'setting', 1, 'system:view', 1, 1, 1, 4, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(41, 4, '管理员', 'AdminList', '/system/admins', 'AdminList', 'user', 2, 'admin:view', 1, 2, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(42, 4, '角色权限', 'RoleList', '/system/roles', 'RoleList', 'safety', 2, 'role:view', 1, 2, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(43, 4, '菜单管理', 'MenuList', '/system/menus', 'MenuList', 'menu', 2, 'menu:view', 1, 2, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `title` = VALUES(`title`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
INSERT INTO `nl_saas_plan` (`id`, `code`, `name`, `description`, `monthly_fee`, `yearly_fee`, `recommended`, `status`, `sort`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
(1, 'starter', '基础版', '适合单店诊所快速上线线上预约和基础经营管理', 19900, 199000, 0, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(2, 'growth', '增长版', '适合需要推广员获客、医生协同和经营分析的成长型诊所', 39900, 399000, 1, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(3, 'enterprise', '连锁版', '适合连锁门店和需要深度配置的诊所集团', 89900, 899000, 0, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
INSERT INTO `nl_saas_plan_feature` (`id`, `plan_id`, `name`, `value`, `highlight`, `status`, `sort`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
(1, 1, '患者端小程序', '基础预约与提醒', 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(2, 1, 'PC后台', '线索与订单管理', 1, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(3, 1, '账号数量', '5个员工账号', 0, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(4, 2, '四端小程序', '患者端、医生端、老板端、推广员端', 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(5, 2, '经营看板', '收入、转化、复购分析', 1, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(6, 2, '账号数量', '20个员工账号', 0, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(7, 3, '多门店能力', '预留连锁门店扩展', 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(8, 3, '专属服务', '部署辅导和运营顾问', 1, 1, 2, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(9, 3, '账号数量', '不限账号数量', 0, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `value` = VALUES(`value`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
-- 官网 CMS 扩展:页面 GSO/GEO、素材、招聘、站点配置
|
||||
ALTER TABLE `nl_site_page` ADD COLUMN `gso_content` json DEFAULT NULL COMMENT 'GSO/GEO生成式搜索优化内容JSON' AFTER `seo_description`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_site_media` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '素材ID',
|
||||
`media_type` varchar(32) NOT NULL DEFAULT '' COMMENT '素材类型 logo标志 favicon站点图标 page_image页面图片 share_image分享图 job_image招聘图',
|
||||
`group_code` varchar(64) NOT NULL DEFAULT '' COMMENT '素材分组编码',
|
||||
`title` varchar(128) NOT NULL DEFAULT '' COMMENT '素材标题',
|
||||
`url` varchar(500) NOT NULL DEFAULT '' COMMENT '素材地址',
|
||||
`alt` varchar(255) NOT NULL DEFAULT '' COMMENT '图片替代文本',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1启用',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_media_type` (`media_type`) USING BTREE,
|
||||
KEY `idx_group_code` (`group_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='官网素材表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `nl_recruit_job` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '职位ID',
|
||||
`title` varchar(128) NOT NULL DEFAULT '' COMMENT '职位名称',
|
||||
`department` varchar(64) NOT NULL DEFAULT '' COMMENT '所属部门',
|
||||
`job_type` varchar(32) NOT NULL DEFAULT '' COMMENT '职位类型',
|
||||
`city` varchar(64) NOT NULL DEFAULT '' COMMENT '工作城市',
|
||||
`salary` varchar(64) NOT NULL DEFAULT '' COMMENT '薪资范围',
|
||||
`experience` varchar(64) NOT NULL DEFAULT '' COMMENT '经验要求',
|
||||
`description` varchar(1000) NOT NULL DEFAULT '' COMMENT '职位描述',
|
||||
`requirements` json NOT NULL COMMENT '岗位要求JSON',
|
||||
`manager` varchar(32) NOT NULL DEFAULT '' COMMENT '招聘负责人',
|
||||
`manager_title` varchar(64) NOT NULL DEFAULT '' COMMENT '负责人职位',
|
||||
`email` varchar(128) NOT NULL DEFAULT '' COMMENT '投递邮箱',
|
||||
`phone` varchar(32) NOT NULL DEFAULT '' COMMENT '联系电话',
|
||||
`featured` tinyint NOT NULL DEFAULT '0' COMMENT '是否重点招聘 0否 1是',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0下架 1上架',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`created_at` int NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`updated_at` int NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`deleted_at` int NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_department` (`department`) USING BTREE,
|
||||
KEY `idx_status_sort` (`status`,`sort`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='招聘职位表';
|
||||
|
||||
INSERT INTO `nl_system_config` (`config_key`, `config_value`, `desc`, `status`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
('site_title', '萧康云医官网', '站点标题', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('site_logo', '/src/assets/images/logo.png', '站点LOGO', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('site_favicon', '/favicon.ico', '站点favicon图标', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('site_seo', '{"title":"萧康云医官网","keywords":"诊所SaaS,云医,诊所管理","description":"萧康云医为诊所提供全链路经营赋能。"}', '默认SEO配置JSON', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('site_gso', '{"brand":"萧康云医","summary":"诊所赋能SaaS平台","services":["患者端","医生端","老板端","推广员端","PC后台"]}', '默认GSO/GEO配置JSON', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('amap_key', '', '高德地图Key', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('amap_security_code', '', '高德地图安全密钥', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `config_value` = VALUES(`config_value`), `updated_at` = UNIX_TIMESTAMP();
|
||||
|
||||
INSERT INTO `nl_menu` (`id`, `parent_id`, `title`, `name`, `path`, `component`, `icon`, `type`, `permission`, `visible`, `menu_area`, `status`, `sort`, `created_at`, `updated_at`)
|
||||
VALUES
|
||||
(23, 2, '图片管理', 'SiteMedia', '/site/media', 'SiteMedia', 'image', 2, 'site:media:view', 1, 2, 1, 3, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(24, 2, '招聘管理', 'RecruitJobs', '/site/jobs', 'RecruitJobs', 'briefcase', 2, 'site:job:view', 1, 2, 1, 4, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(25, 2, '站点设置', 'SiteSettings', '/site/settings', 'SiteSettings', 'setting', 2, 'site:settings:view', 1, 2, 1, 5, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
|
||||
ON DUPLICATE KEY UPDATE `title` = VALUES(`title`), `updated_at` = UNIX_TIMESTAMP();
|
||||
Reference in New Issue
Block a user