handle duplicate static combine conditions

This commit is contained in:
geekgeekrun
2025-10-26 19:12:13 +08:00
parent 57cf631b86
commit 1f140121fb
3 changed files with 68 additions and 8 deletions
@@ -125,8 +125,26 @@ export function checkAnyCombineBossRecommendFilterHasCondition(value) {
})
}
export function formatStaticCombineFilters(staticCombineRecommendJobFilterConditions) {
const result = staticCombineRecommendJobFilterConditions.map((condition) => {
export function getStaticCombineFilterKey(condition) {
const kAsO = {}
for (const key of Object.keys(condition ?? []).sort()) {
if (condition[key] === null || condition[key] === undefined) {
continue
}
kAsO[key] = condition[key]
}
return JSON.stringify(kAsO)
}
export function formatStaticCombineFilters(rawStaticCombineRecommendJobFilterConditions) {
rawStaticCombineRecommendJobFilterConditions = JSON.parse(JSON.stringify(rawStaticCombineRecommendJobFilterConditions))
const map = new Map()
for (const condition of rawStaticCombineRecommendJobFilterConditions ?? []) {
const key = getStaticCombineFilterKey(condition)
map.set(key, condition)
}
const conditions = Array.from(map.values())
const result = conditions.map((condition) => {
return {
salaryList: condition.salary ? [condition.salary] : [],
experienceList: condition.experience ? [condition.experience] : [],