ywtc_api/application/member/admin/Index.php

600 lines
25 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* Created by coder loomis.li
* User: coder loomi
* Date: 2022/09/06 15:02
*/
namespace app\member\admin;
use think\Db;
use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use app\member\model\Member as MemberModel;
use app\member\model\MemberBalanceLogs as MemberBalanceLogsModel;
use app\member\model\BalanceWithdraw as BalanceWithdrawModel;
use app\member\model\MemberFeedback as MemberFeedbackModel;
use app\member\model\MemberMessages as MemberMessagesModel;
use app\member\model\MemberServiceOrder as MemberServiceOrderModel;
/**
* 控制器
* @package app\advert\admin
*/
class Index extends Admin
{
/**
* 列表
* @author loomis <2477365162@qq.com>
* @return mixed
*/
public function index(){
//$this->error('功能开发中',url('shop/index/index'));
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('is_vip desc');
//数据
$data_list = MemberModel::where($map)->order($order)->paginate();
foreach ($data_list as $k=>$v){
if(empty($v['lastlogin_time'])){
$data_list[$k]['lastlogin_time'] = '暂未登录';
}else{
$data_list[$k]['lastlogin_time'] = date('Y-m-d H:i',$v['lastlogin_time']);
}
$data_list[$k]['invitation_uid'] = !empty($v['invitation_uid'])?MemberModel::where('id',$v['invitation_uid'])->value('nickname'):'暂无';
}
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['text', 'nickname', '昵称', 'like'],
['text', 'realphone', '电话', 'like'],
['daterange','create_time','注册时间','between'],
])
->setPageTitle('列表') // 设置页面标题
->setTableName('member')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['is_delete','禁用','switch','',[1=>'是',0=>'否']],
['vip_title', '用户角色','text'],
['invitation_uid', '邀请用户','text'],
['headimg', '头像','picture'],
['nickname', '昵称','text'],
['balance', '用户积分','text'],
['realname', '真实姓名','text'],
['realphone', '联系电话','text'],
['wxskqrcode', '微信收款码','picture'],
['create_time', '注册时间','datetime'],
//['right_button', '操作', 'btn']
])
//->addTopButton('release',['class'=>'btn btn-primary','icon' => 'fa fa-plus-circle','title'=>'添加', 'href' => url('add')])
//->addRightButton('edit',['title'=>'編輯','icon'=>'fa fa-pencil','href'=>url('edit',['id' => '__id__'])])
//->addRightButton('delete') // 添加右侧按钮
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
/* ->setTabNav([
'tab1' => ['title' => '列表', 'url' => url('member/index/index', ['group' => 'tab1'])],
'tab2' => ['title' => '添加', 'url' => url('member/index/add', ['group' => 'tab2'])],
], 'tab1')*/
->fetch(); // 渲染模板
}
//删除
public function delete($ids = ''){
$post = $this->request->post();
$result = MemberModel::where('id',$ids)->update(['is_delete'=>1,'delete_time'=>time()]);
if($result){
$this->success('删除成功', url('index'));
}else{
$this->error('删除失败');
}
}
//余额记录
public function balancelogs(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
//数据
$data_list = MemberBalanceLogsModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
}
}
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['daterange','create_time','时间','between'],
])
->setPageTitle('列表') // 设置页面标题
->setTableName('member')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['category', '类型','text','',[1=>'增加',2=>'减少']],
['mark', '备注','text'],
['value', '积分','text'],
['create_time', '时间','datetime'],
])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
//用户余额提现
public function balancewithdraw(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('status asc,create_time desc');
//数据
$data_list = BalanceWithdrawModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
$data_list[$key]['wxskqrcode'] = $uinfo['wxskqrcode'];
}
}
// 分页数据
$page = $data_list->render();
//提现积分
$alljf = BalanceWithdrawModel::sum('integral_num');
//提现金额
$allje = BalanceWithdrawModel::sum('price');
$alljf1 = BalanceWithdrawModel::where('status',2)->sum('integral_num');
//提现金额
$allje2 = BalanceWithdrawModel::where('status',2)->sum('price');
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['select', 'status', '状态', 'eq', '', [1=>'待审核', 2=>'审核通过', 3=>'拒绝提现']],
['daterange','create_time','申请时间','between'],
])
->setPageTitle('申请列表') // 设置页面标题
->setPageTips("总提现积分:$alljf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;兑换金额:$allje</br>
已同意提现积分:$alljf1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已同意兑换金额:$allje2")
->setTableName('member')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['integral_num', '提现积分','text',],
['price', '兑换金额','text',],
['status', '状态','text','',[1=>'待审核', 2=>'审核通过', 3=>'拒绝提现']],
['create_time', '申请时间','datetime'],
['wxskqrcode', '微信收款码','picture'],
['right_button', '操作', 'btn']
])
->addRightButton('edit',['title'=>'审核','icon'=>'fa fa-fw fa-pencil-square-o','href'=>url('operatebalancewithdraw',['id' => '__id__'])],['area' => ['600px', '40%']])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
public function operatebalancewithdraw($id=null){
if ($id === null) return $this->error('缺少参数');
$info = BalanceWithdrawModel::where('id',$id)->find();
if($info['status']!=1){
$this->error('此次提现申请已经处理,不能重复处理');
}
if($this->request->isPost()){
$data = $this->request->post();
if(!isset($data['status'])){
$this->error('请选择状态');
}
$result = BalanceWithdrawModel::update($data);
if($result){
if($data['status']==3){//拒绝提现,返还提现积分
$binfo = BalanceWithdrawModel::where('id',$data['id'])->find();
$memberinfo = MemberModel::where('id',$binfo['uid'])->find();
$memberinfo->balance = $memberinfo['balance'] + $binfo['integral_num'];
$memberinfo->save();
//插入余额记录
MemberBalanceLogsModel::addGetLog($binfo['uid'],1,$binfo['integral_num'],'','提现申请驳回');
}
$this->success('操作成功',url('balancewithdraw'),'_parent_reload');
}else{
$this->error('操作失败');
}
} else {
return ZBuilder::make('form')
->addFormItems([//批量添加表单项
['hidden', 'id'],
['radio', 'status', '状态', '', [2=>'审核通过', 3=>'拒绝提现'],'2'],
])
->setFormData($info)
->fetch();
}
}
//用户反馈
public function feedback(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
//数据
$data_list = MemberFeedbackModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$is_vip = '普通会员';
switch ($uinfo['is_vip']) {
case 1:
$is_vip = '铜牌会员';
break;
case 2:
$is_vip = '银牌会员';
break;
case 3:
$is_vip = '金牌会员';
break;
}
$data_list[$key]['nickname'] = $uinfo['nickname'].''.$is_vip.'';
}
}
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['daterange','create_time','时间','between'],
])
->setPageTitle('列表') // 设置页面标题
->setTableName('member')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['phone', '联系电话','text'],
['message', '反馈内容','text'],
['create_time', '时间','datetime'],
['right_button', '操作', 'btn']
])
->addRightButton('delete', ['title' => '删除', 'icon' => 'fa fa-remove', 'href' => url('deletefeedback', ['id' => '__id__'])])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
public function deletefeedback($id = ''){
$post = $this->request->post();
$result = MemberFeedbackModel::where('id',$id)->delete();
if($result){
$this->success('删除成功', url('feedback'));
}else{
$this->error('删除失败');
}
}
//留言板
public function levemessages(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
//数据
$data_list = MemberMessagesModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
}
}
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['daterange','create_time','时间','between'],
])
->setPageTitle('留言板列表') // 设置页面标题
->setTableName('member_messages')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['status','审核','switch','',[1=>'是',0=>'否']],
['nickname', '所属用户','text'],
['message', '消息内容','text'],
['create_time', '时间','datetime'],
['right_button', '操作', 'btn']
])
->addRightButton('edit',['title'=>'查看留言图片','icon'=>'fa fa-fw fa-image','href'=>url('patrolshopimg',['id' => '__id__'])],['area' => ['1000px', '70%']])
->addRightButton('delete', ['title' => '删除', 'icon' => 'fa fa-remove', 'href' => url('deletemessages', ['id' => '__id__'])])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
public function patrolshopimg($id=null){
if ($id === null) return $this->error('缺少参数', url('index'),'_parent_reload');
$info = MemberMessagesModel::where('id',$id)->find();
$imglist = explode(',',$info['thumbs']);
$imglistarr = [];
if(!empty($imglist)){
foreach ($imglist as $k=>$v){
$imglistarr[$k]['thumb'] = $v;
}
}
return ZBuilder::make('table')
->addColumns([ // 批量添加列
['thumb', '留言图片','picture'],
])
->setRowList($imglistarr) // 设置表格数据
->fetch(); // 渲染模板
}
//用户消息
public function messages(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
//数据
$data_list = MemberMessagesModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$is_vip = '普通会员';
switch ($uinfo['is_vip']) {
case 1:
$is_vip = '铜牌会员';
break;
case 2:
$is_vip = '银牌会员';
break;
case 3:
$is_vip = '金牌会员';
break;
}
$data_list[$key]['nickname'] = $uinfo['nickname'].''.$is_vip.'';
}
}
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['daterange','create_time','时间','between'],
])
->setPageTitle('列表') // 设置页面标题
->setTableName('member')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['message', '消息内容','text'],
['create_time', '时间','datetime'],
['right_button', '操作', 'btn']
])
->addRightButton('delete', ['title' => '删除', 'icon' => 'fa fa-remove', 'href' => url('deletemessages', ['id' => '__id__'])])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
public function deletemessages($id = ''){
$post = $this->request->post();
$result = MemberMessagesModel::where('id',$id)->delete();
if($result){
$this->success('删除成功', url('messages'));
}else{
$this->error('删除失败');
}
}
//订单列表
public function memberorder(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
$map[] = ['type','eq',1];
//数据
$data_list = MemberServiceOrderModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
}
}
// 分页数据
$page = $data_list->render();
$allorder = MemberServiceOrderModel::where($map)->count();
$allprice = MemberServiceOrderModel::where($map)->sum('totalprice');
$where2 = $map;
$where2[] = ['status','eq',2];
$yallorder = MemberServiceOrderModel::where($where2)->count();
$yallprice = MemberServiceOrderModel::where($where2)->sum('totalprice');
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['text', 'ordernum', '订单号', 'like'],
['daterange','create_time','下单时间','between'],
])
->setPageTitle('订单列表') // 设置页面标题
->setPageTips("总订单数:$allorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;总金额:$allprice</br>
已付款订单数:$yallorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已付款金额:$yallprice")
->setTableName('member_service_order')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['ordernum', '订单号','text'],
['totalprice', '价格','text'],
['status', '订单状态','text','',[1=>'待支付', 2=>'已支付', 3=>'已取消']],
['create_time', '下单时间','datetime'],
['right_button', '操作', 'btn']
])
->addRightButton('edit',['title'=>'查看购买的搭子群','icon'=>'fa fa-fw fa-twitch','href'=>url('memberorderdetail',['id' => '__id__'])],['area' => ['1000px', '70%']])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
public function memberorderdetail($id=null){
if ($id === null) return $this->error('缺少参数', url('index'),'_parent_reload');
$info = MemberServiceOrderModel::where('id',$id)->select();
return ZBuilder::make('table')
->addColumns([ // 批量添加列
['service_title', '搭子群标题','text'],
['service_summary', '搭子群简介','text'],
['service_price', '价格','text'],
['service_thumb', '搭子群二维码','picture'],
])
->setRowList($info) // 设置表格数据
->fetch(); // 渲染模板
}
//积分充值订单
public function buypoints(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
$map[] = ['type','eq',2];
//数据
$data_list = MemberServiceOrderModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
}
}
// 分页数据
$page = $data_list->render();
$allorder = MemberServiceOrderModel::where($map)->count();
$allprice = MemberServiceOrderModel::where($map)->sum('totalprice');
$where2 = $map;
$where2[] = ['status','eq',2];
$yallorder = MemberServiceOrderModel::where($where2)->count();
$yallprice = MemberServiceOrderModel::where($where2)->sum('totalprice');
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['text', 'ordernum', '订单号', 'like'],
['daterange','create_time','下单时间','between'],
])
->setPageTitle('积分充值订单列表') // 设置页面标题
->setPageTips("总订单数:$allorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;总金额:$allprice</br>
已付款订单数:$yallorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已付款金额:$yallprice")
->setTableName('member_service_order')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['ordernum', '订单号','text'],
['totalprice', '价格','text'],
['service_title', '积分数量','text'],
['status', '订单状态','text','',[1=>'待支付', 2=>'已支付', 3=>'已取消']],
['create_time', '下单时间','datetime'],
])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
//会员充值订单
public function viporder(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('id desc');
$map[] = ['type','eq',3];
//数据
$data_list = MemberServiceOrderModel::where($map)->order($order)->paginate();
if(!empty($data_list)){
foreach ($data_list as $key=>$val){
$uinfo = MemberModel::where('id',$val['uid'])->find();
$data_list[$key]['nickname'] = $uinfo['nickname']."".$uinfo['vip_title']."";
}
}
// 分页数据
$page = $data_list->render();
$allorder = MemberServiceOrderModel::where($map)->count();
$allprice = MemberServiceOrderModel::where($map)->sum('totalprice');
$where2 = $map;
$where2[] = ['status','eq',2];
$yallorder = MemberServiceOrderModel::where($where2)->count();
$yallprice = MemberServiceOrderModel::where($where2)->sum('totalprice');
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['select', 'uid', '所属用户', 'eq', '', MemberModel::where('is_delete',0)->column('id,nickname')],
['text', 'ordernum', '订单号', 'like'],
['daterange','create_time','下单时间','between'],
])
->setPageTitle('会员充值订单列表') // 设置页面标题
->setPageTips("总订单数:$allorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;总金额:$allprice</br>
已付款订单数:$yallorder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已付款金额:$yallprice")
->setTableName('member_service_order')
->setTableName('member_service_order')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['nickname', '所属用户','text'],
['ordernum', '订单号','text'],
['totalprice', '价格','text'],
['service_title', '会员角色','text'],
['status', '订单状态','text','',[1=>'待支付', 2=>'已支付', 3=>'已取消']],
['create_time', '下单时间','datetime'],
])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch(); // 渲染模板
}
}