175 lines
3.9 KiB
JavaScript
175 lines
3.9 KiB
JavaScript
import request from '../http'
|
||
import { URL, appid } from '../url'
|
||
|
||
// 旧登录接口(兼容保留,后端将逐步废弃)
|
||
export const login = (data) => {
|
||
return request({
|
||
url: '/app/user/login',
|
||
method: 'get',
|
||
data
|
||
})
|
||
}
|
||
|
||
// 统一快捷登录接口 /app/user/quickLogin
|
||
// 对应文档《快捷登录最终方案》中的 QuickLoginDto:
|
||
// loginType: WECHAT / ALIPAY / SMS
|
||
// appid: 平台应用ID
|
||
// openId: 第三方 openId(微信必传)
|
||
// code: 授权码(微信手机号授权码 / 支付宝 authCode)
|
||
// phonenumber: 短信登录手机号
|
||
// smsCode: 短信验证码
|
||
export const quickLogin = (data) => {
|
||
return request({
|
||
url: '/app/user/quickLogin',
|
||
method: 'post',
|
||
data
|
||
})
|
||
}
|
||
|
||
// 发送验证码
|
||
export const sendVerifyCode = (phonenumber) => {
|
||
return request({
|
||
url: '/app/user/sms/code',
|
||
method: 'get',
|
||
data: { phonenumber }
|
||
})
|
||
}
|
||
|
||
// 手机号+验证码登录
|
||
export const loginWithCode = (phonenumber, smsCode) => {
|
||
// 兼容保留:统一走 quickLogin(SMS)
|
||
return quickLogin({
|
||
loginType: 'SMS',
|
||
appid,
|
||
phonenumber,
|
||
smsCode
|
||
})
|
||
}
|
||
|
||
// 用户退出登录
|
||
export const userLogout = (data) => {
|
||
return request({
|
||
url: '/auth/logout',
|
||
method: 'post',
|
||
data
|
||
})
|
||
}
|
||
|
||
// 获取用户信息
|
||
export const getMyIndexInfo = (data) => {
|
||
return request({
|
||
url: '/app/user/userInfo',
|
||
method: 'get',
|
||
data,
|
||
})
|
||
}
|
||
|
||
// 更新用户信息
|
||
export const updateUserInfo = (data) => {
|
||
return request({
|
||
url: '/app/user/updateUser',
|
||
method: 'post',
|
||
data
|
||
})
|
||
}
|
||
|
||
// 更新用户余额
|
||
export const updateUserBalance = (orderId) => {
|
||
return request({
|
||
url: `/app/user/updateBalance/${orderId}`,
|
||
method: 'post',
|
||
hideLoading: true
|
||
})
|
||
}
|
||
|
||
// 上传并更新用户头像(后端接口)
|
||
export const uploadUserAvatar = (filePath) => {
|
||
return new Promise((resolve, reject) => {
|
||
uni.uploadFile({
|
||
url: URL + '/app/user/uploadAvatar',
|
||
filePath,
|
||
name: 'file',
|
||
header: {
|
||
'appid': appid,
|
||
'Authorization': 'Bearer ' + uni.getStorageSync('token'),
|
||
'Clientid': uni.getStorageSync('client_id'),
|
||
'Content-Language': (uni.getStorageSync('language') || 'zh-CN').replace(/-/g, '_')
|
||
},
|
||
success: (res) => {
|
||
try {
|
||
const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
|
||
resolve(parsed)
|
||
} catch (e) {
|
||
reject(e)
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
reject(err)
|
||
}
|
||
})
|
||
})
|
||
}
|
||
|
||
// 文件上传到 OSS(若依后端)
|
||
export const uploadOssResource = (filePath) => {
|
||
return new Promise((resolve, reject) => {
|
||
uni.uploadFile({
|
||
url: URL + '/manager/upload',
|
||
filePath,
|
||
name: 'file',
|
||
header: {
|
||
'appid': appid,
|
||
'Authorization': 'Bearer ' + uni.getStorageSync('token'),
|
||
'Clientid': uni.getStorageSync('client_id'),
|
||
'Content-Language': (uni.getStorageSync('language') || 'zh-CN').replace(/-/g, '_')
|
||
},
|
||
success: (res) => {
|
||
try {
|
||
const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
|
||
const codeOk = (res.statusCode === 200 || res.statusCode === 201 || parsed?.code === 200)
|
||
const url = parsed?.url || parsed?.data?.url || parsed?.data?.fileUrl || parsed?.fileUrl || parsed?.path || parsed?.data
|
||
if (codeOk && url) {
|
||
resolve(url)
|
||
return
|
||
}
|
||
reject(parsed || res)
|
||
} catch (e) {
|
||
reject(e)
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
reject(err)
|
||
}
|
||
})
|
||
})
|
||
}
|
||
|
||
// 添加押金提现API
|
||
export const withdrawDeposit = (orderNo) => {
|
||
return request({
|
||
url: `/app/withdraw/add/${orderNo}`,
|
||
method: 'get',
|
||
hideLoading: true
|
||
})
|
||
}
|
||
|
||
// 获取微信用户手机号
|
||
export const getWxUserPhoneNumber = (data) => {
|
||
return request({
|
||
url: '/app/user/getPhoneNumber',
|
||
method: 'post',
|
||
data
|
||
})
|
||
}
|
||
|
||
// 获取支付宝用户手机号(复用同一后端接口,由后端按 appid / 参数结构区分平台)
|
||
// 期望后端返回:{ code:200, data:{ phoneNumber: 'xxx' } }
|
||
export const getAliUserPhoneNumber = (data) => {
|
||
return request({
|
||
url: '/app/user/alipay/getPhone',
|
||
method: 'post',
|
||
data
|
||
})
|
||
}
|
||
|