WIP: add the logic to save job mark as not suit to db TODO: fix issue about retrieving and showing items

This commit is contained in:
geekgeekrun
2024-10-20 11:25:41 +08:00
parent 7f0ae45758
commit 6b28a9d0ed
7 changed files with 106 additions and 7 deletions

View File

@@ -2,6 +2,12 @@ import { requireTypeorm } from "../utils/module-loader";
import { ChatStartupFrom } from "./ChatStartupLog";
const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm()
export enum MarkAsNotSuitReason {
UNKNOWN = 0,
BOSS_INACTIVE = 1,
OTHER = 2
}
@Entity()
export class MarkAsNotSuitLog {
@PrimaryGeneratedColumn()
@@ -21,6 +27,16 @@ export class MarkAsNotSuitLog {
})
markFrom?: ChatStartupFrom;
@Column({
nullable: true
})
markReason?: MarkAsNotSuitReason
@Column({
nullable: true
})
extInfo?: string
@Column({
nullable: true
})

View File

@@ -8,6 +8,7 @@ import { ChatStartupLog } from "./entity/ChatStartupLog";
import { BossInfoChangeLog } from "./entity/BossInfoChangeLog";
import { CompanyInfoChangeLog } from "./entity/CompanyInfoChangeLog";
import { JobInfoChangeLog } from "./entity/JobInfoChangeLog";
import { MarkAsNotSuitLog } from "./entity/MarkAsNotSuitLog";
function getBossInfoIfIsEqual (savedOne, currentOne) {
if (savedOne === currentOne) {
@@ -262,3 +263,30 @@ export async function saveChatStartupRecord(
//#endregion
return
}
export async function saveMarkAsNotSuitRecord(
ds: DataSource,
_jobInfo,
{ encryptUserId },
{ autoStartupChatRecordId = undefined, markFrom = undefined, extInfo = undefined, markReason = undefined } = {}
) {
const { jobInfo } = _jobInfo;
//#region mark-as-not-suit-log
const markAsNotSuitLog = new MarkAsNotSuitLog()
const markAsNotSuitLogPayload: Partial<MarkAsNotSuitLog> = {
date: new Date(),
encryptCurrentUserId: encryptUserId,
encryptJobId: jobInfo.encryptId,
autoStartupChatRecordId,
markFrom,
markReason,
extInfo: extInfo ? JSON.stringify(extInfo) : undefined
}
Object.assign(markAsNotSuitLog, markAsNotSuitLogPayload)
const markAsNotSuitLogRepository = ds.getRepository(MarkAsNotSuitLog);
await markAsNotSuitLogRepository.save(markAsNotSuitLog);
//#endregion
return
}

View File

@@ -21,7 +21,7 @@ import { VMarkAsNotSuitLog } from "./entity/VMarkAsNotSuitLog"
import sqlite3 from 'sqlite3';
import * as cliHighlight from 'cli-highlight';
import { saveChatStartupRecord, saveJobInfoFromRecommendPage } from "./handlers";
import { saveChatStartupRecord, saveJobInfoFromRecommendPage, saveMarkAsNotSuitRecord } from "./handlers";
import { UpdateChatStartupLogTable1729182577167 } from "./migrations/1729182577167-UpdateChatStartupLogTable";
Boolean(cliHighlight);
@@ -119,5 +119,15 @@ export default class SqlitePlugin {
chatStartupFrom
});
});
hooks.jobMarkedAsNotSuit.tapPromise("SqlitePlugin", async (_jobInfo, { markFrom = ChatStartupFrom.AutoFromRecommendList, markReason = undefined, extInfo = undefined } = {}) => {
const ds = await this.initPromise;
return await saveMarkAsNotSuitRecord(ds, _jobInfo, this.userInfo, {
autoStartupChatRecordId: this.runRecordId,
markFrom,
markReason,
extInfo
});
});
}
}