/** * 接口定义文件(用户端小程序) * 按业务模块分组,统一走 utils/request.js 封装 * 说明:小程序接口统一走独立前缀 /miniapp(用户端与服务商端共用),网关按二级段分发: * /miniapp/auth/** -> ruoyi-auth 认证(登录/注册/验证码) * /miniapp/account/** -> ruoyi-user 会员 * /miniapp/product/** -> ruoyi-product 商品/订单 * /miniapp/system/** -> ruoyi-system 系统信息 */ import { get, post, put, del, 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') } // ======================== 收货地址 ======================== /** * 查询本人收货地址列表(默认地址在前,不分页) * 返回 data 为数组,元素含 id / consignee / consigneePhone / address / isDefault */ export function getAddressList() { return get('/miniapp/account/user/addresses') } /** * 查询单条收货地址详情(编辑页回填用) * @param {String|Number} id 地址ID */ export function getAddressDetail(id) { return get('/miniapp/account/user/addresses/' + id) } /** * 新增收货地址(会员身份由网关注入,前端不传 userId) * @param {Object} data { consignee, consigneePhone, address, isDefault } */ export function createAddress(data) { return post('/miniapp/account/user/addresses', data) } /** * 编辑收货地址(会员身份由网关注入) * @param {Object} data { id, consignee, consigneePhone, address, isDefault } */ export function updateAddress(data) { return put('/miniapp/account/user/addresses', data) } /** * 删除收货地址(后端校验归属) * @param {String|Number} id 地址ID */ export function deleteAddress(id) { return del('/miniapp/account/user/addresses/' + id) } // ======================== 系统信息 ======================== /** * 查询联系方式(「联系我们」页回填用) * 返回 data 含 { cityHotline, partnerRecruit },未配置时对应字段为 null */ export function getContactInfo() { return get('/miniapp/system/contact-info') } // ======================== 订单相关 ======================== /** * 提交订单(普通购买 / 会员进货) * @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) }