脱敏排行榜昵称
This commit is contained in:
@@ -14,6 +14,7 @@ import {
|
|||||||
normalizeWithdrawChannel,
|
normalizeWithdrawChannel,
|
||||||
normalizeRequirementFields,
|
normalizeRequirementFields,
|
||||||
mapWorkOrderForWorker,
|
mapWorkOrderForWorker,
|
||||||
|
maskWorkerLeaderboardDisplayName,
|
||||||
resolveCollectSubmitTargetWorkOrder,
|
resolveCollectSubmitTargetWorkOrder,
|
||||||
resolveMatchingProductRuleDecision,
|
resolveMatchingProductRuleDecision,
|
||||||
resolveWorkerPermissions,
|
resolveWorkerPermissions,
|
||||||
@@ -130,6 +131,12 @@ test('接单密码必须包含大小写字母、数字和标点符号', () => {
|
|||||||
assert.throws(() => validateWorkerPassword('Aa123456'), { errorCode: 'worker_password_invalid' })
|
assert.throws(() => validateWorkerPassword('Aa123456'), { errorCode: 'worker_password_invalid' })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('排行榜打手名称仅展示首字符', () => {
|
||||||
|
assert.equal(maskWorkerLeaderboardDisplayName('张三'), '张****')
|
||||||
|
assert.equal(maskWorkerLeaderboardDisplayName('Alice'), 'A****')
|
||||||
|
assert.equal(maskWorkerLeaderboardDisplayName(''), '****')
|
||||||
|
})
|
||||||
|
|
||||||
test('快手具体 SKU 精确规则优先于大标题包含规则', () => {
|
test('快手具体 SKU 精确规则优先于大标题包含规则', () => {
|
||||||
const decision = resolveMatchingProductRuleDecision(buildOrderRow(), buildOrderItemRow(), [
|
const decision = resolveMatchingProductRuleDecision(buildOrderRow(), buildOrderItemRow(), [
|
||||||
buildProductRule(),
|
buildProductRule(),
|
||||||
|
|||||||
@@ -1158,7 +1158,12 @@ export async function getWorkerHallLeaderboard(session: WorkerSession) {
|
|||||||
})
|
})
|
||||||
const current = entries.find((entry) => entry.workerId === session.workerId)
|
const current = entries.find((entry) => entry.workerId === session.workerId)
|
||||||
return {
|
return {
|
||||||
items: entries.filter((entry) => entry.rank <= 10),
|
items: entries
|
||||||
|
.filter((entry) => entry.rank <= 10)
|
||||||
|
.map((entry) => ({
|
||||||
|
...entry,
|
||||||
|
displayName: maskWorkerLeaderboardDisplayName(entry.displayName),
|
||||||
|
})),
|
||||||
current: {
|
current: {
|
||||||
rank: current?.rank || null,
|
rank: current?.rank || null,
|
||||||
acceptedOrderCount: current?.acceptedOrderCount || 0,
|
acceptedOrderCount: current?.acceptedOrderCount || 0,
|
||||||
@@ -1166,6 +1171,11 @@ export async function getWorkerHallLeaderboard(session: WorkerSession) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function maskWorkerLeaderboardDisplayName(value: unknown): string {
|
||||||
|
const firstCharacter = Array.from(String(value || '').trim())[0]
|
||||||
|
return firstCharacter ? `${firstCharacter}****` : '****'
|
||||||
|
}
|
||||||
|
|
||||||
export async function grabWorkerHallOrder(workOrderId: number | string, session: WorkerSession) {
|
export async function grabWorkerHallOrder(workOrderId: number | string, session: WorkerSession) {
|
||||||
requireActiveWorkerSession(session)
|
requireActiveWorkerSession(session)
|
||||||
const worker = await getRequiredWorker(session.workerId)
|
const worker = await getRequiredWorker(session.workerId)
|
||||||
|
|||||||
Reference in New Issue
Block a user