You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

657 lines
23 KiB
PHP

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 PhpStorm.
* User: Administrator
* Date: 2016/12/19
* Time: 13:38
*/
namespace Admin\Controller;
use Admin\Model\PromoteModel;
class AjaxController extends ThinkController{
/**
* 获取配置项
* @param $category
*/
public function getConfigCategory($category){
switch ($category){
case 1:$result = C('PC_CONFIG_GROUP_LIST');break;
case 2:$result = C('CHANNEL_CONFIG_GROUP_LIST');break;
case 3:$result = C('APP_CONFIG_GROUP_LIST');break;
case 5:$result = C('WAP_CONFIG_GROUP_LIST');break;
case 6:$result = C('BA_CONFIG_GROUP_LIST');break;
default:$result = C('CONFIG_GROUP_LIST');
}
$this->AjaxReturn($result);
}
/**
* 获取区服列表
* @param $game_id
*/
public function getServer($game_id=""){
$map = [];
if (!empty($game_id)) {
$map['game_id'] = $game_id;
}
$data = M('server','tab_')->where($map)->select();
$this->AjaxReturn($data);
}
/**
*获取充值游戏区服
* @param game_id
*/
public function getSpendServer($game_id="",$type=1, $game_type='', $game_name=''){
if($type==2){
$game = M('Game','tab_')->field('id')->where(['game_name'=>$game_id])->find();
$game_id = $game['id'];
}
$map['game_id'] = $game_id;
$map['server_name'] = array('neq','');
$data = M('Spend','tab_')->field('server_name')->where($map)->group('server_name')->select();
$this->AjaxReturn($data);
}
/**
* 获取用户注册区服
*/
public function getUserServer($game_id="",$type=1){
if($type==2){
$game = M('Game','tab_')->field('id')->where(['game_name'=>$game_id])->find();
$game_id = $game['id'];
}
$map['game_id'] = $game_id;
$map['server_name'] = array('neq','');
$data = M('UserPlayInfo','tab_')->field('server_name')->where($map)->group('server_name')->select();
$this->AjaxReturn($data);
}
public function getGmeServer($game_name="", $sdk_version="")
{
$game_map = [];
if ($game_name) {
$game_map['relation_game_name'] = $game_name;
}else {
$this->AjaxReturn([]);
}
if ($sdk_version) {
$map['server_version'] = $game_map['sdk_version'] = $sdk_version;
}else {
// $this->AjaxReturn([]);
}
$game = M("Game", 'tab_')->where($game_map)->getField('id', true);
// 获取版本信息
$map = [];
if ($game) {
$map['game_id'] = ['in', $game];
} else {
$map['game_id'] = ['in', [-1]];
}
$data = M('Server', 'tab_')->field('id, server_name, server_id')->where($map)->group('server_name')->select();
$this->AjaxReturn($data);
}
public function getGameVersion($game_name="")
{
if ($game_name) {
$map['relation_game_name'] = $game_name;
}else {
$this->AjaxReturn([]);
}
$data = M('Game','tab_')->field('sdk_version')->where($map)->select();
$this->AjaxReturn($data);
}
/**
* 获取游戏折扣
* @param $game_id
*/
public function getGameDiscount($game_id){
$data = M('Game','tab_')->find($game_id);
$res['discount'] = $data['discount'];
$this->AjaxReturn($res);
}
public function getUserPlayGameName($user_id=0){
$map['user_account'] = $user_id;
$data = M("UserPlay","tab_")->field("game_id,game_name,bind_balance")->where($map)->group('user_id,game_id')->select();
$this->AjaxReturn($data);
}
/**
*修改游戏字段
* @param int game_id
* @param string $fields 要修改的字段名称
* @param string $value 要修改的字段的值
* @author 小纯洁
*/
public function setGameDataField($game_id=0,$fields='',$value=''){
$map['id'] = $game_id;
$result = M('Game','tab_')->where($map)->setField($fields,$value);
if($result !== false){
if($fields != "game_status"){
$game = M('Game','tab_')->where($map)->find();
$map1['relation_game_name'] = $game['relation_game_name'];
M('Game','tab_')->where($map1)->setField($fields,$value);
}
$data = array('status' =>1 ,'data'=>$result );
$this->AjaxReturn($data);
}else{
$data = array('status' =>0 ,'data'=>$result );
$this->AjaxReturn($data);
}
}
/**
*获取推广员申请通过的游戏
*/
public function getPromoteApplyGame($promote_id = 0){
if($promote_id == 0){
$return_msg = array('status'=>0,'info'=>'请选择推广员');
$this->AjaxReturn($return_msg);
}
$fields = "tab_game.id,tab_game.game_name,discount,tab_apply.promote_id,tab_apply.promote_account";
$data = D('Apply')->getPromoteGame($promote_id,$fields);
if(empty($data)){
$return_msg = array('status'=>0,'info'=>'该推广员没有已审核的游戏');
$this->AjaxReturn($return_msg);
} else{
$return_msg = array('status'=>1,'info'=>'成功','data'=>$data);
$this->AjaxReturn($return_msg);
}
}
public function getPromotersByLevel()
{
$level = I('level');
if (!$level) {
return $this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>[]]);
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>(new PromoteModel)->getPromotersByLevel($level)]);
}
/**
* 根据公司id获取会长
*/
public function getPromotersByCompanyid($company_id = -1)
{
$company_id = I('company_id');
$data = M("Promote","tab_")->field("id,account,nickname,company_id");
if($company_id == -1){
$data = $data->where("level = '1'")->select();
}else{
$data = $data->where("company_id = '{$company_id}' and level = '1'")->select();
}
foreach ($data as &$item) {
$item['nickname'] = $item['account'] . ($item['nickname'] ? "({$item['nickname']})" : "");
}
if($company_id <= 0){
array_unshift($data,["id"=>0,"nickname"=>C('OFFICIEL_CHANNEL'),"account"=>C('OFFICIEL_CHANNEL'),"company_id"=>0]);
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>$data]);
}
public function getPromotersByLevelOther()
{
$level = I('level');
if (!$level) {
return $this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>[]]);
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>(new PromoteModel)->getPromotersByLevelOther($level)]);
}
public function getGameList($type=0, $sdk_type=0)
{
$game = M("game","tab_");
if(MODULE_NAME == 'Admin') {
$map['game_status'] = array('in','0,1');
} else {
$map['game_status'] = 1;
}
if(!empty($type)){
/*$map['developers'] = $type == 1? array('EQ',0):array('GT',0);*/
/* $map['game_status'] = $type == 1? 1:array('in','0,1'); */
switch($type) {
case 1:
$map['developers'] = array('EQ',0);
break;
case 2:
$map['developers'] = array('EGT',0);
break;
default:
$map['developers'] = array('GT',0);
}
}else{
$map['apply_status'] = 1;
$map['online_status'] = 1;
}
if (empty($sdk_type)) {
$lists = $game->field('id,game_name,sdk_version,relation_game_name,icon,relation_game_id,game_status,display_site,dow_num')->where($map)->group('relation_game_name')->order("id asc")->select();
} else {
$map['sdk_version'] = $sdk_type;
$lists = $game->field('id,game_name,sdk_version,relation_game_name,icon,relation_game_id,game_status,display_site,dow_num')->where($map)->order("id asc")->select();
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>$lists]);
}
public function getDownstreamData() {
$withdraw_number = $_REQUEST['withdraw_number'];
if ($withdraw_number) {
$map['widthdraw_number'] = $withdraw_number;
}
if ($_REQUEST['company_id']) {
$map['company_id'] = $_REQUEST['company_id'];
}
$data = M("withdraw","tab_")
->field("widthdraw_number,promote_account,tab_promote_company.id as company_id,company_name,tab_withdraw.settlement_type,mobile_phone,real_name,tab_promote.bank_card,account_openin,tab_promote.address,game_ratio,bank_account")
->join("left join tab_promote on tab_withdraw.promote_id=tab_promote.id")
->join("left join tab_promote_company on tab_promote.company_id=tab_promote_company.id")
->where($map)
->find();
if ($data['settlement_type']==1) {
$data['settlement_type'] = '周结订单';
} else if($data['settlement_type']==2){
$data['settlement_type'] = '月结订单';
} else {
$data['settlement_type'] = '补点订单';
}
$data['game_ratio'] = json_decode($data['game_ratio'],true);
$getStatementData =M('statement','tab_')->where(['ext_field'=>$withdraw_number])->find();
$statementData = json_decode($getStatementData['statement_info'],true);
$reward = 0;
$forfeit = 0;
if ($statementData) {
$data['sum'] = $getStatementData['statement_money'];
$data['pay_amount'] = $getStatementData['pay_amount'];
$data['reward'] = 0;
$data['forfeit'] = 0;
$handleStatementData = [];
foreach ($statementData as $key=>$sv) {
if ($sv['game_id']) {
$nowVal['selle_ratio'] = $sv['second_ratio'];
$nowVal['sum_amount'] = $sv['pay_amount'];
$nowVal['begin_time'] = $sv['statement_begin_time'];
$nowVal['end_time'] = $sv['statement_end_time'];
$nowVal['game_name'] = $sv['game_name'];
$nowVal['fax_ratio'] = $sv['fax_ratio'];
$nowVal['sum'] = $sv['sum_money'];
$handleStatementData[$sv['game_id']][] = $nowVal;
} else {
if ($sv['statement_type'] == 2) {
$data['reward'] += $sv['sum_money'];
} else if ($sv['statement_type'] == 1) {
$data['forfeit'] += $sv['sum_money'];
}
}
}
// dump($handleStatementData);die();
$first_party_info = json_decode($getStatementData['first_party_info'],true);
$second_party_info = json_decode($getStatementData['second_party_info'],true);
$data['game_ratio'] = $handleStatementData;
$data['company_name'] = $second_party_info['partner'];
$data['mobile_phone'] = $second_party_info['link_phone'];
$data['bank_card'] = $second_party_info['bank_account'];
$data['account_openin'] = $second_party_info['opening_bank'];
$data['settlement_type'] = $second_party_info['settlement_type'];
$data['address'] = $second_party_info['address'];
$data['real_name'] = $second_party_info['link_man'];
$data['bank_account_name'] = $second_party_info['bank_account_name'];
$data['settlement_type_value'] = $getStatementData['settlement_type'];
$data['settlement_type_value'] = $getStatementData['settlement_type'];
$data['invoice_item'] = $second_party_info['invoice_item'];
$data['invoice_type'] = $second_party_info['invoice_type'];
$data['jfCompany'] = $first_party_info['jfCompany'];
$data['jfPerson'] = $first_party_info['jfPerson'];
$data['jfTel'] = $first_party_info['jfTel'];
if ($getStatementData['settlement_type']=='周结订单') {
$data['settlement_type_value'] = 1;
} else if ($getStatementData['settlement_type']=='月结订单') {
$data['settlement_type_value'] = 2;
} else {
$data['settlement_type_value'] = 3;
}
// dump($statementData);die();
} else {
$data['address'] = json_decode($data['address'],1);
// dd($data['address']);
$address = '';
if (is_array($data['address'])) {
foreach($data['address'] as $key => $value) {
$address = $address.' '.$value;
}
}
$data['address'] = $address;
$gameStr = [];
$game_ratio = [];
if (is_array($data['game_ratio'])) {
foreach ($data['game_ratio'] as $key => &$value) {
foreach ($value as $k => &$v) {
$v['game_name'] = substr(get_gamename($key),0,strpos(get_gamename($key), '('));
if (!in_array($v['game_name'],$gameStr)) {
array_push($gameStr,$v['game_name']);
} else {
// var_dump($key);
if (!$game_ratio[$v['game_name']]) {
$game_ratio[$v['game_name']] = $v;
}
else {
$game_ratio[$v['game_name']]['sum_amount'] += $v['sum_amount'];
}
unset($value[$k]);
}
}
if (!$value) {
unset($data['game_ratio'][$key]);
}
}
// dump($data['game_ratio']);die();
foreach ($data['game_ratio'] as $key => &$value) {
foreach ($value as $k => &$v) {
$startTime = strtotime($v['begin_time']);
$endTime = strtotime($v['end_time']);
$rewardData = M('reward_record','tab_')
->field("sum(tab_reward_record.money) as money,reward_type")
->join("left join (select * from tab_game group by relation_game_id)tab_game on tab_reward_record.relation_game_id=tab_game.relation_game_id")
->where(['company_type'=>2,'relation_game_name'=>['like',"%{$v['game_name']}%"],'company_id'=>$data['company_id'],'reward_time'=>['between',[$startTime,$endTime]]])
->group('reward_type')
->select();
foreach ($rewardData as $key => $valReward) {
if ($valReward['reward_type']==1) {
$reward = $reward + $valReward['money'];
} else if ($valReward['reward_type']==2) {
$forfeit = $forfeit + $valReward['money'];
}
}
// dump($reward);die();
if ($game_ratio[$v['game_name']]) {
$v['sum_amount'] = number_format($v['sum_amount'] + $game_ratio[$v['game_name']]['sum_amount'],2,'.','');
}
}
}
}
$data['reward'] = $reward;
$data['forfeit'] = $forfeit;
$yfData = M('tool','tab_')->where(['name'=>'company_info'])->find();
$yfData = json_decode($yfData['config'],true);
$data['yfpartner'] = $yfData['partner'];
$data['yflink_man'] = $yfData['link_man'];
$data['yflink_phone'] = $yfData['link_phone'];
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>$data]);
}
function getPromoteCompanyList() {
$map = [];
if ($_REQUEST['withdraw_number']) {
$map['widthdraw_number'] = $_REQUEST['withdraw_number'];
}
// var_dump($map);die();
if ($_REQUEST['company_id']) {
$map['_string'] = "tab_promote.company_id={$_REQUEST['company_id']} and ext_field is null";
}
// $map['widthdraw_number'] = ['neq',''];
$data = M("withdraw","tab_")
->field("widthdraw_number,promote_account,tab_promote_company.id as company_id,tab_promote_company.company_name,tab_withdraw.settlement_type,mobile_phone,real_name,tab_promote.bank_card,account_openin,tab_promote.address,game_ratio,bank_account")
->join("left join tab_promote on tab_withdraw.promote_id=tab_promote.id")
->join("left join tab_promote_company on tab_promote.company_id=tab_promote_company.id")
->join("left join tab_statement as statement on tab_withdraw.widthdraw_number = statement.ext_field")
->where($map)
// ->where("widthdraw_number is not NULL")
->select();
$this->ajaxReturn(['data'=>$data]);
// return $data;
}
public function addfile()
{
$this->meta_title = '文档添加';
$template = I('t');
$template = $template ?: 'Partner/addfile';
return $this->display($template);
}
//处理上传图片
public function saveFile()
{
$path = '/Uploads/';
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 0 ;// 设置附件上传大小
$upload->exts = '';// 设置附件上传类型
$upload->rootPath = '.'.$path; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传(子)目录
// 上传文件
$info = $upload->upload();
// dump($info);
if(!$info) {// 上传错误提示错误信息
$msg = $upload->getError();
$array= array('status' => 0, 'info' => $msg);
}else{// 上传成功
$array=array(
"info"=>"上传成功",
"status"=>1,
"file_path"=>$path.$info['file']['savepath'].$info['file']['savename'],
"file_name"=>$_POST['file_name'],
"file_type"=>$_FILES['file']['type'],
"file_size"=>$_FILES['file']['size'],
"upload_time"=>date("Y-m-d H:i:s",time())
);
}
$this->ajaxReturn($array);
}
//删除图片
public function delFile()
{
$id = $_REQUEST['id'];
$index = $_REQUEST['index'] ?: false;
$file_path = $_REQUEST['file_path'] ?: false;
if($id == 0){
//未存入数据库,不用管
unlink("./".$file_path);
$this->ajaxReturn(array(
'status' => 1,
'info' => "删除成功"
));
}
# code...
}
/**
*获取上下游公司
*/
public function getCompanyList()
{
$company_type = I('company_type');//公司类型
if ($company_type ==1) {//上游公司
$data = M('partner','tab_')->field('id, partner as name,1 as type')->where(['status' => 1])->select();
} elseif ($company_type ==2) {//下游公司
$data = M('promote_company','tab_')->field('id, company_name as name,2 as type')->where(['status' => 1])->select();
} else {
$partner = M('partner','tab_')->field('id, partner as name,1 as type')->where(['status' => 1])->select();
$promote_company = M('promote_company','tab_')->field('id, company_name as name, 2 as type')->where(['status' => 1])->select();
$data = array_merge($partner, $promote_company);
}
$this->ajaxReturn($data);
}
/**
*获取下游公司
*/
public function getPromoteCompany()
{
$company_belong = I('company_belong');
if ($company_belong == 1) {
$map['company_belong'] = ['in','1,2'];
} else {
$map['company_belong'] = $company_belong;
}
$data = M('promote_company','tab_')
->field('id, company_name as name,game_ids')
->where(['status' => 1])
->where($map)
->select();
$this->ajaxReturn($data);
}
/**
* 获取下游公司游戏列表
*/
public function getPromoteGameList() {
$company_id = $_REQUEST['company_id'];
$spendData = M("spend use index(user_id)","tab_")
->field("game_id")
->join("left join tab_promote on tab_spend.promote_id=tab_promote.id")
->where([
'company_id'=>$company_id,
'pay_status'=>1,
'pay_way'=>['egt',0]
])
->group("game_id")
->select();
if ($spendData) {
$map['id'] = ['in',array_column($spendData,"game_id")];
} else {
$this->ajaxReturn([]);
}
$data = M("game","tab_")
->field("relation_game_id,relation_game_name")
->where($map)
->group("relation_game_id")
->select();
$this->ajaxReturn($data);
}
/**
* 操作日志
* option:
* array(
* op_type=>操作类型 1:编辑 2:删除 3:下载,
* op_name=>操作说明 例如:编辑,删除,锁定等,
* url=>需要跳转的url 添加去列表加唯一id编辑直接去编辑页面下载可以重新下载(新开页面),
* key=>关键词:用户的账号,游戏的名词等,
* menu=>非必须,菜单目录,不存在的话按控制器寻找
* )
* get: 页面get参数
*
* return: 0:错误 1:成功
*/
public function addOperationLog() {
$Get = $_GET['get'];
$option = $_GET['option'];
if (!$option['key']) {
$option['key'] = getNowDate();
}
if (!$option['url']) {
$this->ajaxReturn(['code'=>0]);
}
if (!$option['menu']) {
$this->ajaxReturn(['code'=>0]);
}
if (!$option['op_name']) {
$this->ajaxReturn(['code'=>0]);
}
addOperationLog(['op_type'=>$option['op_type'],'key'=>$option['key'],'op_name'=>$option['op_name'],'url'=>U($option['url'],$Get),'menu'=>$option['menu']]);
$this->ajaxReturn(['code'=>1]);
}
public function getPromoteChildren($pid)
{
$info = M('promote', 'tab_')->where(['id'=>$pid])->find();
if (empty($info)) return $this->ajaxReturn(['code'=>1, 'data'=>[]]);
$result = M('promote', 'tab_')->field("id,account,nickname")->where(['parent_id'=>$pid])->select();
$this->ajaxReturn(['code'=>1, 'data'=>$result]);
}
public function getPromotersByLevelResource()
{
$level = I('level');
if (!$level) {
// return $this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>[]]);
$level = '';
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>(new PromoteModel)->getPromotersByLevelResource($level)]);
}
}