增加留言管理 和微信用户管理

main
yanzai 4 days ago
parent 462cac7075
commit 952cb07c51

@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers\API\Admin\YeWu;
use Illuminate\Support\Facades\DB;
class WeixinUserController
{
public function GetList(){
$page = request('page', 1);
$pageSize = request('pageSize', 15);
$searchInfo = request('searchInfo', []);
$list = DB::table('weixin_user')
->select('openid', 'status', 'created_at')
->orderBy('created_at', 'desc');
// 搜索功能
if (!empty($searchInfo['info'])) {
$list->where('openid', 'like', '%' . $searchInfo['info'] . '%');
}
$count = $list->count();
$list = $list
->offset(($page - 1) * $pageSize)
->limit($pageSize)
->get();
return \Yz::Return(true, '获取成功', ['list' => $list, 'count' => $count]);
}
public function UpdateStatus(){
$openid = request('openid');
$status = request('status');
if (empty($openid) || $status === null) {
return \Yz::echoError1('参数不完整');
}
$result = DB::table('weixin_user')
->where('openid', $openid)
->update(['status' => $status]);
if ($result) {
return \Yz::Return(true, '修改成功');
} else {
return \Yz::echoError1('修改失败');
}
}
}

@ -24,4 +24,26 @@ class LiuYanController
public function Mp_InsertInfo(){
return \Yz::Return(true,'填写成功');
}
public function GetList(){
$page = request('page', 1);
$pageSize = request('pageSize', 10);
$start = ($page - 1) * $pageSize;
$list = DB::table('liu_yan')
->select('openid', 'content', 'created_at')
->orderBy('created_at', 'desc')
->offset($start)
->limit($pageSize)
->get();
$count = DB::table('liu_yan')->count();
return \Yz::Return(true, '查询成功', [
'list' => $list,
'count' => $count,
'page' => $page,
'pageSize' => $pageSize
]);
}
}

@ -17,15 +17,22 @@ class LoginController
if ($response->successful()) {
$data = $response->json(); // 获取响应的 JSON 数据
// var_dump($data);
$h5url="";
$h5url=null;
if (isset($data['openid'])) {
$openid = $data['openid'];
$member = DB::table('members')->where('openid', $openid)->first();
if(!!$member){
$h5url="https://www.baidu.com";
$user = DB::table('weixin_user')->where(['openid'=>$openid])->first();
if(!$user){
$insert=DB::table('weixin_user')->insert([
'openid'=>$openid,
'status'=>0,
]);
}else{
if($user->status==1){
$h5url="https://www.baidu.com";
}
}
return \Yz::Return(true, '获取openid成功', ['openid' => $openid, 'member' => $member,'url'=>$h5url]);
return \Yz::Return(true, '获取openid成功', ['openid' => $openid, 'member' => $user,'url'=>$h5url]);
} else {
return \Yz::echoError1('获取openid失败');
}

@ -61,6 +61,9 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () {
Route::post('admin/LoanVerify','App\Http\Controllers\API\Admin\YeWu\LoanController@Verify'); //借款列表
Route::post('admin/GetCutDay','App\Http\Controllers\API\Admin\YeWu\DayCutController@GetCutDay'); //获取日切日期
Route::post('admin/SetCutDay','App\Http\Controllers\API\Admin\YeWu\DayCutController@SetCutDay'); //日切操作
Route::post('admin/LiuYanGetList','App\Http\Controllers\API\LiuYanController@GetList'); //留言列表
Route::post('admin/WeixinUserGetList','App\Http\Controllers\API\Admin\YeWu\WeixinUserController@GetList'); //微信用户列表
Route::post('admin/WeixinUserUpdateStatus','App\Http\Controllers\API\Admin\YeWu\WeixinUserController@UpdateStatus'); //更新微信用户状态
});

@ -142,5 +142,17 @@ export const GetCutDay = (data={}) => {
export const SetCutDay = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SetCutDay',data:data})
}
//获取留言列表
export const GetLiuYanList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/LiuYanGetList',data:data})
}
//获取微信用户列表
export const GetWeixinUserList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/WeixinUserGetList',data:data})
}
//更新微信用户状态
export const WeixinUserUpdateStatus = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/WeixinUserUpdateStatus',data:data})
}

@ -114,21 +114,38 @@ const router = createRouter({
title: '提现审核'
}
},{
path: '/yewu/loanVerify',
name: 'YeWuLoanVerify',
component: () => import('../views/YeWu/LoanVerify.vue'),
meta: {
title: '借款审核'
}
},{
path: '/yewu/loanVerify',
name: 'YeWuLoanVerify',
component: () => import('../views/YeWu/LoanVerify.vue'),
meta: {
title: '借款审核'
}
},{
path: '/yewu/liuYanList',
name: 'YeWuLiuYanList',
component: () => import('../views/YeWu/LiuYan/List.vue'),
meta: {
title: '留言查询'
}
},
{
path: '/systemMngr/dayCut',
name: 'SystemMngrDayCut',
component: () => import('../views/SystemMngr/DayCut.vue'),
meta: {
title: '日切'
}
}]
},
},
{
path: '/yewu/weixinUserList',
name: 'YeWuWeixinUserList',
component: () => import('../views/YeWu/WeixinUser/List.vue'),
meta: {
title: '微信用户管理'
}
}
]
}
]
})

@ -0,0 +1,70 @@
<template>
<div>
<el-row style="margin: 10px auto;">
<el-button type="primary" @click="refresh"></el-button>
</el-row>
<el-table :data="tableData" style="width: 100%;">
<el-table-column prop="openid" label="用户ID" width="200" />
<el-table-column prop="content" label="留言内容" min-width="300" />
<el-table-column prop="created_at" label="留言时间" width="200" />
</el-table>
<div class="page">
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize"
:page-sizes="[15, 50, 100, 200]" layout="total,sizes, prev, pager, next" :total="total"
@size-change="PageSizeChange" @current-change="PageCurrentChange" />
</div>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
import { GetLiuYanList } from '@/api/api.js'
let tableData = ref([])
let currentPage = ref(1) //
let pageSize = ref(15) //
let total = 0 //
const GetList = () => {
GetLiuYanList({
page: currentPage.value,
pageSize: pageSize.value
}).then(res => {
if (res.status) {
tableData.value = res.data.list
total = res.data.count
} else {
ElMessage.error(res.msg)
}
})
}
const PageSizeChange = (e) => { //
pageSize.value = e
GetList()
}
const PageCurrentChange = (e) => { //
currentPage.value = e
GetList()
}
const refresh = () => {
GetList()
ElMessage.success('刷新成功')
}
onMounted(() => {
GetList()
})
</script>
<style scoped>
.page {
display: flex;
justify-content: flex-end;
margin-top: 10px;
}
</style>

@ -0,0 +1,122 @@
<template>
<div>
<!-- 搜索区域 -->
<el-row style="margin: 10px auto;">
<el-input
v-model="searchInfo.info"
placeholder="搜索用户ID"
clearable
@keyup.enter="GetList"
style="width: 300px; margin-right: 10px;"
/>
<el-button type="primary" @click="GetList"></el-button>
<el-button type="success" @click="refresh"></el-button>
</el-row>
<!-- 表格区域 -->
<el-table :data="tableData" style="width: 100%;">
<el-table-column prop="openid" label="用户ID" />
<el-table-column prop="status" label="状态" >
<template #default="scope">
<el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">
{{ scope.row.status === 1 ? '可用' : '不可用' }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="created_at" label="创建时间" />
<el-table-column label="操作" >
<template #default="scope">
<el-switch
v-model="scope.row.status"
:active-value="1"
:inactive-value="0"
@change="handleStatusChange(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 分页区域 -->
<div class="page">
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize"
:page-sizes="[15, 50, 100, 200]" layout="total,sizes, prev, pager, next" :total="total"
@size-change="PageSizeChange" @current-change="PageCurrentChange" />
</div>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
import { GetWeixinUserList, WeixinUserUpdateStatus } from '@/api/api.js'
let tableData = ref([])
let currentPage = ref(1) //
let pageSize = ref(15) //
let total = 0 //
let searchInfo = ref({ info: '' }) //
const GetList = () => {
GetWeixinUserList({
page: currentPage.value,
pageSize: pageSize.value,
searchInfo: searchInfo.value
}).then(res => {
if (res.status) {
tableData.value = res.data.list
total = res.data.count
} else {
ElMessage.error(res.msg)
}
})
}
const PageSizeChange = (e) => { //
pageSize.value = e
GetList()
}
const PageCurrentChange = (e) => { //
currentPage.value = e
GetList()
}
const refresh = () => {
searchInfo.value = { info: '' }
currentPage.value = 1
GetList()
ElMessage.success('刷新成功')
}
const handleStatusChange = (row) => {
const newStatus = Number(row.status)
WeixinUserUpdateStatus({
openid: row.openid,
status: newStatus
}).then(res => {
if (res.status) {
ElMessage.success('状态更新成功')
} else {
//
row.status = newStatus === 1 ? 0 : 1
ElMessage.error(res.msg)
}
}).catch(() => {
//
row.status = newStatus === 1 ? 0 : 1
ElMessage.error('操作失败')
})
}
onMounted(() => {
GetList()
})
</script>
<style scoped>
.page {
display: flex;
justify-content: flex-end;
margin-top: 10px;
}
</style>
Loading…
Cancel
Save