refactor(backend): 重构动物相关 API 接口
- 更新了动物数据结构和相关类型定义 - 优化了动物列表、详情、创建、更新和删除接口 - 新增了更新动物状态接口 - 移除了与认领记录相关的接口 -调整了 API 响应结构
This commit is contained in:
@@ -77,7 +77,7 @@ CREATE TABLE IF NOT EXISTS jiebandata.travel_plans (
|
||||
interests TEXT,
|
||||
visibility ENUM('public', 'friends', 'private') NOT NULL DEFAULT 'public',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT极ESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id),
|
||||
INDEX idx_user_id (user_id),
|
||||
INDEX idx_destination (destination),
|
||||
@@ -85,11 +85,32 @@ CREATE TABLE IF NOT EXISTS jiebandata.travel_plans (
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
`;
|
||||
|
||||
// 创建管理员表的SQL语句
|
||||
const createAdminsTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS jiebandata.admins (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(50) NOT NULL UNIQUE,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(100),
|
||||
nickname VARCHAR(50),
|
||||
avatar VARCHAR(255),
|
||||
role VARCHAR(20) NOT NULL DEFAULT 'admin',
|
||||
status TINYINT(1) NOT NULL DEFAULT 1,
|
||||
last_login DATETIME,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_username (username),
|
||||
INDEX idx_role (role),
|
||||
INDEX idx_status (status)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
`;
|
||||
|
||||
// 所有表创建语句
|
||||
const tableCreationSQLs = [
|
||||
createUsersTableSQL,
|
||||
createMerchantsTableSQL,
|
||||
createTravelPlansTableSQL
|
||||
createTravelPlansTableSQL,
|
||||
createAdminsTableSQL
|
||||
];
|
||||
|
||||
function executeSQL(connection, sql, description) {
|
||||
@@ -149,6 +170,12 @@ async function initializeDatabase(config) {
|
||||
('test_openid_2', '测试用户2', 'https://example.com/avatar2.jpg', 'female', '13800138002', 'user2@example.com')
|
||||
`, '插入示例用户数据');
|
||||
|
||||
// 插入示例管理员
|
||||
await executeSQL(connection, `
|
||||
INSERT IGNORE INTO admins (username, password, email, nickname, role) VALUES
|
||||
('admin', '$2a$10$rZ.r/.H0he7d.9T3.1E3qOeP.UZvF0.U6BQ35ENcQbLQzvEuh3dOq', 'admin@example.com', '超级管理员', 'admin')
|
||||
`, '插入示例管理员数据');
|
||||
|
||||
// 验证数据插入
|
||||
const [users] = await new Promise((resolve, reject) => {
|
||||
connection.query('SELECT COUNT(*) as count FROM users', (err, results) => {
|
||||
|
||||
Reference in New Issue
Block a user