2021-08-19

文章目录

历史修改记录

| 日期 | 版本 | 描述 | 作者 |

设备管理增加检索字段

  • **简要描述:**设备管理界面数据搜索增加 云手机名称 字段(云手机管理平台-设备设置-设备管理)

  • 详情描述:根据云手机名称查询出安卓卡详情数据,根据云手机名称的精确查询

  • 表t_user_card与t_card_info的关联查询
    云手机详情信息表(t_user_card) 索引字段3个 sn,my_order_num,room
    安卓卡详情信息表(t_card_info) 索引字段2个 sn,mac
    1.用2个表的sn号关联,条件为#{云手机名称},查询出安卓卡详情信息表(t_card_info)的数据
    SELECT * FROM t_card_info t1 JOIN t_user_card t2 ON t1.sn=t2.sn WHERE t2.disk_name=‘Zd7MWRWQ’
    2.在云手机详情信息表(t_user_card) 字段disk_name建立索引
    ALTER TABLE t_user_card ADD INDEX disk_name(disk_name)
    *

    SQL
    SELECT
    ci.id,
    androidcard_ip,
    ci.androidcard_port,
    ci.blade,
    ci.card,
    ci.bmc_ip,
    ci.sn,
    ci.mac,
    ci.phone_manufacturer,
    ci.model,
    ci.iemi,
    ci.size,
    uv.username,
    uv.phone_number user_phone,
    run_status,
    ci.extranet_ip,
    ci.extranet_port,
    ci.network_status,
    ci.device_status,
    ci.over_status,
    uc.disk_name
    FROM
    t_card_info ci
    LEFT JOIN t_user_card uc ON ci.id = uc.card_id
    LEFT JOIN t_user_vital uv ON uc.username = uv.username
    WHERE
    ci.sn LIKE CONCAT(’%’, ‘oS3hds7Z’, ‘%’)
    OR uc.disk_name = ‘oS3hds7Z’
    云手机名称:用户购买云手机并点击进入该云手机后 的云手机名称

    **入参
    http://.31.20/api/wsi/v1/card/info//someDetails?str=oS3hds7Z
    **

    出参
    {
    “status”: 0,
    “msg”: “获取成功”,
    “data”: {
    “id”: 221,
    “listId”: null,
    “androidcardIp”: “30.30.30.7”,
    “androidcardPort”: “9100”,
    “highAddress”: “sz.ns”,
    “room”: “A1”,
    “frame”: “B1”,
    “host”: “C1”,
    “blade”: “2”,
    “card”: “2”,
    “status”: 0,
    “bmcIp”: “30.30.30.250”,
    “sn”: “RK3930C2301900007”,
    “mac”: “70B3D50DD006”,
    “phoneManufacturer”: “vclusters”,
    “model”: “VC_AN_3399”,
    “iemi”: “”,
    “size”: “720 x 1280\t320”,
    “username”: “qwir51594001241”,
    “userPhone”: “18718474901”,
    “runStatus”: 1,
    “networkStatus”: 0,
    “extranetIp”: “14.215.128.96”,
    “extranetPort”: “2007”,
    “gameStatus”: 0,
    “overStatus”: 0,
    “deviceStatus”: 0
    }
    }

文章目录

历史修改记录

| 日期 | 版本 | 描述 | 作者 |

增加运维告警

  • **简要描述:**增加安卓卡网络状态告警,增加客户端接口请求超时告警

  • 安卓卡详情信息表(t_card_info)

  • 人员告警关联表(t_alarm_user_ref)

  • 告警设置表(t_alarm_setting)

  • 告警通知人员表(t_alarm_user_info)

  • 告警消息记录表(t_alarm_info)

  • 详情描述:每小时执行定时任务 获取网络状态/超时状态 告警给指定人员 用作监控

  • ** 一、安卓卡网络状态告警**
    CardKeepalivedController
    getKeepalivedFromSn
    getKeepalivedBySn
    定义boolean状态networkStatus
    1.在安卓卡心跳检测的网络异常处调用统一告警接口alarmEmail

  • 二、 客户端6个接口的请求超时告警
    **clienUserLogin:客户端用户登录接口 ClientLoginController
    /api/user/v1/client/disk/info 云手机列表接口 DiskInfoController
    监听支付接口4个
    /v1/wxpay/app/spend:微信APP支付接口
    /v1/wxpay/pc/spend:微信APP支付接口
    /v1/alipay/app/spend:支付宝APP支付接口
    /v1/alipay/pc/spend:支付宝PC支付接口
    /api/storage/v1/cardStatus/getRbd:进入云手机接口 CardStatusController
    /get/evant:进入邀请活动接口 CouponInfoClientController
    (暂时不做)UserMsgController/info:好友发送接收消息接口
    **

    1.使用AOP代理获取6个指定接口的方法执行时间
    2.从redis中获取管理平台告警设置中的阈值时间
    3.接口方法执行时间>阈值时间,调用统一告警接口alarmEmail
    4.管理平台点击修改后会将redis清空,再读取数据库告警设置表存入redis

  • 三、 解决告警信息并发问题
    1.添加字段 ALTER TABLE t_alarm_info ADD alarm_hashcode INT(30) NOT NULL;

    2.拼接表t_alarm_info字段alarm_host+create_time的字符串拿到getHashcode()存入数据库表字段alarm_hashcode

    3.给告警信息表t_alarm_info的2个字段alarm_hashcode,create_time建立复合唯一索引,解决并发造成的数据重复
    ALTER TABLE t_alarm_info ADD UNIQUE INDEX COMPOUND_UNIQUE_INDEX(alarm_host,alarm_hashcode);

  • 四、告警测试正常的截图(超时原因/网络连接延迟等待/代码嵌套多复杂度太高/并发大)

小程序的接口相关

文章目录

历史修改记录

日期版本描述作者

1 微信的购买/续费云手机接口

  • 1.后台调用微信支付统一下单接口,获取微信支付信息成功
    1.1 更新订单支付支付类型、支付状态 t_user_purchase_record
    1.2 支付状态设置进redis,发送延迟队列(5分钟未消费关闭该订单)
    2.返回数据给前端,前端通过得到的数据调用微信接口
    3.小程序中唤起微信的支付页面
    4.成功支付微信将回调notifyUrl接口

需要携带Token

  • 请求类型:POST
  • **简要描述:**小程序唤起微信支付
  • 请求URL: /api/user/v1/wxpay/applet/spend
  • 请求阐述示例:http://服务器IP/api/user/v1/wxpay/applet/spend
  • 请求参数示例:
{
	"myOrderNum": "mdOXy1565949618SZX39925444985"
	"code""登录临时凭证"
}
  • 请求参数说明:
类型描述
myOrderNumString订单号
codeString登录临时凭证
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取微信支付信息成功",
    "data": {
        "nonceStr": "Ae81uUZTYbMZtt6L",
        "appId": "wx017ed8921f249e1a",
        "sign": "5F8ABC08CD62205DB8AD00E2175749BC",
        "tradeTpe": "APPLET",
        "returnMsg": "OK",
        "resultCode": "SUCCESS",
        "mchId": "1544966281",
        "returnCode": "return_code",
        "prepayId": "prepay_id"
    }
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述

2 获取套餐列表信息接口

需要携带Token

  • 请求类型:GET
  • **简要描述:**云手机套餐列表信息
  • 请求URL:/api/user/v2/meal/info
  • 请求阐述示例:http://服务器IP/api/user/v2/meal/info?phoneType=VIP
  • 请求参数示例:
{"phoneType":"VIP"}
  • 请求参数说明:
必选类型说明
phoneTypeTrueString云手机类型(星动VIP/星耀SVIP)
  • 返回数据示例:
{
	"status": 0,
	"msg": "获取成功",
	"data": {
		"list": [{
			"id": 1,
			"menu": "1天",
			"originalPrice": "",
			"actualPrice": 1.0,
			"moveStatus": 1,
			"preferentialContent": "",
			"customStatement": "无限购买",
			"giveStarNum": 0,
			"starNum": 10,
			"day": 1
		}]
	}
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述
idint套餐ID号,创建订单号需要用到
menuString套餐时间描述
originalPriceString钱套餐原价 (无优惠时,显示为空字符串,客户端只需要拿实价)
actualPricefloat钱套餐实价 (有优惠时,实价就为打折后的价格)
preferentialContentString优惠内容信息描述 (无优惠的时候显示为空字符串)
moveStatusint数据排序参考值
customStatementString套餐描述
giveStarNumint赠送星币。无赠送返回0
starNumint星币数量
dayint有效时间天数

3 统一创建订单接口(立即购买)

需要携带Token

  • 请求类型:POST
  • **简要描述:**星币/微信/支付宝的统一订单创建接口
  • 请求URL:/api/user/v1/order/create
  • 请求阐述示例:http://服务器IP/api/user/v1/order/create
  • 请求参数示例:
# 购买云手机(钱包套餐规则购买) (批量购买加一个入参参数 quantity云手机数量)
{
	"buyType": 1,
	"id": 1,
	"phoneType": "VIP",
	"mealType": 0,
	"couponId": 0,
	"userCardId": 0,
	"quantity":3
}
# 续费云手机(钱包套餐规则续费)续费的批购买暂时不做
{
	"buyType": 2,
	"id": 1,
	"phoneType": "VIP",
	"mealType": 0,
	"sn": null,
	"diskName": "WJUKNP85",
	"couponId": 0,
	"userCardId": 265
}
  • 请求参数说明:
类型描述
buyTypeint购买类型,0:钱包充值、1:购买云手机、2:续费
idString套餐的ID
phoneTypestring购买套餐类型,VIP/SVIP
mealTypeint套餐类型,0:钱包套餐规则1:星币兑换规则(现在的版本只有钱包套餐,传0即可)
couponIdint获取优惠券信息返回的id值,即选取使用优惠券的id值(未勾选传0)
userCardIdint设备列表返回的id值
rbdTypeint是否勾选星盘续费 0 未勾选 1已勾选
snString续费云手机时候需要携带sn号码 默认为null
quantityint批量购买时的数量
  • 返回数据示例:
{
    "status": 0,
    "msg": "创建成功",
    "data": {
        "diskName": "t8VfSm,nfKKQe,hbMRSH",
        "bTime": "",
        "quantity": 3,
        "priceCoins": "300",
        "exceptTime": "2020/12/15 10:38:44",
        "description": "1天套餐",
        "giveStarNum": 0,
        "myOrderNum": "RFhEo1604384832SZX60572912683",
        "bSize": "",
        "totalAmount": "0.00",
        "rbdMoney": "",
        "price": "30.0",
        "originalPayMoney": "30.0",
        "buyVipType": "VIP",
        "totalCoins": "9319",
        "ctime": "2020-12-14T02:38:44.000+0000",
        "cloudPhoneMoney": "30.0",
        "preferentialContent": ""
    }
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述
diskNameString设备名称(批量以字符串加逗号拼接所有云手机名称,前端可用…适配多台云手机名称)
priceCoinsString兑换星币所需星币数量
exceptTimeString有效时间
descriptionString购买天数
giveStarNumint赠送星币数
myOrderNumString订单号
totalAmountString我的钱包余额
priceString购买套餐所需钱
originalPayMoneyString购买套餐原价
buyVipTypeString购买套餐类型(VIP/SVIP)
totalCoinsString我的星币数量余额
ctimeString订单创建时间
cloudPhoneMoneyString云手机价格

4 星币支付的购买/续费云手机接口(确定支付)

需要携带Token

  • 请求类型:POST
  • **简要描述:**星币支付接口调用
  • 请求URL:/api/user/v1/starcoin/spend
  • 请求阐述示例:http://服务器IP/api/user/v2/starcoin/spend
  • 请求参数示例:
    # 购买云手机
    {
        "myOrderNum": "订单号"
    }
    # 续费手机
    {
        "myOrderNum": "订单号"
    }
  • 请求参数说明:
类型描述
myOrderNumString商户订单号*
idString套餐的ID,使用自定义充值的情况下不携带ID
buyTypeint购买类型,0:钱包充值、1:购买云手机、2:续费
phoneTypestring购买套餐类型,VIP/SVIP
mealTypeint套餐类型,0:钱包套餐规则1:星币兑换规则
snString设备SN号码,只有续费的时候才传,购买和充值一定不要传
  • 返回数据示例:
{
    "status": "0",
    "msg": "星币支付成功",
    "data": ""
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败

5 续费星盘资格和金额接口

需要携带Token

  • 请求类型:GET
  • **简要描述:**客户端获取续费星盘资格和金额
  • 请求URL:/api/user/v1/client/renewDiskRule?diskName=云手机名称
  • 请求阐述示例:http://服务器IP/api/user/v1/client/renewDiskRule?diskName=云手机名称
  • 请求参数示例:
{
	"diskName":"云手机名称"
}
  • 请求参数说明:
类型描述
diskNameString云手机名称
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取成功",
    "data": {
        "rbdMoney": 1.1,
        "starNum": 11,
        "rbdType": 0,
        "exceptTime": "2020/12/12",
    }
}
  • 响应参数说明:
类型说明
rbdMoneyfloat续费星盘金额
starNumint续费星盘的星币数量
rbdTypeint是否需要续费星盘 0 不需要续费星盘 1 需要续费星盘
exceptTimeString未进行勾选,返回扩容星盘到期时间

6 查看订单支付结果

需要携带Token

  • 请求类型:GET
  • **简要描述:**客户端用户获取支付结果
  • 请求URL:/api/user/v1/order/result
  • 请求阐述示例:http://服务器IP/api/user/v1/order/result?myOrderNum=mdOXy1565949618SZX86757963747
  • 请求参数说明:
类型说明
myOrderNumString订单号
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取成功",
    "data": {
        "payResult": 1,
        "time": "2019-08-28 11:43:20",
        "payType": 0,
        "StarCoin": "2",
        "price": 10
    }
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgstr描述
payResultint支付结果,1:支付成功、0:支付失败
payTypeint支付类型,0:余额,1:支付宝,2:微信,3:银联,4:星币
StarCoinString可以领取的星币数量(显示0这表示没有可以领取的星币,界面建议不要显示领取新币的按钮)
priceString价格(根据支付类型判断是星币还是钱)
timeString时间

7 购买/续费 订单记录详情接口

需要携带Token

  • 请求类型:GET

  • **简要描述:**获取客户端订单信息

  • 请求URL:/api/user/v1/order/info

  • 请求阐述示例:http://服务器IP/api/user/v1/order/info?classify=all&page=1&client=applet

  • 请求参数说明:

必选类型说明
classifyTruestr订单类型,all:全部,finish:完成,unfinish:未完成,overdue:过期
pageTrueint页码
clientTrueStr客户端类型,app/pc/applet
  • 返回数据示例:
# applet/app
{
    "status": 0,
    "msg": "查询成功",
    "data": {
        "pageNum": 1,
        "pageSize": 6,
        "size": 6,
        "startRow": 0,
        "endRow": 5,
        "total": 6,
        "pages": 1,
        "list": [
            {
                "id": 15,
                "username": "WRxyy1567750367",
                "payType": -1,
                "totalAmount": "60",
                "description": "双子星云手机30天VIP",
                "buyType": 1,
                "finishPay": 2,
                "used": false,
                "myOrderNum": "WRxyy1567750367SZX23835752974",
                "sn": "",
                "starCoin": "30",
                "buyVipType": "VIP",
                "sellerId": "",
                "buyTime": 43200,
                "finishTime": "",
                "validTime": 0,
                "exceptTime": "2019-09-06 15:06:15",
                "ctime": "2019-09-06 14:56:15"
            }
        ],
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1,
        "firstPage": 1,
        "lastPage": 1
    }
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgstr描述
usernamestr用户名,唯一识别
payTypeint消费方式,0:余额,1:支付宝,2:微信,3:银联,4:星币
totalAmountstr支付金钱
descriptionstr商品描述
buyTypeint购买类型,0:充值,1:购买新手机,2:续费
finishPayint订单是否完成,0:未完成,1:完成,2:失效
usedstr
myOrderNumstr订单号
snstr板卡SN号
starCoinstr需要消费星币数量
buyVipTypestrVIP类型
sellerIdstr客户支付宝ID
buyTimeint购买时长
finishTimestr完成订单时间
validTimeint订单有效时间(秒)
exceptTimestr订单具体过期时间
ctimestr创建订单时间
pageSizeint一页有多少条数据
totalint总共的数据条数

8 更新安卓卡超分状态(进入云手机)

需要携带Token

  • 请求类型:POST
  • **简要描述:**连接进入云手机前,访问该接口,进行安卓卡的挂载
  • 请求URL: ``/api/storage/v1/cardStatus/getRbd`
  • 请求阐述示例:http://服务器IP/api/storage/v1/cardStatus/getRbd
  • 请求参数示例:
{
	"userCardId":"安卓卡id"
    "deviceStatus":1
	}
  • 请求参数说明:
必选类型说明
userCardIdTrueint安卓卡id
deviceStatusTrueint1(安卓卡挂载)
  • 返回数据示例:
{
    "status": 0,
    "msg": "设置成功"
}
  • 响应参数说明:
类型说明
statusint状态码(0为成功,1为失败)
msgstring提示信息(代表通知安卓卡挂载成功)
snstringsn号
exIpstringsn外网ip
exPortstringsn外网端口
roomExtranetIpstring机房外网ip

9 云手机列表信息

需要携带Token

  • 请求类型:GET
  • **简要描述:**用于用户获取名下的所有安卓卡的设备信息
  • 请求URL:/api/user/v1/client/disk/info
  • 请求阐述示例:http://服务器IP/api/user/v1/client/disk/info
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取成功",
    "data": {
        "data": {
            "diskInfo": [
                {
                "id": 271,
                "username": "h5kZx1604371227",
                "exIp": "",
                "exPort": "",
                "sn": "",
                "buyVipType": "",
                "diskName": "测试二",
                "validTime": 10080,
                "myOrderNum": "h5kZx1604371227SZX74773572776",
                "overdue": 0,
                "exceptTime": "2020-11-17 12:35:48",
                "ctime": "2020-11-09 12:35:48",
                "monIp": 14.215.128.96,
                "vcfsKey": AQDHzI5eH2vKMxAA8QIw9fB4plzGuzbhcFVqNg==,
                "rbdname": 00b06636e7a8009,
                "pname": rbd,
                "phoneAuthStatus": 0,
				"buyType":vip,
				"room":A1
				"androidcardIp":""
				"androidcardPort":""
                "overStatus": 0
                }
            ]
        }
    }
}
  • 响应参数说明:
类型说明
idintid值
usernamestr用户名
exIpstr安卓卡外网IP
exPortint安卓卡外网端口
snstr安卓卡sn号
buyVipTypestr购买类型(目前为空,默认是VIP)
diskNameint设备名称
validTimeint到期时间
myOrderNumstr订单号
overduestr是否到期
exceptTimestr到期时间
readmestr设备到期提示语
ctimestr购买时间
monIpstr超分MONiP
vcfsKeyint超分密钥
rbdnamestr超分RBD名称
pnameint超分pname名称
phoneAuthStatusstr0 未授权,1已授权
authPhonestr0自身购买的云手机 1获取得到的云手机

10 用户当前星币数量

需要携带Token

  • 请求类型:GET
  • **简要描述:**获取用户当前星币数量
  • 请求URL:/api/user/v2/client/left/info
  • 请求阐述示例:http://服务器IP/api/user/v1/client/left/info
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取成功",
    "data": {
        "money": 0.0,
        "starCoin": "4955",
        "notifyStatus": true,
        "surfaceName": "19911111111",
        "couponNum": 0
    }
}
  • 响应参数说明:
类型说明
statusint状态码(0为成功,1为失败)
msgstring描述信息
moneyint账户余额
starCoinstring星币余额
notifyStatusboolean获取公告是否有更新
surfaceNamestring用户自定义名称, 若是为空则显示手机号码
couponNumint用户有效优惠券数量

token校验接口

文章目录

历史修改记录

日期版本描述作者

1 文件服务的token校验接口

需要携带keyType和Token

  • 请求类型:POST
  • **简要描述:**在vcluster-file-center的项目下设置请求拦截调用 user微服务的token校验接口
  • 请求URL: 涉及使用FastDFS的进入文件服务vcluster-file-center的所有请求
  • 接口地址:http://127.0.0.1:8044/v1/checkTokenApi
  • **请求参数示例:**请将下面2个参数携带进request请求消息头header中
  • AESKEY:RuiChiSecurityGo
	{
	"keyType": "1"
	"Authorization""用户唯一标识的token信息"
	}
	
	{
	"keyType": "2"
	"security":RuiChiSecurityGo+System.currentTimeMillis()
	(举例:RuiChiSecurityGo1606201334 字符串拼接的AES加密后字符串信息)
	}
	以下针对"keyType": "2"类型的校验
// 权限字符串加密
    public static String Encrypt(String aesKey,String sSrc) throws Exception {
        String encode = URLEncoder.encode(sSrc, "UTF-8");
        byte[] raw = aesKey.getBytes(StandardCharsets.UTF_8);
        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");// "算法/模式/补码方式"
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
        byte[] encrypted = cipher.doFinal(encode.getBytes(StandardCharsets.UTF_8));
        return new Base64().encodeToString(encrypted);// 此处使用BASE64做转码功能,同时能起到2次加密的作用。
    }
	
 // 权限字符串解密
    public static String Decrypt(String aesKey, String sSrc) throws Exception {
        byte[] raw = aesKey.getBytes("utf-8");
        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, skeySpec);
        byte[] encrypted1 = new Base64().decode(decode);// 先用base64解密
        byte[] original = cipher.doFinal(encrypted1);
        String originalString = new String(original, "utf-8");
        return originalString;
    }
  • 请求参数说明:
类型描述
keyTypeString值为:1 校验token 值为2:校验AES加密信息
AuthorizationString用户唯一标识的token信息
securityStringAES加密信息
  • **校验失败: **
    针对keyType=2 权限字符串校验

    code: 1 msg:“用户信息校验失败”

    针对keyType=1 token字符串校验

    code: 403 msg:“用户信息校验失败”

统一创建订单接口(立即购买)

需要携带Token

  • 请求类型:POST
  • **简要描述:**星币/微信/支付宝的统一订单创建接口
  • 请求URL:/api/user/v1/order/create
  • 请求阐述示例:http://服务器IP/api/user/v1/order/create
  • 请求参数示例:
# 购买云手机(钱包套餐规则购买) (批量购买加一个入参参数 quantity云手机数量)
{
	"quantity":3
	"buyType": 1,
	"id": 1,
	"phoneType": "VIP",
	"mealType": 0,
	"couponId": 0,
	"userCardId": 0,
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gFLVQYna-1629356661359)(http://.32.253/server/…/Public/Uploads/2021-01-13/5ffe54306f064.png)]

  • 请求参数说明:
类型描述
buyTypeint购买类型,0:钱包充值、1:购买云手机、2:续费
idString套餐的ID
phoneTypestring购买套餐类型,VIP/SVIP
mealTypeint套餐类型,0:钱包套餐规则1:星币兑换规则(现在的版本只有钱包套餐,传0即可)
couponIdint获取优惠券信息返回的id值,即选取使用优惠券的id值(未勾选传0)
userCardIdint设备列表返回的id值
rbdTypeint是否勾选星盘续费 0 未勾选 1已勾选
snString续费云手机时候需要携带sn号码 默认为null
quantityint批量购买时的数量
  • 返回数据示例:
{
    "status": 0,
    "msg": "创建成功",
    "data": {
        "diskName": "t8VfSm,nfKKQe,hbMRSH",
        "bTime": "",
        "quantity": 3,
        "priceCoins": "300",
        "description": "1天套餐",
        "giveStarNum": 0,
        "myOrderNum": "RFhEo1604384832SZX60572912683",
        "bSize": "",
        "totalAmount": "0.00",
        "rbdMoney": "",
        "price": "30.0",
        "originalPayMoney": "30.0",
        "buyVipType": "VIP",
        "totalCoins": "9319",
        "ctime": "2020-12-14T02:38:44.000+0000",
        "cloudPhoneMoney": "30.0",
        "preferentialContent": ""
    }
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述
diskNameString设备名称(云手机名称加逗号的拼接,前端可用…适配多台云手机名称)
priceCoinsString兑换星币所需星币数量
exceptTimeString有效时间
descriptionString购买天数
giveStarNumint赠送星币数
myOrderNumString订单号
totalAmountString我的钱包余额
priceString购买套餐所需钱
originalPayMoneyString购买套餐原价
buyVipTypeString购买套餐类型(VIP/SVIP)
totalCoinsString我的星币数量余额
ctimeString订单创建时间
cloudPhoneMoneyString云手机价格

获取套餐列表信息接口 加了3个字段

需要携带Token

  • 请求类型:GET
  • **简要描述:**云手机套餐列表信息
  • 请求URL:/api/user/v2/meal/info
  • 请求阐述示例:http://服务器IP/api/user/v2/meal/info?phoneType=VIP
  • 请求参数示例:
{"phoneType":"VIP"}
  • 请求参数说明:
必选类型说明
phoneTypeTrueString云手机类型(星动VIP/星耀SVIP/唔即STAR)
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取成功",
    "data": {
        "list": [
            {
                "id": 271,
                "menu": "50天",
                "originalPrice": "",
                "actualPrice": 50.0,
                "moveStatus": 10,
                "preferentialContent": "",
                "customStatement": "50",
                "giveStarNum": 0,
                "starNum": 500,
                "originalStarNum": 500,
                "day": 50,
                "remainQuantity": -1,
                "phoneRemainQuantity": 100,
                "menuAddedService": [
                    {
                        "menuId": 271,
                        "serviceId": 3,
                        "serviceName": "虚拟定位",
                        "serviceCode": "VIRTUAL_GPS_SERVICE",
                        "chargeType": 2,
                        "rangeType": 2,
                        "chargeDay": null,
                        "chargeNum": 3
                    },
                    {
                        "menuId": 271,
                        "serviceId": 9,
                        "serviceName": "站点迁移",
                        "serviceCode": "SITE_TRANSFER_SERVICE",
                        "chargeType": 2,
                        "rangeType": 1,
                        "chargeDay": null,
                        "chargeNum": 3
                    }
                ]
            }
        ]
    }
}
  • 返回参数示例:
类型说明
statusint0:成功、1:失败
msgString描述
idint套餐ID号,创建订单号需要用到
menuString套餐时间描述
originalPriceString钱套餐原价 (无优惠时,显示为空字符串,客户端只需要拿实价)
actualPricefloat钱套餐实价 (有优惠时,实价就为打折后的价格)
preferentialContentString优惠内容信息描述 (无优惠的时候显示为空字符串)
moveStatusint数据排序参考值
customStatementString套餐描述
giveStarNumint赠送的星币数
starNumint优惠价格星币数量
originalStarNumint未优惠价格星币数量
dayintday
remainQuantityint该套餐用户剩余使用次数
phoneRemainQuantityint云手机剩余可购买数量
menuAddedServicelist<menuAddedService>云手机包含的增值服务
  • menuAddedService:
类型说明
menuIdint云手机套餐id
serviceIdint增值服务id
serviceNamestr增值服务名称
serviceCodestr增值服务编码
chargeTypeint计费类型:1.天 2.次
rangeTypeint服务范围:1.账号 2.云手机
chargeDayint计费天数
chargeNumint计费次数

订单中云手机详情接口

  • 请求类型:POST
  • 简要描述:
  • 请求URL:/api/user/v1/order/queryOrderCard
  • 请求阐述示例:http://服务器IP/api/user/v1/order/queryOrderCard
  • 请求参数示例:
{
	"myOrderNum": "XXXXXXXXXXXX"
}
  • 请求参数说明:
类型描述
myOrderNumString订单编号
  • 返回数据示例:
{
    "status": 0,
    "msg": "查询订单云手机详情调用成功",
    "data": [
        {
            "id": 1825,
            "username": "RFhEo1604384832",
            "buyVipType": "VIP",
            "diskName": "0VHVVT",
            "validTime": 1440,
            "myOrderNum": "RFhEo1604384832SZX86073894994",
            "overdue": false,
            "exceptTime": "2020-12-13 17:23:33",
            "ctime": "2020-12-12 17:23:33",
            "phoneAuthStatus": 0,
            "room": "",
            "partitionId": 0
        },
        {
            "id": 1827,
            "username": "RFhEo1604384832",
            "buyVipType": "VIP",
            "diskName": "lgdLsw",
            "validTime": 1440,
            "myOrderNum": "RFhEo1604384832SZX86073894994",
            "overdue": false,
            "exceptTime": "2020-12-13 17:23:33",
            "ctime": "2020-12-12 17:23:33",
            "phoneAuthStatus": 0,
            "room": "",
            "partitionId": 0
        }
    ]
}
  • 响应参数说明:
类型说明
idint订单主键
usernameString用户名
buyVipTypeStringphoneAuthStatus
diskNameString设备名称
validTimeString失效时长
myOrderNumString订单号
overdueint
exceptTimeString失效时间
ctimeString创建时间

订单信息表 t_user_order

字段名类型描述nullunique主键
idbigint(20)ID值 自增长FalseTrueTrue
order_numvarchar(64)订单号FalseTrueFalse
user_namevarchar(64)用户名FalseTrueFalse
quantityint数量FalseFalseFalse
order_typetinyint(1)购买类型(0:充值、1:购买云手机、2:续费、3:星币充值、4:购买云盘、5:续费云盘 6.星盘扩容)FalseFalseFalse
meal_idtinyint(1)套餐idFalseFalseFalse
meal_star_numint赠送星币数量FalseFalseFalse
meal_vip_typevarchar(32)购买云手机类型(VIP/SVIP)FalseFalseFalse
pay_typetinyint(1)支付类型(1微信,2支付宝,3星币)FalseTrueFalse
pay_monneydecimal(10,2)实付金额FalseFalseFalse
coupon_idint优惠卷id(t_coupon_info.id)FalseFalseFalse
coupon_sumdecimal(10,2)优惠金额FalseFalseFalse
star_sizeint星币充值数量FalseFalseFalse
cloud_sizeint云盘大小FalseFalseFalse
star_dish_sizeint星盘扩容大小FalseFalseFalse
order_statustinyint(1)订单状态(0:未完成,1:完成)FalseFalseFalse
client_typetinyint(1)用户购买渠道(app 1 ,pc 2)FalseFalseFalse
rbd_typetinyint(1)云手机续费,是否选择星盘续费 0:不勾选 1:勾选FalseFalseFalse
descriptionvarchar(128)商品描述FalseFalseFalse
finish_timedatetime订单完成时间FalseFalseFalse
extend_namevarchar(128)扩展字段(扩展给给后续需要)FalseFalseFalse
create_timedatetime创建时间FalseFalseFalse
create_byvarchar(64)创建人FalseFalseFalse
update_timedatetime修改时间FalseFalseFalse
update_byvarchar(64)修改人FalseFalseFalse
enable_flagtinyint(1)(0删除,1有效)FalseFalseFalse

支付信息表 t_user_pay

字段名类型描述nullunique主键
idbigint(20)ID值 自增长FalseTrueTrue
order_idbigint(20)订单主键(t_user_order.id)FalseTrueFalse
order_numvarchar(64)订单号FalseTrueFalse
pay_typetinyint(1)支付类型(1微信,2支付宝)FalseTrueFalse
pay_statustinyint(1)支付状态(1支付中,2支付成功,3支付失败,4支付异常)FalseTrueFalse
total_amountdecimal(10,2)人民币价格FalseTrueFalse
seller_idvarchar(128)支付号账号或者微信号FalseTrueFalse
serial_numvarchar(128)支付流水号FalseTrueFalse
extend_namevarchar(128)扩展字段FalseFalseFalse
create_timedatetime创建时间FalseFalseFalse
create_byvarchar(64)创建人FalseFalseFalse
update_timedatetime修改时间FalseFalseFalse
update_byvarchar(64)修改人FalseFalseFalse
enable_flagtinyint(1)(0删除,1有效)FalseFalseFalse

用户板卡信息表 t_user_card (ps:能不动就不动)

字段名类型描述nullunique主键
idint(11)ID值 自增长FalseTrueTrue
usernamevarchar(64)用户名FalseTrueFalse
disk_namevarchar(128)云手机名称FalseTrueFalse
valid_timeint有效时间FalseTrueFalse
overduetinyint(1)云手机回收未过期短信提醒模板的keyFalseTrueFalse
except_timedatetime过期时间FalseTrueFalse
phone_auth_statusint授权状态值FalseTrueFalse
buy_vip_typevarchar(128)设备vip类型FalseTrueFalse
roomvarchar(128)云手机所属机房号FalseTrueFalse
partition_idbigint(11)t_partition_info表中的idFalseFalseFalse
card_idbigint(11)t_card_info表中的idFalseFalseFalse
create_timedatetime创建时间FalseFalseFalse
create_byvarchar(65)创建人FalseFalseFalse
update_timedatetime修改时间FalseFalseFalse
update_byvarchar(65)修改人FalseFalseFalse
enable_flagtinyint(1)(0删除,1有效)FalseFalseFalse

用户板卡与订单关联表 t_card_con_order

字段名类型描述nullunique主键
idbigint(20)ID值 自增长FalseTrueTrue
user_card_idint(20)用户板卡号 (t_user_card.id)FalseFalseFalse
order_idbigint(20)订单主键(t_user_order.id)FalseFalseFalse
order_numvarchar(64)订单号(t_user_order.order_num)FalseFalseFalse
extend_namevarchar(128)扩展字段FalseFalseFalse
create_timedatetime创建时间FalseFalseFalse
create_byvarchar(64)创建人FalseFalseFalse
update_timedatetime修改时间FalseFalseFalse
update_byvarchar(64)修改人FalseFalseFalse
enable_flagtinyint(1)(0删除,1有效)FalseFalseFalse

文章目录

历史修改记录

| 日期 | 版本 | 描述 | 作者 |

推广页面下载埋点接口

  • 请求类型:POST
  • **简要描述:**用户使用外链下载(好友-添加好友) / 官网页面下载(android/ios/pc)
    http://test.androidscloud.com/api/user/promote/imInvitation?type=3&username=MkgzTDgxNjA5MjA3Nzgy
    http://www.androidscloud.com/
  • 请求URL:/api/public/v4/access/user/burialSiteLog
  • 请求阐述示例:http://.31.223/api/public/v4/access/user/burialSiteLog
  • 请求参数示例:
# 推广页面下载埋点
[
{
	"platform":4,(固定4,表示web端)
	"visitType":4,(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
	"time":"1609235353024",(用户点击下载按钮的时间戳)
	"phoneNum":"13311111111",
	"downLoaderCount": 10000,(总下载次数,用户点击下载按钮的叠加数量)
	"browserType": "浏览器信息 火狐4.5"(浏览器信息加版本号)
}
]
# PC/android/IOS下载埋点
[
{
	"platform":4,(固定4,表示web端)
	"visitType":5,(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
	"time":"1609235353024",(用户点击下载按钮的时间戳)
	"downLoaderCount": 20000,(总下载次数,用户点击下载按钮的叠加数量)
	"browserType": "浏览器信息 火狐4.5"(浏览器信息加版本号)
}
]
  • 请求参数说明:
类型描述
platformint4(表示web端)
visitTypeint(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
timestring(用户点击下载按钮的时间戳)
phoneNumstring推广页面点击下载按钮时 录入的手机号
ipstring用户ip地址(后端获取 getHeader(X-real-ip))
downLoaderCountint(总下载次数,用户点击下载按钮的叠加数量)
browserTypestring(浏览器信息加版本号)
  • 返回数据示例:
{
    "status": 0,
    "msg": "成功",
    "data": null
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述
dataString返回数据前端不需要数据默认null

文章目录

历史修改记录

| 日期 | 版本 | 描述 | 作者 |

客户端用户登录

无需携带Token

  • **简要描述:**客户端用户登录接口

  • 请求URL:POST/api/user/v1/client/login

  • 请求阐述示例:http:///api/user/v1/client/login

  • 请求参数示例:

{
	"quicklyLogin":true(非必传,有一键登录的传true就行)
	"phone": "17688706311",
    "password": "123456",
    "uuid": "00:0c:29:4e:61:7f brd ff:ff:ff:ff:ff:ff",
    "diskName": "xioami9",
    "client": 1,
    "ipAddr": ""
}
  • 请求参数说明:
必选类型说明
quicklyLoginTrueboolean非必传 true(一键登录),false(后端默认值)
phoneTruestr手机号码
diskNameTruestr设备名称(手机型号)
passwordTruestr密码需要AES加密,秘钥:xgj7adwbtia-ow7x
uuidTruestr设备唯一识别码
clientTrueint0:web/1:安卓/2:iphone/3:PC
ipAddrTruestr用户IP地址
  • 返回数据示例:
{
    "status": 0,
    "msg": "登录成功",
    "data": {
        "nextCloudIp": ".31.15",
        "username": "zhangsan",
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NjA1NzAxMzYsInVzZXJuYW1lIjoidXNlcjE1NTg3NzAwODYifQ.RzLQZyQIm3AS-cFIlzhvJT3QjXK1vQXcmA7iZ2mBzkA",
        "id": 9
    }
}
  • 返回参数示例:
类型说明
statusint0:成功、1:失败
msgstr描述
tokenstr用户token信息
idint用户ID

密码修改的接口校验

需要携带Token

  • 请求类型:POST
  • **简要描述:**获取加密公钥接口
  • 请求URL:/v1/client/checkUpdatePsw
  • 请求阐述示例:http:///api/user/v1/client/checkUpdatePsw
  • 请求参数示例:
{
"password":"md5+RSA公钥 加密字符串"
}
  • 返回数据示例:
{
    "status": 0,
    "msg": "密码校验成功",
    "data": null
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述信息

获取加密需要的公钥接口

  • 请求类型:POST

  • **简要描述:**获取加密公钥接口

  • 请求URL:/v1/client/getPbKey

  • 请求阐述示例:http:///api/user/v1/client/getPbKey

  • 请求参数示例:

  • 返回数据示例:

{
    "status": 0,
    "msg": "公钥获取成功",
    "data": null
}
  • 使用私钥解密失败返回状态码定义:
{
    "status": 2021,
    "msg": "解密错误",
   "data": null
}
  • 响应参数说明:
类型说明
statusint0:成功、2021:失败
msgString描述信息

注意:

脚本接口

文章目录

历史修改记录

日期版本描述作者
0. 新增渠道平台客户端安装记录

**简要描述: **

*客户下载安装包时调用新增渠道平台客户端下载记录

**请求URL: **

  • http://ip/api/user/v1/ditchClient/addChannelAppInstalls

**请求方式: **

  • post

请求参数示例:

{
    "code":"123123",
    "platform":2,
    "version":"v123",
	"type":1
}
	注:
	code: "渠道编码",
	platform: "平台类型【ios/android/pc】 1.Andorid 2.IOS 3.pc,
	version: "版本号"
	type: 1(固定值1,表示是安装时候调用)

返回参数示例:

{
    "status": 0,
    "data": null,
    "msg": "新增成功"
}

返回参数说明:

类型说明
statusint状态码
msgstring提示信息

1 游戏列表信息

简要描述:

  • 游戏列表信息接口

请求URL:

  • http://xx.com/api/script/v1/androidScriptPlatform/gameInfo

请求方式:

  • GET
    返回示例
 {
    "status": 0,(0 :接口调用成功 1:接口调用失败)
    "msg": "查询成功",
    "data": [
        {
            "id": 5, -- 游戏id
            "gameName": "123123", -- 游戏名字
            "hot": 789, -- 游戏热度值
            "gameType": 0, -- 游戏类型1.动作游戏 2.冒险游戏   3.第一人称视点射击游戏 4.格斗游戏 5.角色扮演游戏 6.策略游戏 7. 多人在线战术竞技游戏 购买装备来赚钱   8.音乐游戏9.益智游戏 10 赛车游戏或者竞速游戏11 体育游戏  12 射击游戏 13 桌面游戏14 卡片游戏15 模拟经营类游戏
            "logo": 0, -- 图标 文件服务器id
            "num": 0, -- 脚本数量
            "label": "0", -- 标签(免费,推荐,收费)
            "gamePackage": "", -- app,包名
            "createBy": "", -- 创建人
            "createTime": "2021-03-01T14:10:16.000+0000", -- 创建时间
            "updateBy": "", -- 修改人
            "updateTime": "2021-03-01T16:01:52.000+0000", -- 修改时间
            "enableFlag": 1 -- 数据有效状态 0:该数据已被删除,1:该数据有效
        },
        {
            "id": 3,
            "gameName": "123123",
            "hot": 456,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-02-27T17:33:56.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:01:50.000+0000",
            "enableFlag": 1
        },
        {
            "id": 1,
            "gameName": "123123",
            "hot": 123,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-02-27T17:23:49.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:00:04.000+0000",
            "enableFlag": 1
        }
    ]
}

2 轮播图列表信息

简要描述:

  • 查询至多5个轮播图信息

请求URL:

  • http://xx.com/api/script/v1/androidScriptPlatform/bannerInfo
    请求方式:
  • GET

返回示例

{
    "status": 0,
    "msg": "查询成功",
    "data": [
        {
            "id": 9,
            "bannerName": "5555", -- banner名称
            "sort": 5, -- 排序
            "startTime": "2021-03-01T15:55:14.000+0000", -- 起始时间
            "endTime": "2021-03-01T15:55:14.000+0000", -- 结束时间
            "url": null,-- 预览图id
            "htmlUrl": null, -- url 跳转链接
            "views": null, -- 查看次数
            "status": null, -- 状态 1:上架 0:待上架
            "createBy": "", -- 创建人
            "createTime": "2021-03-01T14:10:16.000+0000", -- 创建时间
            "updateBy": "", -- 修改人
            "updateTime": "2021-03-01T16:01:52.000+0000", -- 修改时间
            "enableFlag": 1 -- 数据有效状态 0:该数据已被删除,1:该数据有效
        },
        {
            "id": 7,
            "bannerName": "555",
            "sort": 6,
            "startTime": "2021-03-01T15:55:13.000+0000",
            "endTime": "2021-03-01T15:55:13.000+0000",
            "url": null,
            "htmlUrl": null,
            "views": null,
            "status": null,
            "createBy": "",
            "createTime": "2021-03-01T15:55:13.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T15:55:33.000+0000",
            "enableFlag": 1
        },
        {
            "id": 5,
            "bannerName": "55",
            "sort": 7,
            "startTime": "2021-03-01T15:55:12.000+0000",
            "endTime": "2021-03-01T15:55:12.000+0000",
            "url": null,
            "htmlUrl": null,
            "views": null,
            "status": null,
            "createBy": "",
            "createTime": "2021-03-01T15:55:12.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T15:55:32.000+0000",
            "enableFlag": 1
        },
        {
            "id": 3,
            "bannerName": "5",
            "sort": 8,
            "startTime": "2021-03-01T15:55:12.000+0000",
            "endTime": "2021-03-01T15:55:12.000+0000",
            "url": null,
            "htmlUrl": null,
            "views": null,
            "status": null,
            "createBy": "",
            "createTime": "2021-03-01T15:55:12.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T15:55:32.000+0000",
            "enableFlag": 1
        },
        {
            "id": 1,
            "bannerName": "123",
            "sort": 9,
            "startTime": "2021-03-01T15:55:09.000+0000",
            "endTime": "2021-03-01T15:55:09.000+0000",
            "url": null,
            "htmlUrl": null,
            "views": null,
            "status": null,
            "createBy": "",
            "createTime": "2021-03-01T15:55:09.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T15:55:30.000+0000",
            "enableFlag": 1
        }
    ]
}

3 游戏信息热力值hot排序前6条

简要描述:

  • 查询所有游戏信息按热力值hot排序前6条接口

请求URL:

  • http://127.0.0.1/api/script/v1/androidScriptPlatform/gameHotInfo

请求方式:

  • GET

返回示例

 {
    "status": 0,
    "msg": "查询成功",
    "data": [
         {
            "id": 5, -- 游戏id
            "gameName": "123123", -- 游戏名字
            "hot": 789, -- 游戏热度值
            "gameType": 0, -- 游戏类型1.动作游戏 2.冒险游戏   3.第一人称视点射击游戏 4.格斗游戏 5.角色扮演游戏 6.策略游戏 7. 多人在线战术竞技游戏 购买装备来赚钱   8.音乐游戏9.益智游戏 10 赛车游戏或者竞速游戏11 体育游戏  12 射击游戏 13 桌面游戏14 卡片游戏15 模拟经营类游戏
            "logo": 0, -- 图标 文件服务器id
            "num": 0, -- 脚本数量
            "label": "0", -- 标签(免费,推荐,收费)
            "gamePackage": "", -- app,包名
            "createBy": "", -- 创建人
            "createTime": "2021-03-01T14:10:16.000+0000", -- 创建时间
            "updateBy": "", -- 修改人
            "updateTime": "2021-03-01T16:01:52.000+0000", -- 修改时间
            "enableFlag": 1 -- 数据有效状态 0:该数据已被删除,1:该数据有效
        },
        {
            "id": 3,
            "gameName": "123123",
            "hot": 456,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-02-27T17:33:56.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:01:50.000+0000",
            "enableFlag": 1
        },
        {
            "id": 1,
            "gameName": "123123",
            "hot": 123,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-02-27T17:23:49.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:00:04.000+0000",
            "enableFlag": 1
        }
    ]
}

4 云手机名称头部的模糊查询

简要描述:

  • 根据云手机名称头部的模糊查询匹配接口

请求URL:

  • http://127.0.0.1/api/script/v1/androidScriptPlatform/fuzzyQueryGameInfo?gameName=12

请求方式:

  • GET

参数:

参数名必选类型说明
gameNameString游戏名称

返回示例

  {
    "status": 0,
    "msg": "查询成功",
    "data": [
         {
            "id": 5, -- 游戏id
            "gameName": "123123", -- 游戏名字
            "hot": 789, -- 游戏热度值
            "gameType": 0, -- 游戏类型1.动作游戏 2.冒险游戏   3.第一人称视点射击游戏 4.格斗游戏 5.角色扮演游戏 6.策略游戏 7. 多人在线战术竞技游戏 购买装备来赚钱   8.音乐游戏9.益智游戏 10 赛车游戏或者竞速游戏11 体育游戏  12 射击游戏 13 桌面游戏14 卡片游戏15 模拟经营类游戏
            "logo": 0, -- 图标 文件服务器id
            "num": 0, -- 脚本数量
            "label": "0", -- 标签(免费,推荐,收费)
            "gamePackage": "", -- app,包名
            "createBy": "", -- 创建人
            "createTime": "2021-03-01T14:10:16.000+0000", -- 创建时间
            "updateBy": "", -- 修改人
            "updateTime": "2021-03-01T16:01:52.000+0000", -- 修改时间
            "enableFlag": 1 -- 数据有效状态 0:该数据已被删除,1:该数据有效
        },
        {
            "id": 3,
            "gameName": "123123",
            "hot": 456,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-02-27T17:33:56.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:01:50.000+0000",
            "enableFlag": 1
        },
        {
            "id": 5,
            "gameName": "123123",
            "hot": 789,
            "gameType": 0,
            "logo": 0,
            "num": 0,
            "label": "0",
            "gamePackage": "",
            "createBy": "",
            "createTime": "2021-03-01T14:10:16.000+0000",
            "updateBy": "",
            "updateTime": "2021-03-01T16:01:52.000+0000",
            "enableFlag": 1
        }
    ]
}

5 脚本每次运行的计算与记录(注意:弃用!!)

简要描述:

  • 脚本每次运行的计算与记录接口

请求URL:

  • http://127.0.0.1/api/script/v1/androidScriptPlatform/startScriptCompute

请求方式:

  • POST

参数:

 {
       "id": 1, -- 脚本id
       "cardId": 13 -- 云手机唯一标识card_id
 }

返回示例

{
    "status": 0,
    "msg": "脚本运行计算成功",
    "data": null
}

{
    "status": 1,
    "msg": "脚本运行计算错误",
    "data": null
}

6 指定游戏下的所有脚本信息

简要描述:

  • 查看指定游戏下的所有脚本信息接口

请求URL:

  • http://127.0.0.1/api/script/v1/androidScriptPlatform/gameByScriptInfo?gameId=1

请求方式:

  • GET

参数:

  {
      "gameId": 1 -- 游戏id
  }

返回示例

{
    "status": 0,
    "msg": "查询成功",
    "data": [
        {
			"gamePackage":"", --脚本所属游戏包名
			"hot": 12 , --游戏热力值
			appPackage:"",-- 脚本包名
			
            "id": 1,
            "scriptName": "aa", -- 脚本名字
            "gameId": 1, -- 游戏id
            "version": "", -- '版本
            "logo": 0, -- 脚本图标文件服务器id
            "introduction": "", -- 简介
            "updateContent": "", -- 版本更新记录
            "tutorial": "", -- 教程
            "authorId": 1, -- 作者id
            "label": "", -- 标签
            "type": 0, -- 类型 1.lua、2.apk
            "rate": 0, -- 费率(单位分)
            "luaApkUrl": 0, -- 脚本文件路径--文件服务器id
            "downloadTotalDv": "1", -- 下载次数,每天最多算一次
            "revenue": 0, -- 总收益(单位分)
            "createBy": "", -- '创建人'
            "createTime": "2021-03-02T11:13:18.000+0000", -- 创建时间
            "updateBy": "", -- 修改人
            "updateTime": "2021-03-01T16:01:52.000+0000", -- 修改时间
        },
        {
			"gamePackage":"", --脚本所属游戏包名
			"hot": 12 , --游戏热力值
			appPackage:"",-- 脚本包名
		
            "id": 3,
            "scriptName": "测试1",
            "gameId": 1,
            "version": "2.0.0",
            "logo": 1,
            "introduction": "3333",
            "updateContent": "324444",
            "tutorial": "23433333",
            "authorId": 1,
            "label": "免费",
            "type": 1,
            "rate": 190,
            "luaApkUrl": 1,
            "downloadTotalDv": "1",
            "revenue": 0,
            "createBy": "admin",
            "createTime": "2021-03-02T16:14:03.000+0000",
            "updateBy": "admin",
            "updateTime": "2021-03-02T16:15:35.000+0000",
            "enableFlag": 0
        }
    ]
}

7 轮播图滑动次数信息

简要描述:

  • 更新轮播图滑动次数信息

请求URL:

  • http://127.0.0.1/api/script/v1/androidScriptPlatform/bannerBrowseInfo?bannerId=1

请求方式:

  • GET

参数:

 {
       "bannerId": 1 -- 轮播图id
 }

返回示例

{
    "status": 0,
    "msg": "更新成功",
    "data": null
}

1 更新root开关状态

简要描述:

  • 更新root开关状态接口

请求URL:

  • http://127.0.0.1/api/user/v1/rootSwitch/uploadRootStatus

请求方式:

  • POST

**入参示例: **

 {
       "userCardId": 7, -- 卡唯一标识 card_id
       "rootStatus": 1   -- root 开关状态
 }

返回示例

{
    "status": 0,
    "msg": "更新成功",
    "data": null
}

{
    "status": 1,
    "msg": "更新失败",
    "data": null
}

2 获取root开关状态

简要描述:

  • 获取root开关状态

请求URL:

  • http://127.0.0.1/api/user/v1/rootSwitch/getRootStatus?cardId=7
    请求方式:
  • GET

**入参示例: **

 {
       "cardId": 7 -- 卡唯一标识 card_id
 }

返回示例

{
    "status": 0,
    "msg": "查询成功",
    "data": 1 --  root开关状态(0.关闭 1.开启)
}

{
    "status": 1,
    "msg": "查询失败",
    "data": 1 --  root开关状态(0.关闭 1.开启)
}

1 宿主机注册

简要描述:

  • 宿主机注册信息上报接口

请求URL:

  • http://xx.com/api/virtual/v1/virtualManage/hostInfo

请求方式:

  • POST

入参示例

   [
           {
               "sn": "77789",
               "mac": "127.0.0.1",
               "room": "1",
               "frame": "1",
               "host": "1",
               "lowAddr": "1",
               "blade": 12,
               "card": 34,
               "deviceBoard": "10",
               "bmcIp": "1",
               "hostIp": "1",
               "hostPort": 12,
                   "virtualPhones": [
                       {
                           "containerId": "123",
                           "sn":"宿主机SN_innerNetPort"
   						"virtualIp": "127.0.0.1",
                           "videoMappingPort": 9100,
   						"innerNetIp":"127...0",
                           "innerNetPort": 12
                       },
                       {
                       	"containerId": "123",
                           "sn":"宿主机SN_innerNetPort"
   						"virtualIp": "127.0.0.1",
                           "videoMappingPort": 9100,
   						"innerNetIp":"127...0",
                           "innerNetPort": 12
               }]
           }]
          


字段解释说明---------------------------------------------------------------------

[
       //宿主机一
       {
   		//'板卡sn号码',	
   		"sn": "111111",
   		//'板卡mac地址',	
   		"mac": "127.0.0.1",
   		//'机房位置代号',
   		"room": "1",
   		//'机架位置代号',
   		"frame": "1",
   		//'机箱位置代号',
   		"host": "1",
   		//'位置拼接(机房位置代号.机架位置代号.机箱位置代号)',
   		"lowAddr": "1",
   		//'刀片位置',
   		"blade": 12,
   		//'板卡位置',
   		"card": 34,
   		//'板卡型号:RK_3399(数据库默认值)、MTK_G90',
   		"deviceBoard": "10",
   		//'BMC的IP地址',
   		"bmcIp": "1",
   		//'宿主机IP地址',
   		"hostIp": "1",
   		// '宿主机端口'
   		"hostPort": 12,
                //虚拟机一
   			"virtualPhones": [
   				{
   				//'虚拟机容器ID(docker标识)',
   				"containerId": "123",
   				//'虚拟机容器ID(docker标识)',
                   "sn":"宿主机SN_innerNetPort",
   				//'虚拟机IP地址',
   				"virtualIp": "127.0.0.1",
   				//'推拉流映射端口',
                   "videoMappingPort": 9100,
   				//内网映射IP
   				"innerNetIp":"127...0",
                   //内网映射端口
   				"innerNetPort": 12
   				}]
   	}]

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "宿主机注册成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "宿主机注册失败",
}

2 宿主机重启

简要描述:

  • 宿主机重启(需RSA验签名)

请求URL:

  • http://xx.com/api/virtual/v1/virtualManage/hostRestart
    请求方式:
  • POST

入参示例

       {
           "hostId":10113 宿主机id
       }

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "宿主机重启成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "宿主机重启失败",
}

3 虚拟机重启

简要描述:

  • 虚拟机重启(需RSA验签名)

请求URL:

  • http://xx.com/api/virtual/v1/virtualManage/virtualRestart

请求方式:

  • POST

入参示例

       {
         sn:"12"  虚拟机sn
       }

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "虚拟机重启成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "虚拟机重启失败",
}

4 虚拟机删除

简要描述:

  • 虚拟机删除(需RSA验签名)
    请求URL:
  • http://xx.com/api/virtual/v1/virtualManage/virtualDelete

请求方式:

  • POST

入参示例

       {
        sn:"12"  虚拟机sn
       }

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "虚拟机删除成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "虚拟机删除失败",
}

5 虚拟机创建

简要描述:

  • 虚拟机创建(需RSA验签名)

请求URL:

  • http://xx.com/api/virtual/v1/virtualManage/virtualCreate

请求方式:

  • POST

入参示例

		{
      	"virtualCreateNum":2,(最多2,最少1) 虚拟机创建个数
        "hostId":10113, 宿主机id
   	"innerNetIp":127.0.0.1, 虚拟机IP(内网映射IP)
   	"sn":"123132132" 宿主机唯一标识sn
   	}

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "虚拟机创建成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "虚拟机创建失败",
}

6 虚拟机注册的所有数据同步

简要描述:

  • 虚拟机注册的所有数据同步
    请求URL:
  • http://xx.com/api/virtual/v1/virtualWeb/virtualSyncData

请求方式:

  • POST

入参示例

       {
   "containerId":"1",      varchar(32) not null default '' comment '虚拟机容器ID(docker标识)',
   "sn":"1"     ,        varchar(128) comment '虚拟机sn',
   "virtualIp":"1"   ,       varchar(64) comment '虚拟机IP地址',
   "videoMappingPort":1,   int(8) comment '推拉流映射端口',
   "innerNetIp":"1",        varchar(64) comment '内网映射IP地址',
   "innerNetPort":1,       int(8) comment '内网映射端口',
   
   //外网IP和端口由管理人员手动设置
   "outerNetIp":"1",      varchar(64) comment '外网映射IP地址',
   "outerNetPort":1,      int(8) comment '外网映射端口',
   
   
   "usedStatus":"10",         varchar(8) default '10' comment '分配状态(10:未分配、20:已分配)',
   "userId":1,             bigint(20) comment '分配用户,对应t_user_vital.id',
   "userPhone":"1",         varchar(32) comment '用户号码,对应t_user_vital.phone_number',
   "createBy":"JWTUtil.username"           varchar(64) comment '创建人',
       }

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "虚拟机注册数据同步成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "虚拟机注册数据同步失败",
}

7 设备映射的ip和端口信息数据同步批量

简要描述:

  • 设备映射的ip和端口信息数据同步批量或单个(安卓卡用户手机 使用状态同步接口)

请求URL:

  • http://xx.com/api/virtual/v1/virtualWeb/deviceSyncData

请求方式:

  • POST

入参示例

	{
    "sn": "123132132",		唯一标识sn号
    "outerNetIp": "127.0.0.1",  外网ip
    "outerNetPort":80,		外网端口
	"usedStatus":"10",   分配状态(10:未分配、20:已分配)
	"userId":12,       用户id
	"userPhone":"13000000000"		用户手机号
	}

返回示例

 {
    "status": 0,(0 :成功 1:失败)
    "msg": "外网IP端口同步成功",
}

 {
    "status": 1,(0 :成功 1:失败)
    "msg": "外网IP端口同步失败",
}

8 宿主机列表信息

简要描述:

  • 宿主机列表信息

请求URL:

  • http://xx.com/api/virtual/v1/virtualWeb/selectAllHostInfo

请求方式:

  • POST

入参示例

	{
	"sn": "123132132" --- 卡唯一标识sn号
	"blade":123132132 -- 刀片id
	"card":123123 -- 板卡id
	"hostIp":"127.0.0.1" -- 宿主机IP
	"pageNum":1 -- 页码
	"pageSize":10 -- 每页大小
	}

返回示例

 {
    "msg": "成功",
	"data":{
	
	}
}

9 虚拟化详情列表信息(宿主机下)

简要描述:

  • 虚拟化详情列表信息(宿主机下) 最多2条信息

请求URL:

  • http://xx.com/api/virtual/v1/virtualWeb/selectHostByVirtual

请求方式:

  • POST

入参示例

	{
    "hostId":12 -- 宿主机ID
	"pageNum":1 -- 页码
    "pageSize":10 -- 每页大小
	}

返回示例

 {
    "msg": "成功",
	"data":{
	
	}
}

10 宿主机刀片/板卡下拉列表

简要描述:

  • 宿主机刀片/板卡下拉列表

请求URL:

  • http://xx.com/api/virtual/v1/virtualWeb/selectCardList

请求方式:

  • POST

返回示例

{
    "status": 0,
    "msg": "请求成功",
    "data": [
        {
        {
            "name": "11",   --刀片位置
            "data": [
                {
                    "name": [
                        "34" --板卡位置
                    ]
                }
            ]
        },
        {
            "name": "12",
            "data": [
                {
                    "name": [
                        "34",
                        "35"
                    ]
                }
            ]
        },
        {
            "name": "13",
            "data": [
                {
                    "name": [
                        "35",
                        "36"
                    ]
                }
            ]
        },
        {
            "name": "14",
            "data": [
                {
                    "name": [
                        "37"
                    ]
                }
            ]
        },
        {
            "name": "15",
            "data": [
                {
                    "name": [
                        "38"
                    ]
                }
            ]
        }
    ]
}

1 站点列表

  • **简要描述:**当前机房地区站点设备使用情况

  • 请求方式:get

  • 请求URL:http://ip/api/storage/v1/site/switch/area/list

    入参不变

  • 返回数据示例:
    多了一个响应参数字段供显示
    “percentageMsg”:“空闲”

    • 空闲:
    • 一般:
    • 繁忙:

注意:调用迁移接口/api/storage/v1/site/switch/start
status 状态为2 请弹出让用户 排队窗口

{
    "status": 3,
    "msg":  "RBD迁移失败,不符合迁移条件,请让用户排队"
}

2 RBD迁移记录

  • **简要描述:**获取所有地区情况
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/rbdMoveRecordInfo
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 823,
    "pageNum": 1,
    "pageSize":10
}

  • 请求参数说明
类型说明
userCardIdint卡id(t_user_card.id)
pageNumint页码
pageSizeint每页大小
  • 返回数据示例:
{
    "status": 0,
    "msg": "请求成功",
    "data": {
        "pageNum": 1,
        "pageSize": 10,
        "size": 3,
        "startRow": 1,
        "endRow": 3,
        "total": 3,
        "pages": 1,
        "list": [
            {
                "applyTime": "2021年03月30日16:09:21",
                "startCity": "长沙市",
                "endCity": "深圳市",
				"moveStatus": "成功"
            },
            {
                "applyTime": "2021年03月30日16:09:21",
                "startCity": "深圳市",
                "endCity": "长沙市",
				"moveStatus": "成功"
            },
            {
                "applyTime": "2021年03月30日16:09:21",
                "startCity": "长沙市",
                "endCity": "深圳市",
				"moveStatus": "成功"
            }
        ],
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1,
        "firstPage": 1,
        "lastPage": 1
    }
}

  • 返回参数说明
类型说明
applyTimedate申请迁移时间
startCitystring迁移前地址
endCityString迁移后地址

3 获取排队数量

  • **简要描述:**提供该节点的任务排队数量(原节点,目标节点),数量大于0更新t_partition_move_task数据,数量为0表示可以迁移-调用站点迁移接口
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/getTaskCount
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 823,
    "areaId": 1
}

  • 请求参数说明
类型说明
userCardIdint安卓卡id(t_user_card.id)
areaIdint切换到的站点id(t_area.id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "请求成功",
    "data":5
	}
  • 返回参数说明
类型说明
dataint排队数量

4 用户确认排队弹窗 提供该任务预计的排队所需要的时间

  • **简要描述:**提供该任务预计的排队所需要的时间
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/getTaskTime
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 823,
    "areaId": 1
}

  • 请求参数说明
类型说明
userCardIdint安卓卡id(t_user_card.id)
areaIdint切换到的站点id(t_area.id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "请求成功",
    "data":"4"
	}
  • 返回参数说明
类型说明
dataint预估时间(小时)

5用户确认排队 使用该接口记录用户排队成功

  • **简要描述:**用户确认排队 使用该接口记录用户排队成成功
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/addTask
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 823,
    "areaId": 1
}

  • 请求参数说明
类型说明
userCardIdint安卓卡id(t_user_card.id)
areaIdint切换到的站点id(t_area.id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "RBD迁移排队成功"
	}

6退出排队

  • **简要描述:**退出排队,更新为 迁移取消(状态 4)
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/logoutMove
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 823
}
  • 请求参数说明
类型说明
userCardIdint安卓卡id(t_user_card.id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "迁移排队取消成功"
	}

7获取排队当前序列号

  • **简要描述:**当前排队处于第几位
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/getLocationCount
  • **是否携带token:**是
  • 请求参数说明:
{
    "userCardId": 3775
}
  • 请求参数说明
类型说明
userCardIdint安卓卡id(t_user_card.id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "当前排队处于第几位"
	"date":1
	}

1 迁移管理列表

  • **简要描述:**迁移管理列表查询信息
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/selectAllRbdMoveInfo
  • **是否携带token:**是
  • 请求参数说明:
{
    "pageNum": 1,
    "pageSize":10
}

  • 请求参数说明
类型说明
pageNumint页码 必传
pageSizeint每页大小 必传
usernameint用户名 查询传
diskNameint云机名 查询传
createTimeint创建时间 查询传
runStatusint迁移状态(-1:等待中,0:迁移失败,1:迁移成功,2:迁移中,3:暂停中,4:取消) 查询传

areaName

  • 返回数据示例:
{
    "status": 0,
    "msg": "请求成功",
    "data": {
        "pageNum": 1,
        "pageSize": 10,
        "size": 5,
        "startRow": 1,
        "endRow": 5,
        "total": 5,
        "pages": 1,
        "list": [
            {
                "id": 1,
                "storeTaskId": 0,
                "username": null,
                "diskName": null,
                "startPoint": "深圳市",
                "endPoint": "长沙市",
                "startTime": "2021年04月02日18:05:35",
                "finishTime": "2021年04月02日18:35:45",
                "oldRbdname": "lf50851e433843f6b8c2a4545d5bf799008",
                "newRbdname": "t816d934b9b843d997b28f1bdf297244",
                "moveStatus": 2
            },
            {
                "id": 3,
                "storeTaskId": 0,
                "username": null,
                "diskName": null,
                "startPoint": "长沙市",
                "endPoint": "深圳市",
                "startTime": "2021年04月02日18:05:35",
                "finishTime": "2021年04月02日18:35:45",
                "oldRbdname": "gef41a00ad2b438f81827be3ebf09689003",
                "newRbdname": "ydd751272f664802b340ec92395a2e1a",
                "moveStatus": 1
            },
            {
                "id": 5,
                "storeTaskId": 0,
                "username": null,
                "diskName": null,
                "startPoint": "深圳市",
                "endPoint": "长沙市",
                "startTime": "2021年04月02日18:05:35",
                "finishTime": "2021年04月02日18:35:45",
                "oldRbdname": "lf50851e433843f6b8c2a4545d5bf799009",
                "newRbdname": "p227951403e8495a968dc7e25c483bab",
                "moveStatus": 2
            },
            {
                "id": 7,
                "storeTaskId": 0,
                "username": null,
                "diskName": null,
                "startPoint": "深圳市",
                "endPoint": "长沙市",
                "startTime": "2021年04月02日18:05:35",
                "finishTime": "2021年04月02日18:35:45",
                "oldRbdname": "r578aab93862482688532ed360f7fd77001",
                "newRbdname": "p3a81ebe7f3e4cafbde217819505e39b",
                "moveStatus": 1
            },
            {
                "id": 13,
                "storeTaskId": 0,
                "username": null,
                "diskName": null,
                "startPoint": "深圳市",
                "endPoint": "长沙市",
                "startTime": "2021年04月02日18:05:35",
                "finishTime": "2021年04月02日18:05:45",
                "oldRbdname": "r8f47ae8d9aa41dfbbd452038111ae25",
                "newRbdname": "xdc4446aa7d94a77aee99ad637fd4f47",
                "moveStatus": 1
            }
        ],
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1,
        "firstPage": 1,
        "lastPage": 1
    }
}

  • 返回参数说明

    /**

    • t_partition_move_task.id(表id)
      */
      private Integer id;

    /**

    • t_partition_move_task.store_task_id(任务id)
      */
      private Integer storeTaskId;

    /**

    • 用户名
      */
      private String username;

    /**

    • 云手机名称
      /
      private String diskName;
      /
      *
    • 原站点
      /
      private String startPoint;
      /
      *
    • 目标站点
      */
      private String endPoint;

    /**

    • 迁移开始时间
      /
      private Date startTime;
      /
      *
    • 迁移结束时间
      */
      private Date finishTime;

    /**

    • 原RBD名称
      /
      private String oldRbdname;
      /
      *
    • 目标RBD名称
      */
      private String newRbdname;

    /**

    • ‘迁移状态(-1:等待中,0:迁移失败,1:迁移成功,2:迁移中,3:暂停中,4:取消)’
      */
      private Integer moveStatus;

2 站点策略列表查询信息

  • **简要描述:**站点策略列表查询信息
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/selectAllRbdStrategyInfo
  • **是否携带token:**是
  • 请求参数说明:
{
    "pageNum":1,
    "pageSize":10
}

  • 请求参数说明
类型说明
pageNumint页码 必传
pageSizeint每页大小 必传
areaNameString区域名称 查询传
machineRoomString绑定机房 查询传
strategyStatusint策略状态(0:关 1:开) 查询传
  • 返回数据示例:
{
    "status": 0,
    "msg": "请求成功",
    "data": {
        "pageNum": 1,
        "pageSize": 10,
        "size": 2,
        "startRow": 1,
        "endRow": 2,
        "total": 2,
        "pages": 1,
        "list": [
            {
                "id": 1,
                "city": "深圳市",
                "room": "L3",
                "transferStatus": 0,
                "nowCount": 2,
                "waitCount": 0,
                "successCount": 3,
                "parallelNum": 4,
                "nodeNum": 3
            },
            {
                "id": 3,
                "city": "长沙市",
                "room": "B3",
                "transferStatus": 0,
                "nowCount": 2,
                "waitCount": 0,
                "successCount": 3,
                "parallelNum": 0,
                "nodeNum": 0
            }
        ],
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1,
        "firstPage": 1,
        "lastPage": 1
    }
}
  • 返回参数说明

    /**

    • t_storage_info.id(表id)
      */
      private Integer id;

    /**

    • 区域名称
      */
      private String city;

    /**

    • 绑定机房
      */
      private String room;

    /**

    • 策略开关
      /
      private Integer transferStatus;
      /
      *
    • 当前迁移数量
      /
      private Integer nowCount;
      /
      *
    • 等待迁移数量
      /
      private Integer waitCount;
      /
      *
    • 迁移成功数
      /
      private Integer successCount;
      /
      *
    • 并行迁移数
      /
      private Integer parallelNum;
      /
      *
    • 存储节点数
      */
      private Integer nodeNum;

3 (站点)RBD设置并行数 (需要环境验证python端的RBD接口)

  • **简要描述:**RBD设置并行数
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/setConcurrentCount
  • **是否携带token:**是
  • 请求参数说明:
{
    "parallelNum": 4,
    "storageInfoId": 1
}

  • 请求参数说明
类型说明
userCardIdint数量
storageInfoIdintt_storage_info.id(表id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "并行迁移数设置成功"
	}

4(站点)更新策略开关

  • **简要描述:**更新策略开关
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/setStrategyStatus
  • **是否携带token:**是
  • 请求参数说明:
{
    "strategyStatus": 0,
   "storageInfoId": 1
}

  • 请求参数说明
类型说明
strategyStatusint策略状态(0:关 1:开)
storageInfoIdintt_storage_info.id(表id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "策略开启成功"
	}
	{
    "status": 0,
    "msg": "策略关闭成功"
	}

5(迁移)RBD重试(需要环境验证python端的RBD接口)

  • **简要描述:**RBD重试
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/rbdRestart
  • **是否携带token:**是
  • 请求参数说明:
{
    "taskId": "0"
}

  • 请求参数说明
类型说明
taskIdStringt_partition_move_task.store_task_id(任务id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "rbd迁移重试成功"
	}

6(迁移)RBD取消(需要环境验证python端的RBD接口)

  • **简要描述:**RBD取消
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/rbdCancel
  • **是否携带token:**是
  • 请求参数说明:
{
    "taskId": "0"
}

  • 请求参数说明
类型说明
taskIdStringt_partition_move_task.store_task_id(任务id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "取消迁移成功"
	}

7(迁移)RBD迁移详情(需要环境验证python端的RBD接口。。。)

  • **简要描述:**RBD迁移详情
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/rbdMoveInfo
  • **是否携带token:**是
  • 请求参数说明:
{
    "taskId": "0"
}

  • 请求参数说明
类型说明
taskIdStringt_partition_move_task.store_task_id(任务id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "获取rbd迁移详情成功",
	
	"data":
	[
    {    "task_id": 1,   
        "now_step": "远端集群解压导入",    
        "now_step_num": 4,     
        "now_step_code": "import",   
        "status": "being",   
     
       "transfer_audit": [   
                {     "step": "本地集群导出rbd",  
                     "step_status": "success",  
                     "step_num": 1,        
                     "step_code": "export",    
                     "start_time": "2019‐11‐15 17:35:16",
                     "end_time": "2019‐11‐15 17:35:16"        },   
                {   "step": "本地集群压缩rbd",         
                    "step_status": "success",     
                    "step_num": 2,           
                    "step_code": "compress",    
                     "start_time": "2019‐11‐15 17:35:16",     
                     "end_time": "2019‐11‐15 17:35:16"  },   
       
                {    "step": "远端集群下载压缩包",   
                     "step_status": "success",      
                     "step_num": 3,           
                      "step_code": "download",       
                      "start_time": "2019‐11‐15 17:35:16",       
                      "end_time": "2019‐11‐15 17:35:16"      }  
      	]    
 	}
]

}

8(迁移)删除RBD迁移记录 注意这个id不一样(请查看本页面接口①迁移列表)

  • **简要描述:**RBD迁移详情
  • 请求方式:POST
  • 请求URL:http://ip/api/storage/v1/rbdMove/deleteMoveRecord
  • **是否携带token:**是
  • 请求参数说明:
单个
{
    "taskId": "0"
}

批量
{
    "taskId": "0,1,2"
}

  • 请求参数说明
类型说明
taskIdStringt_partition_move_task.id(表id)
  • 返回数据示例:
{
    "status": 0,
    "msg": "rdb任务移除成功"
	}
  • 请求类型:POST
  • **简要描述:**用户使用外链下载(好友-添加好友) / 官网页面下载(android/ios/pc)
    http://test.androidscloud.com/api/user/promote/imInvitation?type=3&username=MkgzTDgxNjA5MjA3Nzgy
    http://www.androidscloud.com/
  • 请求URL:/api/public/v4/access/user/burialSiteLog
  • 请求阐述示例:http://.31.223/api/public/v4/access/user/burialSiteLog
  • 请求参数示例:
# 推广页面下载埋点
[
{
	"platform":4,(固定4,表示web端)
	"visitType":4,(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
	"time":"1609235353024",(用户点击下载按钮的时间戳)
	"phoneNum":"13311111111",
	"downLoaderCount": 10000,(总下载次数,用户点击下载按钮的叠加数量)
	"browserType": "浏览器信息 火狐4.5"(浏览器信息加版本号)
}
]
# PC/android/IOS下载埋点
[
{
	"platform":4,(固定4,表示web端)
	"visitType":5,(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
	"time":"1609235353024",(用户点击下载按钮的时间戳)
	"downLoaderCount": 20000,(总下载次数,用户点击下载按钮的叠加数量)
	"browserType": "浏览器信息 火狐4.5"(浏览器信息加版本号)
}
]
  • 请求参数说明:
类型描述
platformint4(表示web端)
visitTypeint(4:推广页面下载 5:官网PC端下载 6:官网android端下载 7:官网ios端下载)
timestring(用户点击下载按钮的时间戳)
phoneNumstring推广页面点击下载按钮时 录入的手机号
ipstring用户ip地址(后端获取 getHeader(X-real-ip))
downLoaderCountint(总下载次数,用户点击下载按钮的叠加数量)
browserTypestring(浏览器信息加版本号)
  • 返回数据示例:
{
    "status": 0,
    "msg": "成功",
    "data": null
}
  • 响应参数说明:
类型说明
statusint0:成功、1:失败
msgString描述
dataString返回数据前端不需要数据默认null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值