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