Bladeren bron

feat(config): 追加提现+分红+配额配置参数到sys_config种子数据

liaoxg 3 maanden geleden
bovenliggende
commit
30ef820a9d
1 gewijzigde bestanden met toevoegingen van 47 en 1 verwijderingen
  1. 47 1
      num-server/src/main/java/com/etotem/num/service/ConfigService.java

+ 47 - 1
num-server/src/main/java/com/etotem/num/service/ConfigService.java

@@ -75,9 +75,32 @@ public class ConfigService {
         // Dify Chatflow config for relation analysis (v20260604.2 redesign)
         seeds.put("dify.chatflow.relation_app_id", new SeedEntry("", "string", "Dify 关系分析 Chatflow App ID"));
         // Relation type configuration (v20260604.2 redesign)
-        seeds.put("relation.types", new SeedEntry(
+seeds.put("relation.types", new SeedEntry(
                 "[{\"value\":\"spouse\",\"label\":\"夫妻\"},{\"value\":\"parent_child\",\"label\":\"亲子\"},{\"value\":\"colleague\",\"label\":\"同事\"},{\"value\":\"friend\",\"label\":\"朋友\"},{\"value\":\"superior\",\"label\":\"上下级\"},{\"value\":\"parent\",\"label\":\"父母\"},{\"value\":\"child\",\"label\":\"子女\"},{\"value\":\"grandparent\",\"label\":\"祖父母\"},{\"value\":\"grandchild\",\"label\":\"孙子女\"}]",
                 "json", "关系类型配置(JSON数组)"));
+        // Quota limits (per-role)
+        seeds.put("quota.person_limit.normal",       new SeedEntry("3",  "int",    "普通用户可咨询人数上限"));
+        seeds.put("quota.person_limit.annual",       new SeedEntry("9",  "int",    "C端会员可咨询人数上限"));
+        seeds.put("quota.person_limit.family",       new SeedEntry("9",  "int",    "家庭套餐可咨询人数上限"));
+        seeds.put("quota.person_limit.practitioner", new SeedEntry("0",  "int",    "能量师可咨询人数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.normal",         new SeedEntry("3",  "int",    "普通用户每日每人聊天次数上限"));
+        seeds.put("quota.chat_limit.annual",         new SeedEntry("0",  "int",    "C端会员每日每人聊天次数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.family",         new SeedEntry("0",  "int",    "家庭套餐每日每人聊天次数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.practitioner",   new SeedEntry("0",  "int",    "能量师每日每人聊天次数上限(0=不限制)"));
+        // 提现配置(Sprint 2)
+        seeds.put("withdraw.min_amount",           new SeedEntry("10000",  "amount",  "最低提现金额(分)"));
+        seeds.put("withdraw.max_amount",           new SeedEntry("5000000","amount",  "单次最高提现金额(分)"));
+        seeds.put("withdraw.fee_free_threshold",   new SeedEntry("80000",  "amount",  "免税额(分),≤¥800免征劳务报酬税"));
+        seeds.put("withdraw.tax_rate",             new SeedEntry("2000",   "percent", "劳务报酬预扣税率(万分比)"));
+        seeds.put("withdraw.refund_days",          new SeedEntry("30",    "int",     "首笔可走退费通道的天数"));
+        seeds.put("withdraw.merchant_min_balance", new SeedEntry("5000000","amount", "微信商户最低保留余额(分)"));
+        seeds.put("withdraw.batch_time",           new SeedEntry("2330",  "string",  "批处理时间(HHmm)"));
+        seeds.put("withdraw.frozen_on_error",      new SeedEntry("true",   "bool",    "通道失败时是否自动冻结"));
+        // 分红配置(Sprint 3)
+        seeds.put("bonus.personal.pool_rate",      new SeedEntry("500",   "percent", "个人分红池占总收入万分比(500=5%)"));
+        seeds.put("bonus.team.pool_rate",          new SeedEntry("500",   "percent", "团队分红池占总收入万分比(500=5%)"));
+        seeds.put("bonus.settlement_day",          new SeedEntry("1",     "int",     "月度结算日"));
+        seeds.put("bonus.min_payout",              new SeedEntry("10000", "amount",  "最低发放金额(分,¥100),不足滚入下月"));
         seeds.forEach((key, entry) -> {
             SystemConfig cfg = new SystemConfig();
             cfg.setConfigKey(key);
@@ -158,6 +181,29 @@ public class ConfigService {
         seeds.put("relation.types", new SeedEntry(
                 "[{\"value\":\"spouse\",\"label\":\"夫妻\"},{\"value\":\"parent_child\",\"label\":\"亲子\"},{\"value\":\"colleague\",\"label\":\"同事\"},{\"value\":\"friend\",\"label\":\"朋友\"},{\"value\":\"superior\",\"label\":\"上下级\"},{\"value\":\"parent\",\"label\":\"父母\"},{\"value\":\"child\",\"label\":\"子女\"},{\"value\":\"grandparent\",\"label\":\"祖父母\"},{\"value\":\"grandchild\",\"label\":\"孙子女\"}]",
                 "json", "关系类型配置(JSON数组)"));
+        // Quota limits (per-role)
+        seeds.put("quota.person_limit.normal",       new SeedEntry("3",  "int",    "普通用户可咨询人数上限"));
+        seeds.put("quota.person_limit.annual",       new SeedEntry("9",  "int",    "C端会员可咨询人数上限"));
+        seeds.put("quota.person_limit.family",       new SeedEntry("9",  "int",    "家庭套餐可咨询人数上限"));
+        seeds.put("quota.person_limit.practitioner", new SeedEntry("0",  "int",    "能量师可咨询人数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.normal",         new SeedEntry("3",  "int",    "普通用户每日每人聊天次数上限"));
+        seeds.put("quota.chat_limit.annual",         new SeedEntry("0",  "int",    "C端会员每日每人聊天次数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.family",         new SeedEntry("0",  "int",    "家庭套餐每日每人聊天次数上限(0=不限制)"));
+        seeds.put("quota.chat_limit.practitioner",   new SeedEntry("0",  "int",    "能量师每日每人聊天次数上限(0=不限制)"));
+        // 提现配置(Sprint 2)
+        seeds.put("withdraw.min_amount",           new SeedEntry("10000",  "amount",  "最低提现金额(分)"));
+        seeds.put("withdraw.max_amount",           new SeedEntry("5000000","amount",  "单次最高提现金额(分)"));
+        seeds.put("withdraw.fee_free_threshold",   new SeedEntry("80000",  "amount",  "免税额(分),≤¥800免征劳务报酬税"));
+        seeds.put("withdraw.tax_rate",             new SeedEntry("2000",   "percent", "劳务报酬预扣税率(万分比)"));
+        seeds.put("withdraw.refund_days",          new SeedEntry("30",    "int",     "首笔可走退费通道的天数"));
+        seeds.put("withdraw.merchant_min_balance", new SeedEntry("5000000","amount", "微信商户最低保留余额(分)"));
+        seeds.put("withdraw.batch_time",           new SeedEntry("2330",  "string",  "批处理时间(HHmm)"));
+        seeds.put("withdraw.frozen_on_error",      new SeedEntry("true",   "bool",    "通道失败时是否自动冻结"));
+        // 分红配置(Sprint 3)
+        seeds.put("bonus.personal.pool_rate",      new SeedEntry("500",   "percent", "个人分红池占总收入万分比(500=5%)"));
+        seeds.put("bonus.team.pool_rate",          new SeedEntry("500",   "percent", "团队分红池占总收入万分比(500=5%)"));
+        seeds.put("bonus.settlement_day",          new SeedEntry("1",     "int",     "月度结算日"));
+        seeds.put("bonus.min_payout",              new SeedEntry("10000", "amount",  "最低发放金额(分,¥100),不足滚入下月"));
         return seeds;
     }