完善实名认证、钱包与打卡点模块 UI 与业务逻辑。

对齐 Android 实名认证流程与审核页、钱包提现/积分兑换界面,优化打卡点列表与详情交互,并补充相关资源、主题 token 与单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-13 16:28:10 +08:00
parent 07b2b9d459
commit 5138c1c11a
63 changed files with 3101 additions and 745 deletions

View File

@ -106,4 +106,52 @@ final class TravelAlbumOTGCoreTests: XCTestCase {
XCTAssertEqual(key, "punch_point/20260709/u900/aaaaaaaabbbbccccddddeeeeeeeeeeee_guide_photo.jpg")
}
func testOSSRealNameObjectKeyUsesAndroidUserPath() {
let previousUserId = AppStore.shared.session.userId
AppStore.shared.session.userId = "u901"
defer { AppStore.shared.session.userId = previousUserId }
var calendar = Calendar(identifier: .gregorian)
calendar.timeZone = TimeZone(secondsFromGMT: 0)!
let date = calendar.date(from: DateComponents(year: 2026, month: 7, day: 13))!
let uuid = UUID(uuidString: "11111111-2222-3333-4444-555555555555")!
let key = OSSUploadPolicy.objectKey(
fileName: "id/front.jpg",
scenicId: 9,
moduleType: "real_name_auth",
date: date,
uuid: uuid,
timeZone: TimeZone(secondsFromGMT: 0)!
)
XCTAssertEqual(key, "real_name_auth/20260713/u901/11111111222233334444555555555555_id_front.jpg")
}
func testOSSRealNamePathDoesNotChangeAvatarOrBankCardModules() {
let date = Date(timeIntervalSince1970: 0)
let uuid = UUID(uuidString: "11111111-2222-3333-4444-555555555555")!
let timeZone = TimeZone(secondsFromGMT: 0)!
let avatar = OSSUploadPolicy.objectKey(
fileName: "avatar.jpg",
scenicId: 9,
moduleType: "user_avatar",
date: date,
uuid: uuid,
timeZone: timeZone
)
let bankCard = OSSUploadPolicy.objectKey(
fileName: "bank.jpg",
scenicId: 9,
moduleType: "bank_card",
date: date,
uuid: uuid,
timeZone: timeZone
)
XCTAssertTrue(avatar.hasPrefix("avatar/19700101/9/"))
XCTAssertTrue(bankCard.hasPrefix("bank_card/19700101/9/"))
}
}