deliveryman-api/app/sql/v1.1.sql
2025-03-22 10:22:07 +08:00

94 lines
3.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 1. 添加库存字段
ALTER TABLE merchant_products
ADD COLUMN qty INT NOT NULL DEFAULT 0 COMMENT '库存数量';
-- 2. 添加是否售罄字段
ALTER TABLE merchant_products
ADD COLUMN is_sellout TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否售罄0-未售罄1-已售罄';
-- 3. 添加配送类型字段使用MySQL的ENUM类型
ALTER TABLE merchant_products
ADD COLUMN delivery_type ENUM('DELIVERY', 'PICKUP') NOT NULL DEFAULT 'DELIVERY' COMMENT '配送类型DELIVERY-配送到家PICKUP-自提';
-- 4. 添加自提点字段
ALTER TABLE merchant_products
ADD COLUMN pickup_place VARCHAR(200) NULL COMMENT '自提点';
-- 5. 添加配送时间类型字段使用MySQL的ENUM类型
ALTER TABLE merchant_products
ADD COLUMN delivery_time_type ENUM('IMMEDIATE', 'SCHEDULED') NOT NULL DEFAULT 'IMMEDIATE' COMMENT '配送时间类型IMMEDIATE-立即送SCHEDULED-定时送';
-- 6. 添加配送日期字段
ALTER TABLE merchant_products
ADD COLUMN delivery_date DATE NULL COMMENT '配送日期,仅对定时送有效';
-- 7. 创建索引以提高查询效率
CREATE INDEX idx_merchant_products_delivery_type ON merchant_products(delivery_type);
CREATE INDEX idx_merchant_products_delivery_time_type ON merchant_products(delivery_time_type);
CREATE INDEX idx_merchant_products_is_sellout ON merchant_products(is_sellout);
-- 为merchant_products表添加product_detail字段
ALTER TABLE merchant_products
ADD COLUMN product_detail TEXT COMMENT '产品详细描述Markdown格式';
-- 为merchant_products表添加purchase_note字段
ALTER TABLE merchant_products
ADD COLUMN purchase_note TEXT COMMENT '购买须知,用于提供商品购买相关注意事项';
-- 为merchant_products表添加pickup_time字段带时区信息
ALTER TABLE merchant_products
ADD COLUMN pickup_time DATETIME COMMENT '自提时间,用于指定商品自提的时间';
-- 为merchant_products表添加operation_type字段枚举类型
ALTER TABLE merchant_products
ADD COLUMN operation_type ENUM('SELF_OPERATED', 'MERCHANT') NOT NULL DEFAULT 'MERCHANT' COMMENT '经营类型:自营或商家';
-- 为merchant_products表添加经纬度字段
ALTER TABLE merchant_products
ADD COLUMN longitude DECIMAL(9,6) COMMENT '经度精确到小数点后6位',
ADD COLUMN latitude DECIMAL(9,6) COMMENT '纬度精确到小数点后6位';
-- 为merchant_products表添加已售数量字段
ALTER TABLE merchant_products
ADD COLUMN sold_total INT NOT NULL DEFAULT 0 COMMENT '已售数量';
-- 为delivery_addresses表添加地址类型和经纬度字段
ALTER TABLE delivery_addresses
ADD COLUMN address_type ENUM('PICKUP', 'COMMON') NOT NULL DEFAULT 'PICKUP' COMMENT '地址类型:代取或通用',
ADD COLUMN longitude DECIMAL(9,6) COMMENT '经度精确到小数点后6位',
ADD COLUMN latitude DECIMAL(9,6) COMMENT '纬度精确到小数点后6位';
-- 添加address_id字段先不添加外键约束
ALTER TABLE merchant_orders
ADD COLUMN address_id INT COMMENT '收货地址ID' AFTER merchant_product_id;
-- 添加qty字段
ALTER TABLE merchant_orders
ADD COLUMN qty INT NOT NULL DEFAULT 1 COMMENT '购买数量' AFTER address_id;
-- 添加unit_price字段
ALTER TABLE merchant_orders
ADD COLUMN unit_price DECIMAL(10,2) NOT NULL COMMENT '产品单价' AFTER qty;
-- 更新现有记录的address_id为NULL
UPDATE merchant_orders
SET address_id = NULL
WHERE address_id IS NOT NULL;
-- 添加外键约束
ALTER TABLE merchant_orders
ADD CONSTRAINT fk_merchant_orders_address
FOREIGN KEY (address_id) REFERENCES delivery_addresses(id);
-- 修改address_id为NOT NULL
ALTER TABLE merchant_orders
MODIFY COLUMN address_id INT NOT NULL COMMENT '收货地址ID';
-- 修改status字段的枚举类型
ALTER TABLE merchant_orders
MODIFY COLUMN status ENUM('CREATED', 'PENDING', 'DELIVERING', 'PICKUP_READY', 'COMPLETED', 'CANCELLED', 'REFUNDING', 'REFUNDED')
NOT NULL DEFAULT 'CREATED' COMMENT '订单状态';