1
This commit is contained in:
parent
0814242deb
commit
02233db0ec
280
docker/sql/migrations/V9__add_missing_tables.sql
Normal file
280
docker/sql/migrations/V9__add_missing_tables.sql
Normal file
@ -0,0 +1,280 @@
|
||||
-- V9: 添加缺失的经济系统和等级系统表 (2026-05-18)
|
||||
-- 服务器数据库缺少以下表: user_mint_count, mint_cost_config, level_*, transaction_records, mint_*_config
|
||||
|
||||
BEGIN;
|
||||
|
||||
-- =====================================================
|
||||
-- 1. user_mint_count 铸爱次数表 (V5原有)
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.user_mint_count (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL,
|
||||
star_id BIGINT NOT NULL,
|
||||
mint_count INT NOT NULL DEFAULT 0,
|
||||
revenue_boost_bps INT NOT NULL DEFAULT 0,
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_user_mint_count_user_star UNIQUE (user_id, star_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_user_mint_count_user ON public.user_mint_count USING btree (user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_mint_count_star ON public.user_mint_count USING btree (star_id);
|
||||
|
||||
COMMENT ON TABLE public.user_mint_count IS '用户在某偶像下的累计铸爱次数与收益加成(基点)';
|
||||
|
||||
-- =====================================================
|
||||
-- 2. mint_cost_config 铸爱阶梯配置表 (V5原有)
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.mint_cost_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
mint_count INT NOT NULL,
|
||||
cost_crystal BIGINT NOT NULL,
|
||||
probability BIGINT NOT NULL DEFAULT 0,
|
||||
reward_type VARCHAR(50) DEFAULT NULL,
|
||||
reward_value BIGINT NOT NULL DEFAULT 0,
|
||||
description VARCHAR(255),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_mint_cost_config_mint_count UNIQUE (mint_count)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.mint_cost_config IS '铸爱次数阶梯消耗与保底配置';
|
||||
|
||||
-- 插入铸爱阶梯数据
|
||||
INSERT INTO public.mint_cost_config (mint_count, cost_crystal, probability, reward_type, reward_value, description, updated_at)
|
||||
VALUES
|
||||
(1, 2, 0, NULL, 0, '第1次', 1773322573872),
|
||||
(2, 4, 0, NULL, 0, '第2次', 1773322573872),
|
||||
(3, 8, 0, NULL, 0, '第3次', 1773322573872),
|
||||
(4, 16, 0, NULL, 0, '第4次', 1773322573872),
|
||||
(5, 32, 0, NULL, 0, '第5次', 1773322573872),
|
||||
(6, 64, 0, NULL, 0, '第6次', 1773322573872),
|
||||
(7, 128, 0, NULL, 0, '第7次', 1773322573872),
|
||||
(8, 256, 0, NULL, 0, '第8次', 1773322573872),
|
||||
(9, 512, 20, '收益提升', 5, '小保底', 1773322573872),
|
||||
(10, 1024, 100, '收益提升', 5, '大保底', 1773322573872)
|
||||
ON CONFLICT (mint_count) DO UPDATE SET
|
||||
cost_crystal = EXCLUDED.cost_crystal,
|
||||
probability = EXCLUDED.probability,
|
||||
reward_type = EXCLUDED.reward_type,
|
||||
reward_value = EXCLUDED.reward_value,
|
||||
description = EXCLUDED.description,
|
||||
updated_at = EXCLUDED.updated_at;
|
||||
|
||||
-- =====================================================
|
||||
-- 3. level_thresholds 等级阈值表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.level_thresholds (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
level INT NOT NULL,
|
||||
exp_requirement BIGINT NOT NULL DEFAULT 0,
|
||||
title VARCHAR(50),
|
||||
badge_url VARCHAR(500),
|
||||
privileges JSONB,
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_level_thresholds_level UNIQUE (level)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.level_thresholds IS '等级阈值配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 4. level_up_reward_config 升级奖励配置表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.level_up_reward_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
level INT NOT NULL,
|
||||
reward_type VARCHAR(50) NOT NULL,
|
||||
reward_amount BIGINT NOT NULL DEFAULT 0,
|
||||
description VARCHAR(255),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_level_up_reward_level_type UNIQUE (level, reward_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.level_up_reward_config IS '升级奖励配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 5. level_upgrade_conditions 升级条件表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.level_upgrade_conditions (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
level INT NOT NULL,
|
||||
condition_type VARCHAR(50) NOT NULL,
|
||||
condition_value BIGINT NOT NULL DEFAULT 0,
|
||||
description VARCHAR(255),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_level_upgrade_conditions_level_type UNIQUE (level, condition_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.level_upgrade_conditions IS '升级条件配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 6. dazi_level_thresholds 靶子等级阈值表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.dazi_level_thresholds (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
level INT NOT NULL,
|
||||
exp_requirement BIGINT NOT NULL DEFAULT 0,
|
||||
title VARCHAR(50),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_dazi_level_thresholds_level UNIQUE (level)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.dazi_level_thresholds IS '靶子等级阈值配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 7. level_cap_config 等级上限配置表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.level_cap_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
star_id BIGINT NOT NULL,
|
||||
max_level INT NOT NULL DEFAULT 50,
|
||||
exp_multiplier DECIMAL(5,2) NOT NULL DEFAULT 1.0,
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_level_cap_config_star UNIQUE (star_id)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.level_cap_config IS '等级上限配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 8. user_dazi_level 用户靶子等级表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.user_dazi_level (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL,
|
||||
star_id BIGINT NOT NULL,
|
||||
level INT NOT NULL DEFAULT 1,
|
||||
exp BIGINT NOT NULL DEFAULT 0,
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_user_dazi_level_user_star UNIQUE (user_id, star_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_user_dazi_level_user ON public.user_dazi_level USING btree (user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_dazi_level_star ON public.user_dazi_level USING btree (star_id);
|
||||
|
||||
COMMENT ON TABLE public.user_dazi_level IS '用户在某偶像下的靶子等级和经验';
|
||||
|
||||
-- =====================================================
|
||||
-- 9. coin_transaction_records 金币交易记录表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.coin_transaction_records (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL,
|
||||
star_id BIGINT NOT NULL,
|
||||
transaction_type VARCHAR(50) NOT NULL,
|
||||
amount BIGINT NOT NULL,
|
||||
balance_before BIGINT NOT NULL,
|
||||
balance_after BIGINT NOT NULL,
|
||||
reference_id VARCHAR(100),
|
||||
reference_type VARCHAR(50),
|
||||
description VARCHAR(255),
|
||||
created_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_coin_transaction_records_id UNIQUE (id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_coin_transaction_records_user ON public.coin_transaction_records USING btree (user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_coin_transaction_records_star ON public.coin_transaction_records USING btree (star_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_coin_transaction_records_created ON public.coin_transaction_records USING btree (created_at DESC);
|
||||
|
||||
COMMENT ON TABLE public.coin_transaction_records IS '金币交易记录表';
|
||||
|
||||
-- =====================================================
|
||||
-- 10. crystal_transaction_records 水晶交易记录表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.crystal_transaction_records (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL,
|
||||
star_id BIGINT NOT NULL,
|
||||
change_type VARCHAR(50) NOT NULL,
|
||||
delta BIGINT NOT NULL,
|
||||
balance_before BIGINT NOT NULL,
|
||||
balance_after BIGINT NOT NULL,
|
||||
source_id VARCHAR(100),
|
||||
reference_type VARCHAR(50),
|
||||
description VARCHAR(255),
|
||||
created_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_crystal_transaction_records_id UNIQUE (id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_crystal_transaction_records_user ON public.crystal_transaction_records USING btree (user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_crystal_transaction_records_star ON public.crystal_transaction_records USING btree (star_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_crystal_transaction_records_created ON public.crystal_transaction_records USING btree (created_at DESC);
|
||||
|
||||
COMMENT ON TABLE public.crystal_transaction_records IS '水晶交易记录表';
|
||||
|
||||
-- =====================================================
|
||||
-- 11. mint_reward_config 铸爱奖励配置表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.mint_reward_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
mint_count INT NOT NULL,
|
||||
reward_type VARCHAR(50) NOT NULL,
|
||||
reward_amount BIGINT NOT NULL DEFAULT 0,
|
||||
probability BIGINT NOT NULL DEFAULT 0,
|
||||
description VARCHAR(255),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_mint_reward_config_mint_count_type UNIQUE (mint_count, reward_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.mint_reward_config IS '铸爱奖励配置表';
|
||||
|
||||
-- =====================================================
|
||||
-- 12. mint_milestone_config 铸爱里程碑配置表
|
||||
-- =====================================================
|
||||
CREATE TABLE IF NOT EXISTS public.mint_milestone_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
milestone INT NOT NULL,
|
||||
reward_type VARCHAR(50) NOT NULL,
|
||||
reward_amount BIGINT NOT NULL DEFAULT 0,
|
||||
description VARCHAR(255),
|
||||
updated_at BIGINT NOT NULL,
|
||||
CONSTRAINT uk_mint_milestone_config_milestone UNIQUE (milestone)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE public.mint_milestone_config IS '铸爱里程碑配置表';
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- 插入默认等级阈值数据
|
||||
INSERT INTO public.level_thresholds (level, exp_requirement, title, badge_url, privileges, updated_at)
|
||||
VALUES
|
||||
(1, 0, '初入星途', NULL, NULL, 1773322573872),
|
||||
(2, 100, '小小星星', NULL, NULL, 1773322573872),
|
||||
(3, 300, '新星闪耀', NULL, NULL, 1773322573872),
|
||||
(4, 600, '潜力新星', NULL, NULL, 1773322573872),
|
||||
(5, 1000, '明日之星', NULL, NULL, 1773322573872),
|
||||
(6, 1500, '冉冉升起', NULL, NULL, 1773322573872),
|
||||
(7, 2100, '星光熠熠', NULL, NULL, 1773322573872),
|
||||
(8, 2800, '璀璨星辰', NULL, NULL, 1773322573872),
|
||||
(9, 3600, '星途璀璨', NULL, NULL, 1773322573872),
|
||||
(10, 4500, '超级新星', NULL, NULL, 1773322573872)
|
||||
ON CONFLICT (level) DO UPDATE SET
|
||||
exp_requirement = EXCLUDED.exp_requirement,
|
||||
title = EXCLUDED.title,
|
||||
badge_url = EXCLUDED.badge_url,
|
||||
privileges = EXCLUDED.privileges,
|
||||
updated_at = EXCLUDED.updated_at;
|
||||
|
||||
-- 插入默认靶子等级阈值数据
|
||||
INSERT INTO public.dazi_level_thresholds (level, exp_requirement, title, updated_at)
|
||||
VALUES
|
||||
(1, 0, '初级靶子', 1773322573872),
|
||||
(2, 50, '中级靶子', 1773322573872),
|
||||
(3, 150, '高级靶子', 1773322573872),
|
||||
(4, 300, '超级靶子', 1773322573872),
|
||||
(5, 500, '终极靶子', 1773322573872)
|
||||
ON CONFLICT (level) DO UPDATE SET
|
||||
exp_requirement = EXCLUDED.exp_requirement,
|
||||
title = EXCLUDED.title,
|
||||
updated_at = EXCLUDED.updated_at;
|
||||
|
||||
-- 插入铸爱里程碑配置
|
||||
INSERT INTO public.mint_milestone_config (milestone, reward_type, reward_amount, description, updated_at)
|
||||
VALUES
|
||||
(10, '称号', 1, '铸爱达人', 1773322573872),
|
||||
(50, '称号', 2, '铸爱巨星', 1773322573872),
|
||||
(100, '称号', 3, '铸爱传奇', 1773322573872),
|
||||
(200, '称号', 4, '铸爱神话', 1773322573872),
|
||||
(500, '称号', 5, '铸爱永恒', 1773322573872)
|
||||
ON CONFLICT (milestone) DO UPDATE SET
|
||||
reward_type = EXCLUDED.reward_type,
|
||||
reward_amount = EXCLUDED.reward_amount,
|
||||
description = EXCLUDED.description,
|
||||
updated_at = EXCLUDED.updated_at;
|
||||
@ -3,7 +3,7 @@
|
||||
"appid" : "__UNI__F199FF4",
|
||||
"description" : "",
|
||||
"versionName" : "1.1.0",
|
||||
"versionCode" : 100,
|
||||
"versionCode" : 101,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
@ -64,9 +64,7 @@
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
||||
"<uses-permission android:name=\"android.permission.BODY_SENSORS\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.sensor.gyroscope\"/>"
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>"
|
||||
],
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
|
||||
},
|
||||
|
||||
@ -3,19 +3,19 @@
|
||||
// 不需要手动注释!
|
||||
|
||||
// #ifdef H5
|
||||
const baseURL = 'http://192.168.110.60:8080' // H5 开发用本机
|
||||
// const baseURL = 'http://101.132.250.62:8080' // H5 开发用本机
|
||||
// const baseURL = 'http://192.168.110.60:8080' // H5 开发用本机
|
||||
const baseURL = 'http://101.132.250.62:8080' // H5 开发用本机
|
||||
// #endif
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
// 开发调试:手机和电脑同一WiFi时用这个(改成你电脑IP)
|
||||
// 上线后:改成实际服务器地址
|
||||
const baseURL = 'http://192.168.110.60:8080'
|
||||
// const baseURL = 'http://192.168.110.60:8080'
|
||||
// #endif
|
||||
|
||||
// 服务器地址(正式上线用)
|
||||
// #ifdef APP-PLUS
|
||||
// const baseURL = 'http://101.132.250.62:8080'
|
||||
const baseURL = 'http://101.132.250.62:8080'
|
||||
// #endif
|
||||
|
||||
// 是否使用模拟数据(开发调试时设为 true,后端API准备好后改为 false)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user