Commit 4bd725f2 authored by 耿少京's avatar 耿少京

Merge branch 'withdrawal_riskControl' into 'master'

Withdrawal risk control

See merge request bp/op-web-service!22
parents 5885f7ff 64016a4d
...@@ -114,6 +114,27 @@ exports.getReblackList = async ctx => { ...@@ -114,6 +114,27 @@ exports.getReblackList = async ctx => {
} }
ctx.body = await req(ctx, opts) ctx.body = await req(ctx, opts)
} }
// 获取钱包账户余额状态
exports.getWalletAccountStatus = async ctx=>{
const url = `${WITHDRAWAL_URI}/wallet/background/get_wallet_account_status`;
const opts = {
url,
method: "GET",
qs: ctx.request.query
}
ctx.body = await req(ctx,opts)
}
// 钱包账户余额状态
exports.resetAccountStatus = async ctx=>{
const url = `${WITHDRAWAL_URI}/wallet/background/reset_wallet_account_status`;
const opts = {
url,
method:"POST",
json:true,
body:ctx.request.body
}
ctx.body = await req(ctx,opts)
}
const getUserPermission = async (ctx) => { const getUserPermission = async (ctx) => {
const url = `${WITHDRAWAL_URI}/merchant/authority/get_role_list`; const url = `${WITHDRAWAL_URI}/merchant/authority/get_role_list`;
......
...@@ -128,5 +128,7 @@ router.get(`${API_VERSION}/get_account_list`, withdrawal.getAccountList) ...@@ -128,5 +128,7 @@ router.get(`${API_VERSION}/get_account_list`, withdrawal.getAccountList)
router.get(`${API_VERSION}/get_record_list`, withdrawal.getRecordList) router.get(`${API_VERSION}/get_record_list`, withdrawal.getRecordList)
router.post(`${API_VERSION}/get_account_black_list`, withdrawal.getAccountBlackList) router.post(`${API_VERSION}/get_account_black_list`, withdrawal.getAccountBlackList)
router.post(`${API_VERSION}/get_reblack_list`, withdrawal.getReblackList) router.post(`${API_VERSION}/get_reblack_list`, withdrawal.getReblackList)
router.get(`${API_VERSION}/get_wallet_account_status`, withdrawal.getWalletAccountStatus)
router.post(`${API_VERSION}/reset_wallet_account_status`, withdrawal.resetAccountStatus)
module.exports = router; module.exports = router;
\ No newline at end of file
<template> <template>
<!-- 提现失败页 --> <!-- 提现失败页 -->
<!-- <auditTab v-if="status_text == 'fourth'"></auditTab> --> <!-- <auditTab v-if="status_text == 'fourth'"></auditTab> -->
<!-- <el-card class="goods-h5"> --> <!-- <el-card class="goods-h5"> -->
<div class="goods-h5"> <div class="goods-h5">
<el-table :data="goodsList" border max-height="700"> <el-table :data="goodsList" border max-height="700">
<el-table-column <el-table-column
label="登录地点" label="登录地点"
prop="withdraw_address" prop="withdraw_address"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="申请用户" label="风控等级"
prop="user_id" prop="risk_level_text"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="提现金额" label="申请用户"
prop="amount" prop="user_id"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="申请时间" label="提现金额"
prop="create_time" prop="amount"
align="center" align="center"
></el-table-column> ></el-table-column>
<!-- 操作快捷键 --> <el-table-column
<el-table-column label="操作" align="center"> label="申请时间"
<template v-slot:default="scope"> prop="create_time"
<el-button align="center"
type="text" ></el-table-column>
v-show="searchProps.status == '0' && isAllowedToAudit" <!-- 操作快捷键 -->
@click="handleDetail(scope.row.id)" <el-table-column label="操作" align="center">
>审核</el-button <template v-slot:default="scope">
> <el-button
</template> type="text"
</el-table-column> v-show="searchProps.status == '0' && isAllowedToAudit"
</el-table> @click="handleDetail(scope.row.id)"
>审核</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 页码区 --> <!-- 页码区 -->
<el-pagination <el-pagination
class="pagination" class="pagination"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
v-model:currentPage="searchProps.page" v-model:currentPage="searchProps.page"
:page-size="searchProps.page_size" :page-size="searchProps.page_size"
layout="total,prev, pager, next, jumper" layout="total,prev, pager, next, jumper"
:total="searchProps.count" :total="searchProps.count"
> >
</el-pagination> </el-pagination>
</div> </div>
<!-- </el-card> --> <!-- </el-card> -->
</template> </template>
<script> <script>
import { import {
...@@ -168,7 +173,7 @@ export default { ...@@ -168,7 +173,7 @@ export default {
}, },
// 提现申请审核详情 // 提现申请审核详情
async handleDetail(id) { async handleDetail(id) {
this.$router.push({ name: 'withdrawDetail', query: {id: id} }) this.$router.push({ name: "withdrawDetail", query: { id: id } });
// try { // try {
// const res = await getApplyDetail({ id }); // const res = await getApplyDetail({ id });
// const showData = res.info || {}; // const showData = res.info || {};
...@@ -307,7 +312,9 @@ export default { ...@@ -307,7 +312,9 @@ export default {
const WITHDRAWAL_PERMISSION_ID1 = 10000005; const WITHDRAWAL_PERMISSION_ID1 = 10000005;
let withdrawlPermission = this.permissions.filter( let withdrawlPermission = this.permissions.filter(
(item) => (item.id === WITHDRAWAL_PERMISSION_ID || item.id === WITHDRAWAL_PERMISSION_ID1) (item) =>
item.id === WITHDRAWAL_PERMISSION_ID ||
item.id === WITHDRAWAL_PERMISSION_ID1
); );
// 无此模块权限 // 无此模块权限
if (withdrawlPermission.length === 0) { if (withdrawlPermission.length === 0) {
...@@ -317,7 +324,8 @@ export default { ...@@ -317,7 +324,8 @@ export default {
const AUDIT_PERMSSION_ID = 14; const AUDIT_PERMSSION_ID = 14;
const AUDIT_PERMSSION_ID1 = 10000014; const AUDIT_PERMSSION_ID1 = 10000014;
const auditPermission = withdrawlPermission[0].sub_permissions.filter( const auditPermission = withdrawlPermission[0].sub_permissions.filter(
(item) => (item.id === AUDIT_PERMSSION_ID || item.id === AUDIT_PERMSSION_ID1) (item) =>
item.id === AUDIT_PERMSSION_ID || item.id === AUDIT_PERMSSION_ID1
); );
return auditPermission.length !== 0; return auditPermission.length !== 0;
...@@ -327,28 +335,27 @@ export default { ...@@ -327,28 +335,27 @@ export default {
</script> </script>
<style lang="less" src="./index.less" scope> <style lang="less" src="./index.less" scope>
.goods-h5 { .goods-h5 {
width: 90%; width: 90%;
margin: 20px auto; margin: 20px auto;
.dialog-footer { .dialog-footer {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.apply-list { .apply-list {
li { li {
width: 70%; width: 70%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
span { span {
width: 70px; width: 70px;
text-align: left; text-align: left;
} }
} }
} }
} }
.el-message-box { .el-message-box {
width: 80vw; width: 80vw;
margin: 0 auto; margin: 0 auto;
} }
</style> </style>
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
padding-right: 10px; padding-right: 10px;
} }
.list-right { .list-right {
display:inline-block; // display:inline-block;
width: 70%; width: 70%;
} }
} }
...@@ -93,11 +93,11 @@ ...@@ -93,11 +93,11 @@
} }
.apply-list { .apply-list {
li { li {
width: 70%; width: 90%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
span { span {
width: 70px; width: 150px;
text-align: left; text-align: left;
} }
} }
...@@ -108,3 +108,12 @@ ...@@ -108,3 +108,12 @@
width: 20vw; width: 20vw;
margin: 0 auto; margin: 0 auto;
} }
.shell {
float: right;
width: 550px;
margin-top: -20px;
}
.open {
float: right;
margin-bottom: 10px;
}
This diff is collapsed.
...@@ -2,13 +2,34 @@ ...@@ -2,13 +2,34 @@
<div class="goods-h5"> <div class="goods-h5">
<el-form> <el-form>
<ul class="apply-list"> <ul class="apply-list">
<li><span>登录地点:</span><span>{{ dialogData.showData.withdraw_address }}</span></li> <li>
<li> 提现用户:<span>{{ dialogData.showData.user_id }}</span></li> <span>登录地点:</span
<li> 提现金额:<span>{{ dialogData.showData.amount }}</span></li> ><span>{{ dialogData.showData.withdraw_address }}</span>
<li> 最近24小时收入:<span>{{ dialogData.showData.lately_amount }}</span></li> </li>
<li> 近两天分享增长:<span>{{ dialogData.showData.lately_share }}</span></li> <li>
<li> 近两天分享下载量:<span>{{ dialogData.showData.lately_download }}</span></li> <span>风控等级:</span
<li> 历史分享增长: <span>{{ dialogData.showData.history_share }}</span></li> ><span>{{ dialogData.showData.risk_level_text }}</span>
</li>
<li>
提现用户:<span>{{ dialogData.showData.user_id }}</span>
</li>
<li>
提现金额:<span>{{ dialogData.showData.amount }}</span>
</li>
<li>
最近24小时收入:<span>{{ dialogData.showData.lately_amount }}</span>
</li>
<li>
近两天分享增长:<span>{{ dialogData.showData.lately_share }}</span>
</li>
<li>
近两天分享下载量:<span>{{
dialogData.showData.lately_download
}}</span>
</li>
<li>
历史分享增长: <span>{{ dialogData.showData.history_share }}</span>
</li>
</ul> </ul>
<el-form-item label="奖励明细:"> <el-form-item label="奖励明细:">
<el-table <el-table
...@@ -17,61 +38,41 @@ ...@@ -17,61 +38,41 @@
align="center" align="center"
max-height="300" max-height="300"
size="small" size="small"
> >
<el-table-column <el-table-column align="center" prop="create_time" label="流水时间">
align="center"
prop="create_time"
label="流水时间"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column align="center" prop="amount" label="分享用户量">
align="center"
prop="amount"
label="分享用户量"
>
<template v-slot:default="scope"> <template v-slot:default="scope">
<span>{{ scope ? "+" + scope.row.amount : null }}</span> <span>{{ scope ? "+" + scope.row.amount : null }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column align="center" prop="third_order_desc" label="说明">
align="center"
prop="third_order_desc"
label="说明"
>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="dialog-footer"> <div class="dialog-footer">
<div v-if="!showBackBtn"> <div v-if="!showBackBtn">
<el-button
type="primary"
size="small"
@click="handleAdoptRefuse('通过')"
>通过</el-button
>
<el-button
type="danger"
size="small"
@click="handleAdoptRefuse('拒绝')"
>拒绝</el-button
>
<el-button
type="primary"
size="small"
@click="handleBlackList('黑名单')"
>黑名单</el-button
>
</div>
<el-button <el-button
type="primary"
size="small" size="small"
@click="handleAdoptRefuse('通过')"
>通过</el-button
>
<el-button type="danger" size="small" @click="handleAdoptRefuse('拒绝')"
>拒绝</el-button
>
<el-button
type="primary" type="primary"
v-else size="small"
@click="$router.go(-1)" @click="handleBlackList('黑名单')"
>返回</el-button >黑名单</el-button
> >
</div> </div>
<el-button size="small" type="primary" v-else @click="$router.go(-1)"
>返回</el-button
>
</div>
</div> </div>
</template> </template>
<script> <script>
...@@ -118,9 +119,7 @@ export default { ...@@ -118,9 +119,7 @@ export default {
const showData = res.info || {}; const showData = res.info || {};
this.dialogData = { ...this.dialogData, showData }; this.dialogData = { ...this.dialogData, showData };
}, },
async mounted() { async mounted() {},
},
methods: { methods: {
async getPermissionsAll() { async getPermissionsAll() {
// 不能够信赖 store 中的 email,无法知道全局中的 fetchCurrentUser 处理完毕 // 不能够信赖 store 中的 email,无法知道全局中的 fetchCurrentUser 处理完毕
...@@ -157,7 +156,7 @@ export default { ...@@ -157,7 +156,7 @@ export default {
}) })
.catch(async () => { .catch(async () => {
const res = await urlObj[action](params); const res = await urlObj[action](params);
if(+res.code === 0) { if (+res.code === 0) {
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功", message: "操作成功",
...@@ -167,8 +166,8 @@ export default { ...@@ -167,8 +166,8 @@ export default {
this.$message({ this.$message({
type: "error", type: "error",
message: res.reason, message: res.reason,
}); });
} }
}); });
}, },
...@@ -205,7 +204,9 @@ export default { ...@@ -205,7 +204,9 @@ export default {
const WITHDRAWAL_PERMISSION_ID1 = 10000005; const WITHDRAWAL_PERMISSION_ID1 = 10000005;
let withdrawlPermission = this.permissions.filter( let withdrawlPermission = this.permissions.filter(
(item) => (item.id === WITHDRAWAL_PERMISSION_ID || item.id === WITHDRAWAL_PERMISSION_ID1) (item) =>
item.id === WITHDRAWAL_PERMISSION_ID ||
item.id === WITHDRAWAL_PERMISSION_ID1
); );
// 无此模块权限 // 无此模块权限
if (withdrawlPermission.length === 0) { if (withdrawlPermission.length === 0) {
...@@ -215,7 +216,8 @@ export default { ...@@ -215,7 +216,8 @@ export default {
const AUDIT_PERMSSION_ID = 14; const AUDIT_PERMSSION_ID = 14;
const AUDIT_PERMSSION_ID1 = 10000014; const AUDIT_PERMSSION_ID1 = 10000014;
const auditPermission = withdrawlPermission[0].sub_permissions.filter( const auditPermission = withdrawlPermission[0].sub_permissions.filter(
(item) => (item.id === AUDIT_PERMSSION_ID || item.id === AUDIT_PERMSSION_ID1) (item) =>
item.id === AUDIT_PERMSSION_ID || item.id === AUDIT_PERMSSION_ID1
); );
return auditPermission.length !== 0; return auditPermission.length !== 0;
......
...@@ -67,4 +67,14 @@ export async function getAccountBlackList(params) { ...@@ -67,4 +67,14 @@ export async function getAccountBlackList(params) {
export async function getReblackList(params) { export async function getReblackList(params) {
const res = await axios.post("/api/v1/get_reblack_list",params) const res = await axios.post("/api/v1/get_reblack_list",params)
return res; return res;
}
// 获取钱包账户余额状态
export async function getWalletAccountStatus(params) {
const res = await axios.get("/api/v1/get_wallet_account_status",{params})
return res;
}
// 钱包账户余额状态(开启按钮)
export async function resetAccountStatus(params) {
const res = await axios.post("/api/v1/reset_wallet_account_status",params)
return res;
} }
\ No newline at end of file
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