项大科技管理后台
页面加载中...
项大科技管理后台
{{ adminInfo.nickname || adminInfo.username }} 退出登录
{{ item.label }}
{{ item.value }}
{{ item.label }}
搜索
搜索 重置 待顶号订单{{ orders.pendingTakeover ? ` (${orders.pendingTakeover})` : '' }} 导出 Excel 导出记录
+ 添加设备 批量删除{{ devices.selectedIds.length ? ` (${devices.selectedIds.length})` : '' }} 刷新

第三方接口 · Header: X-API-Key
POST /api/open/devices · GET /api/open/devices
DELETE /api/open/device · POST /api/open/device/delete
DELETE /api/open/device · POST /api/open/device/delete
推荐:POST /api/open/device/login-code-image · multipart: file + deviceNo(一步上传图片并更新登录码)
或:POST /api/open/device/login-code · JSON: {"deviceNo","loginCode"} · 登录码有效3分钟
POST /api/open/device/content-item · multipart: file + deviceNo + text(追加图片+文字,只增不清)
或:POST /api/open/device/content-item/append · JSON: {"deviceNo","imageUrl","text"}

+ 添加拍卖设备 批量删除{{ auctionDevices.selectedIds.length ? ` (${auctionDevices.selectedIds.length})` : '' }} 刷新

第三方接口 · Header: X-API-Key
POST /api/open/auction-device/hit · GET/POST /api/open/field-expire-config
POST /api/open/auction-devices · DELETE /api/open/auction-device · POST /api/open/auction-device/delete
GET /api/open/auction-devices · POST /api/open/auction-device/seller-data
POST /api/open/auction-device/custom-fields · GET /api/open/auction-device/field-schema

搜索 重置 上传文件 刷新

第三方接口 · Header: X-API-Key
GET /api/open/files?page=1&limit=20&keyword= — 文件列表
POST /api/open/files · multipart field: file,可选 remark — 上传
GET /api/open/files/:idOrFileKey — 详情(含 downloadUrl)
GET /api/open/files/:idOrFileKey/download — 下载
DELETE /api/open/files/:idOrFileKey — 删除
POST /api/open/files/delete · Body: {"fileKey":"..."} — 删除(兼容)

系统总收入积分
+{{ points.summary.totalIncome.toLocaleString() }}
系统总支出积分
-{{ points.summary.totalExpense.toLocaleString() }}
净变动积分
{{ points.summary.net >= 0 ? '+' : '' }}{{ points.summary.net.toLocaleString() }}
查询 重置

一级为平台(微信 / QQ),二级为该平台下的大区名称列表。

+ 添加{{ platform.label }}大区

DNF手游职业枚举,用户创建角色时需选择职业。

+ 添加职业

就绪池限制同时获取二维码的并发数;备用池设备由第三方每 3 秒轮询状态,就绪池每 30 秒上传登录码。

统一配置拍卖设备自定义 JSON 字段。字段键名须以字母开头,仅含字母、数字、下划线;每台设备可单独填写对应值。

+ 添加字段

配置字段在多久未更新后自动清空。可选 5 分钟或 10 分钟,同一字段不可同时出现在两组。

配置客服二维码与进群二维码图片。小程序内用户可长按识别二维码;每次新进入小程序会弹出进群引导。

上传客服二维码 清除
{{ systemConfig.customerServiceQrUrl }}
未配置
上传进群二维码 清除
{{ systemConfig.groupChatQrUrl }}
未配置

提审用法:小程序代码写死 RECHARGE_APP_VERSION(int)。 线上包为 1、审核包改为 2 时,后台「隐藏起始版本」填 2: 本地版本 < 阈值显示,≥ 阈值隐藏。全量后把阈值改回 0
控制范围:积分充值、积分提现、进群引导弹窗。

总开关:关闭后充值/提现/进群引导全端隐藏(紧急下线)
int,0=不按版本隐藏;>0 时小程序写死版本 ≥ 该值则隐藏上述入口

本团成员确认登录后:若其所属团长正在开团,订单停留在设备状态4等待本团团长接单;否则立即分配平台操作手。 订单完成时若有所属团长,按比例从卖家应得积分中抽成给团长。

0~1,默认 0.1(10%) 默认 300000(5分钟)
保存配置 重新加载
+ 新增账号 刷新
买家
卖家
刷新
卖家 买家
用户:{{ userPointsDialog.user.nickname }}({{ userPointsDialog.user.username }})
当前积分:{{ userPointsDialog.user.points }}

订单充值:{{ refundDialog.row.amountYuan }} 元 / {{ refundDialog.row.amount }} 积分

已退积分:{{ refundDialog.row.refundedPoints || 0 }},剩余可退:{{ refundDialog.row.remainingPoints }}

商户单号:{{ refundDialog.row.outTradeNo }}

整数,最少 1,最多 {{ refundDialog.row.remainingPoints }}(可部分退)
积分面值:{{ calcRefundPreview(refundDialog.refundPoints).faceYuan }} 元
服务费 10%:{{ calcRefundPreview(refundDialog.refundPoints).feeYuan }} 元
实退金额:{{ calcRefundPreview(refundDialog.refundPoints).refundYuan }} 元(面值的 90%)
原路退回 手动退回
该笔非微信可原路退回订单,请使用手动退回
用户: {{ userOrdersDialog.user.nickname || '-' }} {{ userOrdersDialog.user.username || '-' }}
Android versionCode,须为正整数且唯一
选择 APK
最大 {{ maxApkUploadMb }}MB;若返回 413 请检查服务器 Nginx 的 client_max_body_size
选择文件
最大 100MB;上传后生成 fileKey 供三方引用
{{ cardCreateDialog.form.cardType === 'day' ? '会员天数(兑换后按天数×100 发放积分)' : '次数额度(兑换后 1:1 发放积分)' }}
{{ cardDetailDialog.card.cardCodeFull || cardDetailDialog.card.cardCode }} {{ cardDetailDialog.card.cardTypeLabel || cardDetailDialog.card.cardType }} {{ cardDetailDialog.card.featureKey || '-' }} {{ cardDetailDialog.card.cardValue }} {{ cardDetailDialog.card.statusLabel || cardStatusMap[cardDetailDialog.card.status] }} {{ formatTime(cardDetailDialog.card.expireTime) }} {{ formatTime(cardDetailDialog.card.useTime) }} {{ cardDetailDialog.card.userId || '-' }} {{ cardDetailDialog.card.userIp || '-' }} {{ cardDetailDialog.card.deviceId || '-' }} {{ cardDetailDialog.card.createAdmin }} {{ cardDetailDialog.card.remark || '-' }} {{ formatTime(cardDetailDialog.card.createdAt) }} {{ item.label }}