ソースを参照

chore: auto bump version and changelog [skip ci]

iwt 1 日 前
コミット
adbd24c86f

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

@@ -11377,4 +11377,40 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
             log.warn("迁移326: 添加限时折扣管理菜单失败: {}", e.getMessage());
         }
     }
+
+    // 迁移327: 创建 user_shortcut_config 表(首页快捷方式自定义配置,每应用一条记录,locked=置顶)
+    private void createUserShortcutConfigTable() {
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS user_shortcut_config (" +
+                    "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                    "user_id BIGINT NOT NULL COMMENT '用户ID', " +
+                    "app_key VARCHAR(64) NOT NULL COMMENT '应用key', " +
+                    "locked TINYINT DEFAULT 0 COMMENT '是否锁定置顶(1=锁定,0=普通)', " +
+                    "sort_order INT DEFAULT 0 COMMENT '手动排序序号', " +
+                    "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
+                    "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, " +
+                    "UNIQUE KEY uk_user_app (user_id, app_key)" +
+                    ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页快捷方式自定义配置'");
+            log.info("迁移327: 已创建 user_shortcut_config 表");
+        } catch (Exception e) {
+            log.warn("迁移327: 创建 user_shortcut_config 表失败: {}", e.getMessage());
+        }
+    }
+
+    // 迁移327: 创建 user_app_usage 表(应用使用频度记录)
+    private void createUserAppUsageTable() {
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS user_app_usage (" +
+                    "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                    "user_id BIGINT NOT NULL COMMENT '用户ID', " +
+                    "app_key VARCHAR(64) NOT NULL COMMENT '应用key', " +
+                    "enter_count INT DEFAULT 0 COMMENT '累计进入次数', " +
+                    "last_enter_at DATETIME COMMENT '最近进入时间', " +
+                    "UNIQUE KEY uk_user_app (user_id, app_key)" +
+                    ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用使用频度记录'");
+            log.info("迁移327: 已创建 user_app_usage 表");
+        } catch (Exception e) {
+            log.warn("迁移327: 创建 user_app_usage 表失败: {}", e.getMessage());
+        }
+    }
 }

+ 25 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/UserAppUsage.java

@@ -0,0 +1,25 @@
+package com.etotem.cfc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("user_app_usage")
+public class UserAppUsage implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long userId;
+
+    private String appKey;
+
+    private Integer enterCount;
+
+    private Date lastEnterAt;
+}

+ 29 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/UserShortcutConfig.java

@@ -0,0 +1,29 @@
+package com.etotem.cfc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("user_shortcut_config")
+public class UserShortcutConfig implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long userId;
+
+    private String appKey;
+
+    private Integer locked;
+
+    private Integer sortOrder;
+
+    private Date createdAt;
+
+    private Date updatedAt;
+}

+ 7 - 0
cfc-backend/src/main/java/com/etotem/cfc/mapper/UserAppUsageMapper.java

@@ -0,0 +1,7 @@
+package com.etotem.cfc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etotem.cfc.entity.UserAppUsage;
+
+public interface UserAppUsageMapper extends BaseMapper<UserAppUsage> {
+}

+ 7 - 0
cfc-backend/src/main/java/com/etotem/cfc/mapper/UserShortcutConfigMapper.java

@@ -0,0 +1,7 @@
+package com.etotem.cfc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etotem.cfc.entity.UserShortcutConfig;
+
+public interface UserShortcutConfigMapper extends BaseMapper<UserShortcutConfig> {
+}

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-4a30d0ca154155b7f2bef6e33965c36b3bb1e641
+003487ac9962fe48573f856ba1d2cbd7ae7ef52a

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1454",
+  "version": "1.0.1455",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 6 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,12 @@
 
 ---
 
+## v1.0.1455 (2026-09-21)
+
+### 文档
+- 首页快捷方式自定义+应用库+频度追踪设计规格
+
+
 ## v1.0.1454 (2026-09-21)
 
 ### 新功能

+ 7 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1454
+> 当前版本: v1.0.1455
 
 ## 历史版本
 
@@ -8,6 +8,12 @@
 
 ---
 
+## v1.0.1455 (2026-09-21)
+
+### 文档
+- 首页快捷方式自定义+应用库+频度追踪设计规格
+
+
 ## v1.0.1454 (2026-09-21)
 
 ### 新功能