294 lines
8.3 KiB
JavaScript
294 lines
8.3 KiB
JavaScript
import request from "@/utils/request.js"
|
||
|
||
export function login(params) {
|
||
return request.post('/member/auth/miniapp/login', params)
|
||
}
|
||
|
||
/**
|
||
* 发送短信验证码
|
||
* @param {object} params - { phone: string }
|
||
*/
|
||
export function sendCode(params) {
|
||
return request.post('/auth/phone/send-code', params)
|
||
}
|
||
|
||
/**
|
||
* 手机号验证码登录
|
||
* @param {object} params - { phone: string, code: string }
|
||
*/
|
||
export function loginWithPhone(params) {
|
||
return request.post('/auth/phone/code-login', params)
|
||
}
|
||
|
||
/**
|
||
* 手机号一键登录
|
||
* @param {object} params - { accessToken: string, openid: string, nickname?: string, avatar?: string }
|
||
*/
|
||
export function oneClickLogin(params) {
|
||
return request.post('/auth/phone/one-click-login', params)
|
||
}
|
||
|
||
export function logout() {
|
||
return request.post('/member/auth/logout')
|
||
}
|
||
|
||
export function getQRCode(options = { cache: true, cacheTime: 5 * 60 * 1000 }) {
|
||
return request.get('/checkIn/qrcode', {}, options)
|
||
}
|
||
|
||
export function checkIn(params) {
|
||
return request.post('/checkIn/scan', params)
|
||
}
|
||
|
||
export function getCheckInRecords(params = {}, options = {}) {
|
||
const { page = 0, size = 5 } = params
|
||
return request.post('/checkIn/page', { page, size }, options)
|
||
}
|
||
|
||
export function getUnreadMessageCount(userId, options = {}) {
|
||
return request.get(`/messages/user/${userId}/unread`, {}, options)
|
||
}
|
||
|
||
// ========== 消息相关API ==========
|
||
|
||
/**
|
||
* 获取用户消息列表(支持分页)
|
||
* @param {number} userId - 用户ID
|
||
* @param {object} params - 查询参数
|
||
* @param {number} params.page - 页码(从0开始)
|
||
* @param {number} params.size - 每页条数
|
||
* @param {object} options - 请求选项
|
||
* @returns {Promise} 消息列表
|
||
*/
|
||
export function getUserMessages(userId, params = {}, options = {}) {
|
||
const { page = 0, size = 10 } = params
|
||
return request.get(`/messages/user/${userId}/page`, { page, size }, options)
|
||
}
|
||
|
||
/**
|
||
* 获取未读消息列表(支持分页)
|
||
* @param {number} userId - 用户ID
|
||
* @param {object} params - 查询参数
|
||
* @param {number} params.page - 页码(从0开始)
|
||
* @param {number} params.size - 每页条数
|
||
* @param {object} options - 请求选项
|
||
* @returns {Promise} 未读消息列表
|
||
*/
|
||
export function getUnreadMessages(userId, params = {}, options = {}) {
|
||
const { page = 0, size = 10 } = params
|
||
return request.get(`/messages/user/${userId}/unread/page`, { page, size }, options)
|
||
}
|
||
|
||
/**
|
||
* 标记消息为已读
|
||
* @param {number|string} id - 消息ID
|
||
* @param {object} options - 请求选项
|
||
* @returns {Promise} 操作结果
|
||
*/
|
||
export function markMessageAsRead(id, options = {}) {
|
||
return request.put(`/messages/${id}/read`, {}, options)
|
||
}
|
||
|
||
/**
|
||
* 标记所有消息为已读
|
||
* @param {number} userId - 用户ID
|
||
* @param {object} options - 请求选项
|
||
* @returns {Promise} 操作结果
|
||
*/
|
||
export function markAllMessagesAsRead(userId, options = {}) {
|
||
return request.put(`/messages/user/${userId}/read`, {}, options)
|
||
}
|
||
|
||
/**
|
||
* 删除消息
|
||
* @param {number|string} id - 消息ID
|
||
* @param {object} options - 请求选项
|
||
* @returns {Promise} 操作结果
|
||
*/
|
||
export function deleteMessage(id, options = {}) {
|
||
return request.delete(`/messages/${id}`, {}, options)
|
||
}
|
||
|
||
export function getUserInfo(options = { cache: true, cacheTime: 30 * 60 * 1000 }) {
|
||
return request.get('/member/info', {}, options)
|
||
}
|
||
|
||
/**
|
||
* 获取会员详细信息(包含会员卡、积分等)
|
||
*/
|
||
export function getMemberDetail(options = { cache: false }) {
|
||
return request.get('/member/info', {}, options)
|
||
}
|
||
|
||
/**
|
||
* 获取签到统计
|
||
* @param {object} params - 查询参数
|
||
* @param {string} params.startDate - 开始日期(yyyy-MM-dd)
|
||
* @param {string} params.endDate - 结束日期(yyyy-MM-dd)
|
||
*/
|
||
export function getCheckInStats(params = {}, options = { cache: false }) {
|
||
return request.get('/checkIn/statistics', params, options)
|
||
}
|
||
|
||
export function updateUserInfo(params) {
|
||
return request.put('/member/info', params)
|
||
}
|
||
|
||
/**
|
||
* 购买会员卡
|
||
* @param {object} params - 购买参数
|
||
* @param {number} params.memberId - 会员ID
|
||
* @param {number} params.memberCardId - 会员卡类型ID
|
||
* @param {number} [params.sourceOrderId] - 来源订单ID
|
||
*/
|
||
export function purchaseMemberCard(params) {
|
||
return request.post('/member-card-records/purchase', params)
|
||
}
|
||
|
||
export function getMyMemberCards(memberId, options = { cache: false }) {
|
||
return request.get(`/member-card-records/my-cards/${memberId}`, {}, options)
|
||
}
|
||
|
||
// ========== 支付相关API ==========
|
||
|
||
/**
|
||
* 创建支付订单
|
||
* @param {object} params - 支付参数
|
||
* @param {number} params.memberId - 会员ID
|
||
* @param {string} params.orderType - 订单类型 (MEMBER_CARD-会员卡, GROUP_COURSE-团课, GOODS-商品)
|
||
* @param {string} params.goodsDesc - 商品描述
|
||
* @param {string} params.transAmt - 交易金额(单位:分)
|
||
* @param {string} params.tradeType - 交易类型 (WECHAT-微信, ALIPAY-支付宝)
|
||
* @param {string} [params.remark] - 备注
|
||
* @param {string} [params.acctId] - 账户号
|
||
* @param {string} [params.timeExpire] - 过期时间 (yyyyMMddHHmmss)
|
||
* @param {string} [params.delayAcctFlag] - 延迟入账标识
|
||
* @param {number} [params.feeFlag] - 手续费标识
|
||
* @param {string} [params.limitPayType] - 禁用支付方式
|
||
* @param {string} [params.channelNo] - 渠道号
|
||
* @param {string} [params.payScene] - 支付场景
|
||
* @param {string} [params.notifyUrl] - 回调通知URL
|
||
*/
|
||
export function createPayment(params) {
|
||
return request.post('/payment/create', params)
|
||
}
|
||
|
||
/**
|
||
* 创建扫码支付订单
|
||
* @param {Object} params - 支付参数
|
||
*/
|
||
export function createQrCodePayment(params) {
|
||
return request.post('/payment/qrcode/create', params)
|
||
}
|
||
|
||
/**
|
||
* 查询支付状态
|
||
* @param {string} orderId - 订单ID
|
||
*/
|
||
export function getPaymentStatus(orderId) {
|
||
return request.get(`/payment/${orderId}`, {})
|
||
}
|
||
|
||
/**
|
||
* 申请退款
|
||
* @param {string} orderId - 订单ID
|
||
* @param {string} refundAmt - 退款金额(单位:分)
|
||
*/
|
||
export function refundPayment(orderId, refundAmt) {
|
||
return request.post(`/payment/${orderId}/refund`, { refundAmt })
|
||
}
|
||
|
||
export function getRecommendCourses(options = { cache: true, cacheTime: 10 * 60 * 1000 }) {
|
||
return request.get('/course/recommend', {}, options)
|
||
}
|
||
|
||
export function getCourseDetail(id, options = { cache: true, cacheTime: 15 * 60 * 1000 }) {
|
||
return request.get(`/course/${id}`, {}, options)
|
||
}
|
||
|
||
export function getGroupCoursePage(params = {}, options = { cache: true, cacheTime: 5 * 60 * 1000 }) {
|
||
const { page = 0, size = 10, sort = 'id', order = 'asc', keyword } = params
|
||
return request.post('/groupCourse/page', { page, size, sort, order, keyword }, options)
|
||
}
|
||
|
||
// ========== 团课预约相关API ==========
|
||
|
||
/**
|
||
* 预约团课
|
||
* @param {object} params - 预约参数
|
||
* @param {number} params.courseId - 团课ID
|
||
* @param {number} params.memberId - 会员ID
|
||
* @param {number} params.memberCardRecordId - 会员卡记录ID
|
||
*/
|
||
export function bookGroupCourse(params) {
|
||
return request.post('/groupCourse/book', params)
|
||
}
|
||
|
||
/**
|
||
* 取消预约
|
||
* @param {number} bookingId - 预约ID
|
||
*/
|
||
export function cancelBooking(bookingId) {
|
||
return request.delete(`/groupCourse/book/${bookingId}`, {})
|
||
}
|
||
|
||
/**
|
||
* 团课签到
|
||
* @param {number} memberId - 会员ID
|
||
* @param {number} courseId - 团课ID
|
||
*/
|
||
export function signinGroupCourse(memberId, courseId) {
|
||
return request.post(`/groupCourse/signin/${memberId}`, { courseId })
|
||
}
|
||
|
||
/**
|
||
* 查询会员预约记录
|
||
* @param {number} memberId - 会员ID
|
||
*/
|
||
export function getMemberBookings(memberId, options = { cache: false }) {
|
||
return request.get(`/groupCourse/bookings/member/${memberId}`, {}, options)
|
||
}
|
||
|
||
/**
|
||
* 查询课程预约记录
|
||
* @param {number} courseId - 团课ID
|
||
*/
|
||
export function getCourseBookings(courseId, options = { cache: false }) {
|
||
return request.get(`/groupCourse/bookings/course/${courseId}`, {}, options)
|
||
}
|
||
|
||
export default {
|
||
login,
|
||
sendCode,
|
||
loginWithPhone,
|
||
oneClickLogin,
|
||
logout,
|
||
getQRCode,
|
||
checkIn,
|
||
getCheckInRecords,
|
||
getCheckInStats,
|
||
getUnreadMessageCount,
|
||
getUserMessages,
|
||
getUnreadMessages,
|
||
markMessageAsRead,
|
||
markAllMessagesAsRead,
|
||
deleteMessage,
|
||
getUserInfo,
|
||
getMemberDetail,
|
||
updateUserInfo,
|
||
purchaseMemberCard,
|
||
getMyMemberCards,
|
||
createPayment,
|
||
createQrCodePayment,
|
||
getPaymentStatus,
|
||
refundPayment,
|
||
getRecommendCourses,
|
||
getCourseDetail,
|
||
getGroupCoursePage,
|
||
bookGroupCourse,
|
||
cancelBooking,
|
||
signinGroupCourse,
|
||
getMemberBookings,
|
||
getCourseBookings
|
||
}
|