index.js 6.63 KB
/*
 * @Date: 2023-08-24 09:42:27
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2026-01-30 17:04:48
 * @FilePath: /xyxBooking-weapp/src/api/index.js
 * @Description: 文件描述
 */
import { fn, fetch } from '@/api/fn'

/**
 * @description 预约业务 API 聚合
 * - 所有接口统一走 fn(fetch.xxx) 保证返回 { code, data, msg }
 */
const Api = {
  CAN_RESERVE_DATE_LIST: '/srv/?a=api&t=can_reserve_date_list',
  CAN_RESERVE_TIME_LIST: '/srv/?a=api&t=can_reserve_time_list',
  PERSON_LIST: '/srv/?a=api&t=person_list',
  ADD_PERSON: '/srv/?a=api&t=add_person',
  DEL_PERSON: '/srv/?a=api&t=del_person',
  ADD_RESERVE: '/srv/?a=api&t=add_reserve',
  // PAY_PREPARE: '/srv/?a=api&t=pay_prepare',
  // PAY_CALLBACK: '/srv/?a=api&t=pay_callback',
  BILL_INFO: '/srv/?a=api&t=bill_info',
  ON_AUTH_BILL_INFO: '/srv/?a=no_auth_api&t=bill_info',
  QRCODE_LIST: '/srv/?a=api&t=qrcode_list',
  QRCODE_STATUS: '/srv/?a=api&t=qrcode_status',
  BILL_LIST: '/srv/?a=api&t=bill_list',
  BILL_OFFLINE_ALL: '/srv/?a=api&t=bill_all_info',
  BILL_CANCEL_UNPAID: '/srv/?a=api&t=bill_cancel_unpaid',
  ICBC_REFUND: '/srv/?a=icbc_refund',
  BILL_PREPARE: '/srv/?a=api&t=bill_person',
  // BILL_PAY_STATUS: '/srv/?a=api&t=bill_pay_status',
  QUERY_QR_CODE: '/srv/?a=api&t=id_number_query_qr_code',
  ICBC_ORDER_QRY: '/srv/?a=icbc_orderqry'
}

/**
 * @description: 可预约日期列表
 * @param {Array} month 月份,格式yyyy-mm, reserve_full 是否可约 1=可约,0=约满,-1=没有配置预约时段, open_time 在今天,开放预约最晚可预约日期的后一天的时间点, tips 不可预约的提示信息
 * @returns
 */
export const canReserveDateListAPI = params => fn(fetch.get(Api.CAN_RESERVE_DATE_LIST, params))

/**
 * @description: 可预约时段列表
 * @param {Array} month_date 日期,格式yyyy-mm-dd
 * @returns
 */
export const canReserveTimeListAPI = params => fn(fetch.get(Api.CAN_RESERVE_TIME_LIST, params))

/**
 * @description: 参观者列表
 * @param {String} reserve_date 预约日期,格式 yyyy-mm-dd,没有传入则不查询指定日期是否已预约
 * @param {String} begin_time 时段开始时间,格式 hh:mm
 * @param {String} end_time 时段结束时间,格式 hh:mm
 * @returns
 */
export const personListAPI = params => fn(fetch.get(Api.PERSON_LIST, params))

/**
 * @description: 添加参观者
 * @param {String} name 参观者姓名
 * @param {String} id_type 证件类型,1=身份证,3=其他
 * @param {String} id_number 证件号
 * @returns
 */
export const addPersonAPI = params => fn(fetch.post(Api.ADD_PERSON, params))

/**
 * @description: 删除参观者
 * @param {String} person_id 参观者id
 * @returns
 */
export const delPersonAPI = params => fn(fetch.post(Api.DEL_PERSON, params))

/**
 * @description: 提交预约
 * @param {String} reserve_date
 * @param {String} begin_time
 * @param {String} end_time
 * @param {String} person_id_list
 * @returns {String} bill_id 预约单id
 */
export const addReserveAPI = params => fn(fetch.post(Api.ADD_RESERVE, params))

/**
 * @description: 支付准备(模拟)
 * @param {String} bill_id
 * @returns {String} bill_id 预约单id
 */
// export const payPrepareAPI = (params) => fn(fetch.post(Api.PAY_PREPARE, params));

/**
 * @description: 支付回调(模拟)
 * @param {String} pay_id 预约单支付凭证
 * @param {String} pay_status 支付状态,1为成功,0为失败(缺省)
 * @returns {String} bill_id 预约单id
 */
// export const payCallbackAPI = (params) => fn(fetch.post(Api.PAY_CALLBACK, params));

/**
 * @description: 预约单详情,参观者列表
 * @param {String} bill_id 预约单id
 * @returns {String}
 */
export const billInfoAPI = params => fn(fetch.get(Api.BILL_INFO, params))

/**
 * @description: 预约单详情,参观者列表 - 免授权接口
 * @param {String} pay_id 订单id
 * @returns {String}
 */
export const onAuthBillInfoAPI = params => fn(fetch.get(Api.ON_AUTH_BILL_INFO, params))

/**
 * @description: 预约码列表
 * @returns {String}
 */
export const qrcodeListAPI = params => fn(fetch.get(Api.QRCODE_LIST, params))

/**
 * @description: 二维码使用状态
 * @param {String} qr_code 二维码编号
 * @returns {String} status 二维码状态 1=未激活(未支付),3=待使用(已支付),5=被取消,7=已使用
 */
export const qrcodeStatusAPI = params => fn(fetch.get(Api.QRCODE_STATUS, params))

/**
 * @description: 预约单列表
 * @param {String}
 * @returns {String}
 */
export const billListAPI = params => fn(fetch.get(Api.BILL_LIST, params))

/**
 * @description: 所有预约单的详情(用于离线缓存:列表+详情)
 * @method: GET
 * @returns: {Object}
 * @returns: {Number} code
 * @returns: {String} msg
 * @returns: {Array} data
 * @returns: {Number} data[].bill_id 预约单id
 * @returns: {String} data[].begin_time 时段起始时间
 * @returns: {String} data[].end_time 时段结束时间
 * @returns: {Number} data[].total_qty 预约人数
 * @returns: {String} data[].total_amt 金额
 * @returns: {String} data[].status 状态(1/2/3/5/7/9/11)
 * @returns: {String} data[].created_time 下单时间
 * @returns: {String} data[].pay_id 订单编号/支付凭证
 * @returns: {Object} data[].list 列表字段集合
 * @returns: {Number} data[].list.show_cancel_reserve 显示“取消预约”按钮(1=显示)
 */
export const billOfflineAllAPI = params => fn(fetch.get(Api.BILL_OFFLINE_ALL, params))

/**
 * @description: 取消预约
 * @param {String} pay_id
 * @returns {String}
 */
export const icbcRefundAPI = params => fn(fetch.post(Api.ICBC_REFUND, params))

/**
 * @description: 取消未支付预约单
 * @param {String} pay_id 预约单ID
 * @returns {String}
 */
export const billCancelUnpaidAPI = params => fn(fetch.post(Api.BILL_CANCEL_UNPAID, params))

/**
 * @description: 预约单的参观者列表
 * @param {String}
 * @returns {String}
 */
export const billPersonAPI = params => fn(fetch.get(Api.BILL_PREPARE, params))

/**
 * 接口废弃
 * @description: 刷新预约单支付状态
 * @param {String}
 * @returns {String}
 */
// export const billPayStatusAPI = (params) => fn(fetch.get(Api.BILL_PAY_STATUS, params));

/**
 * @description: 身份证查询预约码
 * @param {Object} params 请求参数
 * @param {string} params.id_number 身份证号
 * @returns {Promise<{code:number,data:any,msg:string}>} 标准返回
 */
export const queryQrCodeAPI = params => fn(fetch.get(Api.QUERY_QR_CODE, params))

/**
 * @description: 查询订单号
 * @param {Object} params 请求参数
 * @param {string} params.pay_id 支付凭证/订单号
 * @returns {Promise<{code:number,data:any,msg:string}>} 标准返回
 */
export const icbcOrderQryAPI = params => fn(fetch.get(Api.ICBC_ORDER_QRY, params))