mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-05-30 20:50:44 +08:00
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:
@@ -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
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user