member-login-h5/src/api/member.ts

86 lines
2.3 KiB
TypeScript

/**
* 会员模块接口
* 包含: 会员状态查询、会员信息、续费等
*/
import request from '../utils/request'
import type { MemberType } from './types'
/** 会员信息 */
export interface MemberInfo {
/** 会员ID */
memberId: string
/** 会员类型 */
memberType: MemberType
/** 会员等级名称(如"普通会员"/"高级会员") */
memberLevel: string
/** 用户/单位名称 */
name: string
/** 手机号 */
phone: string
/** 是否已支付 */
isPaid: boolean
/** 是否已过期 */
isExpired: boolean
/** 开通日期 */
startDate: string
/** 到期日期 */
expireDate: string
/** 有效期描述 (如 "1年") */
validPeriod: string
/** 会员费金额 */
amount: number
}
/** 会员状态(用于登录后判断跳转) */
export interface MemberStatus {
isPaid: boolean
isExpired: boolean
memberId: string
memberType: MemberType
memberLevel: string
amount: number
validPeriod: string
expireDate: string
}
/** 续费参数 */
export interface RenewParams {
memberId: string
/** 续费时长(月) */
duration?: number
}
/** 发票抬头提交参数 (接口体) */
export interface InvoiceTitleDTO {
/** 发票抬头 (个人姓名 或 单位全称) */
invoiceTitle?: string
/** 纳税人识别号 (单位发票填写) */
invoiceTaxNo?: string
}
/** 获取当前登录会员的信息 */
export const getCurrentMember = () => request.get<MemberInfo>('/member/current')
/** 查询会员状态 */
export const getMemberStatus = () => request.get<MemberStatus>('/member/status')
/** 通过会员ID查询会员信息 */
export const getMemberById = (memberId: string) =>
request.get<MemberInfo>(`/member/${memberId}`)
/** 申请续费,返回新订单ID */
export const renewMember = (data: RenewParams) =>
request.post<{ orderId: string; amount: number }>('/member/renew', data)
/**
* 提交会员发票抬头
* @url PUT /api/v1/wechat/official-account/members/{memberId}/invoice-title
* @param memberId 路径参数(后端命名 memberId,实际传入登录接口返回的 userId)
* @param data { invoiceTitle, invoiceTaxNo }
* @returns boolean (data 字段,true 表示提交成功)
*/
export const submitInvoiceTitle = (
memberId: string,
data: InvoiceTitleDTO,
) => request.put<boolean>(`/members/${memberId}/invoice-title`, data)