Commit 59ee40a9 authored by guxukai's avatar guxukai

Merge remote-tracking branch 'origin/main'

parents 198d6973 d639c17d
- [ ] app-service - jqy
- [x] app-service - jqy
- [x] auth-service - zk
- [x] chain-service - zk
- [ ] cloud-service - zk
......@@ -8,7 +8,7 @@
- [x] license-service - gxk
- [x] logger-service - gxk
- [x] monitor-service - gxk
- [ ] order-service - jqy
- [x] order-service - jqy
- [ ] pay-service - jqy
- [ ] user-service - zk
- [ ] website-service - jqy
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class AppDeploy extends Model<AppDeploy> {
//应用访问地址
@JsonProperty() appAccessUrl: string
//应用名称
@JsonProperty() appName: string
//链ID
@JsonProperty() chainId: string
//部署类型
@JsonProperty() deployMode: string
//应用离线部署包生成时间
@JsonProperty() deployPackageTime: number
//应用离线部署包下载地址
@JsonProperty() deployPackageUrl: string
//部署ID
@JsonProperty() id: number
//关联订单ID
@JsonProperty() orderId: number
//部署状态 UNPAID:未支付,WAITING:未执行
@JsonProperty() state: string
//应用版本
@JsonProperty() version: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { AppDeployNode } from './AppDeployNode'
import { AppDeployParam } from './AppDeployParam'
@Serializable()
export class AppDeployCommit extends Model<AppDeployCommit> {
//应用ID
@JsonProperty() appId: number
//链ID
@JsonProperty() chainId: string
//链名称
@JsonProperty() chainName: string
//链类型
@JsonProperty() chainType: number
//部署ID
@JsonProperty() deployId: number
//应用版本
@JsonProperty() version: string
//节点相关信息
@JsonProperty({ type: AppDeployNode }) deployNodes: AppDeployNode[]
//参数信息
@JsonProperty({ type: AppDeployParam }) params: AppDeployParam[]
/**
* 提交应用部署信息
* @param payload
*/
static async post(payload: AppDeployCommitPostReq) {
return await api.post('/services/app-service/app/deploy/commit', { data: payload })
}
}
export class AppDeployCommitPostReq extends AppDeployCommit {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class AppDeployComplete extends Model<AppDeployComplete> {
static async get(payload: AppDeployCompleteGetReq) {
return await api.get(`/services/app-service/app/deploy/complete/${payload.deployId}`)
}
}
export class AppDeployCompleteGetReq extends Model<AppDeployCompleteGetReq> {
@JsonProperty() deployId: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { AppDeployNode } from './AppDeployNode'
import { AppDeployParam } from './AppDeployParam'
import { HttpResponse } from '../../http/HttpResponse'
@Serializable()
export class AppDeployConfig extends Model<AppDeployConfig> {
//链ID
@JsonProperty() chainId: string
//应用ID
@JsonProperty() id: number
//节点相关信息
@JsonProperty({ type: AppDeployNode }) deployNodes: AppDeployNode[]
//参数信息
@JsonProperty({ type: AppDeployParam }) params: AppDeployParam[]
/**
* 查询应用部署配置信息
* @param payload
*/
static async get(payload: AppDeployConfigGetReq) {
return await api.get<HttpResponse<AppDeployConfig>>('/app-service/app/deploy/config', { data: payload })
}
}
export class AppDeployConfigGetReq extends Model<AppDeployConfigGetReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class AppDeployNode extends Model<AppDeployNode> {
//ssh密码
@JsonProperty() accessPassword: string
//ssh用户名
@JsonProperty() accessUser: string
//应用名称
@JsonProperty() appName: string
//是否自动续期
@JsonProperty() autoRenew: boolean
//计费模式
@JsonProperty() billingMode: string
//链ID
@JsonProperty() chainId: string
//云主机ID
@JsonProperty() cloudId: string
//创建时间
@JsonProperty() createTime: number
//创建用户ID
@JsonProperty() createUserId: string
//创建用户名称
@JsonProperty() createUserName: string
//逻辑删除
@JsonProperty() deleted: boolean
//部署ID
@JsonProperty() deployId: number
//节点部署的服务
@JsonProperty() description: string
//细节记录
@JsonProperty() detail: string
//时长
@JsonProperty() duration: string
//企业ID
@JsonProperty() eid: string
//到期时间
@JsonProperty() expireTime: number
//主键ID
@JsonProperty() id: string
//节点IP
@JsonProperty() innerIp: string
//节点名称
@JsonProperty() name: string
//是否需要访问公网
@JsonProperty() needPublic: boolean
//外网节点IP
@JsonProperty() outerIp: string
//需要开放端口,以逗号分隔
@JsonProperty() ports: string
//套餐ID
@JsonProperty() profileId: number
//节点公钥
@JsonProperty() pubKey: string
//登录密钥id
@JsonProperty() sshKeyId: number
//ssh端口号
@JsonProperty() sshPort: number
//登录私钥
@JsonProperty() sshPrivKey: string
//登录公钥
@JsonProperty() sshPubKey: string
//状态,默认是订单未支付,未创建
@JsonProperty() status: number
//更新时间
@JsonProperty() updateTime: number
//更新用户ID
@JsonProperty() updateUserId: string
//更新用户名称
@JsonProperty() updateUserName: string
//登录类型false:账号密码登录true:私钥登录
@JsonProperty() usePrivKeyAccess: boolean
//应用版本
@JsonProperty() version: string
}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { AppDeployCommit } from './AppDeployCommit'
@Serializable()
export class AppDeployOfflineCommit extends Model<AppDeployOfflineCommit> {
/**
* 提交应用离线部署信息
* @param payload
*/
static async post(payload: AppDeployOfflineCommitPostReq) {
return await api.post('/services/app-service/app/deploy/offline/commit', {
data: payload,
})
}
}
@Serializable()
export class AppDeployOfflineCommitPostReq extends AppDeployCommit {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class AppDeployParam extends Model<AppDeployParam> {
//应用名称
@JsonProperty() appName: string
//创建时间
@JsonProperty() createTime: number
//创建用户ID
@JsonProperty() createUserId: string
//创建用户名称
@JsonProperty() createUserName: string
//是否加密存储
@JsonProperty() crypto: boolean
//逻辑删除
@JsonProperty() deleted: boolean
//部署ID
@JsonProperty() deployId: number
//ID
@JsonProperty() id: string
//参数属性
@JsonProperty() paramMark: string
//参数值
@JsonProperty() paramValue: string
//服务名,预留
@JsonProperty() serviceName: string
//更新时间
@JsonProperty() updateTime: number
//更新用户ID
@JsonProperty() updateUserId: string
//更新用户名称
@JsonProperty() updateUserName: string
//应用版本
@JsonProperty() version: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class AppDeployStart extends Model<AppDeployStart> {
/**
* 开始部署
* @param payload
*/
static async get(payload: AppDeployStartGetReq) {
return await api.get(`/services/app-service/app/deploy/start/${payload.deployId}`)
}
}
@Serializable()
export class AppDeployStartGetReq extends Model<AppDeployStartGetReq> {
@JsonProperty() deployId: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class AppDeployUninstall extends Model<AppDeployUninstall> {
/**
* 卸载部署
* @param payload
*/
static async get(payload: AppDeployUninstallGetReq) {
return await api.get(`/services/app-service/app/deploy/uninstall/${payload.deployId}`)
}
}
@Serializable()
export class AppDeployUninstallGetReq extends Model<AppDeployUninstallGetReq> {
@JsonProperty() deployId: number
}
......@@ -9,11 +9,16 @@ import { HttpResponse } from '@shared/http/HttpResponse'
export class AppPurchasePage extends Pagination<AppPurchased> {
@JsonProperty({ type: AppPurchased }) data: AppPurchased[]
/**
* 已购买应用查询
* @param payload
*/
static async post(payload: AppPurchasePagePostReq) {
return await api.post<HttpResponse<AppPurchasePage>>('/services/app-service/app/purchase/page', {
data: payload,
})
}
}
@Serializable()
export class AppPurchasePagePostReq extends PaginationParams<AppPurchasePagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { AppMetaData } from '@shared/models/app-service/AppMetaData'
import { Metadata } from '@shared/models/app-service/Metadata'
import { AppTypeEnum } from '@shared/models/app-service/enums/AppTypeEnum'
@Serializable()
......@@ -25,7 +25,7 @@ export class AppPurchased extends Model<AppPurchased> {
//应用描述
@JsonProperty() content: string
//是否最新版本
@JsonProperty() latestVersion: Boolean
@JsonProperty() latestVersion: boolean
//应用类别
@JsonProperty() category: number
//更新时间
......@@ -35,7 +35,7 @@ export class AppPurchased extends Model<AppPurchased> {
//应用ID
@JsonProperty() appId: number
//应用元数据
@JsonProperty() metaData: { [key: string]: AppMetaData }
@JsonProperty() metaData: { [key: string]: Metadata }
//代理合约abi
@JsonProperty() proxyAbi: string
......
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { AppMetaData } from '@shared/models/app-service/AppMetaData'
import { Metadata } from '@shared/models/app-service/Metadata'
@Serializable()
export class AppStore extends Model<AppStore> {
//分类
......@@ -17,19 +17,19 @@ export class AppStore extends Model<AppStore> {
//应用ID
@JsonProperty() id: number
//是否最新版本 true:版本已更新 false:版本待更新
@JsonProperty() latest: Boolean
@JsonProperty() latest: boolean
// metaData
@JsonProperty() metaData: {
[key: string]: AppMetaData
[key: string]: Metadata
}
//应用名
@JsonProperty() name: string
//是否购买 true:已购买 false:未购买
@JsonProperty() ownership: Boolean
@JsonProperty() ownership: boolean
//应用价格
@JsonProperty() price: number
//可用状态
@JsonProperty() status: Boolean
@JsonProperty() status: boolean
//存储链接
@JsonProperty() storeUrl: string
//用户名
......@@ -51,7 +51,7 @@ export class AppStore extends Model<AppStore> {
* @param payload
*/
static async delete(payload: AppStoreDeleteReq) {
return await api.delete('/services/app-service/appstore')
return await api.delete('/services/app-service/appstore', { data: payload })
}
}
......
......@@ -12,7 +12,7 @@ export class AppStoreAdminPage extends Pagination<AppStore> {
* 超管查询应用市场
* @param payload
*/
static async post(payload: AppStorePagePostReq) {
static async post(payload: AppStoreAdminPagePostReq) {
return await api.post<HttpResponse<AppStoreAdminPage>>('/services/app-service/appstore/admin/page', {
data: payload,
})
......@@ -20,4 +20,4 @@ export class AppStoreAdminPage extends Pagination<AppStore> {
}
@Serializable()
export class AppStorePagePostReq extends PaginationParams<AppStorePagePostReq> {}
export class AppStoreAdminPagePostReq extends PaginationParams<AppStoreAdminPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { api } from '@shared/http/axios'
import { HttpResponse } from '@shared/http/HttpResponse'
import { AppStore } from '@shared/models/app-service/AppStore'
@Serializable()
export class AppStorePage extends Pagination<AppStore> {
@JsonProperty({ type: AppStore }) data: AppStore[]
/**
* 查询应用市场
* @param payload
*/
static async post(payload: AppStorePagePostReq) {
return await api.post<HttpResponse<AppStorePage>>('/services/app-service/appstore/page', {
data: payload,
})
}
}
@Serializable()
export class AppStorePagePostReq extends PaginationParams<AppStorePagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class AppstoreAppPurchased extends Model<AppstoreAppPurchased> {
/**
* 应用市场更新已购应用
* @param payload
*/
static async put(payload: AppstoreAppPurchasedPutReq) {
return await api.put(`/services/app-service/appstore/app/purchased/${payload.id}`, { data: payload })
}
}
@Serializable()
export class AppstoreAppPurchasedPutReq extends Model<AppstoreAppPurchasedPutReq> {
@JsonProperty() id: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { AppCategoryEnum } from '@shared/models/app-service/enums/AppCategoryEnum'
import { Metadata } from '@shared/models/app-service/Metadata'
@Serializable()
export class Contract extends Model<Contract> {
//应用元数据
@JsonProperty() metaData: { [key: string]: Metadata }
//合约abi
@JsonProperty() abiCode: string
//应用ID
@JsonProperty() appId: number
//批准备注
@JsonProperty() approveComment: string
//审批状态
@JsonProperty() approveResult: boolean
//批准时间
@JsonProperty() approveTime: number
//应用类别
@JsonProperty() category: AppCategoryEnum
//代码类型
@JsonProperty() codeType: string
//编译器版本
@JsonProperty() compilerVersion: string
//应用描述
@JsonProperty() content: string
//应用类型
@JsonProperty() contractType: number
//创建时间
@JsonProperty() createTime: number
//外部访问存储链接
@JsonProperty() externalStoreUrl: string
//应用ID
@JsonProperty() id: number
//是否私有发布
@JsonProperty() isPrivate: boolean
//应用名
@JsonProperty() name: string
//应用价格
@JsonProperty() price: number
//代理合约abi
@JsonProperty() proxyAbi: string
//发布时间
@JsonProperty() publishTime: number
//状态
@JsonProperty() status: number
//存储链接
@JsonProperty() storeUrl: string
//用户名
@JsonProperty() uname: string
//更新时间
@JsonProperty() updateTime: string
//版本号
@JsonProperty() version: string
/**
* 发布到应用市场
* @param {ContractPutReq} payload
......
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class ContractApprovement extends Model<ContractApprovement> {
/**
* 发布审批
* @param payload
*/
static async post(payload: ContractApprovementPostReq) {
return await api.post('/services/app-service/contract/approvement', { data: payload })
}
}
@JsonProperty()
export class ContractApprovementPostReq extends Model<ContractApprovementPostReq> {
@JsonProperty() id: number
@JsonProperty() comment: string
@JsonProperty() status: boolean
}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { Contract } from '@shared/models/app-service/Contract'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractApprovementPage extends Pagination<any> {
/**
* 待我审批列表
* @param payload
*/
static async post(payload: ContractApprovementPagePostReq) {
return await api.post<HttpResponse<Contract>>('/services/app-service/contract/approvement/page', { data: payload })
}
}
@Serializable()
export class ContractApprovementPagePostReq extends PaginationParams<ContractApprovementPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { Contract } from '@shared/models/app-service/Contract'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractApprovementRecordPage extends Pagination<Contract> {
@JsonProperty({ type: Contract }) data: Contract[]
/**
* 查询审批记录
* @param payload
*/
static async post(payload: ContractApprovementRecordPagePostReq) {
return await api.post<HttpResponse<ContractApprovementRecordPage>>(
'/services/app-service/contract/approvement/record/page',
{ data: payload },
)
}
}
@Serializable()
export class ContractApprovementRecordPagePostReq extends PaginationParams<ContractApprovementRecordPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { ContractDetail } from '@shared/models/app-service/ContractDetail'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractCallPage extends Model<ContractCallPage> {
/**
* 合约调用列表
*/
static async get(payload: ContractCallPageGetReq) {
return await api.get<HttpResponse>('/services/app-service/contract/call/page', { data: payload })
}
}
@Serializable()
export class ContractCallPageGetReq extends ContractDetail {
@JsonProperty() from: string
@JsonProperty() result: string
@JsonProperty() txHash: string
//当前页码,默认1开始
@JsonProperty() pageIndex?: number
//分页大小,默认10
@JsonProperty() pageSize?: number
}
......@@ -19,9 +19,17 @@ export class ContractChain extends Model<ContractChain> {
//合约调用参数
@JsonProperty() param: []
//代理合约方法
@JsonProperty() proxy: Boolean
@JsonProperty() proxy: boolean
//合约冻结解冻状态 true-冻结 false-解冻
@JsonProperty() status: Boolean
@JsonProperty() status: boolean
/**
* 部署应用详情
* @param payload
* */
static async get(payload: ContractChainGetReq) {
return await api.get('/services/app-service/contract/chain', { data: payload })
}
/**
* 冻结解冻应用
......@@ -44,3 +52,8 @@ export class ContractChainPutReq extends ContractChain {}
@Serializable()
export class ContractChainDeleteReq extends ContractChain {}
@Serializable()
export class ContractChainGetReq extends Model<ContractChainGetReq> {
@JsonProperty() id: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainApprove extends Model<ContractChainApprove> {
static async post(payload: ContractChainApprovePostReq) {
return await api.post('/services/app-service/contract/chain/approve', { data: payload })
}
}
@Serializable()
export class ContractChainApprovePostReq extends Model<ContractChainApprovePostReq> {
@JsonProperty() id: number
@JsonProperty() comment: string
@JsonProperty() status: boolean
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { ContractChainList } from '@shared/models/app-service/ContractChainList'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractChainApprovePage extends Pagination<ContractChainList> {
@JsonProperty({ type: ContractChainList }) data: ContractChainList[]
/**
* 审批应用列表
* @param payload
*/
static async post(payload: ContractChainApprovePagePostReq) {
return await api.post<HttpResponse<ContractChainApprovePage>>('/services/app-service/contract/chain/approve/page', {
data: payload,
})
}
}
@Serializable()
export class ContractChainApprovePagePostReq extends PaginationParams<ContractChainApprovePagePostReq> {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainApproveStat extends Model<ContractChainApproveStat> {
/**
* 统计用户发布应用和部署应用(联盟控制台)
* @param payload
*/
static async get(payload: ContractChainApproveStatGetReq) {
return await api.get('/services/app-service/contract/chain/approve/stat')
}
}
@Serializable()
export class ContractChainApproveStatGetReq extends Model<ContractChainApproveStatGetReq> {}
......@@ -35,7 +35,7 @@ export class ContractChainDeployDeleteReq extends Model<ContractChainDeployDelet
@Serializable()
export class ContractChainDeployGetReq extends Model<ContractChainDeployGetReq> {
@JsonProperty() id: number
@JsonProperty() noWait: Boolean
@JsonProperty() noWait: boolean
@JsonProperty() txHash: string
}
......
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainDestroy extends Model<ContractChainDestroy> {
/**
* 查询销毁结果
* @param payload
*/
static async get(payload: ContractChainDestroyGetReq) {
return await api.get('/services/app-service/contract/chain/destroy', { data: payload })
}
}
@Serializable()
export class ContractChainDestroyGetReq extends Model<ContractChainDestroyGetReq> {
@JsonProperty() id: number
@JsonProperty() txHash: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainFreeze extends Model<ContractChainFreeze> {
/**
* 查询冻结解冻结果
* @param payload
*/
static async get(payload: ContractChainFreezeGetReq) {
return await api.get('/services/app-service/contract/chain/freeze', { data: payload })
}
}
@Serializable()
export class ContractChainFreezeGetReq extends Model<ContractChainFreezeGetReq> {
@JsonProperty() id: number
@JsonProperty() status: boolean
@JsonProperty() txHash: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { Metadata } from '@shared/models/app-service/Metadata'
import { AppDeploy } from '@shared/models/app-service/AppDeploy'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractChainList extends Pagination<ContractChainList> {
//应用部署信息
@JsonProperty() appDeployInfo: { [key: string]: AppDeploy }
//应用元数据
@JsonProperty() metaData: { [key: string]: Metadata }
//合约abi
@JsonProperty() abiCode: string
//应用描述
@JsonProperty() appComment: string
//应用ID
@JsonProperty() appId: number
//应用名
@JsonProperty() appName: string
//部署审批描述
@JsonProperty() approveComment: string
//部署审批时间
@JsonProperty() approveTime: number
//应用分类
@JsonProperty() category: number
//链ID
@JsonProperty() chainId: string
//链名称
@JsonProperty() chainName: string
//链类型
@JsonProperty() chainType: number
//代码类型
@JsonProperty() codeType: string
//合约地址
@JsonProperty() contractAddr: string
//应用类型
@JsonProperty() contractType: number
//部署时间
@JsonProperty() deployTime: number
//合约类型 1-2 普通合约, 3-4 具有管理接口的合约
@JsonProperty() deployType: number
//浏览器地址
@JsonProperty() exploreUrl: string
//部署完成时间
@JsonProperty() finishTime: number
//索引ID
@JsonProperty() id: number
//是否有新版本
@JsonProperty() latest: boolean
//新版本号
@JsonProperty() latestVersion: string
//代理合约abi
@JsonProperty() proxyAbi: string
//合约状态
@JsonProperty() status: number
//用户名
@JsonProperty() uname: string
//版本号
@JsonProperty() version: string
/**
* 查询链应用列表
* @param payload
*/
static async post(payload: ContractChainListPostReq) {
return await api.post<HttpResponse<ContractChainList>>('/services/app-service/contract/chain/list', {
data: payload,
})
}
}
@Serializable()
export class ContractChainListPostReq extends PaginationParams<ContractChainListPostReq> {}
......@@ -2,13 +2,20 @@ import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { api } from '@shared/http/axios'
import { HttpResponse } from '@shared/http/HttpResponse'
import { ContractChainList } from '@shared/models/app-service/ContractChainList'
@Serializable()
export class ContractChainPage extends Pagination<any> {
export class ContractChainPage extends Pagination<ContractChainList> {
@JsonProperty({ type: ContractChainList }) data: ContractChainList[]
/**
* 我部署的应用
* @param payload
*/
static async post(payload: ContractChainPagePostReq) {
return await api.post('/services/app-service/contract/chain/page', { data: payload })
return await api.post<HttpResponse<ContractChainPage>>('/services/app-service/contract/chain/page', {
data: payload,
})
}
}
......
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { ContractDetail } from '@shared/models/app-service/ContractDetail'
@Serializable()
export class ContractChainPeriod extends Model<ContractChainPeriod> {
@JsonProperty() beginTime: string
@JsonProperty() endTime: string
@JsonProperty() contractAddr: string
/**
* 查询调用次数动态结果
*/
static async get(payload: ContractChainPeriodGetReq) {
return await api.get('/services/app-service/contract/chain/period', { data: payload })
}
}
@Serializable()
export class ContractChainPeriodGetReq extends ContractDetail {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { ContractChain } from '@shared/models/app-service/ContractChain'
@Serializable()
export class ContractChainProxy extends Model<ContractChainProxy> {
/**
* 部署代理合约
* @param payload
*/
static async post(payload: ContractChainProxyPostReq) {
return await api.post('/services/app-service/contract/chain/proxy', { data: payload })
}
/**
* 更新代理合约
* @param payload
*/
static async put(payload: ContractChainProxyPutReq) {
return await api.put('/services/app-service/contract/chain/proxy', { data: payload })
}
}
@Serializable()
export class ContractChainProxyPostReq extends ContractChain {}
@Serializable()
export class ContractChainProxyPutReq extends ContractChain {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainPublished extends Model<ContractChainPublished> {
//交易签名地址
@JsonProperty() address: string
//链ID
@JsonProperty() chainId: string
//链名称
@JsonProperty() chainName: string
//链类型: 0-联盟链; 1-私链; 2-平行链
@JsonProperty() chainType: number
//应用ID
@JsonProperty() id: number
//合约初始化参数
@JsonProperty() param: []
/**
* 合约部署到链
* @param payload
*/
static async post(payload: ContractChainPublishedPostReq) {
return await api.post('/services/app-service/contract/chain/published', { data: payload })
}
}
@Serializable()
export class ContractChainPublishedPostReq extends ContractChainPublished {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { ContractChainPublished } from '@shared/models/app-service/ContractChainPublished'
@Serializable()
export class ContractChainPurchased extends Model<ContractChainPurchased> {
/**
* 部署购买的应用
* @param payload
*/
static async post(payload: ContractChainPurchasedPostReq) {
return await api.post('/services/app-service/contract/chain/purchased', { data: payload })
}
}
@Serializable()
export class ContractChainPurchasedPostReq extends ContractChainPublished {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { ContractChain } from '@shared/models/app-service/ContractChain'
@Serializable()
export class ContractChainRaw extends Model<ContractChainRaw> {
/*
* 获取原始交易结果
*/
static async get(payload: ContractChainRawGetReq) {
return await api.get('/services/app-service/contract/chain/raw', { data: payload })
}
/*
* 发送原始交易
*/
static async post(payload: ContractChainRawPostReq) {
return await api.post('/services/app-service/contract/chain/raw', { data: payload })
}
}
@Serializable()
export class ContractChainRawGetReq extends Model<ContractChainRawGetReq> {
@JsonProperty() chainId: string
@JsonProperty() chainType: number
@JsonProperty() txHash: string
}
@Serializable()
export class ContractChainRawPostReq extends ContractChain {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
import { ContractChain } from '@shared/models/app-service/ContractChain'
@Serializable()
export class ContractChainRedeploy extends Model<ContractChainRedeploy> {
/**
* 重新部署应用
* @param payload
*/
static async put(payload: ContractChainRedeployPutReq) {
return await api.put('/services/app-service/contract/chain/redeploy', { data: payload })
}
}
@Serializable()
export class ContractChainRedeployPutReq extends ContractChain {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractChainTransaction extends Model<ContractChainTransaction> {
/**
* 查询调用结果
* @param payload
*/
static async get(payload: ContractChainTransactionGetReq) {
return await api.get('/services/app-service/contract/chain/transaction', { data: payload })
}
}
@Serializable()
export class ContractChainTransactionGetReq extends Model<ContractChainTransactionGetReq> {
@JsonProperty() func: string
@JsonProperty() id: number
@JsonProperty() txHash: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractDetail extends Model<ContractDetail> {
@JsonProperty() beginTime: string
@JsonProperty() endTime: string
@JsonProperty() contractAddr: string
/**
* 查询应用统计信息
*/
static async get(payload: ContractDetailGetReq) {
return await api.get('/services/app-service/contract/detail', { data: payload })
}
}
@Serializable()
export class ContractDetailGetReq extends ContractDetail {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { api } from '@shared/http/axios'
import { Contract } from '@shared/models/app-service/Contract'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class ContractPage extends Pagination<Contract> {
@JsonProperty({ type: Contract }) data: Contract[]
/**
* 查询应用
* @param payload
*/
static async post(payload: ContractPagePostReq) {
return await api.post<HttpResponse<ContractPage>>('/services/app-service/contract/page', { data: payload })
}
}
@Serializable()
export class ContractPagePostReq extends PaginationParams<ContractPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@/shared/models/Model'
@Serializable()
export class ContractUserStat extends Model<ContractUserStat> {
/**
* 统计用户发布应用和部署应用
* @param payload
*/
static async get(payload: ContractUserStatGetReq) {
return await api.get('/services/app-service/contract/user/stat', { data: payload })
}
}
@Serializable()
export class ContractUserStatGetReq extends Model<ContractUserStatGetReq> {
@JsonProperty() isPrivate: boolean
}
import { Model } from '@shared/models/Model'
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { AppMetaData } from '@shared/models/app-service/AppMetaData'
import { Metadata } from '@shared/models/app-service/Metadata'
@Serializable()
export class ContractVersion extends Model<ContractVersion> {
//metaData
@JsonProperty() metaData: {
[key: string]: AppMetaData
[key: string]: Metadata
}
//更新日志
@JsonProperty() changeLog: string
......
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { HttpResponse } from '@shared/http/HttpResponse'
@Serializable()
export class AppMetaData extends Model<AppMetaData> {
export class Metadata extends Model<Metadata> {
//当前版本增加功能
@JsonProperty() addFunc: string
//应用类型
......@@ -37,4 +36,17 @@ export class AppMetaData extends Model<AppMetaData> {
@JsonProperty() updateTime: number
//当前版本
@JsonProperty() version: string
/*
* 根据名称和版本查询应用元数据信息
*/
static async get(payload: MetadataGetReq) {
return await api.get('/services/app-service/metadata', { data: payload })
}
}
@Serializable()
export class MetadataGetReq extends Model<MetadataGetReq> {
@JsonProperty() name: string
@JsonProperty() version: string
}
- [ ] xxx
- [x] 历史版本查询
-
- [x] 我部署的应用查询
- [x] 撤销审批中的
- [x] 离线完成部署
-
- [x] 发布应用查询
- [x] 发布应用详情
- [x] 删除草稿
- [x] 删除私有发布应用
- [x] 保存草稿
- [x] 更新应用草稿
- [x] 编辑草稿
- [x] 发布到应用市场
- [x] 撤销发布
- [x] 上架应用市场
- [x] 下架应用市场
- [x] 合约部署到链
-
- [x] 已购买应用查询
- [x] 已购买应用部署到链
-
- [x] 查询应用市场
-
- [x] 查询应用市场
- [x] 超管下架应用市场
-
- [x] 待我审批列表
- [x] 超管审批
- [x] 查询审批记录
-
- [x] 待我审批列表
- [x] 审批部署应用
- [x] 部署代理合约
- [x] 查看审批部署结果
- [x] 冻结解冻应用
- [x] 查看冻结解冻结果
- [x] 销毁应用
- [x] 查看销毁结果
- [X] 调用应用
- [x] 查询调用结果
- [x] 获取原始交易结果
- [x] 发送原始交易
- [x] 重新部署
- [x] 应用市场更新已购应用
- [x] 菜单合约详情更新
- [x] 代理合约更新
- [x] 已购买页面更新
- [x] 查询已购应用详情
-
- [x] 查询链应用列表
- [x] 查询应用详情
- [x] 查询应用统计信息
- [x] 查询调用次数图表
- [x] 合约调用列表
- [x] 统计应用数量
- [x] 统计应用数量(联盟控制台)
-
- [x] 查询应用部署配置信息
- [ ] 查询部署存证商品信息
- [x] 应用部署到链
- [x] 应用离线部署部署到链
- [x] 开始部署
- [x] 卸载部署
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
import { OrderDetail } from '@shared/models/order-service/OrderDetail'
import { OrderPayInfo } from '@shared/models/order-service/OrderPayInfo'
import { OrderExpire } from '@shared/models/order-service/OrderExpire'
import { OrderRefundResult } from '@shared/models/order-service/OrderRefundResult'
@Serializable()
export class Order extends Model<Order> {
//能否取消
@JsonProperty() canCancel: boolean
// 能修改
@JsonProperty() canModify: boolean
// 能否支付
@JsonProperty() canPay: boolean
// 是否能退款
@JsonProperty() canRefund: boolean
// 是否子订单
@JsonProperty() child: boolean
// 子订单
@JsonProperty() children: []
// 商品CODE
@JsonProperty() commodityCode: string
// 商品ID
@JsonProperty() commodityId: number
// 商品实例ID:UUID
@JsonProperty() commodityInstanceId: string
// 商品名称
@JsonProperty() commodityName: string
// 创建时间
@JsonProperty() createTime: number
// 创建用户ID
@JsonProperty() createUserId: string
// 创建用户名称
@JsonProperty() createUserName: string
//订单明细列表
@JsonProperty({ type: OrderDetail }) detailMap: OrderDetail[]
//订单商品展示信息
@JsonProperty() displayCommodity: string
//订单到期信息
@JsonProperty() expireInfo: { [key: string]: OrderExpire }
//应付金额
@JsonProperty() moneyDue: number
// 单位(CNY/USD)
@JsonProperty() moneyUnit: string
// 订单分类:CHARGE:充值,SYSTEM:系统服务,THIRD:第三方服务
@JsonProperty() orderCategory: string
// 订单ID
@JsonProperty() orderId: number
// 订单名称
@JsonProperty() orderName: string
//订单退款信息
@JsonProperty() orderRefund: { [key: string]: OrderRefundResult }
//订单服务:NEW:新增,ADD:增加(添加节点使用)
@JsonProperty() orderServiceType: string
// 订单状态:UNPAID:未支付,PARTPAID:部分支付,PAID:已支付,CANCELLED:已取消
@JsonProperty() orderState: string
// 订单类型:NEW:新购,RENEW:续费,CHANGE:变更
@JsonProperty() orderType: string
// 原应付金额
@JsonProperty() originalMoney: number
// 是否自己订单
@JsonProperty() owner: boolean
// 是否父订单
@JsonProperty() parent: boolean
// 父ID
@JsonProperty() parentId: number
//订单支付信息
@JsonProperty() payInfo: { [key: string]: OrderPayInfo }
//收款用户
@JsonProperty() payeeUser: string
//支付用户
@JsonProperty() payerUser: string
//数量,默认是1
@JsonProperty() quantity: number
//关联订单ID
@JsonProperty() relateId: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderApp extends Model<OrderApp> {
/**
* 创建应用订单
* @param payload
*/
static async post(payload: OrderAppPostReq) {
return await api.post(`/services/order-service/order/app/${payload.commodityId}`)
}
}
@Serializable()
export class OrderAppPostReq extends Model<OrderAppPostReq> {
@JsonProperty() commodityId: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderConfirm extends Model<OrderConfirm> {
/**
* 确认订单
* @param payload
*/
static async get(payload: OrderConfirmGetReq) {
return await api.get(`/services/order-service/order/confirm/${payload.id}`)
}
}
export class OrderConfirmGetReq extends Model<OrderConfirmGetReq> {
@JsonProperty() id: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderDetail extends Model<OrderDetail> {
//订单属性展示值
@JsonProperty() attributeLabel: string
// 订单属性标志
@JsonProperty() attributeMark: string
// 订单属性名称
@JsonProperty() attributeName: string
// 订单属性值
@JsonProperty() attributeValue: object
// 订单明细ID
@JsonProperty() orderDetailId: number
// 订单ID
@JsonProperty() orderId: number
// 父ID
@JsonProperty() parentId: number
/**
* 根据订单ID查询订单详细信息
* @param payload
*/
static async get(payload: OrderDetailGetReq) {
return await api.get(`/services/order-service/order/detail/${payload.id}`)
}
}
@Serializable()
export class OrderDetailGetReq extends Model<OrderDetailGetReq> {
@JsonProperty() id: number
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderExpire extends Model<OrderExpire> {
//是否自动续期
@JsonProperty() autoRenew: boolean
// 服务时长
@JsonProperty() duration: string
// 订单过期ID
@JsonProperty() expireId: number
// 到期时间
@JsonProperty() expireTime: number
// 订单ID
@JsonProperty() orderId: number
// 订单续期状态:UN_EXPIRED:未过期,EXPIRED:已过期, RENEWED:已续期
@JsonProperty() renewState: string
/**
* 修改订单服务到期
* @param payload
*/
static async put(payload: OrderExpirePutReq) {
return await api.put('/services/order-service/order/expire', { data: payload })
}
}
export class OrderExpirePutReq extends OrderExpire {
// 商品CODE
@JsonProperty() commodityCode: string
// 商品实例ID
@JsonProperty() commodityInstanceId: string
// 创建时间
@JsonProperty() createTime: number
// 创建用户ID
@JsonProperty() createUserId: string
// 创建用户名称
@JsonProperty() createUserName: string
// 逻辑删除
@JsonProperty() deleted: boolean
// 支付用户
@JsonProperty() payerUser: string
// 更新时间
@JsonProperty() updateTime: number
// 更新用户ID
@JsonProperty() updateUserId: string
// 更新用户名称
@JsonProperty() updateUserName: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { HttpResponse } from '@shared/http/HttpResponse'
import { Order } from '@shared/models/order-service/Order'
import { OrderPagePostReq } from '@shared/models/order-service/OrderPage'
@Serializable()
export class OrderExpirePage extends Pagination<Order> {
@JsonProperty({ type: Order }) data: Order[]
/**
* 分页查询订单服务到期信息
* @param payload
*/
static async post(payload: OrderExpirePagePostReq) {
return await api.post<HttpResponse<OrderExpirePage>>('/services/order-service/order/page', { data: payload })
}
}
@Serializable()
export class OrderExpirePagePostReq extends PaginationParams<OrderPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Pagination } from '@shared/models/Pagination'
import { PaginationParams } from '@shared/models/PaginationParams'
import { HttpResponse } from '@shared/http/HttpResponse'
import { Order } from '@shared/models/order-service/Order'
@Serializable()
export class OrderPage extends Pagination<Order> {
@JsonProperty({ type: Order }) data: Order[]
/**
* 分页查询订单信息
* @param payload
*/
static async post(payload: OrderPagePostReq) {
return await api.post<HttpResponse<OrderPage>>('/services/order-service/order/page', { data: payload })
}
}
@Serializable()
export class OrderPagePostReq extends PaginationParams<OrderPagePostReq> {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderPayInfo extends Model<OrderPayInfo> {
//交易金额
@JsonProperty() amount: number
//交易时间
@JsonProperty() createTime: number
//支付方式
@JsonProperty() paymentType: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderRefund extends Model<OrderRefund> {
//申请退款金额
@JsonProperty() applyMoney: number
// 申请退款原因
@JsonProperty() applyReason: string
// 申请退款时间
@JsonProperty() applyTime: number
// 退款申请人
@JsonProperty() applyUser: string
// 创建时间
@JsonProperty() createTime: number
// 创建用户ID
@JsonProperty() createUserId: string
// 创建用户名称
@JsonProperty() createUserName: string
// 逻辑删除
@JsonProperty() deleted: boolean
// 订单退款ID
@JsonProperty() id: number
// 订单ID
@JsonProperty() orderId: number
// 订单金额
@JsonProperty() orderMoney: number
// 订单商品名称
@JsonProperty() orderName: string
// 已支付金额
@JsonProperty() paidMoney: number
// 父ID
@JsonProperty() parentId: number
// 退款支付用户
@JsonProperty() payerUser: string
// 退款状态(审核中,已通过,已拒绝,已退款)
@JsonProperty() refundType: string
// 审核备注
@JsonProperty() reviewComment: string
// 审核时间
@JsonProperty() reviewTime: number
// 审核人
@JsonProperty() reviewUser: string
// 更新时间
@JsonProperty() updateTime: number
// 更新用户ID
@JsonProperty() updateUserId: string
// 更新用户名称
@JsonProperty() updateUserName: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderRefundApply extends Model<OrderRefundApply> {
//订单ID
@JsonProperty() orderId: number
//申请退款金额
@JsonProperty() applyMoney: number
//申请退款原因
@JsonProperty() applyReason: string
//退款申请人
@JsonProperty() applyUser: string
//子订单明细
@JsonProperty({ type: OrderRefundApply }) children: OrderRefundApply[]
/**
* 申请订单退款
* @param payload
*/
static async post(payload: OrderRefundApplyPostReq) {
return await api.post('/services/order-service/order/refund/apply', { data: payload })
}
}
@Serializable()
export class OrderRefundApplyPostReq extends OrderRefundApply {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { OrderRefund } from '@shared/models/order-service/OrderRefund'
@Serializable()
export class OrderRefundPass extends Model<OrderRefundPass> {
/**
* 通过订单退款申请
* @param payload
*/
static async put(payload: OrderRefundPassPutReq) {
return await api.put('/services/order-service/order/refund/pass', { data: payload })
}
}
export class OrderRefundPassPutReq extends OrderRefund {}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
import { OrderRefund } from '@shared/models/order-service/OrderRefund'
@Serializable()
export class OrderRefundReject extends Model<OrderRefundReject> {
/**
* 通过订单退款申请
* @param payload
*/
static async put(payload: OrderRefundRejectPutReq) {
return await api.put('/services/order-service/order/refund/reject', { data: payload })
}
}
export class OrderRefundRejectPutReq extends OrderRefund {}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderRefundResult extends Model<OrderRefundResult> {
//申请退款金额
@JsonProperty() applyMoney: number
// 申请退款原因
@JsonProperty() applyReason: string
// 申请退款时间
@JsonProperty() applyTime: number
// 退款申请人
@JsonProperty() applyUser: string
@JsonProperty() children: OrderRefundResult
// 订单退款ID
@JsonProperty() id: number
// 订单ID
@JsonProperty() orderId: number
// 订单金额
@JsonProperty() orderMoney: number
// 订单商品名称
@JsonProperty() orderName: string
// 已支付金额
@JsonProperty() paidMoney: number
// 父ID
@JsonProperty() parentId: number
// 退款支付用户
@JsonProperty() payerUser: string
// 退款状态(审核中,已通过,已拒绝,已退款)
@JsonProperty() refundType: string
// 审核备注
@JsonProperty() reviewComment: string
// 审核时间
@JsonProperty() reviewTime: number
// 审核人
@JsonProperty() reviewUser: string
}
import { JsonProperty, Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderState extends Model<OrderState> {
/**
* 取消订单
* @param payload
*/
static async delete(payload: OrderStateDeleteReq) {
return await api.delete(`/services/order-service/order/state/${payload.id}`, { data: payload })
}
}
export class OrderStateDeleteReq extends Model<OrderStateDeleteReq> {
@JsonProperty() id: number
}
import { Serializable } from 'typescript-json-serializer'
import { api } from '@shared/http/axios'
import { Model } from '@shared/models/Model'
@Serializable()
export class OrderStatistics extends Model<OrderStatistics> {
/**
* 统计未支付和续期的订单数量
* @param payload
*/
static async get(payload: OrderStatisticsGetReq) {
return await api.get('/services/order-service/order/statistics')
}
}
@Serializable()
export class OrderStatisticsGetReq extends Model<OrderStatisticsGetReq> {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment