调整文件结构

This commit is contained in:
zpc 2026-01-01 14:39:23 +08:00
parent 1767a937a5
commit 63aedaf041
39 changed files with 0 additions and 48392 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,37 +0,0 @@
2021-10-25
1、【新增】数据库CoreCmsCart表增加objectId字段用于区分来源对象CoreCmsOrder增加objectId字段用于区域订单来源关联。
2021-10-14
1、数据库结构无变化修复SysMenu误操作清空compoent字段的问题。
2021-10-14
1、数据库结构无变化只是调整几个已知后台菜单链接与文件夹或文件大小写不统一的问题。老用户可更新下SysMenuSysRoleSysRoleMenu表数据。新用户可直接使用新数据库。
2021-10-12
1、后端开启颗粒化权限控制数据库结构无变化只是增加了不同菜单对不同Controller和Action的控制关联及管理员的关联权限。
2021-08-31
1、【调整】删除【支付单关系表CoreCmsBillPaymentsRel】【CoreCmsBillPayments】表增加【sourceId】字段替换不同类型数据单据关联。
2、【调整】删除【发货单关系表CoreCmsBillDeliveryOrderRel】【CoreCmsBillDeliveryItem】表增加【orderId】字段直接对接订单表。
3、【调整】删除【支付票据文件表CoreCmsPaymentsFile】
2021-08-22
1、因mysql不支持一定格式数据排序调整部分longtext字段为text格式保持富文本字段为longtext格式
2021-08-01
1、增加【WeChatAccessToken】表。用于存储微信公众号或者小程序存放交互accessToken用
2021-07-20
1、删除【CoreCmsGoodsType】表。
2、删除【CoreCmsGoodsTypeSpecRel】表。
3、删除【CoreCmsGoodsTypeParams】表。
4、商品表增加【goodsSkuIds】字段。sku序列
5、商品表增加【goodsParamsIds】字段。参数序列
2021-06-19
因linux下存在数据与文件名称大小写不对应导致找不到数据库表的问题特重新发布一份表名与实体名称一一对应脚本。
2021-06-10
修复通过core first生成mysql数据库的两个问题。
1、varchar类型未设置长度。被默认设置为255长度
2、nvarchar(max)长度未及时切换longtext的问题。

View File

@ -1,43 +0,0 @@
-- =============================================
-- 站内信功能 - 数据库表创建脚本
-- 创建时间: 2025-12-07
-- =============================================
-- 表1: SQMessage (站内信消息表)
CREATE TABLE [dbo].[SQMessage] (
[id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[user_id] INT NULL, -- 接收用户ID全员广播时为NULL
[target_type] INT NOT NULL DEFAULT 0, -- 目标类型0=指定用户1=全员广播
[title] NVARCHAR(200) NOT NULL, -- 消息标题
[content] NVARCHAR(MAX) NOT NULL, -- 消息正文
[message_type] INT NOT NULL DEFAULT 0, -- 消息类型0=系统通知1=私信
[is_read] BIT NOT NULL DEFAULT 0, -- 是否已读(仅对指定用户消息有效)
[sender_id] INT NULL, -- 发送者ID后台管理员ID
[related_type] INT NULL, -- 关联业务类型1=组局
[related_id] INT NULL, -- 关联业务ID
[created_at] DATETIME NOT NULL DEFAULT GETDATE(),
[updated_at] DATETIME NULL
);
GO
-- 索引
CREATE INDEX IX_SQMessage_user_id ON [dbo].[SQMessage]([user_id]);
CREATE INDEX IX_SQMessage_target_type ON [dbo].[SQMessage]([target_type]);
CREATE INDEX IX_SQMessage_created_at ON [dbo].[SQMessage]([created_at] DESC);
GO
-- 表2: SQMessageRead (已读记录表 - 专门记录全员广播的已读状态)
CREATE TABLE [dbo].[SQMessageRead] (
[id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[message_id] INT NOT NULL, -- 消息ID
[user_id] INT NOT NULL, -- 用户ID
[read_at] DATETIME NOT NULL DEFAULT GETDATE()
);
GO
-- 索引(防重复 + 查询优化)
CREATE UNIQUE INDEX IX_SQMessageRead_msg_user ON [dbo].[SQMessageRead]([message_id], [user_id]);
CREATE INDEX IX_SQMessageRead_user_id ON [dbo].[SQMessageRead]([user_id]);
GO
PRINT '站内信表创建完成!';

View File

@ -1,32 +0,0 @@
2021-11-19
1、【调整】SysLoginRecord表os字段修改长度为max防止linux系统下长度不够的问题。
2021-10-25
1、【新增】数据库CoreCmsCart表增加objectId字段用于区分来源对象CoreCmsOrder增加objectId字段用于区域订单来源关联。
2021-10-14
1、数据库结构无变化只是调整几个已知后台菜单和权限细节的初始化数据老用户可只更新SysMenuSysRoleSysRoleMenu表数据。新用户可直接使用新数据库。
2021-10-12
1、后端开启颗粒化权限控制数据库结构无变化只是增加了不同菜单对不同Controller和Action的控制关联及管理员的关联权限。
2021-08-31
1、【调整】删除【支付单关系表CoreCmsBillPaymentsRel】【CoreCmsBillPayments】表增加【sourceId】字段替换不同类型数据单据关联。
2、【调整】删除【发货单关系表CoreCmsBillDeliveryOrderRel】【CoreCmsBillDeliveryItem】表增加【orderId】字段直接对接订单表。
3、【调整】删除【支付票据文件表CoreCmsPaymentsFile】
2021-08-01
1、增加【WeChatAccessToken】表。用于存储微信公众号或者小程序存放交互accessToken用
2021-07-20
1、删除【CoreCmsGoodsType】表。
2、删除【CoreCmsGoodsTypeSpecRel】表。
3、删除【CoreCmsGoodsTypeParams】表。
4、商品表增加【goodsSkuIds】字段。sku序列
5、商品表增加【goodsParamsIds】字段。参数序列
2021-06-08
修复【SysLoginRecord】表【os】字段【browser】字段长度过低导致mac操作系统访问数据过长无法存储的问题。
2021-06-09
增加备注删除job同步mysql

View File

@ -1,250 +0,0 @@
-- =============================================
-- 预约系统按时段优化 - 数据库迁移脚本
-- 创建时间: 2025-12-06
-- 说明: 新增房间时段价格表,修改现有表结构
-- =============================================
USE []
GO
-- =============================================
-- 1. 创建房间时段价格表 SQRoomPricing
-- =============================================
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SQRoomPricing]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[SQRoomPricing](
[id] [int] IDENTITY(1,1) NOT NULL,
[room_id] [int] NOT NULL,
[time_slot_type] [int] NOT NULL,
[standard_price] [decimal](10, 2) NOT NULL,
[member_price] [decimal](10, 2) NOT NULL,
[price_desc_standard] [nvarchar](100) NULL,
[price_desc_member] [nvarchar](100) NULL,
[effective_date_start] [date] NULL,
[effective_date_end] [date] NULL,
[is_active] [bit] NOT NULL DEFAULT 1,
[created_at] [datetime] NOT NULL DEFAULT GETDATE(),
[updated_at] [datetime] NOT NULL DEFAULT GETDATE(),
CONSTRAINT [PK_SQRoomPricing] PRIMARY KEY CLUSTERED ([id] ASC)
)
-- 创建索引
CREATE NONCLUSTERED INDEX [IX_SQRoomPricing_RoomSlot] ON [dbo].[SQRoomPricing]
(
[room_id] ASC,
[time_slot_type] ASC
)
CREATE NONCLUSTERED INDEX [IX_SQRoomPricing_EffectiveDate] ON [dbo].[SQRoomPricing]
(
[effective_date_start] ASC,
[effective_date_end] ASC
)
PRINT '✓ 表 SQRoomPricing 创建成功'
END
ELSE
BEGIN
PRINT '× 表 SQRoomPricing 已存在'
END
GO
-- =============================================
-- 2. 修改 SQRooms 表,添加新字段
-- =============================================
-- 添加 room_type_name 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQRooms]') AND name = 'room_type_name')
BEGIN
ALTER TABLE [dbo].[SQRooms] ADD [room_type_name] [nvarchar](50) NULL
PRINT '✓ SQRooms.room_type_name 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQRooms.room_type_name 字段已存在'
END
GO
-- 添加 sort_order 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQRooms]') AND name = 'sort_order')
BEGIN
ALTER TABLE [dbo].[SQRooms] ADD [sort_order] [int] NULL DEFAULT 0
PRINT '✓ SQRooms.sort_order 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQRooms.sort_order 字段已存在'
END
GO
-- =============================================
-- 3. 修改 SQRoomUnavailableTimes 表,添加新字段
-- =============================================
-- 添加 time_slot_type 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQRoomUnavailableTimes]') AND name = 'time_slot_type')
BEGIN
ALTER TABLE [dbo].[SQRoomUnavailableTimes] ADD [time_slot_type] [int] NULL
PRINT '✓ SQRoomUnavailableTimes.time_slot_type 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQRoomUnavailableTimes.time_slot_type 字段已存在'
END
GO
-- 添加 created_by 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQRoomUnavailableTimes]') AND name = 'created_by')
BEGIN
ALTER TABLE [dbo].[SQRoomUnavailableTimes] ADD [created_by] [int] NULL
PRINT '✓ SQRoomUnavailableTimes.created_by 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQRoomUnavailableTimes.created_by 字段已存在'
END
GO
-- =============================================
-- 4. 修改 SQReservations 表,添加新字段
-- =============================================
-- 添加 time_slot_type 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQReservations]') AND name = 'time_slot_type')
BEGIN
ALTER TABLE [dbo].[SQReservations] ADD [time_slot_type] [int] NULL
PRINT '✓ SQReservations.time_slot_type 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQReservations.time_slot_type 字段已存在'
END
GO
-- 添加 latest_arrival_time 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQReservations]') AND name = 'latest_arrival_time')
BEGIN
ALTER TABLE [dbo].[SQReservations] ADD [latest_arrival_time] [datetime] NULL
PRINT '✓ SQReservations.latest_arrival_time 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQReservations.latest_arrival_time 字段已存在'
END
GO
-- 添加 is_solo_mode 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQReservations]') AND name = 'is_solo_mode')
BEGIN
ALTER TABLE [dbo].[SQReservations] ADD [is_solo_mode] [bit] NOT NULL DEFAULT 0
PRINT '✓ SQReservations.is_solo_mode 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQReservations.is_solo_mode 字段已存在'
END
GO
-- 添加 actual_price 字段
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[SQReservations]') AND name = 'actual_price')
BEGIN
ALTER TABLE [dbo].[SQReservations] ADD [actual_price] [decimal](10, 2) NULL
PRINT '✓ SQReservations.actual_price 字段添加成功'
END
ELSE
BEGIN
PRINT '× SQReservations.actual_price 字段已存在'
END
GO
-- =============================================
-- 5. 数据初始化:为现有房间创建默认价格配置
-- =============================================
PRINT ''
PRINT '开始初始化房间价格数据...'
GO
-- 为每个房间创建4个时段的默认价格如果还没有的话
INSERT INTO [dbo].[SQRoomPricing]
([room_id], [time_slot_type], [standard_price], [member_price], [price_desc_standard], [price_desc_member], [is_active], [created_at], [updated_at])
SELECT
r.id as room_id,
slots.time_slot_type,
r.price_per_hour * 6 as standard_price, -- 6小时时段
r.price_per_hour * 6 * 0.8 as member_price, -- 会员价8折
CAST(CAST(r.price_per_hour * 6 AS INT) AS NVARCHAR) + '元/时段' as price_desc_standard,
CAST(CAST(r.price_per_hour * 6 * 0.8 AS INT) AS NVARCHAR) + '元/时段' as price_desc_member,
1 as is_active,
GETDATE() as created_at,
GETDATE() as updated_at
FROM [dbo].[SQRooms] r
CROSS JOIN (
SELECT 0 as time_slot_type UNION ALL -- 凌晨
SELECT 1 UNION ALL -- 上午
SELECT 2 UNION ALL -- 下午
SELECT 3 -- 晚上
) slots
WHERE NOT EXISTS (
SELECT 1 FROM [dbo].[SQRoomPricing] p
WHERE p.room_id = r.id
AND p.time_slot_type = slots.time_slot_type
AND p.effective_date_start IS NULL
AND p.effective_date_end IS NULL
)
PRINT '✓ 房间价格数据初始化完成'
GO
-- =============================================
-- 6. 数据迁移:为历史预约记录填充 time_slot_type
-- =============================================
PRINT ''
PRINT '开始迁移历史预约数据...'
GO
UPDATE [dbo].[SQReservations]
SET [time_slot_type] =
CASE
WHEN DATEPART(HOUR, start_time) >= 0 AND DATEPART(HOUR, start_time) < 6 THEN 0 -- 凌晨
WHEN DATEPART(HOUR, start_time) >= 6 AND DATEPART(HOUR, start_time) < 12 THEN 1 -- 上午
WHEN DATEPART(HOUR, start_time) >= 12 AND DATEPART(HOUR, start_time) < 18 THEN 2 -- 下午
ELSE 3 -- 晚上
END
WHERE [time_slot_type] IS NULL
PRINT '✓ 历史预约数据迁移完成'
GO
-- =============================================
-- 7. 更新 room_type_name 字段(如果 room_type 有值)
-- =============================================
UPDATE [dbo].[SQRooms]
SET [room_type_name] = [room_type]
WHERE [room_type] IS NOT NULL AND [room_type_name] IS NULL
PRINT '✓ room_type_name 数据填充完成'
GO
PRINT ''
PRINT '========================================='
PRINT '数据库迁移脚本执行完成!'
PRINT '========================================='
PRINT ''
PRINT '说明:'
PRINT '1. 时段类型定义:'
PRINT ' 0 = 凌晨 (00:00-05:59)'
PRINT ' 1 = 上午 (06:00-11:59)'
PRINT ' 2 = 下午 (12:00-17:59)'
PRINT ' 3 = 晚上 (18:00-23:59)'
PRINT ''
PRINT '2. 默认价格策略:'
PRINT ' 标准价 = 原price_per_hour × 6'
PRINT ' 会员价 = 标准价 × 0.8'
PRINT ''
PRINT '3. 请在后台管理界面调整各时段的实际价格'
PRINT '========================================='
GO

View File

@ -1,4 +1,3 @@
# 麻将组局预约小程序 - 业务逻辑详解文档
## 目录