Просмотр исходного кода

feat(admin): 限时折扣管理菜单种子 + Layout侧边栏入口(迁移326)

iwt 12 часов назад
Родитель
Сommit
8f77a7d946

+ 20 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -9980,6 +9980,7 @@ sqls.add("INSERT IGNORE INTO health_norm_reference (dimension, gender, age_min,
                 {"commerce", "productProfitRate", "", "产品利润率", "/product-profit-rate", "el-icon-data-line", "finance:profit-rate", "4"},
                 {"commerce", "coupon", "", "优惠券管理", "/coupon", "el-icon-ticket", "commerce:coupon", "5"},
                 {"commerce", "couponGrantLog", "", "发券记录", "/coupon-grant-log", "el-icon-document", "commerce:coupon", "6"},
+                {"commerce", "discountRules", "", "限时折扣管理", "/discount-rules", "el-icon-timer", "commerce:discount", "7"},
                 {"commerce", "promotion", "", "推广管理", "/promotion", "el-icon-s-marketing", "commerce:promotion", "7"},
                 {"commerce", "familyEarnings", "", "家庭收益", "/family-earnings", "el-icon-s-money", "finance:family-earnings", "8"},
                 // 知识中心(articles:*)
@@ -10887,6 +10888,7 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
             log.warn("迁移323: 注册 dan_a2 类型失败: {}", e.getMessage());
         }
         seedDanA2Fingerprints();
+        seedDiscountRulesMenu();
 
         // 迁移313: 修复 meal_configs 历史双编码 participant_member_ids(共餐配置前端曾 JSON.stringify 二次编码,存成了 "\"[1,2]\"",
         //          导致再次进入页面时无法识别选中成员)。仅处理以双引号包裹的值,不触碰正常 "[]..." 格式
@@ -11329,4 +11331,22 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
             log.warn("迁移323: 写入 dan_a2 指纹规则失败: {}", e.getMessage());
         }
     }
+
+    // 迁移326: 商城营销菜单新增「限时折扣管理」(幂等)
+    private void seedDiscountRulesMenu() {
+        try {
+            int count = jdbcTemplate.queryForObject(
+                    "SELECT COUNT(*) FROM menu WHERE path = '/discount-rules'", Integer.class);
+            if (count != null && count > 0) {
+                log.info("迁移326: 限时折扣管理菜单已存在,跳过");
+                return;
+            }
+            jdbcTemplate.update(
+                    "INSERT INTO menu (parent_code, code, title, path, icon, perm, sort_order, created_at) "
+                            + "VALUES ('commerce', 'discountRules', '限时折扣管理', '/discount-rules', 'el-icon-timer', 'commerce:discount', 7, NOW())");
+            log.info("迁移326: 已添加限时折扣管理菜单");
+        } catch (Exception e) {
+            log.warn("迁移326: 添加限时折扣管理菜单失败: {}", e.getMessage());
+        }
+    }
 }

+ 1 - 0
cfc-web/src/views/Layout.vue

@@ -213,6 +213,7 @@ export default {
             { path: '/product-profit-rate', label: '产品利润率', icon: 'el-icon-data-line', perm: 'finance:profit-rate' },
             { path: '/coupon', label: '优惠券管理', icon: 'el-icon-ticket', perm: 'commerce:coupon' },
             { path: '/coupon-grant-log', label: '发券记录', icon: 'el-icon-document', perm: 'commerce:coupon' },
+            { path: '/discount-rules', label: '限时折扣管理', icon: 'el-icon-timer', perm: 'commerce:discount' },
             { path: '/promotion', label: '推广管理', icon: 'el-icon-s-marketing', perm: 'commerce:promotion' },
             { path: '/family-earnings', label: '家庭收益', icon: 'el-icon-s-money', perm: 'finance:family-earnings' },
           ]},