Pro/application/admin/controller/Xima.php
2026-01-28 15:54:52 +08:00

246 lines
9.6 KiB
PHP

<?php
namespace app\admin\controller;
use think\Db;
use think\Request;
use think\Session;
class Xima extends Common{
/**
* 可以洗码的会员及列表
*/
public function index(){
Session::set('allowSubmit','YES');
// 接收分页的条件
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收搜索的条件信息
$username = Request::instance()->get('username');
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
// 时间条件
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
}
$this->assign('get',$get);
// 拼装搜索条件
$where = array();
if(!empty($username)) $where['username'] = $username;
$where['is_delete'] = 0;
$where['agent'] = 1;
$where['agent_parent_id'] = 0;
// 获取所有代理信息
$agent_list = Db::name('user')->where($where)->order('id desc')->paginate(10,false,array('query'=>$get));
// 数据查询条件
$sumWhere = array();
$sumWhere['create_time'] = array('between',[$startTime,$endTime]);
foreach($agent_list AS $k => $v){
$sumWhere['user_id'] = $v['id'];
$sumWhere['status'] = 1;
//洗码量
$v['totalXimaliang'] = Db::name('xima')->where($sumWhere)->sum('ximaliang');
//码量
$v['maliang'] = Db::name('xima')->where($sumWhere)->sum('maliang');
//已结码量
$v['checkoutMaliang'] = Db::name('xima')->where($sumWhere)->where(array('is_checkout' => 1))->sum('maliang');
//未结码量
$v['noCheckoutMaliang'] = Db::name('xima')->where(array('user_id'=>$v['id'],'is_checkout' => 0))->sum('maliang');
//最后结算时间
if($v['last_xima_time'] > 0){
$v['last_xima_time'] = date('Y-m-d H:i:s',$v['last_xima_time']);
}else{
$v['last_xima_time'] = '-';
}
$agent_list[$k] = $v;
}
// 渲染变量和模板
$this->assign('agent_list',$agent_list);
return $this->fetch();
}
//处理洗码
public function do_xima(){
$result = array();
$user_info = Session::get('user_info');
if(Request::instance()->post() && intval(Request::instance()->post('user_id')) > 0){
$user_id = intval(Request::instance()->post('user_id'));
$find = Db::name('user')->where(array('id' => $user_id, 'status' => 1, 'is_delete' => 0))->find();
if(!$find){
$result['errorCode'] = 1;
$result['errorMessage'] = '账号处于非正常状态,请确保账号正常再进行操作';
die(json_encode($result));
}
if($find['agent_parent_id'] > 0) {
$result['errorCode'] = 1;
$result['errorMessage'] = '不允许洗码。请联系其经纪人为其洗码。';
die(json_encode($result));
}
$ximaliang_unbalanced = Db::name('xima')->where(array('status' => 1, 'user_id' => $user_id, 'is_checkout' => 0))->sum('ximaliang');
$maliang_unbalanced = Db::name('xima')->where(array('status' => 1, 'user_id' => $user_id, 'is_checkout' => 0))->sum('maliang');
if($maliang_unbalanced > 0){
//防止重复提交
$allowSubmit = Session::get('allowSubmit');
if($allowSubmit == 'YES'){
Session::delete('allowSubmit');
}else{
Session::delete('allowSubmit');
die(json_encode(['errorCode' => 1, 'errorMessage' => "请勿重复提交"]));
}
//查找下边的会员
$uodateRusult = Db::name('xima')->where(array('status' => 1, 'user_id' => $user_id, 'is_checkout' => 0))->update(array('is_checkout' => 1,'checkout_time' => time()));
if($uodateRusult){
//记录到洗码日志
$insertData = array();
$insertData['user_id'] = $user_id;
$insertData['username'] = $find['username'];
$insertData['ximaliang'] = $ximaliang_unbalanced;
$insertData['maliang'] = $maliang_unbalanced;
if($find['type_xima'] == 1){
$insertData['agent_ximalv'] = $find['agent_ximalv'].'/'.$find['agent_ximalv_dt'].'/'.$find['agent_ximalv_nn'];
}elseif($user['type_xima'] == 2){
$insertData['agent_ximalv'] = $find['agent_ximalv_single'].'/'.$find['agent_ximalv_dt_single'].'/'.$find['agent_ximalv_nn_single'];
}else{
$insertData['agent_ximalv'] = '0/0/0';
}
$insertData['create_time'] = time();
$insertData['old_money'] = 0;
$insertData['new_money'] = 0;
$insertData['admin_id'] = $user_info['id'];
$insertData['admin_username'] = $user_info['admin'];
$insertData['admin_or_agent'] = 1;
Db::name('xima_log')->insert($insertData);
//上分表增加记录
$rechargeData = array();
$rechargeData['type'] = 2;
$rechargeData['amount'] = $maliang_unbalanced;
$rechargeData['mode'] = 1;
$rechargeData['agent_or_admin'] = 1;
$rechargeData['user_id'] = $user_id;
$rechargeData['user_type'] = $find['agent'];
$rechargeData['user_agent_level'] = $find['agent_level'];
$rechargeData['username_for'] = $find['username'];
$rechargeData['nickname_for'] = $find['nickname'];
$rechargeData['user_parent_id'] = $find['agent_parent_id'];
$rechargeData['admin_id'] = $user_info['id'];
$rechargeData['admin_user_name'] = $user_info['admin'];
$rechargeData['create_time'] = time();
$rechargeData['old_money'] = $find['money'];
$rechargeData['new_money'] = $find['money'];
$rechargeData['remake'] = '总后台操作洗码';
Db::name('recharge')->insert($rechargeData);
Db::name('user')->where(array('id' => $user_id))->update(array('last_xima_time' => time()));
}
$result['errorCode'] = 0;
$result['errorMessage'] = '洗码成功';
die(json_encode($result));
}else{
$result['errorCode'] = 1;
$result['errorMessage'] = '洗码数目必须大于0';
die(json_encode($result));
}
}else{
$result['errorCode'] = 1;
$result['errorMessage'] = 'ERROR';
die(json_encode($result));
}
}
public function xima_check(){
// 接收分页的条件
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('query',$query);
// 接收搜索条件
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$export = Request::instance()->get('export');
$admin_or_agent = intval(Request::instance()->get('admin_or_agent'));
// 时间条件
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
}
$this->assign('get',$get);
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($admin_or_agent > 0) $where['admin_or_agent'] = $admin_or_agent;
if($export == 1){
$xima_list = Db::name('xima_log')->where($where)->order('create_time desc')->select();
}else{
// 所有的洗码记录
$xima_list = Db::name('xima_log')->where($where)->order('create_time desc')->paginate(10,false,array('query'=>$get));
}
foreach($xima_list as $k => $v){
// 操作人
if($v['admin_or_agent'] == 1 ){
$v['connection_username'] = $v['admin_username'];
$v['admin_or_agent_msg'] = '总台操作';
}else{
$v['admin_or_agent_msg'] = '代理操作';
}
// 数据格式转换
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$user = Db::name('user')->where('id',$v['user_id'])->find();
$v['agent_ximalv'] = round($user['agent_ximalv'],2).'/'.round($user['agent_ximalv_dt'],2).'/'.round($user['agent_ximalv_nn'],2);
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$xima_list[$k] = $v;
}
//导出excel列表
if($export == 1){
if($xima_list){
//重新组合
$excelData = array();
foreach($xima_list AS $k => $v){
$excelData[$k][0] = $v['username'];
$excelData[$k][1] = $v['agent_ximalv'];
$excelData[$k][2] = $v['ximaliang'];
$excelData[$k][3] = $v['maliang'];
$excelData[$k][4] = $v['connection_username'];
$excelData[$k][5] = $v['create_time'];
$excelData[$k][6] = $v['admin_or_agent_msg'];
}
$title = array('账号','洗码率(百/龙/牛)%','洗码量','洗码费','操作人','洗码时间','备注');
if($startDate && $endDate){
$this->exportExcelCore($excelData, '洗码记录-'.$startDate."-".$endDate, $title);
}else{
$this->exportExcelCore($excelData, '洗码记录', $title);
}
exit('已导出支持列表,请不要重复刷新该页面!');
}else{
exit('没有可以导出的列表!');
}
}
// 渲染参数和模板
$this->assign('xima_list',$xima_list);
return $this->fetch();
}
}