export interface BaseQueryRequest { pageNum?: number pageSize?: number startTime?: string endTime?: string } export interface UserBindingResponse { id: string // Snowflake 64位ID 使用字符串保存以避免 JS Number 精度丢失 patientUserId: string boundUserId: string bindingType: string status: number createTime: string boundUserNickname?: string boundUserPhone?: string } export interface UserBindingPageResponse { records: UserBindingResponse[] total: number size: number current: number orders: Array<{ column: string; asc: boolean }> optimizeCountSql: boolean searchCount: boolean optimizeJoinOfCountSql: boolean maxLimit: number countId: string pages: number } export async function listUserBindingsByPatient( patientUserId: string | number, bindingType: string, query: BaseQueryRequest ) { const token = uni.getStorageSync('token') const qs = `?patientUserId=${encodeURIComponent(String(patientUserId))}&bindingType=${encodeURIComponent(bindingType)}` const res: any = await uni.request({ url: 'https://wx.baiyun.work/user-binding/list-by-patient' + qs, method: 'POST', data: query, params: { patientUserId, bindingType }, header: { 'content-type': 'application/json', Authorization: `Bearer ${token}` } }) return res } // 创建用户绑定关系 POST /user-binding/create export async function createUserBinding(payload: any) { const token = uni.getStorageSync('token') const res: any = await uni.request({ url: 'https://wx.baiyun.work/user-binding/create', method: 'POST', header: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, data: payload }) return res } // 检查用户绑定关系 POST /user-binding/check // 检查绑定关系:支持将 Snowflake ID 以字符串传入,避免精度问题 export async function checkUserBinding(payload: { patientUserId: string | number; boundUserId: string | number }) { const token = uni.getStorageSync('token') const res: any = await uni.request({ url: 'https://wx.baiyun.work/user-binding/check', method: 'POST', header: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, data: payload }) return res }