diff --git a/packages/sqlite-plugin/src/entity/MarkAsNotSuitLog.ts b/packages/sqlite-plugin/src/entity/MarkAsNotSuitLog.ts new file mode 100644 index 0000000..912f63a --- /dev/null +++ b/packages/sqlite-plugin/src/entity/MarkAsNotSuitLog.ts @@ -0,0 +1,28 @@ +import { requireTypeorm } from "../utils/module-loader"; +import { ChatStartupFrom } from "./ChatStartupLog"; +const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm() + +@Entity() +export class MarkAsNotSuitLog { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptJobId: string; + + @Column() + encryptCurrentUserId: string; + + @Column() + date: Date; + + @Column({ + nullable: true + }) + markFrom?: ChatStartupFrom; + + @Column({ + nullable: true + }) + autoStartupChatRecordId?: number; +} diff --git a/packages/sqlite-plugin/src/entity/VMarkAsNotSuitLog.ts b/packages/sqlite-plugin/src/entity/VMarkAsNotSuitLog.ts new file mode 100644 index 0000000..23c0eaf --- /dev/null +++ b/packages/sqlite-plugin/src/entity/VMarkAsNotSuitLog.ts @@ -0,0 +1,67 @@ +import { requireTypeorm } from "../utils/module-loader"; +const { ViewEntity, ViewColumn } = requireTypeorm(); +@ViewEntity({ + expression: `SELECT + job_info.*, + user_info.name as userName, + mark_as_not_suit_log.date, + boss_info.name AS bossName, + boss_info.title AS bossTitle, + company_info.name AS companyName + FROM + mark_as_not_suit_log + LEFT JOIN job_info ON mark_as_not_suit_log.encryptJobId = job_info.encryptJobId + LEFT JOIN user_info ON mark_as_not_suit_log.encryptCurrentUserId = user_info.encryptUserId + LEFT JOIN boss_info ON boss_info.encryptBossId = job_info.encryptBossId + LEFT JOIN company_info ON company_info.encryptCompanyId = job_info.encryptCompanyId + `, +}) +export class VMarkAsNotSuitLog { + @ViewColumn() + encryptJobId: number; + + @ViewColumn() + jobName: string; + + @ViewColumn() + positionName: string; + + @ViewColumn() + salaryLow: number | null; + + @ViewColumn() + salaryHigh: number | null; + + @ViewColumn() + salaryMonth: number | null; + + @ViewColumn() + experienceName: number | null; + + @ViewColumn() + publishDate: Date | null; + + @ViewColumn() + degreeName: string; + + @ViewColumn() + address: string; + + @ViewColumn() + description: string; + + @ViewColumn() + userName: string; + + @ViewColumn() + date: string; + + @ViewColumn() + bossName: string; + + @ViewColumn() + bossTitle: string; + + @ViewColumn() + companyName: string; +} diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 8e4225a..a9ff397 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -12,10 +12,12 @@ import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; import { AutoStartChatRunRecord } from './entity/AutoStartChatRunRecord'; +import { MarkAsNotSuitLog } from "./entity/MarkAsNotSuitLog" import { VChatStartupLog } from "./entity/VChatStartupLog"; import { VBossLibrary } from "./entity/VBossLibrary"; import { VJobLibrary } from "./entity/VJobLibrary"; import { VCompanyLibrary } from "./entity/VCompanyLibrary" +import { VMarkAsNotSuitLog } from "./entity/VMarkAsNotSuitLog" import sqlite3 from 'sqlite3'; import * as cliHighlight from 'cli-highlight'; @@ -47,7 +49,9 @@ export function initDb(dbFilePath) { VChatStartupLog, VBossLibrary, VJobLibrary, - VCompanyLibrary + VCompanyLibrary, + MarkAsNotSuitLog, + VMarkAsNotSuitLog, ], migrations: [ UpdateChatStartupLogTable1729182577167 diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts index 3c14118..7ef33ae 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts @@ -22,7 +22,8 @@ import { getBossLibrary, getCompanyLibrary, getJobLibrary, - getJobHistoryByEncryptId + getJobHistoryByEncryptId, + getMarkAsNotSuitRecord } from '../utils/db/index' import { PageReq } from '../../../../common/types/pagination' import { pipeWriteRegardlessError } from '../../utils/pipe' @@ -276,6 +277,10 @@ export default function initIpc() { const a = await getAutoStartChatRecord(payload) return a }) + ipcMain.handle('get-mark-as-not-suit-record', async (ev, payload: PageReq) => { + const a = await getMarkAsNotSuitRecord(payload) + return a + }) ipcMain.handle('get-job-library', async (ev, payload: PageReq) => { const a = await getJobLibrary(payload) return a diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/index.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/index.ts index f1fb74b..fe8e81e 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/index.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/index.ts @@ -59,6 +59,15 @@ export const getAutoStartChatRecord = async ({ pageNo, pageSize }: Partial = {}) => { + const res = await createWorkerPromise({ + type: 'getMarkAsNotSuitRecord', + pageNo, + pageSize + }) + return res +} + export const getBossLibrary = async ({ pageNo, pageSize }: Partial = {}) => { const res = await createWorkerPromise({ type: 'getBossLibrary', diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/worker/index.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/worker/index.ts index 916de5d..d8b0c5a 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/worker/index.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/utils/db/worker/index.ts @@ -7,6 +7,7 @@ import { VChatStartupLog } from '@geekgeekrun/sqlite-plugin/dist/entity/VChatSta import { VJobLibrary } from '@geekgeekrun/sqlite-plugin/dist/entity/VJobLibrary' import { VCompanyLibrary } from '@geekgeekrun/sqlite-plugin/dist/entity/VCompanyLibrary' import { VBossLibrary } from '@geekgeekrun/sqlite-plugin/dist/entity/VBossLibrary' +import { VMarkAsNotSuitLog } from '@geekgeekrun/sqlite-plugin/dist/entity/VMarkAsNotSuitLog' import { measureExecutionTime } from '../../../../../../common/utils/performance' import { PageReq, PagedRes } from '../../../../../../common/types/pagination' import { JobInfoChangeLog } from '@geekgeekrun/sqlite-plugin/dist/entity/JobInfoChangeLog' @@ -55,6 +56,28 @@ const payloadHandler = { totalItemCount } }, + async getMarkAsNotSuitRecord({ pageNo, pageSize }: Partial = {}): Promise< + PagedRes + > { + if (!pageNo) { + pageNo = 1 + } + if (!pageSize) { + pageSize = 10 + } + const recordRepository = dataSource!.getRepository(VMarkAsNotSuitLog)! + const [data, totalItemCount] = await measureExecutionTime( + recordRepository.findAndCount({ + skip: (pageNo - 1) * pageSize, + take: pageSize + }) + ) + return { + data, + pageNo, + totalItemCount + } + }, async getJobLibrary({ pageNo, pageSize }: Partial = {}): Promise> { if (!pageNo) { pageNo = 1 diff --git a/packages/ui/src/renderer/src/page/Configuration/MarkAsNotSuitRecord.vue b/packages/ui/src/renderer/src/page/Configuration/MarkAsNotSuitRecord.vue new file mode 100644 index 0000000..a5cffe6 --- /dev/null +++ b/packages/ui/src/renderer/src/page/Configuration/MarkAsNotSuitRecord.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/packages/ui/src/renderer/src/page/Configuration/index.vue b/packages/ui/src/renderer/src/page/Configuration/index.vue index 82feec0..880a90f 100644 --- a/packages/ui/src/renderer/src/page/Configuration/index.vue +++ b/packages/ui/src/renderer/src/page/Configuration/index.vue @@ -7,6 +7,7 @@ 手动逛Boss 开聊记录 + 标记不合适记录 职位库 Boss库 公司库 diff --git a/packages/ui/src/renderer/src/router/index.ts b/packages/ui/src/renderer/src/router/index.ts index 8204b7b..4707189 100644 --- a/packages/ui/src/renderer/src/router/index.ts +++ b/packages/ui/src/renderer/src/router/index.ts @@ -35,6 +35,13 @@ const routes: Array = [ title: '开聊记录' } }, + { + path: 'MarkAsNotSuitRecord', + component: () => import('@renderer/page/Configuration/MarkAsNotSuitRecord.vue'), + meta: { + title: '标记不合适记录' + } + }, { path: 'JobLibrary', component: () => import('@renderer/page/Configuration/JobLibrary.vue'),