Files
ECShopX/database/migrations/Version00000000000040.php
2025-12-29 22:14:41 +08:00

49 lines
12 KiB
PHP

<?php
namespace Database\Migrations;
use Doctrine\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema as Schema;
class Version00000000000040 extends AbstractMigration
{
/**
* @param Schema $schema
*/
public function up(Schema $schema): void
{
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
$this->addSql('CREATE TABLE employee_purchase_activities (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'活动id\', company_id BIGINT NOT NULL COMMENT \'公司ID\', name VARCHAR(50) NOT NULL COMMENT \'活动名称\', title VARCHAR(50) NOT NULL COMMENT \'活动标题\', pages_template_id BIGINT NOT NULL COMMENT \'活动首页模版id\', pic VARCHAR(255) NOT NULL COMMENT \'活动图片\', share_pic VARCHAR(255) NOT NULL COMMENT \'活动分享图片\', enterprise_id LONGTEXT NOT NULL COMMENT \'参与企业ID(DC2Type:simple_array)\', display_time INT NOT NULL COMMENT \'活动展示(预热)时间\', employee_begin_time INT NOT NULL COMMENT \'员工开始购买时间\', employee_end_time INT NOT NULL COMMENT \'员工结束购买时间\', employee_limitfee INT UNSIGNED NOT NULL COMMENT \'员工额度,以分为单位\', if_relative_join TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'亲友是否参与\', invite_limit INT DEFAULT 0 COMMENT \'员工邀请亲友上限\', relative_begin_time INT DEFAULT NULL COMMENT \'亲友开始购买时间\', relative_end_time INT DEFAULT NULL COMMENT \'亲友结束购买时间\', if_share_limitfee TINYINT(1) DEFAULT \'0\' COMMENT \'亲友是否共享员工额度\', relative_limitfee INT UNSIGNED DEFAULT 0 COMMENT \'家属额度,以分为单位\', minimum_amount INT UNSIGNED DEFAULT 0 NOT NULL COMMENT \'起定金额,以分为单位\', close_modify_hours_after_activity INT DEFAULT 0 NOT NULL COMMENT \'活动后数小时关闭修改\', status VARCHAR(255) DEFAULT \'active\' NOT NULL COMMENT \'状态 active:有效的 cancel:取消 pending:暂停 over:结束\', if_share_store TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'是否共享库存\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'员工内购活动表\' ');
$this->addSql('CREATE TABLE employee_purchase_activity_enterprises (activity_id BIGINT NOT NULL COMMENT \'活动ID\', enterprise_id BIGINT NOT NULL COMMENT \'企业ID\', company_id BIGINT NOT NULL COMMENT \'公司ID\', INDEX idx_company_id (company_id), INDEX idx_activity_id (activity_id), INDEX idx_enterprise_id (enterprise_id), PRIMARY KEY(activity_id, enterprise_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'活动参与企业表\' ');
$this->addSql('CREATE TABLE employee_purchase_activity_goods (activity_id BIGINT NOT NULL COMMENT \'活动ID\', goods_id BIGINT NOT NULL COMMENT \'商品ID\', company_id BIGINT NOT NULL COMMENT \'公司ID\', INDEX idx_company_id (company_id), INDEX idx_activity_id (activity_id), INDEX idx_goods_id (goods_id), PRIMARY KEY(activity_id, goods_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'员工内购商品表\' ');
$this->addSql('CREATE TABLE employee_purchase_activity_items (activity_id BIGINT NOT NULL COMMENT \'活动ID\', item_id BIGINT NOT NULL COMMENT \'商品ID\', goods_id BIGINT NOT NULL COMMENT \'商品ID\', company_id BIGINT NOT NULL COMMENT \'公司ID\', activity_price INT NOT NULL COMMENT \'活动价,单位为‘分’\', activity_store INT NOT NULL COMMENT \'活动库存数量\', limit_fee INT UNSIGNED DEFAULT 0 NOT NULL COMMENT \'每人限额,以分为单位\', limit_num INT DEFAULT 0 NOT NULL COMMENT \'每人限购数量\', sort INT DEFAULT 0 NOT NULL COMMENT \'排序\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), INDEX idx_activity_id (activity_id), INDEX idx_item_id (item_id), PRIMARY KEY(activity_id, item_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'员工内购商品表\' ');
$this->addSql('CREATE TABLE employee_purchase_cart (cart_id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'购物车ID\', company_id BIGINT NOT NULL COMMENT \'企业id\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', activity_id BIGINT NOT NULL COMMENT \'活动ID\', user_id BIGINT NOT NULL COMMENT \'用户ID\', item_id BIGINT NOT NULL COMMENT \'商品id\', num BIGINT DEFAULT 1 NOT NULL COMMENT \'商品数量\', is_checked TINYINT(1) DEFAULT \'1\' NOT NULL COMMENT \'购物车是否选中\', INDEX idx_enterprise_activity_item_id (enterprise_id, activity_id, item_id), INDEX idx_company_id (company_id), PRIMARY KEY(cart_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'员工内购活动购物车\' ');
$this->addSql('CREATE TABLE employee_purchase_employees (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'id\', company_id BIGINT NOT NULL COMMENT \'公司id\', name VARCHAR(500) NOT NULL COMMENT \'姓名\', mobile VARCHAR(255) DEFAULT NULL COMMENT \'手机号\', account VARCHAR(500) DEFAULT NULL COMMENT \'登录账号\', email VARCHAR(500) DEFAULT NULL COMMENT \'邮箱\', auth_code VARCHAR(50) DEFAULT NULL COMMENT \'校验码\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', user_id BIGINT DEFAULT NULL COMMENT \'会员id\', member_mobile VARCHAR(255) DEFAULT NULL COMMENT \'会员手机号\', created bigint NOT NULL, updated bigint NOT NULL, disabled TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'失效\', INDEX idx_company_id (company_id), INDEX idx_mobile (mobile(64)), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'企业员工表\' ');
$this->addSql('CREATE TABLE employee_purchase_enterprise_email_box (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'ID\', company_id BIGINT NOT NULL COMMENT \'公司id\', enterprise_id BIGINT NOT NULL COMMENT \'企业白名单id\', smtp_port VARCHAR(10) NOT NULL COMMENT \'端口号\', relay_host VARCHAR(50) NOT NULL COMMENT \'服务器主机地址\', user VARCHAR(50) NOT NULL COMMENT \'服务器用户名\', password VARCHAR(50) NOT NULL COMMENT \'服务器密码\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), INDEX idx_enterprise_id (enterprise_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'企业发件邮箱\' ');
$this->addSql('CREATE TABLE employee_purchase_enterprises (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'ID\', company_id BIGINT NOT NULL COMMENT \'公司id\', name VARCHAR(255) NOT NULL COMMENT \'企业名称\', enterprise_sn VARCHAR(50) NOT NULL COMMENT \'企业编码\', logo LONGTEXT DEFAULT NULL COMMENT \'企业logo\', auth_type VARCHAR(20) NOT NULL COMMENT \'登录类型,mobile:手机号,account:账号,email:邮箱\', disabled TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'禁用\', sort INT DEFAULT 0 NOT NULL COMMENT \'排序\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), INDEX idx_enterprise_sn (enterprise_sn), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'企业表\' ');
$this->addSql('CREATE TABLE employee_purchase_member_activity_aggregate (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'活动id\', company_id BIGINT NOT NULL COMMENT \'公司ID\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', user_id BIGINT NOT NULL COMMENT \'会员ID\', activity_id BIGINT NOT NULL COMMENT \'活动ID\', aggregate_fee INT UNSIGNED NOT NULL COMMENT \'累计使用额度,以分为单位\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'内购活动会员累计使用额度\' ');
$this->addSql('CREATE TABLE employee_purchase_member_activity_items_aggregate (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'活动id\', company_id BIGINT NOT NULL COMMENT \'公司ID\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', user_id BIGINT NOT NULL COMMENT \'会员ID\', activity_id BIGINT NOT NULL COMMENT \'活动ID\', item_id BIGINT NOT NULL COMMENT \'商品ID\', aggregate_fee INT UNSIGNED NOT NULL COMMENT \'累计使用额度,以分为单位\', aggregate_num INT UNSIGNED NOT NULL COMMENT \'累计购买数量\', created INT NOT NULL, updated INT DEFAULT NULL, INDEX idx_company_id (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'内购活动商品会员累计使用额度\' ');
$this->addSql('CREATE TABLE employee_purchase_orders_rel_activity (order_id BIGINT NOT NULL COMMENT \'购物车ID\', company_id BIGINT NOT NULL COMMENT \'企业id\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', activity_id BIGINT NOT NULL COMMENT \'活动ID\', user_id BIGINT NOT NULL COMMENT \'用户ID\', if_share_store TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'是否共享库存\', close_modify_time INT NOT NULL COMMENT \'订单关闭修改时间\', INDEX idx_enterprise_id (enterprise_id), INDEX idx_activity_id (activity_id), INDEX idx_company_id (company_id), PRIMARY KEY(order_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'内购订单关联活动企业表\' ');
$this->addSql('CREATE TABLE employee_purchase_relatives (id BIGINT AUTO_INCREMENT NOT NULL COMMENT \'id\', company_id BIGINT NOT NULL COMMENT \'公司id\', enterprise_id BIGINT NOT NULL COMMENT \'企业id\', user_id BIGINT NOT NULL COMMENT \'会员id\', member_mobile VARCHAR(255) NOT NULL COMMENT \'会员手机号\', activity_id BIGINT NOT NULL COMMENT \'活动ID\', employee_id BIGINT NOT NULL COMMENT \'员工id\', employee_user_id BIGINT NOT NULL COMMENT \'员工关联用户id\', created bigint NOT NULL, disabled TINYINT(1) DEFAULT \'0\' NOT NULL COMMENT \'失效\', INDEX idx_company_id (company_id), INDEX employee_user_id (employee_user_id), INDEX activity_id (activity_id), INDEX user_id (user_id), INDEX idx_member_mobile (member_mobile(64)), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'企业员工家属表\' ');
$this->addSql('DROP TABLE promotions_employee_purchase');
$this->addSql('DROP TABLE promotions_employee_purchase_items');
$this->addSql('DROP TABLE promotions_employee_purchase_relorder');
$this->addSql('DROP TABLE promotions_employee_purchase_reluser');
$this->addSql('DROP INDEX ix_date_company ON datacube_company_data');
$this->addSql('ALTER TABLE datacube_company_data ADD order_class VARCHAR(255) DEFAULT NULL COMMENT \'订单种类,可选值有 employee_purchase:内购订单\', ADD act_id BIGINT DEFAULT 0 NOT NULL COMMENT \'活动ID\', DROP amount_point_payed_count, DROP order_point_count, DROP order_point_payed_count, DROP gmv_point_count');
$this->addSql('CREATE UNIQUE INDEX ix_date_company_act ON datacube_company_data (count_date, company_id, act_id)');
$this->addSql('DROP INDEX ix_date_goods ON datacube_goods_data');
$this->addSql('ALTER TABLE datacube_goods_data ADD order_class VARCHAR(255) DEFAULT NULL COMMENT \'订单种类,可选值有 employee_purchase:内购订单\', ADD act_id BIGINT DEFAULT 0 NOT NULL COMMENT \'活动ID\'');
$this->addSql('CREATE UNIQUE INDEX ix_date_goods_act ON datacube_goods_data (count_date, company_id, item_id, act_id)');
$this->addSql('ALTER TABLE pages_template_set ADD pages_template_id BIGINT DEFAULT 0 COMMENT \'关联模版ID\'');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema): void
{
}
}