单服黑名单,充值排行

master
czx 2023-08-23 17:25:44 +08:00
parent 28d14b3c70
commit 80e7cf5c02
3 changed files with 329 additions and 184 deletions

View File

@ -183,6 +183,14 @@ export function getUserInfo(data) {
})
}
export function getUserRegisterInfo(data) {
return request({
url: '/system/game/playerregisterinfo',
method: 'post',
data
})
}
export function getAccountInfo(data) {
return request({
url: '/system/game/accountinfo',
@ -481,6 +489,14 @@ export function getPayList(data) {
})
}
export function getPayRank(data) {
return request({
url: '/system/game/getrechargerank',
method: 'post',
data
})
}
export function getChatInfoList(data) {
return request({
url: '/system/game/getchatinfolist',

View File

@ -1,134 +1,177 @@
<!-- 该页面只提供查询 -->
<template>
<div class="app-container">
<div class="search-form" style="margin-bottom:15px">
<span>用户id</span>
<el-input v-model="searchForm.uid" size="small" clearable placeholder="请输入用户id" style="width:150px;" />
<span style="margin-left: 20px">服务器</span>
<el-select v-model="searchForm.serverid" style="width:150px" size="small" clearable filterable placeholder="请选择服务器" @change="selectServer">
<el-option
v-for="item in serverMaps"
:key="item.serverid"
:label="item.name"
:value="item.serverid"
/>
</el-select>
<span style="margin-left: 20px">订单号</span>
<el-input v-model="searchForm.orderId" size="small" clearable placeholder="请输入订单号" style="width:260px;" />
<span style="margin-left: 20px">创建时间</span>
<el-date-picker v-model="searchForm.searchData" type="datetimerange" align="right" value-format="yyyy-MM-dd HH:mm:ss" unlink-panels range-separator="" start-placeholder="" end-placeholder="" :default-time="['00:00:00', '23:59:59']" />
<br>
<span>支付项</span>
<el-input v-model="searchForm.payItem" size="small" clearable placeholder="支付项" style="width:100px;" />
<span style="margin-left: 20px">状态</span>
<el-select v-model="searchForm.payStatus" size="small" clearable filterable placeholder="请选择状态" style="width:140px;">
<el-option label="成功" value="1" />
<el-option label="全部" value="0" />
</el-select>
<el-button
type="primary"
size="small"
@click="() => fetchData1()"
>
查询
</el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
</div>
<div class="div-table">
<el-table
id="out-table"
:data="list"
element-loading-text="Loading"
border
:summary-method="sumMoney"
show-summary
fit
highlight-current-row
:default-sort="{prop: 'creattime', order: 'descending'}"
style="width: 100%"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="序号" width="50" fixed="left">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="角色id" width="90" prop="uid">
<template slot-scope="scope">
<span>{{ scope.row.uid }}</span>
</template>
</el-table-column>
<el-table-column label="区服" width="70">
<template slot-scope="scope">
<span>{{ scope.row.region }}</span>
</template>
</el-table-column>
<el-table-column label="充值状态" width="80">
<template slot-scope="scope">
<span>{{ scope.row.status == 1 ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="到账状态" width="80">
<template slot-scope="scope">
<span>{{ scope.row.handlestatus == 1 ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="支付项" width="70">
<template slot-scope="scope">
<span>{{ scope.row.payItem }}</span>
</template>
</el-table-column>
<el-table-column label="订单号" width="250">
<template slot-scope="scope">
<span>{{ scope.row.billno }}</span>
</template>
</el-table-column>
<el-table-column label="金额" prop="money" width="80">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="cporderId" width="250">
<template slot-scope="scope">
<span>{{ scope.row.cporderId }}</span>
</template>
</el-table-column>
<el-table-column label="等级" width="80">
<template slot-scope="scope">
<span>{{ scope.row.level }}</span>
</template>
</el-table-column>
<el-table-column label="vip等级" width="80">
<template slot-scope="scope">
<span>{{ scope.row.vipLevel }}</span>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="creattime" width="160">
<template slot-scope="scope">
<span>{{ scope.row.creattime }}</span>
</template>
</el-table-column>
<el-table-column label="回调时间" width="160">
<template slot-scope="scope">
<span>{{ scope.row.callbaktime }}</span>
</template>
</el-table-column>
<el-table-column label="到账时间" width="160">
<template slot-scope="scope">
<span>{{ scope.row.handletime }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div>
<pagination :pagination="pagination" />
</div>
<el-tabs v-model="activeName" type="card" >
<el-tab-pane label="充值流水" name="first">
<div class="search-form" style="margin-bottom:15px">
<span>用户id</span>
<el-input v-model="searchForm.uid" size="small" clearable placeholder="请输入用户id" style="width:150px;" />
<span style="margin-left: 20px">服务器</span>
<el-select v-model="searchForm.serverid" style="width:150px" size="small" clearable filterable placeholder="请选择服务器" @change="selectServer">
<el-option
v-for="item in serverMaps"
:key="item.serverid"
:label="item.name"
:value="item.serverid"
/>
</el-select>
<span style="margin-left: 20px">订单号</span>
<el-input v-model="searchForm.orderId" size="small" clearable placeholder="请输入订单号" style="width:260px;" />
<span style="margin-left: 20px">创建时间</span>
<el-date-picker v-model="searchForm.searchData" type="datetimerange" align="right" value-format="yyyy-MM-dd HH:mm:ss" unlink-panels range-separator="" start-placeholder="" end-placeholder="" :default-time="['00:00:00', '23:59:59']" />
<br>
<span>支付项</span>
<el-input v-model="searchForm.payItem" size="small" clearable placeholder="支付项" style="width:100px;" />
<span style="margin-left: 20px">状态</span>
<el-select v-model="searchForm.payStatus" size="small" clearable filterable placeholder="请选择状态" style="width:140px;">
<el-option label="成功" value="1" />
<el-option label="全部" value="0" />
</el-select>
<el-button
type="primary"
size="small"
@click="() => fetchData1()"
>
查询
</el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
</div>
<div class="div-table">
<el-table
id="out-table"
:data="list"
element-loading-text="Loading"
border
:summary-method="sumMoney"
show-summary
fit
highlight-current-row
:default-sort="{prop: 'creattime', order: 'descending'}"
style="width: 100%"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="序号" width="50" fixed="left">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="角色id" width="90" prop="uid">
<template slot-scope="scope">
<span>{{ scope.row.uid }}</span>
</template>
</el-table-column>
<el-table-column label="区服" width="70">
<template slot-scope="scope">
<span>{{ scope.row.region }}</span>
</template>
</el-table-column>
<el-table-column label="充值状态" width="80">
<template slot-scope="scope">
<span>{{ scope.row.status == 1 ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="到账状态" width="80">
<template slot-scope="scope">
<span>{{ scope.row.handlestatus == 1 ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="支付项" width="70">
<template slot-scope="scope">
<span>{{ scope.row.payItem }}</span>
</template>
</el-table-column>
<el-table-column label="订单号" width="250">
<template slot-scope="scope">
<span>{{ scope.row.billno }}</span>
</template>
</el-table-column>
<el-table-column label="金额" prop="money" width="80">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="cporderId" width="250">
<template slot-scope="scope">
<span>{{ scope.row.cporderId }}</span>
</template>
</el-table-column>
<el-table-column label="等级" width="80">
<template slot-scope="scope">
<span>{{ scope.row.level }}</span>
</template>
</el-table-column>
<el-table-column label="vip等级" width="80">
<template slot-scope="scope">
<span>{{ scope.row.vipLevel }}</span>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="creattime" width="160">
<template slot-scope="scope">
<span>{{ scope.row.creattime }}</span>
</template>
</el-table-column>
<el-table-column label="回调时间" width="160">
<template slot-scope="scope">
<span>{{ scope.row.callbaktime }}</span>
</template>
</el-table-column>
<el-table-column label="到账时间" width="160">
<template slot-scope="scope">
<span>{{ scope.row.handletime }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div>
<pagination :pagination="pagination" />
</div>
</el-tab-pane>
<el-tab-pane label="充值排行" name="second">
<div class="search-form" style="margin-bottom:15px;">
<span>服务器</span>
<el-select v-model="searchForm1.serverid" size="small" clearable filterable placeholder="请选择服务器" @change="selectServer">
<el-option
v-for="item in serverMaps"
:key="item.serverid"
:label="item.name"
:value="item.serverid"
/>
</el-select>
<span>时间范围</span>
<el-date-picker
v-model="timeScope"
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
size="small"
value-format="yyyy-MM-dd HH:mm:ss"
align="right">
</el-date-picker>
<el-button type="primary" size="small" @click="() => queryRank()">查询</el-button>
</div>
<div class="div-table">
<el-table :data="list1" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column label="排名" width="50">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="openId">
<template slot-scope="scope">{{ scope.row.id }}</template>
</el-table-column>
<el-table-column label="充值金额">
<template slot-scope="scope">{{ scope.row.totalMoney }}</template>
</el-table-column>
</el-table>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getPayList, getServer } from '@/api/systemapi/game'
import {getPayList, getPayRank, getServer} from '@/api/systemapi/game'
import { pageParams } from '@/settings'
import Pagination from '@/components/Pagination/index'
// Excel
@ -145,10 +188,40 @@ export default {
},
data() {
return {
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
timeScope: '',
activeName: 'first',
serverMaps: null,
editNotavailable: false,
treeData: null,
list: null,
list1: null,
listLoading: true,
searchForm: {
searchData: '',
@ -160,6 +233,7 @@ export default {
rows: '10',
page: '1'
},
searchForm1: {},
dialogFormVisible: false, //
formLabelWidth: '100px',
//
@ -187,6 +261,20 @@ export default {
selectServer() {
this.fetchData()
},
queryRank() {
this.searchForm1.startTime = this.timeScope[0]
this.searchForm1.endTime = this.timeScope[1]
getPayRank({ ...this.searchForm1 }).then(response => {
if (response.code === 0) {
this.list1 = response.data.rows
} else {
this.$message({
message: response.msg,
type: 'error'
})
}
})
},
//
fetchData() {
this.listLoading = true

View File

@ -1,68 +1,101 @@
<template>
<div class="app-container">
<div class="search-form" style="margin-bottom:15px;">
<span>服务器</span>
<el-select v-model="searchForm.serverid" size="small" clearable filterable placeholder="请选择服务器" @change="selectServer">
<el-option
v-for="item in serverMaps"
:key="item.serverid"
:label="item.name"
:value="item.serverid"
/>
</el-select>
<el-input
v-model="searchForm.uid"
size="small"
clearable
placeholder="nickName"
style="width:200px;"
/>
<el-input
v-model="searchForm.sdkuid"
size="small"
clearable
placeholder="userId"
style="width:200px;"
/>
<el-input
v-model="searchForm.openid"
size="small"
clearable
placeholder="openId"
style="width:200px;"
/>
<el-button type="primary" size="small" @click="() => fetchData()">查询</el-button>
</div>
<div class="div-table">
<el-table :data="list" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column label="序号" width="50">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="userId">
<template slot-scope="scope">{{ scope.row.id }}</template>
</el-table-column>
<el-table-column label="openId">
<template slot-scope="scope">{{ scope.row.openId }}</template>
</el-table-column>
<el-table-column label="昵称">
<template slot-scope="scope">{{ scope.row.nickName }}</template>
</el-table-column>
<el-table-column label="等级">
<template slot-scope="scope">{{ scope.row.level }}</template>
</el-table-column>
<el-table-column label="注册时间">
<template slot-scope="scope">{{ scope.row.createTime }}</template>
</el-table-column>
<el-table-column label="登录时间">
<template slot-scope="scope">{{ scope.row.loginTime }}</template>
</el-table-column>
</el-table>
</div>
<el-tabs v-model="activeName" type="card" >
<el-tab-pane label="玩家信息" name="first">
<div class="search-form" style="margin-bottom:15px;">
<span>服务器</span>
<el-select v-model="searchForm.serverid" size="small" clearable filterable placeholder="请选择服务器" @change="selectServer">
<el-option
v-for="item in serverMaps"
:key="item.serverid"
:label="item.name"
:value="item.serverid"
/>
</el-select>
<el-input
v-model="searchForm.uid"
size="small"
clearable
placeholder="nickName"
style="width:200px;"
/>
<el-input
v-model="searchForm.sdkuid"
size="small"
clearable
placeholder="userId"
style="width:200px;"
/>
<el-input
v-model="searchForm.openid"
size="small"
clearable
placeholder="openId"
style="width:200px;"
/>
<el-button type="primary" size="small" @click="() => fetchData()">查询</el-button>
</div>
<div class="div-table">
<el-table :data="list" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column label="序号" width="50">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="userId">
<template slot-scope="scope">{{ scope.row.id }}</template>
</el-table-column>
<el-table-column label="openId">
<template slot-scope="scope">{{ scope.row.openId }}</template>
</el-table-column>
<el-table-column label="昵称">
<template slot-scope="scope">{{ scope.row.nickName }}</template>
</el-table-column>
<el-table-column label="等级">
<template slot-scope="scope">{{ scope.row.level }}</template>
</el-table-column>
<el-table-column label="注册时间">
<template slot-scope="scope">{{ scope.row.createTime }}</template>
</el-table-column>
<el-table-column label="登录时间">
<template slot-scope="scope">{{ scope.row.loginTime }}</template>
</el-table-column>
</el-table>
</div>
</el-tab-pane>
<el-tab-pane label="渠道账号查询" name="second">
<el-form ref="form" :model="searchForm1" label-width="80px" :inline="true">
<el-form-item label="openId">
<el-input
v-model="searchForm1.openid"
clearable
placeholder="openId"
style="width:200px;"
label="openId"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="() => fetchData1()">查询</el-button>
</el-form-item>
</el-form>
<div class="div-table">
<el-table :data="list1" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column label="序号" width="50">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="渠道账号">
<template slot-scope="scope">{{ scope.row.id }}</template>
</el-table-column>
<el-table-column label="openId">
<template slot-scope="scope">{{ scope.row.openId }}</template>
</el-table-column>
</el-table>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getServer, getUserInfo } from '@/api/systemapi/game'
import { getServer, getUserInfo, getUserRegisterInfo } from '@/api/systemapi/game'
import { getMenuTree } from '@/api/systemapi/menu'
import { translateDataToTree } from '@/utils'
@ -92,9 +125,11 @@ export default {
},
data() {
return {
activeName: 'first',
serverMaps: null,
treeData: null,
list: null,
list1: null,
option: null,
pickerOptions: null,
listLoading: true,
@ -112,7 +147,8 @@ export default {
nickName: '',
openid: '',
username: ''
}
},
searchForm1: {}
}
},
created() {
@ -130,6 +166,11 @@ export default {
this.listLoading = false
})
},
fetchData1() {
getUserRegisterInfo({ ...this.searchForm1 }).then((response) => {
this.list1 = response.data.rows
})
},
fetchTreeData() {
this.listLoading = true
getMenuTree().then((response) => {