deliveryman-api/app/sql/v1.1.sql
2025-04-12 11:01:44 +08:00

192 lines
7.2 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;
-- 添加merchant_id字段先不添加外键约束
ALTER TABLE merchant_orders
ADD COLUMN merchant_id INT COMMENT '商家ID' AFTER user_id;
-- 从产品表中获取商家ID更新到订单表
UPDATE merchant_orders mo
INNER JOIN merchant_products mp ON mo.merchant_product_id = mp.id
SET mo.merchant_id = mp.merchant_id;
-- 添加外键约束
ALTER TABLE merchant_orders
ADD CONSTRAINT fk_merchant_orders_merchant
FOREIGN KEY (merchant_id) REFERENCES merchants(id);
-- 修改merchant_id为NOT NULL
ALTER TABLE merchant_orders
MODIFY COLUMN merchant_id INT NOT NULL COMMENT '商家ID';
-- 更新现有记录的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 '订单状态';
-- ====FINISH 3.22====
ALTER TABLE merchant_products
ADD COLUMN recommend BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否为平台推荐商品' AFTER delivery_date;
-- 1. 重命名pickup_time为pickup_time_from
ALTER TABLE merchant_products
CHANGE COLUMN pickup_time pickup_time_from TIME COMMENT '自提开始时间';
-- 2. 添加pickup_time_to字段
ALTER TABLE merchant_products
ADD COLUMN pickup_time_to TIME COMMENT '自提结束时间' AFTER pickup_time_from;
-- 添加配送类型快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_delivery_type ENUM('DELIVERY', 'PICKUP') COMMENT '配送类型快照' AFTER verify_user_id;
-- 添加自提点快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_pickup_place VARCHAR(200) COMMENT '自提点快照' AFTER product_delivery_type;
-- 添加自提开始时间快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_pickup_time_from TIME COMMENT '自提开始时间快照' AFTER product_pickup_place;
-- 添加自提结束时间快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_pickup_time_to TIME COMMENT '自提结束时间快照' AFTER product_pickup_time_from;
-- 添加配送时间类型快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_delivery_time_type ENUM('IMMEDIATE', 'SCHEDULED') COMMENT '配送时间类型快照' AFTER product_pickup_time_to;
-- 添加配送日期快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_delivery_date DATE COMMENT '配送日期快照' AFTER product_delivery_time_type;
-- 添加配送截止时间快照字段
ALTER TABLE merchant_orders
ADD COLUMN product_delivery_deadline_time DATETIME COMMENT '配送截止时间快照' AFTER product_delivery_date;
--====FINISH 3.23====
ALTER TABLE merchants
ADD COLUMN community_id INT COMMENT '所属小区' AFTER user_id,
ADD CONSTRAINT fk_merchant_community
FOREIGN KEY (community_id) REFERENCES communities(id)
--====FINISH 3.24====
-- 为 order_additional_fees 表添加 fee_order_id 字段
ALTER TABLE order_additional_fees
ADD COLUMN fee_order_id VARCHAR(32) NOT NULL COMMENT '子订单号,用于支付标识';
-- 创建唯一索引
ALTER TABLE order_additional_fees
ADD UNIQUE INDEX uix_fee_order_id (fee_order_id);
-- 为 order_additional_fees 表添加 transaction_id 字段
ALTER TABLE order_additional_fees
ADD COLUMN transaction_id VARCHAR(64) NULL COMMENT '微信支付交易号';
--====FINISH 4.5====
-- 为 shipping_orders 表添加 refund_amount 等字段
ALTER TABLE shipping_orders
ADD COLUMN refund_amount FLOAT DEFAULT 0,
ADD COLUMN refund_reason VARCHAR(200),
ADD COLUMN refund_user_id INT,
ADD CONSTRAINT fk_refund_user_id FOREIGN KEY (refund_user_id) REFERENCES users(userid);
-- 修改订单表,添加 refund_time 字段
ALTER TABLE shipping_orders
ADD COLUMN refund_time DATETIME AFTER refund_user_id;