From fc1020d310f2f7f47fedf5267a3431283ce53665 Mon Sep 17 00:00:00 2001 From: ningmengchongshui <916415899@qq.com> Date: Sat, 15 Jun 2024 12:28:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20db=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/earth-k-plugin | 1 + src/db/BaseModel.ts | 21 ++++------------- src/db/MysUserDB.ts | 39 ++++++++++--------------------- src/db/UserDB.ts | 52 +++++++++++------------------------------- src/db/UserGameDB.ts | 28 ++++++----------------- 5 files changed, 38 insertions(+), 103 deletions(-) create mode 160000 plugins/earth-k-plugin diff --git a/plugins/earth-k-plugin b/plugins/earth-k-plugin new file mode 160000 index 0000000..0a44a0f --- /dev/null +++ b/plugins/earth-k-plugin @@ -0,0 +1 @@ +Subproject commit 0a44a0f65aa24c5ca97c9a7af3ecf3f3676e990e diff --git a/src/db/BaseModel.ts b/src/db/BaseModel.ts index f6bf092..f6e756b 100644 --- a/src/db/BaseModel.ts +++ b/src/db/BaseModel.ts @@ -1,29 +1,17 @@ import { Sequelize, DataTypes, Model } from 'sequelize' -import { Data } from '../miao.js' -import { join } from 'path' +import { Data } from '#miao' -/** - * 创建路径 - */ Data.createDir('/data/db', 'root') -/** - * DB自定义 - */ -export const sequelize = new Sequelize({ +// TODO DB自定义 +const sequelize = new Sequelize({ dialect: 'sqlite', - storage: join(process.cwd(), '/data/db/data.db'), + storage: process.cwd() + '/data/db/data.db', logging: false }) -/** - * 校验连接 - */ await sequelize.authenticate() -/** - * - */ export default class BaseModel extends Model { static Types = DataTypes @@ -34,3 +22,4 @@ export default class BaseModel extends Model { model.COLUMNS = columns } } +export { sequelize } diff --git a/src/db/MysUserDB.ts b/src/db/MysUserDB.ts index 55dcfdc..522e948 100644 --- a/src/db/MysUserDB.ts +++ b/src/db/MysUserDB.ts @@ -1,28 +1,26 @@ import BaseModel from './BaseModel.js' -import { DataTypes } from 'sequelize' -/** - * - */ +const { Types } = BaseModel + const COLUMNS = { // 用户ID,qq为数字 ltuid: { - type: DataTypes.INTEGER, + type: Types.INTEGER, primaryKey: true }, // MysUser类型,mys / hoyolab type: { - type: DataTypes.STRING, + type: Types.STRING, defaultValue: 'mys', notNull: true }, // CK - ck: DataTypes.STRING, - device: DataTypes.STRING, + ck: Types.STRING, + device: Types.STRING, uids: { - type: DataTypes.STRING, + type: Types.STRING, get() { let data = this.getDataValue('uids') let ret = {} @@ -39,15 +37,7 @@ const COLUMNS = { } } -/** - * - */ class MysUserDB extends BaseModel { - ck = null - type = null - device = null - uids = null - static async find(ltuid = '', create = false) { // DB查询 let mys = await MysUserDB.findByPk(ltuid) @@ -59,6 +49,11 @@ class MysUserDB extends BaseModel { return mys || false } + ck = null + type = null + device = null + uids = null + async saveDB(mys) { if (!mys.ck || !mys.device || !mys.db) { return false @@ -72,17 +67,7 @@ class MysUserDB extends BaseModel { } } -/** - * - */ BaseModel.initDB(MysUserDB, COLUMNS) - -/** - * - */ await MysUserDB.sync() -/** - * - */ export default MysUserDB diff --git a/src/db/UserDB.ts b/src/db/UserDB.ts index 76b793d..d37e3e4 100644 --- a/src/db/UserDB.ts +++ b/src/db/UserDB.ts @@ -1,34 +1,34 @@ import BaseModel from './BaseModel.js' import lodash from 'lodash' +import { UserGameDB } from './index.js' import MysUtil from '../mys/MysUtil.js' -import { DataTypes } from 'sequelize' +import MysUserDB from './MysUserDB.js' + +const { Types } = BaseModel -/** - * - */ const COLUMNS = { // 用户ID,qq为数字 id: { - type: DataTypes.STRING, + type: Types.STRING, autoIncrement: false, primaryKey: true }, type: { - type: DataTypes.STRING, + type: Types.STRING, defaultValue: 'qq', notNull: true }, // 昵称 - name: DataTypes.STRING, + name: Types.STRING, // 头像 - face: DataTypes.STRING, + face: Types.STRING, - ltuids: DataTypes.STRING, + ltuids: Types.STRING, games: { - type: DataTypes.STRING, + type: Types.STRING, get() { let data = this.getDataValue('games') let ret = {} @@ -50,19 +50,10 @@ const COLUMNS = { this.setDataValue('games', JSON.stringify(data)) } }, - data: DataTypes.STRING + data: Types.STRING } -/** - * - */ class UserDB extends BaseModel { - /** - * - * @param id - * @param type - * @returns - */ static async find(id, type = 'qq') { // user_id id = type === 'qq' ? '' + id : type + id @@ -77,16 +68,9 @@ class UserDB extends BaseModel { return user } - games = null - ltuids = null - - /** - * - * @param user - */ async saveDB(user) { - const db = this - const ltuids = [] + let db = this + let ltuids = [] lodash.forEach(user.mysUsers, mys => { if (mys.ck && mys.ltuid) { ltuids.push(mys.ltuid) @@ -111,17 +95,7 @@ class UserDB extends BaseModel { } } -/** - * - */ BaseModel.initDB(UserDB, COLUMNS) - -/** - * - */ await UserDB.sync() -/** - * - */ export default UserDB diff --git a/src/db/UserGameDB.ts b/src/db/UserGameDB.ts index 71ddff1..fac8a98 100644 --- a/src/db/UserGameDB.ts +++ b/src/db/UserGameDB.ts @@ -1,18 +1,17 @@ -import { DataTypes } from 'sequelize' import BaseModel from './BaseModel.js' import lodash from 'lodash' -/** - * - */ + +const { Types } = BaseModel + const COLUMNS = { // 用户ID,qq为数字 userId: { - type: DataTypes.STRING + type: Types.STRING }, - game: DataTypes.STRING, - uid: DataTypes.STRING, + game: Types.STRING, + uid: Types.STRING, data: { - type: DataTypes.STRING, + type: Types.STRING, get() { let data = this.getDataValue('data') let ret = {} @@ -34,22 +33,9 @@ const COLUMNS = { } } -/** - * - */ class UserGameDB extends BaseModel {} -/** - * - */ BaseModel.initDB(UserGameDB, COLUMNS) - -/** - * - */ await UserGameDB.sync() -/** - * - */ export default UserGameDB