zjk
10 小时以前 8ea6a7dd1fcdbd4e22c564ed63a5a8023510161a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
/**
 * 接口定义文件(用户端小程序)
 * 按业务模块分组,统一走 utils/request.js 封装
 * 说明:小程序接口统一走独立前缀 /miniapp(用户端与服务商端共用),网关按二级段分发:
 *   /miniapp/auth/**    -> ruoyi-auth   认证(登录/注册/验证码)
 *   /miniapp/account/** -> ruoyi-user   会员
 *   /miniapp/product/** -> ruoyi-product 商品/订单
 *   /miniapp/system/**  -> ruoyi-system  系统信息
 */
import { get, post, uploadFile } from '@/utils/request.js'
 
// ======================== 认证相关 ========================
 
/**
 * 用户登录
 * @param {Object} data { username, password, code, uuid }
 */
export function login(data) {
    return post('/miniapp/auth/login', data, { auth: false })
}
 
/**
 * 手机号一键登录(微信手机号快速验证,凭证换取登录态)
 * @param {Object} data { code } 手机号快速验证凭证
 */
export function phoneLogin(data) {
    return post('/miniapp/auth/phone/login', data, { auth: false })
}
 
/**
 * 手机号验证码登录(短信验证码)
 * @param {Object} data { phone, code } 手机号 + 短信验证码
 */
export function phoneCodeLogin(data) {
    return post('/miniapp/auth/phone/code-login', data, { auth: false })
}
 
/**
 * 发送短信验证码
 * @param {String} phone 手机号
 * @param {String} [scene] 业务场景,register=注册 / login=验证码登录 / reset=重置密码,默认注册
 * 说明:register 场景后端校验手机号未注册(已注册返回「手机号已注册,请前往登录」);
 *       login 场景后端校验手机号已注册(未注册返回「该手机号未注册,请先注册」)
 */
export function sendSmsCode(phone, scene = 'register') {
    return post('/miniapp/auth/sms/code', { phone, scene }, { auth: false })
}
 
/**
 * 用户注册(推荐码必填,无推荐码无法注册)
 * @param {Object} data { phone, code, referralCode }
 */
export function register(data) {
    return post('/miniapp/auth/account/register', data, { auth: false })
}
 
/**
 * 退出登录
 */
export function logout() {
    return post('/miniapp/auth/logout')
}
 
// ======================== 首页与商品 ========================
 
/**
 * 获取首页内容(轮播、健康方案、推荐商品等)
 */
export function getHomeContent() {
    return get('/miniapp/product/home/content')
}
 
/**
 * 查询商品列表(分页,按当前会员等级返回对应等级价)
 * @param {Object} params { pageNum, pageSize, categoryId, keyword }
 */
export function getProductList(params) {
    return get('/miniapp/product/product/list', params)
}
 
/**
 * 查询商品详情
 * @param {String|Number} productId 商品 ID
 */
export function getProductDetail(productId) {
    return get('/miniapp/product/product/' + productId)
}
 
/**
 * 查询商品分类列表
 */
export function getCategoryList() {
    return get('/miniapp/product/category/list')
}
 
// ======================== 会员中心 ========================
 
/**
 * 查询会员基本信息与等级
 */
export function getMemberInfo() {
    return get('/miniapp/account/user/info')
}
 
/**
 * 查询会员虚拟库存(有进货/出售资格的用户)
 */
export function getMemberStock() {
    return get('/miniapp/account/user/stock')
}
 
/**
 * 上传头像文件到文件服务,返回 { data: { name, url } }
 * 说明:走网关 /file/** -> ruoyi-file,需登录态(网关白名单不含 /file/upload)
 * @param {String} filePath 本地临时文件路径(uni.chooseImage 返回)
 */
export function uploadAvatarFile(filePath) {
    return uploadFile('/file/upload', filePath)
}
 
/**
 * 更新当前登录会员头像(需登录态,userId 由网关注入,前端只传头像地址)
 * @param {String} avatar 头像地址(来自 uploadAvatarFile 返回的 url)
 */
export function updateAvatar(avatar) {
    return post('/miniapp/account/user/avatar', { avatar })
}
 
/**
 * 查询当前会员实名认证状态(进入认证页回填资料与状态用)
 * 返回 { realName, idCard, auditStatus, auditRemark }:
 *   auditStatus 0待审核 1已通过 2已驳回;为空表示从未提交
 */
export function getCertificationStatus() {
    return get('/miniapp/account/user/certification')
}
 
/**
 * 提交实名认证(个人主体,只做基础格式校验,不做三方实名核验)
 * 说明:会员身份由网关注入,前端只传姓名与身份证号;提交后进入后台「主体认证审核」待审
 * @param {String} realName 姓名
 * @param {String} idCard 身份证号
 */
export function submitCertification(realName, idCard) {
    return post('/miniapp/account/user/certification', { realName, idCard })
}
 
/**
 * 查询当前会员企业/个体认证状态与资料(进入向导页回填用)
 * 返回最近一次企业/个体申请快照(subject_type ∈ {2,3}):
 *   21 个资料字段 + auditStatus(0待审核 1已通过 2已驳回,为空表示从未提交)+ auditRemark(驳回原因)
 */
export function getCompanyCertificationStatus() {
    return get('/miniapp/account/user/company-certification')
}
 
/**
 * 提交企业/个体认证(只做基础必填校验,不做格式/三方核验)
 * 说明:会员身份由网关注入,前端不传 userId;提交后进入后台「主体认证审核」待审队列
 * @param {Object} data 21 个字段(见 CompanyCertificationApplyDto),如 subjectType/companyName/licenseImage 等
 */
export function submitCompanyCertification(data) {
    return post('/miniapp/account/user/company-certification', data)
}
 
// ======================== 我的邀请 ========================
 
/**
 * 查询本人邀请码(「我的邀请」页邀请码 Tab)
 * 返回 { referralCode }:邀请码注册时生成,C 端会员必有
 */
export function getInviteCode() {
    return get('/miniapp/account/user/invite-code')
}
 
/**
 * 查询本人邀请码小程序码(扫码直达注册页并自动填入邀请码)
 * @param {String} code 邀请码(8 位 A-Z0-9),作为小程序码 scene
 * 返回 { qrcode }:PNG 的 base64 DataURI(data:image/png;base64,...),可直接作为 image src
 */
export function getInviteQrcode(code) {
    return get('/miniapp/auth/invite-qrcode', { code })
}
 
/**
 * 查询我邀请的(直接下级)列表(分页,按绑定时间倒序)
 * @param {Object} params { pageNum, pageSize }
 * 说明:后端返回 TableDataInfo,数据在顶层 rows(非 data 包裹),总数为 total
 */
export function getInvitees(params) {
    return get('/miniapp/account/user/invitees', params)
}
 
/**
 * 查询邀请我的(上级/推荐人)信息
 * 返回 { userId, nickname, avatar, phone, systemLevel, bindDate };无上级时各字段为 null
 */
export function getReferrer() {
    return get('/miniapp/account/user/referrer')
}
 
// ======================== 订单相关 ========================
 
/**
 * 提交订单(普通购买 / 会员进货)
 * @param {Object} data { items, addressId, type }
 */
export function createOrder(data) {
    return post('/miniapp/product/order', data)
}
 
/**
 * 查询订单列表(分页)
 * @param {Object} params { pageNum, pageSize, status }
 */
export function getOrderList(params) {
    return get('/miniapp/product/order/list', params)
}