-- ============================================================= -- 会员商城 建表脚本(MySQL) -- 库:lqerp_dev(或对应租户库) -- 说明:与 NCC.Extend.Entitys 中 6 张 lq_mall_* 实体一一对应 -- 主键均为 varchar(50)(YitId 雪花号字符串);DeleteMark 为 NULL 表示未删除 -- ⚠️ 每张表建表前先 DROP TABLE IF EXISTS(存在即删除后重建),会清空原有数据,请谨慎在生产库执行 -- ============================================================= SET NAMES utf8mb4; -- 1. 微信会员 ------------------------------------------------- DROP TABLE IF EXISTS `lq_mall_member`; CREATE TABLE `lq_mall_member` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_OpenId` varchar(100) DEFAULT NULL COMMENT '微信OpenId', `F_UnionId` varchar(100) DEFAULT NULL COMMENT '微信UnionId', `F_NickName` varchar(100) DEFAULT NULL COMMENT '昵称', `F_Avatar` varchar(500) DEFAULT NULL COMMENT '头像', `F_Phone` varchar(20) DEFAULT NULL COMMENT '手机号', `F_Gender` int DEFAULT NULL COMMENT '性别 0未知1男2女', `F_LinkedKhId` varchar(50) DEFAULT NULL COMMENT '关联客户档案Id', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_LastLoginTime` datetime DEFAULT NULL COMMENT '最近登录时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_member_openid` (`F_OpenId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-微信会员'; -- 1.1 商品分类 ---------------------------------------------- DROP TABLE IF EXISTS `lq_mall_category`; CREATE TABLE `lq_mall_category` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_Name` varchar(100) DEFAULT NULL COMMENT '分类名称', `F_Icon` varchar(500) DEFAULT NULL COMMENT '图标(图片地址或图标类名)', `F_SortNo` int NOT NULL DEFAULT 0 COMMENT '排序号(倒序,越大越靠前)', `F_Enabled` int NOT NULL DEFAULT 1 COMMENT '是否启用 0停用1启用', `F_CreateUser` varchar(50) DEFAULT NULL COMMENT '创建人', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_UpdateUser` varchar(50) DEFAULT NULL COMMENT '更新人', `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_category_enabled` (`F_Enabled`,`F_DeleteMark`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品分类'; -- 2. 商品 ----------------------------------------------------- DROP TABLE IF EXISTS `lq_mall_product`; CREATE TABLE `lq_mall_product` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_ProductName` varchar(200) DEFAULT NULL COMMENT '商品名称', `F_CoverImg` varchar(500) DEFAULT NULL COMMENT '封面图', `F_Images` text DEFAULT NULL COMMENT '轮播图JSON数组', `F_CategoryId` varchar(50) DEFAULT NULL COMMENT '分类Id(关联lq_mall_category)', `F_CategoryName` varchar(100) DEFAULT NULL COMMENT '分类名称(冗余)', `F_Description` text DEFAULT NULL COMMENT '简介', `F_Price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '现价', `F_OriginalPrice` decimal(18,2) DEFAULT NULL COMMENT '原价', `F_Stock` int NOT NULL DEFAULT 0 COMMENT '库存', `F_Sales` int NOT NULL DEFAULT 0 COMMENT '销量', `F_OnShelf` int NOT NULL DEFAULT 1 COMMENT '上下架 0下架1上架', `F_SortNo` int NOT NULL DEFAULT 0 COMMENT '排序号', `F_Detail` longtext DEFAULT NULL COMMENT '图文详情', `F_CreateUser` varchar(50) DEFAULT NULL COMMENT '创建人', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_UpdateUser` varchar(50) DEFAULT NULL COMMENT '更新人', `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_product_shelf` (`F_OnShelf`,`F_DeleteMark`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品'; -- 3. 商品规格 SKU -------------------------------------------- DROP TABLE IF EXISTS `lq_mall_sku`; CREATE TABLE `lq_mall_sku` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_ProductId` varchar(50) DEFAULT NULL COMMENT '商品Id', `F_SkuName` varchar(200) DEFAULT NULL COMMENT '规格名称', `F_Price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '现价', `F_OriginalPrice` decimal(18,2) DEFAULT NULL COMMENT '原价', `F_Stock` int NOT NULL DEFAULT 0 COMMENT '库存', `F_Sales` int NOT NULL DEFAULT 0 COMMENT '销量', `F_SkuImg` varchar(500) DEFAULT NULL COMMENT '规格图片', `F_OnShelf` int NOT NULL DEFAULT 1 COMMENT '上下架 0下架1上架', `F_SortNo` int NOT NULL DEFAULT 0 COMMENT '排序号', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_sku_product` (`F_ProductId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-商品规格'; -- 4. 订单 ----------------------------------------------------- DROP TABLE IF EXISTS `lq_mall_order`; CREATE TABLE `lq_mall_order` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_OrderNo` varchar(50) DEFAULT NULL COMMENT '订单号', `F_MemberId` varchar(50) DEFAULT NULL COMMENT '会员Id', `F_MemberName` varchar(100) DEFAULT NULL COMMENT '会员昵称', `F_MemberPhone` varchar(20) DEFAULT NULL COMMENT '会员手机号', `F_StoreId` varchar(50) DEFAULT NULL COMMENT '自提门店Id', `F_StoreName` varchar(200) DEFAULT NULL COMMENT '自提门店名称', `F_TotalAmount` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '商品原总额', `F_PayAmount` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '实付金额', `F_PayType` int NOT NULL DEFAULT 1 COMMENT '支付方式 1微信99其他', `F_PayStatus` int NOT NULL DEFAULT 0 COMMENT '支付状态 0未支付1已支付2已退款', `F_OrderStatus` int NOT NULL DEFAULT 1 COMMENT '订单状态 1待付款2待自提3已完成4已取消', `F_PickupCode` varchar(20) DEFAULT NULL COMMENT '取件核销码', `F_PickupTime` datetime DEFAULT NULL COMMENT '自提核销时间', `F_VerifyUser` varchar(50) DEFAULT NULL COMMENT '核销操作人Id', `F_VerifyUserName` varchar(100) DEFAULT NULL COMMENT '核销操作人姓名', `F_VerifyStoreId` varchar(50) DEFAULT NULL COMMENT '核销门店Id', `F_Remark` varchar(500) DEFAULT NULL COMMENT '备注', `F_WxPrepayId` varchar(100) DEFAULT NULL COMMENT '微信预支付会话标识', `F_WxTransactionId` varchar(100) DEFAULT NULL COMMENT '微信支付交易单号', `F_PayTime` datetime DEFAULT NULL COMMENT '支付时间', `F_CancelReason` varchar(500) DEFAULT NULL COMMENT '取消原因', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), UNIQUE KEY `uk_mall_order_no` (`F_OrderNo`), KEY `idx_mall_order_member` (`F_MemberId`), KEY `idx_mall_order_store` (`F_StoreId`), KEY `idx_mall_order_pickup` (`F_PickupCode`), KEY `idx_mall_order_status` (`F_OrderStatus`,`F_PayStatus`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-订单'; -- 5. 订单明细 ------------------------------------------------- DROP TABLE IF EXISTS `lq_mall_order_item`; CREATE TABLE `lq_mall_order_item` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_OrderId` varchar(50) DEFAULT NULL COMMENT '订单Id', `F_OrderNo` varchar(50) DEFAULT NULL COMMENT '订单号', `F_ProductId` varchar(50) DEFAULT NULL COMMENT '商品Id', `F_ProductName` varchar(200) DEFAULT NULL COMMENT '商品名称', `F_SkuId` varchar(50) DEFAULT NULL COMMENT '规格Id', `F_SkuName` varchar(200) DEFAULT NULL COMMENT '规格名称', `F_ProductImg` varchar(500) DEFAULT NULL COMMENT '商品图片', `F_Price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '单价', `F_Quantity` int NOT NULL DEFAULT 0 COMMENT '数量', `F_Amount` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '小计金额', PRIMARY KEY (`F_Id`), KEY `idx_mall_order_item_order` (`F_OrderId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-订单明细'; -- 6. 收货/联系地址 ------------------------------------------- DROP TABLE IF EXISTS `lq_mall_address`; CREATE TABLE `lq_mall_address` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_MemberId` varchar(50) DEFAULT NULL COMMENT '会员Id', `F_ReceiverName` varchar(100) DEFAULT NULL COMMENT '收货人姓名', `F_ReceiverPhone` varchar(20) DEFAULT NULL COMMENT '收货人电话', `F_Province` varchar(50) DEFAULT NULL COMMENT '省', `F_City` varchar(50) DEFAULT NULL COMMENT '市', `F_District` varchar(50) DEFAULT NULL COMMENT '区/县', `F_DetailAddress` varchar(300) DEFAULT NULL COMMENT '详细地址', `F_IsDefault` int NOT NULL DEFAULT 0 COMMENT '是否默认 0否1是', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_address_member` (`F_MemberId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-收货/联系地址'; -- 8. 预约意向(会员商城端提交,不关联现有业务)-------------- DROP TABLE IF EXISTS `lq_mall_appointment`; CREATE TABLE `lq_mall_appointment` ( `F_Id` varchar(50) NOT NULL COMMENT '主键', `F_AppointmentNo` varchar(50) DEFAULT NULL COMMENT '预约单号', `F_MemberId` varchar(50) DEFAULT NULL COMMENT '会员Id', `F_MemberName` varchar(100) DEFAULT NULL COMMENT '会员昵称', `F_MemberPhone` varchar(20) DEFAULT NULL COMMENT '联系手机号', `F_StoreId` varchar(50) DEFAULT NULL COMMENT '预约门店Id', `F_StoreName` varchar(200) DEFAULT NULL COMMENT '预约门店名称', `F_AppointDate` datetime DEFAULT NULL COMMENT '期望到店日期', `F_TimeSlot` varchar(20) DEFAULT NULL COMMENT '期望到店时段(如14:00)', `F_ProjectDesc` varchar(500) DEFAULT NULL COMMENT '需求/项目描述', `F_Remark` varchar(500) DEFAULT NULL COMMENT '会员备注', `F_Status` int NOT NULL DEFAULT 1 COMMENT '状态 1待确认2已确认3已取消', `F_ConfirmUser` varchar(50) DEFAULT NULL COMMENT '确认人Id', `F_ConfirmUserName` varchar(100) DEFAULT NULL COMMENT '确认人姓名', `F_ConfirmTime` datetime DEFAULT NULL COMMENT '确认时间', `F_ConfirmRemark` varchar(500) DEFAULT NULL COMMENT '确认备注(电话沟通结果)', `F_CancelReason` varchar(500) DEFAULT NULL COMMENT '取消原因', `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间', `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间', `F_DeleteMark` int DEFAULT NULL COMMENT '删除标记(NULL未删除)', PRIMARY KEY (`F_Id`), KEY `idx_mall_appt_member` (`F_MemberId`), KEY `idx_mall_appt_store` (`F_StoreId`,`F_Status`), KEY `idx_mall_appt_status` (`F_Status`,`F_DeleteMark`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员商城-预约意向'; -- 7. 支付配置(沿用 BASE_SYSCONFIG,Category=MallPayment)------ -- 可选:预置空配置项,管理后台「支付配置」页保存后自动 upsert -- INSERT INTO base_sysconfig (F_Id, F_Category, F_Key, F_Value) VALUES -- (..., 'MallPayment', 'payEnabled', '0');