Pro/application/admin/controller/Cs.php
2026-02-25 01:50:31 +08:00

241 lines
9.1 KiB
PHP

<?php
namespace app\admin\controller;
use think\Db;
use think\Request;
use think\Session;
class Cs 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;
// $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['total_share_amount'] = Db::name('cs')->where($sumWhere)->sum('share_amount');
//已结占股总量
$v['checkout_share_amount'] = Db::name('cs')->where($sumWhere)->where(array('is_checkout' => 1))->sum('share_amount');
//未结占股总量
$v['no_checkout_share_amount'] = Db::name('cs')->where(array('user_id'=>$v['id'],'is_checkout' => 0))->sum('share_amount');
//最后结算时间
if($v['last_cs_time'] > 0){
$v['last_cs_time'] = date('Y-m-d H:i:s',$v['last_cs_time']);
}else{
$v['last_cs_time'] = '-';
}
$agent_list[$k] = $v;
}
// 渲染变量和模板
$this->assign('agent_list',$agent_list);
return $this->fetch();
}
//处理洗码
public function do_cs(){
$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));
}
$total = Db::name('cs')->where(array('status' => 1, 'user_id' => $user_id, 'is_checkout' => 0))->sum('share_amount');
if($total != 0){
//防止重复提交
$allowSubmit = Session::get('allowSubmit');
if($allowSubmit == 'YES'){
Session::delete('allowSubmit');
}else{
Session::delete('allowSubmit');
die(json_encode(['errorCode' => 1, 'errorMessage' => "请勿重复提交"]));
}
//查找下边的会员
$uodateRusult = Db::name('cs')->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['share_amount'] = $total;
$insertData['agent_cs'] = $find['agent_cs'];
$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('cs_log')->insert($insertData);
//上分表增加记录
$rechargeData = array();
$rechargeData['type'] = 3;
$rechargeData['amount'] = $total;
if($total > 0){
$rechargeData['mode'] = 1;
}else{
$rechargeData['mode'] = 2;
}
$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_cs_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 cs_check(){
// 接收分页的条件
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('query',$query);
// 接收搜索条件
$username = Request::instance()->get('username');
$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'));
// 时间条件
$endTime = time();
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['create_time'] = array('between',[$startTime,$endTime]);
if($admin_or_agent > 0) $where['admin_or_agent'] = $admin_or_agent;
if($export == 1){
$cs_list = Db::name('cs_log')->where($where)->order('create_time desc')->select();
}else{
// 所有的洗码记录
$cs_list = Db::name('cs_log')->where($where)->order('create_time desc')->paginate(10,false,array('query'=>$get));
}
foreach($cs_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['share_amount'] = round($v['share_amount'],2);
$v['agent_cs'] = round($v['agent_cs'],2);
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$cs_list[$k] = $v;
}
//导出excel列表
if($export == 1){
if($cs_list){
//重新组合
$excelData = array();
foreach($cs_list AS $k => $v){
$excelData[$k][0] = $v['username'];
$excelData[$k][1] = $v['agent_cs'];
$excelData[$k][2] = $v['share_amount'];
$excelData[$k][3] = $v['connection_username'];
$excelData[$k][4] = $v['create_time'];
$excelData[$k][5] = $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('cs_list',$cs_list);
return $this->fetch();
}
}