userBinding.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. export interface BaseQueryRequest {
  2. pageNum?: number
  3. pageSize?: number
  4. startTime?: string
  5. endTime?: string
  6. }
  7. export interface UserBindingResponse {
  8. id: string
  9. // Snowflake 64位ID 使用字符串保存以避免 JS Number 精度丢失
  10. patientUserId: string
  11. boundUserId: string
  12. bindingType: string
  13. status: number
  14. createTime: string
  15. boundUserNickname?: string
  16. boundUserPhone?: string
  17. }
  18. export interface UserBindingPageResponse {
  19. records: UserBindingResponse[]
  20. total: number
  21. size: number
  22. current: number
  23. orders: Array<{ column: string; asc: boolean }>
  24. optimizeCountSql: boolean
  25. searchCount: boolean
  26. optimizeJoinOfCountSql: boolean
  27. maxLimit: number
  28. countId: string
  29. pages: number
  30. }
  31. export async function listUserBindingsByPatient(
  32. patientUserId: string | number,
  33. bindingType: string,
  34. query: BaseQueryRequest
  35. ) {
  36. const token = uni.getStorageSync('token')
  37. const qs = `?patientUserId=${encodeURIComponent(String(patientUserId))}&bindingType=${encodeURIComponent(bindingType)}`
  38. const res: any = await uni.request({
  39. url: 'https://wx.baiyun.work/user-binding/list-by-patient' + qs,
  40. method: 'POST',
  41. data: query,
  42. params: {
  43. patientUserId,
  44. bindingType
  45. },
  46. header: {
  47. 'content-type': 'application/json',
  48. Authorization: `Bearer ${token}`
  49. }
  50. })
  51. return res
  52. }
  53. // 创建用户绑定关系 POST /user-binding/create
  54. export async function createUserBinding(payload: any) {
  55. const token = uni.getStorageSync('token')
  56. const res: any = await uni.request({
  57. url: 'https://wx.baiyun.work/user-binding/create',
  58. method: 'POST',
  59. header: {
  60. 'Content-Type': 'application/json',
  61. Authorization: `Bearer ${token}`
  62. },
  63. data: payload
  64. })
  65. return res
  66. }
  67. // 检查用户绑定关系 POST /user-binding/check
  68. // 检查绑定关系:支持将 Snowflake ID 以字符串传入,避免精度问题
  69. export async function checkUserBinding(payload: { patientUserId: string | number; boundUserId: string | number }) {
  70. const token = uni.getStorageSync('token')
  71. const res: any = await uni.request({
  72. url: 'https://wx.baiyun.work/user-binding/check',
  73. method: 'POST',
  74. header: {
  75. 'Content-Type': 'application/json',
  76. Authorization: `Bearer ${token}`
  77. },
  78. data: payload
  79. })
  80. return res
  81. }