feat: fixed bug for wechat bot to parse transactions. enable user to exchange reward with img_calls

This commit is contained in:
RockYang
2024-01-03 11:15:54 +08:00
parent ff4515bbf1
commit b5641be30d
15 changed files with 166 additions and 55 deletions

View File

@@ -13,10 +13,19 @@
</el-alert>
<el-form :model="form">
<el-form-item label="">
<el-form-item label="转账单号">
<el-input v-model="form.tx_id"/>
</el-form-item>
</el-form>
<el-form :model="form">
<el-form-item label="兑换类别">
<el-radio-group v-model="form.type">
<el-radio label="chat" border>对话聊天</el-radio>
<el-radio label="img" border>AI绘图</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<template #footer>
@@ -46,6 +55,7 @@ const showDialog = computed(() => {
const title = ref('众筹码核销')
const form = ref({
tx_id: '',
type: 'chat'
})
const emits = defineEmits(['hide']);

View File

@@ -142,7 +142,7 @@ const routes = [
path: '/admin/reward',
name: 'admin-reward',
meta: {title: '众筹管理'},
component: () => import('@/views/admin/RewardList.vue'),
component: () => import('@/views/admin/Reward.vue'),
},
{
path: '/admin/loginLog',

View File

@@ -21,6 +21,25 @@
</template>
</el-table-column>
<el-table-column label="兑换详情">
<template #default="scope">
<el-tag v-if="scope.row['exchange']['calls'] > 0">聊天{{ scope.row['exchange']['calls'] }}</el-tag>
<el-tag v-else-if="scope.row['exchange']['img_calls'] > 0" type="success">
绘图{{ scope.row['exchange']['img_calls'] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="180">
<template #default="scope">
<el-popconfirm title="确定要删除当前记录吗?" @confirm="remove(scope.row)">
<template #reference>
<el-button size="small" type="danger">删除</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
</el-row>
@@ -31,7 +50,7 @@
import {ref} from "vue";
import {httpGet} from "@/utils/http";
import {ElMessage} from "element-plus";
import {dateFormat} from "@/utils/libs";
import {dateFormat, removeArrayItem} from "@/utils/libs";
//
const items = ref([])
@@ -52,6 +71,16 @@ httpGet('/api/admin/reward/list').then((res) => {
ElMessage.error("获取数据失败");
})
const remove = function (row) {
httpGet('/api/admin/reward/remove?id=' + row.id).then(() => {
ElMessage.success("删除成功!")
items.value = removeArrayItem(items.value, row, (v1, v2) => {
return v1.id === v2.id
})
}).catch((e) => {
ElMessage.error("删除失败:" + e.message)
})
}
</script>
<style lang="stylus" scoped>

View File

@@ -71,6 +71,15 @@
</el-tooltip>
</el-form-item>
<div v-if="system['enabled_reward']">
<el-form-item label="单次对话价格" prop="chat_call_price">
<el-input v-model="system['chat_call_price']" placeholder="众筹金额跟对话次数的兑换比例"/>
</el-form-item>
<el-form-item label="单次绘图价格" prop="img_call_price">
<el-input v-model="system['img_call_price']" placeholder="众筹金额跟绘图次数的兑换比例"/>
</el-form-item>
</div>
<el-form-item label="收款二维码" prop="reward_img">
<el-input v-model="system['reward_img']" placeholder="众筹收款二维码地址">
<template #append>
@@ -312,6 +321,8 @@ const save = function (key) {
if (key === 'system') {
systemFormRef.value.validate((valid) => {
if (valid) {
system.value['img_call_price'] = parseFloat(system.value['img_call_price']) ?? 0
system.value['chat_call_price'] = parseFloat(system.value['chat_call_price']) ?? 0
httpPost('/api/admin/config/update', {key: key, config: system.value}).then(() => {
ElMessage.success("操作成功!")
}).catch(e => {