USE honor; ALTER TABLE `projects_table` ADD COLUMN `description` VARCHAR(255) NULL DEFAULT NULL COMMENT '描述'; -- 修改 commissionRate 字段为 DECIMAL(10,2) ALTER TABLE `order_de_table` MODIFY COLUMN `commissionRate` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '抽成比例'; INSERT INTO `print_setting_items` (`storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type`) SELECT DISTINCT psi.storeid, 'Tip_Suggestion' as display_key, '0' as display_value, 'Tip Suggestion' as L1, '打印小费建议' as L2, 'tinyint' as data_type FROM `print_setting_items` psi WHERE NOT EXISTS ( SELECT 1 FROM `print_setting_items` WHERE `display_key` = 'Tip_Suggestion' AND `storeid` = psi.storeid ); -- 添加"全项目字体加粗"配置项(使用动态 storeid) INSERT INTO `display_setting_items` (`field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `is_editable`, `storeid`, `display_value`, `display_key`) SELECT 'AllItemsFontBold', 'All Items Font Bold', '全项目字体加粗', 'tinyint', 7, 'Font', 1, ds.storeid, '0', 'AllItemsFontBold' FROM (SELECT DISTINCT storeid FROM `display_setting_items`) ds WHERE NOT EXISTS ( SELECT 1 FROM `display_setting_items` WHERE `field_name` = 'AllItemsFontBold' AND `storeid` = ds.storeid ) GROUP BY ds.storeid; -- 添加"项目字体大小"配置项(使用动态 storeid) INSERT INTO `display_setting_items` (`field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `is_editable`, `storeid`, `display_value`, `display_key`) SELECT 'ItemFontSize', 'Item Font Size', '项目字体大小', 'int', 8, 'Font', 1, ds.storeid, '16', 'ItemFontSize' FROM (SELECT DISTINCT storeid FROM `display_setting_items`) ds WHERE NOT EXISTS ( SELECT 1 FROM `display_setting_items` WHERE `field_name` = 'ItemFontSize' AND `storeid` = ds.storeid ) GROUP BY ds.storeid; -- 1. 创建表(如果不存在) CREATE TABLE IF NOT EXISTS `jytipcountbl_table` ( `did` int NOT NULL AUTO_INCREMENT, `storeid` int NULL DEFAULT NULL, `jytipcountbl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '打折固定比例', `catime` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `time` bigint NULL DEFAULT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `sort` tinyint NULL DEFAULT NULL, `access_level` tinyint UNSIGNED NOT NULL DEFAULT 1 COMMENT '员工权限', `isActive` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用', PRIMARY KEY (`did`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; -- 2. 检查表是否为空,如果为空则插入数据 SET @row_count = (SELECT COUNT(*) FROM `jytipcountbl_table`); SET @store_id = COALESCE((SELECT DISTINCT StoreID FROM home_seting LIMIT 1), 9); -- 只有表为空时才插入数据 INSERT INTO `jytipcountbl_table` (`storeid`, `jytipcountbl`, `time`, `name`, `sort`, `access_level`, `isActive`) SELECT @store_id, t.jytipcountbl, t.time, t.name, t.sort, t.access_level, t.isActive FROM ( SELECT '5' as jytipcountbl, 1750266000000 as time, '5%' as name, 1 as sort, 0 as access_level, 1 as isActive UNION ALL SELECT '10', 1750266000000, '10%', 2, 0, 1 UNION ALL SELECT '15', 1750266000000, '15%', 3, 0, 1 ) as t WHERE @row_count = 0; -- 插入新的打印设置项(为每个门店单独插入,避免重复) INSERT INTO print_setting_items (storeid, display_key, display_value, L1, L2, data_type, created_at, updated_at) SELECT s.storeid, n.display_key, n.display_value, n.L1, n.L2, n.data_type, NOW() as created_at, NOW() as updated_at FROM ( -- 获取所有门店ID(排除默认设置) SELECT DISTINCT storeid FROM print_setting_items WHERE storeid > 0 ) s CROSS JOIN ( -- 定义需要添加的新配置项 SELECT 'sign_print_double' AS display_key, '0' as display_value, 'Sign Print Double' AS L1, '签字单打印两张' AS L2, 'tinyint' AS data_type UNION ALL SELECT 'credit_tip_bottom', '0', 'Credit Tip Bottom', '签字单小费底部打印', 'tinyint' UNION ALL SELECT 'print_credit_receipt', '0', 'Print Credit Receipt', '是否打印签字单', 'tinyint' UNION ALL SELECT 'credit_bottom_word', '--', 'Credit Bottom Word', '签字单底部文字', 'varchar' UNION ALL SELECT 'print_credit_card_chip', '0', 'Print Credit Card Chip', '签字单打印加密标志', 'tinyint' UNION ALL SELECT 'print_mode', '0', 'Print Mode', '打印模式', 'tinyint' ) n -- 确保这个门店还没有这个配置项 WHERE NOT EXISTS ( SELECT 1 FROM print_setting_items psi WHERE psi.storeid = s.storeid AND psi.display_key = n.display_key ); UPDATE system_buttons SET button_path = CONCAT('/businessSetting', button_path) WHERE button_path IS NOT NULL AND button_path NOT LIKE '/businessSetting%' AND button_path NOT LIKE 'http%' AND button_path <> ''; /* Navicat Premium Dump SQL Source Server : honor美甲 Source Server Type : MySQL Source Server Version : 80043 (8.0.43) Source Host : localhost:33026 Source Schema : honor Target Server Type : MySQL Target Server Version : 80043 (8.0.43) File Encoding : 65001 Date: 04/02/2026 15:42:03 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for permission_setting_items -- ---------------------------- DROP TABLE IF EXISTS `permission_setting_items`; CREATE TABLE `permission_setting_items` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', `field_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段名', `L1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '英文标签', `L2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '中文标签', `data_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '数据类型', `display_order` int NOT NULL COMMENT '展示顺序', `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类', `is_editable` tinyint(1) NULL DEFAULT 1 COMMENT '是否可编辑 (1=是,0=否)', `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `storeid` int NOT NULL COMMENT '店铺ID', `display_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '展示值', `display_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_storeid_fieldname`(`field_name` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统配置表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of permission_setting_items -- ---------------------------- SET FOREIGN_KEY_CHECKS = 1; -- 插入取消付款权限(如果不存在) INSERT INTO `permission_setting_items` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `is_editable`, `storeid`, `display_value`, `display_key` ) SELECT 'cancel_payment_permission', 'Cancel Payment Permission', '取消付款权限', 'boolean', 1, 'permission_settings', 1, w.storeid, '0', 'cancel_payment_permission' FROM wec_table w WHERE NOT EXISTS ( SELECT 1 FROM permission_setting_items p WHERE p.field_name = 'cancel_payment_permission' AND p.storeid = w.storeid ) LIMIT 1; -- 插入取消订单权限(如果不存在) INSERT INTO `permission_setting_items` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `is_editable`, `storeid`, `display_value`, `display_key` ) SELECT 'cancel_order_permission', 'Cancel Order Permission', '取消订单权限', 'boolean', 2, 'permission_settings', 1, w.storeid, '0', 'cancel_order_permission' FROM wec_table w WHERE NOT EXISTS ( SELECT 1 FROM permission_setting_items p WHERE p.field_name = 'cancel_order_permission' AND p.storeid = w.storeid ) LIMIT 1; -- ---------------------------- -- 2. 添加权限设置按钮 -- ---------------------------- INSERT INTO `honor`.`system_buttons` ( `storeid`, `category_l1`, `category_l2`, `category_sort`, `button_name_l1`, `button_name_l2`, `button_icon`, `button_path`, `button_sort`, `status`, `created_at`, `updated_at`, `pathname` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`system_buttons`), 1), 'Option Settings', '选项设置', 0, 'Permission Settings', '权限设置', 'icon-permission', '/businessSetting/permission', 12, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'permission' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`system_buttons` WHERE `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`system_buttons`), 1) AND `category_l1` = 'Option Settings' AND `button_name_l1` = 'Permission Settings' ); -- 修改为允许 NULL ALTER TABLE yy_order_de_table MODIFY COLUMN packnumber VARCHAR(20) NULL COMMENT '打包编号(字符串类型)'; ALTER TABLE yy_yq_order_de_table MODIFY COLUMN packnumber VARCHAR(20) NULL COMMENT '打包编号(字符串类型)'; ALTER TABLE yy_ls_order_de_table MODIFY COLUMN packnumber VARCHAR(20) NULL COMMENT '打包编号(字符串类型)'; -- 或者如果您想要默认值为 NULL,可以这样写: ALTER TABLE yy_order_de_table MODIFY COLUMN carnumber VARCHAR(20) DEFAULT NULL COMMENT '车牌号(字符串类型,支持字母/数字)'; ALTER TABLE yy_yq_order_de_table MODIFY COLUMN carnumber VARCHAR(20) DEFAULT NULL COMMENT '车牌号(字符串类型,支持字母/数字)'; ALTER TABLE yy_ls_order_de_table MODIFY COLUMN carnumber VARCHAR(20) DEFAULT NULL COMMENT '车牌号(字符串类型,支持字母/数字)'; -- ---------------------------- -- 5. 添加拆分支付标记字段 -- ---------------------------- ALTER TABLE yy_order_de_table ADD COLUMN splitpayment TINYINT(1) DEFAULT 0 COMMENT '拆分支付标记(0:未拆分,1:已拆分)'; ALTER TABLE yy_yq_order_de_table ADD COLUMN splitpayment TINYINT(1) DEFAULT 0 COMMENT '拆分支付标记(0:未拆分,1:已拆分)'; ALTER TABLE yy_ls_order_de_table ADD COLUMN splitpayment TINYINT(1) DEFAULT 0 COMMENT '拆分支付标记(0:未拆分,1:已拆分)'; -- ---------------------------- -- 6. 插入ReceiptAutoPrint配置(直接使用更新后的描述) -- ---------------------------- INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'ReceiptAutoPrint', 'Credit Card Payment Amount Prompt', -- 直接使用更新后的英文描述 '信用卡付款是否提示金额', -- 直接使用更新后的中文描述 'tinyint', 31, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '1', 'ReceiptAutoPrint' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'ReceiptAutoPrint' AND `display_key` = 'ReceiptAutoPrint' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- ---------------------------- -- 7. 更新显示设置的可编辑状态 -- ---------------------------- UPDATE `honor`.`display_setting_items` SET `is_editable` = 1 WHERE `id` = 2; -- ---------------------------- -- 8. 添加建议小费设置按钮 -- ---------------------------- -- 使用临时变量存储最大 storeid SET @current_max_storeid = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`system_buttons`), 1); INSERT INTO `honor`.`system_buttons` ( `storeid`, `category_l1`, `category_l2`, `category_sort`, `button_name_l1`, `button_name_l2`, `button_icon`, `button_path`, `button_sort`, `status`, `created_at`, `updated_at`, `pathname` ) SELECT @current_max_storeid, 'Other Settings', '其他设置', 2, 'Tip Suggestion', '建议小费设置', 'icon-discount', '/businessSetting/onlineOrderConf/6', -- 修正后的路径 12, 1, '2026-01-05 15:10:17', '2026-01-30 12:06:10', 'onlineOrderConf' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`system_buttons` WHERE `category_l1` = 'Other Settings' AND `button_name_l1` = 'Tip Suggestion' AND `button_path` = '/businessSetting/onlineOrderConf/6' -- 修正后的路径 ); -- ---------------------------- -- 9. 修改客户表字段 -- ---------------------------- ALTER TABLE cust_table MODIFY COLUMN Phone VARCHAR(255) NOT NULL; -- ---------------------------- -- 10. 插入打印设置(打印服务员) -- ---------------------------- INSERT INTO `honor`.`print_setting_items` ( `storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`print_setting_items`), 1), 'Print_Server', '1', 'Print Server', '是否打印服务员', 'tinyint' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`print_setting_items` WHERE `display_key` = 'Print_Server' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`print_setting_items`), 1) ); -- ---------------------------- -- 11. 添加按钮权限(备注) -- ---------------------------- INSERT INTO `honor`.`button_permissions` ( `storeid`, `button_id`, `L2`, `L1`, `permission_level`, `description_zh`, `description_en`, `sort` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`button_permissions`), 1), 'Remark', '备注', 'Remark', 0, '备注', 'Remark', 5 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`button_permissions` WHERE `button_id` = 'Remark' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`button_permissions`), 1) ); -- ---------------------------- -- 12. 更新size_table(退款文本) -- ---------------------------- UPDATE size_table SET L2 = '确定退款 $' WHERE `key` = 'confirm_refund'; -- ---------------------------- -- 13. 修改打印设置表字段 -- ---------------------------- ALTER TABLE print_setting_items MODIFY COLUMN display_value VARCHAR(500) NOT NULL; -- ---------------------------- -- 14. 插入首页设置 -- ---------------------------- INSERT INTO `honor`.`home_seting` ( `setid`, `L1`, `L2`, `feature_key`, `feature_type`, `icon`, `sort_order`, `is_enabled`, `access_level`, `StoreID`, `created_at`, `updated_at`, `catime` ) SELECT 86, 'Code Pay Batct', 'Code Pay Batct', 'Code_Pay_Batct', 12, '', 11, 1, 1, COALESCE((SELECT MAX(`StoreID`) FROM `honor`.`home_seting`), 1), '2026-01-22 10:12:27', '2026-01-22 10:13:06', '2026-01-22 10:12:27' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`home_seting` WHERE `feature_key` = 'Code_Pay_Batct' AND `StoreID` = COALESCE((SELECT MAX(`StoreID`) FROM `honor`.`home_seting`), 1) ); -- ---------------------------- -- 15. 修改项目表字段(佣金率) -- ---------------------------- ALTER TABLE projects_table MODIFY COLUMN commissionRate DECIMAL(10, 2); -- ---------------------------- -- 16. 更新打印设置表 -- ---------------------------- UPDATE `honor`.`print_setting_items` SET `display_key` = 'Bottom_text' WHERE `display_key` = 'Bottom_text'; UPDATE `honor`.`print_setting_items` SET `data_type` = 'varchar' WHERE `data_type` = 'vachar'; -- ---------------------------- -- 17. 添加删除标记字段 -- ---------------------------- ALTER TABLE order_de_table ADD COLUMN isdelete TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-正常, 1-已删除'; -- ---------------------------- -- 18. 添加免税标识字段到多个表 -- ---------------------------- ALTER TABLE yy_order_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; ALTER TABLE yy_order_de_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; ALTER TABLE yy_ls_order_de_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; ALTER TABLE yy_ls_order_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; ALTER TABLE yy_yq_order_de_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; ALTER TABLE yy_yq_order_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; -- ---------------------------- -- 19. 添加折扣标记字段 -- ---------------------------- ALTER TABLE `projects_table` ADD COLUMN `isdiscount` tinyint NULL DEFAULT 0 COMMENT '是否有折扣:0-无折扣,1-有折扣'; -- ---------------------------- -- 20. 创建订单状态表 -- ---------------------------- CREATE TABLE IF NOT EXISTS order_status ( id INT NOT NULL AUTO_INCREMENT COMMENT '自增主键', storeid INT NOT NULL COMMENT '店铺ID(关联店铺表)', orderid INT NOT NULL COMMENT '订单ID(关联订单表)', isok TINYINT NOT NULL DEFAULT 0 COMMENT '是否发送提醒:0=未发送,1=已发送', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '提醒发送时间(自动更新)', PRIMARY KEY (id), UNIQUE KEY uk_store_order (storeid, orderid), INDEX idx_orderid (orderid), INDEX idx_isok (isok) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单提醒发送记录表'; -- ---------------------------- -- 21. 修改wec_table表字段 -- ---------------------------- ALTER TABLE `wec_table` MODIFY COLUMN `display_value` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '展示值'; -- ---------------------------- -- 22. 批量插入wec_table数据 -- ---------------------------- -- 预约提醒时间 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'AppointmentReminderHours', 'AppointmentReminderHours', '预约提醒时间', 'int', 28, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '', 'AppointmentReminderHours' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'AppointmentReminderHours' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- 预约提醒内容 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'AppointmentReminderMsg', 'AppointmentReminderMsg', '预约提醒内容', 'varchar', 29, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '', 'AppointmentReminderMsg' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'AppointmentReminderMsg' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- 预约刷新时间 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'AppointmentScanInterval', 'AppointmentScanInterval', '预约刷新时间', 'int', 30, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '', 'AppointmentScanInterval' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'AppointmentScanInterval' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- 短信内容 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_key` ) SELECT 'MessageInfo', 'MessageInfo', '短信内容', 'varchar', 27, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '短信内容管理' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'MessageInfo' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- PhoneCode INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_key` ) SELECT 'PhoneCode', 'PhoneCode', 'PhoneCode', 'varchar', 26, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), 'PhoneCode' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `L1` = 'PhoneCode' ); -- Phonekey INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_key` ) SELECT 'Phonekey', 'Phonekey', 'Phonekey', 'varchar', 26, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), 'Phonekey' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `L1` = 'Phonekey' ); -- 键盘小数点 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'Pointonkeyboard', 'Point on keyboard', '键盘要不要小数点', 'tinyint', 25, 'Setting', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '0', 'Pointonkeyboard' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `L1` = 'Point on keyboard' ); -- 包厢开启 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'Whethertoopentheprivateroom', 'Whether to open the private room', '是否开启包厢', 'tinyint', 24, 'box', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '0', 'Whethertoopentheprivateroom' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `L1` = 'Whether to open the private room' ); -- ---------------------------- -- 23. 插入打印设置(签字单建议小费是否打印) -- ---------------------------- INSERT INTO `honor`.`print_setting_items` ( `storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`print_setting_items`), 1), 'Credit_Card_Receipt_Need_Tip_Suggestion', '1', 'Credit Card Receipt Need Tip Suggestion', '签字单建议小费是否打印', 'tinyint' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`print_setting_items` WHERE `L1` = 'Credit Card Receipt Need Tip Suggestion' ); -- ---------------------------- -- 24. 创建打折比例表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `yitipcountbl_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', `storeid` int DEFAULT NULL COMMENT '门店ID', `yitipcountbl` varchar(255) DEFAULT NULL COMMENT '打折固定比例', `cattime` timestamp NULL DEFAULT NULL COMMENT '创建时间', `time` bigint DEFAULT NULL COMMENT '时间戳', `name` varchar(255) DEFAULT NULL COMMENT '名称', `sort` tinyint DEFAULT NULL COMMENT '排序字段', `access_level` tinyint NOT NULL COMMENT '员工权限', `isActive` tinyint(1) NOT NULL COMMENT '是否启用', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='打折比例相关表'; -- ---------------------------- -- 25. 插入显示设置数据 -- ---------------------------- -- 点单行数 INSERT INTO `honor`.`display_setting_items` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'Linecountoforder', 'Line count of order', '点单行数', 'int', 5, 'Linecountoforder', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`display_setting_items`), 1), '0', 'Linecountoforder' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`display_setting_items` WHERE `L1` = 'Line count of order' ); -- 点单列数 INSERT INTO `honor`.`display_setting_items` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `storeid`, `display_value`, `display_key` ) SELECT 'Numberofordercolumns', 'Number of order columns', '点单列数', 'int', 6, 'Numberofordercolumns', COALESCE((SELECT MAX(`storeid`) FROM `honor`.`display_setting_items`), 1), '0', 'Numberofordercolumns' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`display_setting_items` WHERE `L1` = 'Number of order columns' ); -- ---------------------------- -- 26. 插入更多打印设置 -- ---------------------------- -- 底部文字 INSERT INTO `honor`.`print_setting_items` ( `storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`print_setting_items`), 1), 'Bottom text', 'Thank you very much!
', 'Bottom text', '底部文字', 'varchar' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`print_setting_items` WHERE `L1` = 'Bottom text' ); -- 税率百分比是否显示 INSERT INTO `honor`.`print_setting_items` ( `storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`print_setting_items`), 1), 'Tax_Print', '0', 'Tax Print', '税率百分比是否显示', 'tinyint' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`print_setting_items` WHERE `L1` = 'Tax Print' ); -- ---------------------------- -- 27. 插入系统按钮 -- ---------------------------- -- 网站同步按钮 INSERT INTO `honor`.`system_buttons` ( `storeid`, `category_l1`, `category_l2`, `category_sort`, `button_name_l1`, `button_name_l2`, `button_path` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`system_buttons`), 1), 'Online', '网站', 4, 'Online Sync', '网站同步', '/Online/Sync' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`system_buttons` WHERE `category_l1` = 'Online' AND `button_name_l1` = 'Online Sync' ); -- 建议小费设置按钮(确保不重复) INSERT INTO `honor`.`system_buttons` ( `storeid`, `category_l1`, `category_l2`, `category_sort`, `button_name_l1`, `button_name_l2`, `button_icon`, `button_path`, `button_sort`, `status`, `pathname` ) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`system_buttons`), 1), 'Other Settings', '其他设置', 2, 'Tip Suggestion', '建议小费设置', 'icon-discount', '/onlineOrderConf/6', 12, 1, 'onlineOrderConf' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`system_buttons` WHERE `button_name_l1` = 'Tip Suggestion' ); -- ---------------------------- -- 28. 插入其他表数据 -- ---------------------------- -- gong_table INSERT INTO `honor`.`gong_table` (`storeid`, `L1`, `L2`) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`gong_table`), 1), 'Tax Exempt', '免税' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`gong_table` WHERE `L1` = 'Tax Exempt' ); -- size_table INSERT INTO `honor`.`size_table` (`L1`, `L2`, `key`) SELECT 'Average Amount', '平均消费', 'average_amount' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`size_table` WHERE `L1` = 'Average Amount' ); INSERT INTO `honor`.`size_table` (`L1`, `L2`, `key`) SELECT 'Maximum two decimal places allowed', '最多允许两位小数', 'max_two_decimal_places' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`size_table` WHERE `L1` = 'Maximum two decimal places allowed' ); INSERT INTO `honor`.`size_table` (`L1`, `L2`, `key`) SELECT 'Cannot exceed 9999999999', '不能超过9999999999', 'enter_positive_number' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`size_table` WHERE `L1` = 'Cannot exceed 9999999999' ); INSERT INTO `honor`.`size_table` (`L1`, `L2`, `key`) SELECT 'The Check was Split', '该订单已经进行分单!', 'The Check was Split' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`size_table` WHERE `L1` = 'The Check was Split' ); -- ---------------------------- -- 29. 更新操作 -- ---------------------------- UPDATE `honor`.`print_setting_items` SET `data_type` = 'tinyint' WHERE `display_key` = 'is_bold'; UPDATE `honor`.`size_table` SET `L1` = 'Select operator', `L2` = '选择操作员' WHERE `key` = 'selectoperator'; UPDATE `honor`.`size_table` SET `L2` = '选择服务员' WHERE `key` = 'selectservice'; -- ---------------------------- -- 30. 添加order_de_table免税字段 -- ---------------------------- ALTER TABLE order_de_table ADD COLUMN notax varchar(255) NULL COMMENT '免税标识'; -- ---------------------------- -- 31. 插入支付状态 -- ---------------------------- INSERT INTO `honor`.`payment_status` (`storeid`, `type`, `L1`, `L2`) SELECT COALESCE((SELECT MAX(`storeid`) FROM `honor`.`payment_status`), 1), 5, 'Code Pay', 'Code Pay' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`payment_status` WHERE `type` = 5 AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`payment_status`), 1) ); -- ---------------------------- -- 32. 恢复外键检查 -- ---------------------------- SET FOREIGN_KEY_CHECKS = 1; UPDATE `honor`.`print_setting_items` SET `display_key` = 'Bottom_text' WHERE `display_key` = 'Bottom text'; -- 添加登入模式配置 INSERT INTO `honor`.`wec_table` ( `field_name`, `L1`, `L2`, `data_type`, `display_order`, `category`, `is_editable`, `storeid`, `display_value`, `display_key` ) SELECT 'LoginMode', 'Login Mode', '登入模式', 'tinyint', 32, 'Setting', 1, COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1), '0', 'LoginMode' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `honor`.`wec_table` WHERE `field_name` = 'LoginMode' AND `category` = 'Setting' AND `storeid` = COALESCE((SELECT MAX(`storeid`) FROM `honor`.`wec_table`), 1) ); -- 修改 yy_ls_order_de_table 表的 carnumber 和 packnumber 字段 ALTER TABLE `yy_ls_order_de_table` MODIFY COLUMN `carnumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, MODIFY COLUMN `packnumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL; -- 修改 yy_order_de_table 表的 carnumber 和 packnumber 字段 ALTER TABLE `yy_order_de_table` MODIFY COLUMN `carnumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, MODIFY COLUMN `packnumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL; ALTER TABLE delete_yy_order_de_table ADD COLUMN notax DECIMAL(10,2) NULL; ALTER TABLE delete_yy_order_table ADD COLUMN notax DECIMAL(10,2) NULL; -- 方法一:更新原有记录 UPDATE `report` SET `L1` = 'Commission by Invoice', `L2` = '按单抽成报表' WHERE `type` = 5 AND `L1` = 'Commission Report'; -- 方法二:为每个店铺添加新的按人头抽成报表 INSERT INTO `report` (`storeid`, `type`, `L1`, `L2`, `created_at`, `path`, `pathname`) SELECT DISTINCT `storeid`, 8, -- 新的type编号 'Commission by Employee', '按人抽成报表', NOW(), '/Report/CommissionByEmployee', 'CommissionByEmployee' FROM `report` WHERE NOT EXISTS ( SELECT 1 FROM `report` r2 WHERE r2.`storeid` = `report`.`storeid` AND r2.`type` = 8 ); -- 为每个店铺添加付款界面按钮,路径为 /businessSetting/orderlist/3 INSERT INTO `system_buttons` ( `storeid`, `category_l1`, `category_l2`, `category_sort`, `button_name_l1`, `button_name_l2`, `button_icon`, `button_path`, `button_sort`, `status`, `created_at`, `updated_at`, `pathname` ) SELECT t.`storeid`, 'Function Interface', '功能界面', 1, 'Payment Interface', '付款界面', 'icon-payment', '/businessSetting/orderlist/3', -- 修改后的路径 COALESCE(t.`max_sort`, 0) + 1, 1, NOW(), NOW(), 'orderlist' -- 对应路径名 FROM ( -- 获取每个店铺在功能界面分类下的最大排序值 SELECT `storeid`, MAX(`button_sort`) as `max_sort` FROM `system_buttons` WHERE `category_l1` = 'Function Interface' GROUP BY `storeid` ) t WHERE NOT EXISTS ( SELECT 1 FROM `system_buttons` sb WHERE sb.`storeid` = t.`storeid` AND sb.`category_l1` = 'Function Interface' AND sb.`button_name_l2` = '付款界面' -- 使用中文名检查是否存在 ); -- 1. button_id 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'button_id') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `button_id` VARCHAR(50) COMMENT "按钮唯一标识(英文ID)" AFTER `storeid`', 'SELECT "button_id 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 2. is_enabled 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'is_enabled') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `is_enabled` TINYINT NOT NULL DEFAULT 1 COMMENT "是否启用(1=开启,0=关闭)" AFTER `L1`', 'SELECT "is_enabled 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 3. permission_level 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'permission_level') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `permission_level` TINYINT NOT NULL DEFAULT 0 COMMENT "权限等级(1-4,数值越高权限越严格)" AFTER `is_enabled`', 'SELECT "permission_level 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 4. description_zh 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'description_zh') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `description_zh` VARCHAR(200) NULL COMMENT "中文权限说明" AFTER `permission_level`', 'SELECT "description_zh 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 5. description_en 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'description_en') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `description_en` VARCHAR(200) NULL COMMENT "英文权限说明" AFTER `description_zh`', 'SELECT "description_en 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 6. updated_at 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'updated_at') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间" AFTER `catime`', 'SELECT "updated_at 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 7. sort 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'sort') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `sort` TINYINT NULL COMMENT "排序" AFTER `updated_at`', 'SELECT "sort 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 8. icon 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'icon') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `icon` VARCHAR(255) NULL COMMENT "图标路径" AFTER `sort`', 'SELECT "icon 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 为所有已存在的门店添加 always_print_one_receipt 配置 INSERT INTO `print_setting_items` ( `storeid`, `display_key`, `display_value`, `L1`, `L2`, `data_type` ) SELECT DISTINCT storeid, 'always_print_one_receipt' as display_key, '0' as display_value, 'Always print one receipt by default (0:disable,1:enable)' as L1, '收据是否永远默认打印一张(0:禁用,1:启用)' as L2, 'tinyint' as data_type FROM `print_setting_items` WHERE storeid NOT IN ( SELECT DISTINCT storeid FROM `print_setting_items` WHERE display_key = 'always_print_one_receipt' ) GROUP BY storeid; -- 首先检查是否存在 catime 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'catime') > 0, 'ALTER TABLE `gong_table` CHANGE COLUMN `catime` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间" AFTER `L2`', 'SELECT "catime 字段不存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 如果 catime 字段不存在,但是有 created_at 字段,可以跳过 -- 如果 catime 字段不存在,也没有 created_at 字段,则添加 created_at 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'created_at') = 0 AND (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gong_table' AND COLUMN_NAME = 'catime') = 0, 'ALTER TABLE `gong_table` ADD COLUMN `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间" AFTER `L2`', 'SELECT "created_at 字段已存在或已处理" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 添加 tax 字段(与 isdiscount 相同的类型) SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'package_card' AND COLUMN_NAME = 'tax') = 0, 'ALTER TABLE `package_card` ADD COLUMN `tax` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "是否含税: 0否,1是" AFTER `amount`', 'SELECT "tax 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 添加 isdiscount 字段 SET @sql = IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'package_card' AND COLUMN_NAME = 'isdiscount') = 0, 'ALTER TABLE `package_card` ADD COLUMN `isdiscount` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "是否折扣: 0否,1是" AFTER `tax`', 'SELECT "isdiscount 字段已存在" AS status'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 删除 gong_table 表中 L1 为 'Tax Exempt' 的记录 DELETE FROM `gong_table` WHERE `L1` = 'Tax Exempt';