export interface DashboardStats {
|
talentCount?: number
|
cardCount?: number
|
merchantCount?: number
|
orderCount?: number
|
benefitCount?: number
|
pendingProductCount?: number
|
todayVerifyCount?: number
|
pendingOrderCount?: number
|
verifiedOrderCount?: number
|
cardholderTotal?: number
|
monthlyVerificationCount?: number
|
monthlyVerificationOrders?: number
|
totalSubsidyAmount?: number
|
cumulativeSubsidyTotal?: number
|
talentCompare?: number
|
monthlyVerificationCompare?: number
|
subsidyCompare?: number
|
verificationPeriod?: 'week' | 'month' | 'year'
|
verificationTrend?: Array<{ time: string; order: number; amount: number }>
|
pendingItems?: Array<{ label: string; value: number; color?: string }>
|
hotMerchants?: Array<{ rank: number; merchantName: string; verificationCount: number; verificationAmount: number }>
|
orderCategoryShares?: Array<{ label: string; value: number; color: string }>
|
}
|
|
export interface PageResult<T> {
|
records: T[]
|
page: number
|
size: number
|
total: number
|
}
|
|
export interface NewsArticle {
|
id: number | string
|
title: string
|
summary?: string
|
coverUrl?: string
|
source?: string
|
author?: string
|
content?: string
|
viewCount?: number
|
isTop?: number | boolean
|
sortNo?: number
|
publishTime?: string
|
status?: number
|
createdAt?: string
|
updatedAt?: string
|
}
|
|
export interface NewsArticlePayload {
|
title: string
|
summary?: string
|
coverUrl?: string
|
source?: string
|
author?: string
|
content?: string
|
isTop?: boolean
|
sortNo?: number
|
status?: number
|
}
|
|
export interface PolicyArticle extends NewsArticle {
|
policyNo?: string
|
subtitle?: string
|
}
|
|
export interface PolicyArticlePayload {
|
title: string
|
subtitle?: string
|
coverUrl?: string
|
author?: string
|
source?: string
|
content?: string
|
isTop?: boolean
|
sortNo?: number
|
status?: number
|
}
|
|
export interface PolicyArticleQuery extends PageQuery {
|
title?: string
|
author?: string
|
publishStart?: string
|
publishEnd?: string
|
}
|
|
export interface NewsArticleQuery extends PageQuery {
|
title?: string
|
source?: string
|
publishStart?: string
|
publishEnd?: string
|
}
|
|
export interface PageQuery {
|
page?: number
|
size?: number
|
keyword?: string
|
type?: string
|
status?: number
|
}
|
|
export interface Talent {
|
id: number | string
|
name: string
|
mobile?: string
|
idCardNo?: string
|
gender?: number
|
talentLevel?: string
|
talentCardNo?: string
|
sourceAreaType?: string
|
orderCount?: number
|
status?: number
|
registerTime?: string
|
workUnit?: string
|
workAddress?: string
|
contactAddress?: string
|
advisorId?: number | string
|
serviceStaffId?: number | string
|
}
|
|
export interface TalentAdvisor {
|
id: number | string
|
advisorName: string
|
department?: string
|
mobile?: string
|
cardLevel?: string
|
}
|
|
export interface AdminRole { id: number | string; roleName: string; roleCode: string; remark?: string; permissionCodes?: string | string[]; status: number; createdAt?: string }
|
export interface AdminStaff { id: number | string; account: string; displayName: string; mobile?: string; roleCode: string; positionName?: string; customerWechat?: string; status: number; createdAt?: string }
|
|
export interface TalentQuery extends PageQuery {
|
mobile?: string
|
cardNo?: string
|
level?: string
|
registerStart?: string
|
registerEnd?: string
|
}
|
|
export interface TalentPayload {
|
name: string
|
mobile?: string
|
idCardNo?: string
|
gender?: number
|
workUnit?: string
|
talentLevel?: string
|
talentCardNo?: string
|
sourceAreaType?: string
|
workAddress?: string
|
contactAddress?: string
|
createdAt?: string
|
}
|
|
export interface TalentImportFailure {
|
rowNumber: number
|
name?: string
|
reason: string
|
}
|
|
export interface TalentImportResult {
|
successCount: number
|
failureCount: number
|
failures: TalentImportFailure[]
|
}
|
|
export interface TalentCard {
|
id: number | string
|
talentId?: number | string
|
cardNo?: string
|
cardType?: string
|
cardLevel?: string
|
validStart?: string
|
validEnd?: string
|
issueTime?: string
|
status?: number
|
expireTime?: string
|
isFamilyCardEnabled?: number
|
familyCardLimit?: number
|
}
|
|
export interface Merchant {
|
id: number | string
|
merchantName: string
|
merchantType?: string
|
contactName?: string
|
contactMobile?: string
|
logoUrl?: string
|
coverUrl?: string
|
address?: string
|
businessStatus?: string
|
longitude?: number
|
latitude?: number
|
canLoginMerchantApp?: number
|
loginAccount?: string
|
groupBuyingEnabled?: number
|
applicableStores?: Array<{
|
id?: number | string
|
name?: string
|
storeName?: string
|
address?: string
|
longitude?: number
|
latitude?: number
|
canNavigate?: boolean | number
|
}>
|
usageInstructions?: string
|
rightsText?: string
|
miniProgramJumpType?: string
|
miniProgramJumpUrl?: string
|
merchantRightsConfig?: Array<{
|
level: string
|
enabled: boolean
|
tag: string
|
detail: string
|
storeConsume: boolean
|
discount: string
|
governmentSubsidy: boolean
|
consumeDesc: string
|
consumeEnabled: boolean
|
parkingType?: string // "free" | "paid"
|
parkingScope?: string // "all" | "selected"
|
externalLinkType?: string
|
externalMiniProgramShortLink?: string
|
externalMiniProgramPath?: string
|
externalWebUrl?: string
|
}> | string
|
serviceLabel?: string
|
businessHours?: Array<{ startTime: string; endTime: string }>
|
isRecommend?: number
|
sortNo?: number
|
status?: number
|
productCount?: number
|
orderCount?: number
|
reservationCount?: number
|
createdAt?: string
|
carWashExternalLinkType?: string
|
carWashExternalMiniProgramShortLink?: string
|
carWashExternalMiniProgramPath?: string
|
carWashExternalWebUrl?: string
|
}
|
|
export interface MerchantPayload {
|
merchantName: string
|
merchantType?: string
|
contactName?: string
|
contactMobile?: string
|
logoUrl?: string
|
coverUrl?: string
|
address?: string
|
businessStatus?: string
|
longitude?: number
|
latitude?: number
|
canLoginMerchantApp?: number
|
loginAccount?: string
|
loginPassword?: string
|
groupBuyingEnabled?: number
|
applicableStores?: Array<{
|
id?: number | string
|
name?: string
|
storeName?: string
|
address?: string
|
longitude?: number
|
latitude?: number
|
}>
|
usageInstructions?: string
|
rightsText?: string
|
miniProgramJumpType?: string
|
miniProgramJumpUrl?: string
|
merchantRightsConfig?: Array<{
|
level: string
|
enabled: boolean
|
tag: string
|
detail: string
|
storeConsume: boolean
|
discount: string
|
governmentSubsidy: boolean
|
consumeDesc: string
|
consumeEnabled: boolean
|
parkingType?: string // "free" | "paid"
|
parkingScope?: string // "all" | "selected"
|
externalLinkType?: string
|
externalMiniProgramShortLink?: string
|
externalMiniProgramPath?: string
|
externalWebUrl?: string
|
}>
|
serviceLabel?: string
|
businessHours?: Array<{ startTime: string; endTime: string }>
|
recommend?: number
|
sortNo?: number
|
status?: number
|
}
|
|
export interface Benefit {
|
id: number | string
|
title: string
|
type?: string
|
description?: string
|
status?: string | number
|
}
|
|
export interface Product {
|
id: number | string
|
merchantId: number | string
|
merchantName?: string
|
merchantType?: string
|
contactMobile?: string
|
productNo?: string
|
productType: string
|
productName: string
|
subtitle?: string
|
coverUrl?: string
|
originalPrice?: number
|
salePrice?: number
|
subsidyAmount?: number
|
isGovernmentSubsidy?: number
|
stock?: number
|
salesCount?: number
|
detailText?: string
|
benefitDesc?: string
|
purchaseNotice?: Record<string, unknown> | string
|
validStartTime?: string
|
validEndTime?: string
|
productImages?: string[] | string
|
rightsConfig?: Array<Record<string, unknown>> | string
|
auditStatus?: number
|
auditRemark?: string
|
status?: number
|
sortNo?: number
|
submitTime?: string
|
createdAt?: string
|
}
|
|
export interface ProductPayload {
|
merchantId: number | string
|
productType: string
|
productName: string
|
subtitle?: string
|
coverUrl?: string
|
originalPrice?: number
|
salePrice?: number
|
subsidyAmount?: number
|
stock?: number
|
detailText?: string
|
benefitDesc?: string
|
purchaseNotice?: Record<string, unknown>
|
validStartTime?: string
|
validEndTime?: string
|
productImages?: string[]
|
rightsConfig?: Array<Record<string, unknown>>
|
status?: number
|
sortNo?: number
|
}
|
|
export interface ProductQuery extends PageQuery {
|
merchantId?: number | string
|
merchantName?: string
|
contactMobile?: string
|
keyword?: string
|
type?: string
|
status?: number
|
createdStart?: string
|
createdEnd?: string
|
}
|
|
export interface Coupon {
|
id: number | string
|
merchantId: number | string
|
merchantName?: string
|
couponName: string
|
conditionType?: string
|
conditionAmount?: number
|
couponAmount?: number
|
talentLevels?: string
|
talentLevelQuantities?: Record<string, number> | string
|
validStart?: string
|
validEnd?: string
|
productScope?: string
|
productIds?: Array<number | string>
|
products?: Product[]
|
productCount?: number
|
productName?: string
|
storeConsume?: number | boolean
|
governmentSubsidy?: number | boolean
|
useCount?: number
|
status?: number
|
createdAt?: string
|
updatedAt?: string
|
}
|
|
export interface CouponPayload {
|
merchantId: number | string
|
couponName: string
|
conditionType: string
|
conditionAmount?: number
|
couponAmount?: number
|
talentLevels: string[]
|
talentLevelQuantities: Record<string, number>
|
validStart?: string
|
validEnd?: string
|
productScope: string
|
productIds: Array<number | string>
|
storeConsume?: boolean
|
governmentSubsidy?: boolean
|
status?: number
|
}
|
|
export interface CouponQuery extends PageQuery {
|
merchantId?: number | string
|
createdStart?: string
|
createdEnd?: string
|
}
|
|
export interface MerchantQuery extends PageQuery {
|
recommend?: number
|
contactMobile?: string
|
createdStart?: string
|
createdEnd?: string
|
}
|
|
export interface LegacyProduct {
|
id: number | string
|
name: string
|
merchantName?: string
|
price?: number
|
stock?: number
|
status?: string | number
|
}
|
|
export interface Order {
|
id: number | string
|
orderNo?: string
|
orderType?: string
|
talentName?: string
|
talentMobile?: string
|
talentIdCardNo?: string
|
talentLevel?: string
|
cardNo?: string
|
cardType?: string
|
productName?: string
|
benefitName?: string
|
merchantId?: number | string
|
merchantName?: string
|
merchantType?: string
|
orderAmount?: number
|
subsidyAmount?: number
|
payAmount?: number
|
orderStatus?: number
|
verifyStatus?: number
|
createdAt?: string
|
payTime?: string
|
updatedAt?: string
|
}
|
|
export interface OrderQuery extends PageQuery {
|
talentId?: number | string
|
merchantId?: number | string
|
orderType?: string
|
talentKeyword?: string
|
merchantName?: string
|
cardLevel?: string
|
hasSubsidy?: number
|
familyOrder?: number
|
orderStart?: string
|
orderEnd?: string
|
}
|
|
export interface RefundRecord {
|
id: number | string
|
refundNo?: string
|
orderNo?: string
|
orderType?: string
|
talentName?: string
|
talentMobile?: string
|
talentLevel?: string
|
cardNo?: string
|
merchantName?: string
|
merchantType?: string
|
benefitName?: string
|
paidAmount?: number
|
refundAmount?: number
|
refundableAmount?: number
|
refundStatus?: number
|
refundTime?: string
|
operatorName?: string
|
orderTime?: string
|
}
|
|
export interface RefundQuery extends PageQuery {
|
orderType?: string
|
talentKeyword?: string
|
merchantName?: string
|
cardLevel?: string
|
hasSubsidy?: number
|
orderStart?: string
|
orderEnd?: string
|
}
|
|
export interface VerificationRecord {
|
id: number | string
|
verifyNo?: string
|
orderNo?: string
|
orderType?: string
|
verifyType?: string
|
talentName?: string
|
talentMobile?: string
|
talentLevel?: string
|
cardNo?: string
|
merchantName?: string
|
merchantType?: string
|
benefitName?: string
|
verifyAmount?: number
|
subsidyAmount?: number
|
verifyTime?: string
|
status?: string
|
}
|
|
export interface VerificationQuery {
|
page?: number
|
size?: number
|
verifyType?: string
|
talentKeyword?: string
|
merchantName?: string
|
cardLevel?: string
|
status?: string
|
orderStart?: string
|
orderEnd?: string
|
}
|
|
export type ServiceApplicationType =
|
| 'MEDICAL_RESERVATION'
|
| 'MEDICAL_APPLICATION'
|
| 'PARKING_PLATE'
|
| 'FUEL_SERVICE'
|
| 'SPOUSE_EMPLOYMENT'
|
| 'HOTEL_RESERVATION'
|
|
export interface ServiceApplication {
|
id: number | string
|
applicationNo?: string
|
applicationType?: ServiceApplicationType
|
talentName?: string
|
talentMobile?: string
|
talentLevel?: string
|
cardNo?: string
|
merchantName?: string
|
hospitalName?: string
|
contactMobile?: string
|
packageName?: string
|
productName?: string
|
applicantName?: string
|
applicantMobile?: string
|
expectedTime?: string
|
submittedAt?: string
|
submissionType?: string
|
plateNo?: string
|
parkingLot?: string
|
alipayMobile?: string
|
spouseName?: string
|
spouseMobile?: string
|
spouseIdCardNo?: string
|
spousePoliticalStatus?: string
|
spouseEducation?: string
|
spouseSchoolMajor?: string
|
spouseWorkUnit?: string
|
spouseInInstitution?: string
|
spouseWorkExperience?: string
|
guestCount?: number
|
subsidy?: string
|
status?: string
|
handledAt?: string
|
handlerName?: string
|
rejectReason?: string
|
}
|
|
export interface ServiceApplicationQuery {
|
page?: number
|
size?: number
|
applicationType?: ServiceApplicationType
|
talentKeyword?: string
|
merchantName?: string
|
hospitalName?: string
|
parkingLot?: string
|
cardLevel?: string
|
status?: string
|
submissionType?: string
|
subsidy?: string
|
submittedStart?: string
|
submittedEnd?: string
|
}
|
|
export interface FamilyCardApplication {
|
id: number | string
|
applicationNo?: string
|
applyNo?: string
|
talentId?: number | string
|
talentName?: string
|
talentMobile?: string
|
talentCardNo?: string
|
cardLevel?: string
|
familyName?: string
|
dependentName?: string
|
familyMobile?: string
|
dependentMobile?: string
|
relationship?: string
|
relation?: string
|
idCardNo?: string
|
dependentIdCardNo?: string
|
applyTime?: string
|
createdAt?: string
|
status?: string | number
|
statusText?: string
|
auditTime?: string
|
auditorName?: string
|
auditBy?: string | number
|
auditRemark?: string
|
proofFiles?: string | string[]
|
familyTalentId?: number | string
|
familyCardId?: number | string
|
cardId?: number | string
|
cardNo?: string
|
issueTime?: string
|
validStart?: string
|
validEnd?: string
|
contactAddress?: string
|
workAddress?: string
|
gender?: number | string
|
talentIdCardNo?: string
|
currentFamilyCardCount?: number
|
familyCardLimit?: number
|
}
|
|
export interface FamilyCardQuery {
|
page?: number
|
size?: number
|
familyKeyword?: string
|
talentKeyword?: string
|
cardLevel?: string
|
status?: string | number
|
applyStart?: string
|
applyEnd?: string
|
management?: boolean
|
}
|
|
export interface ChildCardApplication {
|
id: number | string
|
childName?: string
|
gender?: string | number
|
birthDate?: string
|
talentName?: string
|
talentIdCardNo?: string
|
talentGender?: string | number
|
talentMobile?: string
|
talentCardNo?: string
|
cardLevel?: string
|
registerTime?: string
|
applyTime?: string
|
status?: string | number
|
rejectReason?: string
|
contactAddress?: string
|
workAddress?: string
|
images?: string[] | string
|
}
|
|
export interface ChildCardQuery {
|
page?: number
|
size?: number
|
childKeyword?: string
|
talentKeyword?: string
|
cardLevel?: string
|
status?: string | number
|
applyStart?: string
|
applyEnd?: string
|
}
|
|
export interface UpgradeApplication {
|
id: number | string
|
applicationNo?: string
|
talentId?: number | string
|
talentName?: string
|
talentMobile?: string
|
talentIdCardNo?: string
|
contactAddress?: string
|
workAddress?: string
|
gender?: number | string
|
talentCardNo?: string
|
currentLevel?: string
|
targetLevel?: string
|
applyReason?: string
|
applyTime?: string
|
status?: string
|
auditTime?: string
|
auditorName?: string
|
auditRemark?: string
|
honors?: UpgradeApplicationHonor[]
|
}
|
|
export interface UpgradeApplicationHonor {
|
id?: number | string
|
honorName?: string
|
obtainedDate?: string
|
proofFileId?: number | string
|
proofUrl?: string
|
proofFileUrl?: string
|
sortNo?: number
|
}
|
|
export interface UpgradeApplicationQuery {
|
page?: number
|
size?: number
|
keyword?: string
|
targetLevel?: string
|
status?: string
|
applyStart?: string
|
applyEnd?: string
|
}
|
|
export interface EquityImageItem {
|
id?: number | string
|
name?: string
|
imageUrl?: string
|
sortNo?: number
|
enabled?: boolean | number
|
}
|
|
export interface EquityImageCategory {
|
categoryKey: string
|
categoryLabel: string
|
intro?: string
|
images: EquityImageItem[]
|
}
|
|
export interface MovieTicketRule {
|
id?: number | string
|
level: string
|
enabled?: boolean | number
|
claimableCount?: number | string
|
resetCycle?: string
|
}
|
|
export interface MovieTicketRecord {
|
id: number | string
|
receiveNo?: string
|
packageName?: string
|
merchants?: string
|
talentName?: string
|
talentMobile?: string
|
talentLevel?: string
|
cardNo?: string
|
receivedAt?: string
|
}
|
|
export interface MovieTicketRecordQuery {
|
page?: number
|
size?: number
|
talentKeyword?: string
|
cardLevel?: string
|
receivedStart?: string
|
receivedEnd?: string
|
}
|