Merge remote-tracking branch 'origin/dev' into dev

master
zhengchanglong 5 years ago
commit dc65aa0766

1
.gitignore vendored

@ -2,4 +2,5 @@
Runtime/
Uploads/
Application/Common/Conf/env.php
Application/Common/Conf/pay_config.php
.idea/

@ -549,6 +549,7 @@ function think_ucenter_md5($str, $key = 'ThinkUCenter'){
public function rolelist()
{
$map = [];
if (isset($_REQUEST['game_name'])) {
$map['game_name'] = trim($_REQUEST['game_name']);
unset($_REQUEST['game_name']);
@ -562,7 +563,7 @@ function think_ucenter_md5($str, $key = 'ThinkUCenter'){
unset($_REQUEST['role_name']);
}
empty(I('user_account')) || $map['user_account'] = ['like',"%".I('user_account')."%"];
$list = $this->lists(M('user_play_info', 'tab_'), $map);
$list = $this->lists(M('user_play_info', 'tab_'), $map, 'play_time desc');
$this->assign('list', $list);
$this->meta_title = '角色数据';

@ -306,7 +306,7 @@ class SourceEvent extends Controller
//$ossClient->multiuploadFile($bucket, $url, $file, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": initiateMultipartUpload FAILED\n");
$this -> error($e -> getMessage() . "\n");
$this -> error('1' . $e -> getMessage() . "\n");
return;
}
/*

@ -108,7 +108,7 @@
<td><span class="badge">{$data['role_id']}</span></td>
<td><notempty name="rolename">{$rolename}<else /></notempty></td>
<td>{$data.role_level}</td>
<td>{$data.play_time|date='Y-m-d H:i:s',###}</td>
<td><?= date('Y-m-d H:i:s', $data['play_time']) ?></td>
<td>{$data.play_ip}</td>
<!-- <td><a class="ajax-get" href="{:U('user_update',['ids'=>$data['id']])}">更新</a></td> -->
</tr>

@ -217,4 +217,10 @@ class BaseController extends HomeController{
}
return $records;
}
public function getLoginPromote()
{
$promoteId = session('promote_auth.pid');
return M('promote', 'tab_')->where(['id' => $promoteId])->find();
}
}

@ -1158,23 +1158,268 @@ class QueryController extends BaseController
$this->display('view_role');
}
public function userPlayers($p = 0)
public function users()
{
$promote = $this->getLoginPromote();
$promoteId = $promote['id'];
$map = [
'_logic' => 'or',
'id' => $promoteId,
'parent_id' => $promoteId,
'grand_id' => $promoteId,
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = [];
$groupPromotes = [];
if ($promote['parent_id'] == 0) {
$groupPromotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promoteId])->select();
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['grand_id' => $promoteId])->select();
}
if ($promote['parent_id'] > 0 && $promote['grand_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promoteId])->select();
}
$fields = [
'id', 'account', 'promote_account', 'promote_id', 'device_number', 'register_time', 'register_ip', 'login_time', 'login_ip', 'device_type'
];
$query = M('user', 'tab_')->field($fields)->where(['promote_id' => ['in', $ids]]);
list($records, $pagination, $count) = $this->paginate($query);
$this->assign('promotes', $promotes);
$this->assign('groupPromotes', $groupPromotes);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display();
}
public function userRoles()
{
$gameId = I('game_id', 0);
$serverId = I('server_id', 0);
$isSelf = I('is_self', 0);
$roleName = I('role_name', '');
$userAccount = I('user_account', '');
$promoteId = I('promote_id', 0);
$sdkVersion = I('sdk_version', 0);
$roleLevelBegin = intval(I('role_level_begin', 0));
$roleLevelEnd = intval(I('role_level_end', 0));
$headmanPromoteId = I('headman_promote_id', 0);
$playTime = I('play_time', '');
$promote = $this->getLoginPromote();
$map = [
'_logic' => 'or',
'id' => $promote['id'],
'parent_id' => $promote['id'],
'grand_id' => $promote['id'],
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = $this->getGroupPromotes($promote);
$groupPromotes = $this->getGroupPromotes($promote);
$map = [];
if (isset($_REQUEST['game_name'])) {
$map['game_name'] = trim($_REQUEST['game_name']);
unset($_REQUEST['game_name']);
$map = ['promote_id' => ['in', $ids]];
if ($gameId != 0) {
$map['game_id'] = $gameId;
}
if (isset($_REQUEST['server_id'])) {
$map['server_id'] = trim($_REQUEST['server_id']);
unset($_REQUEST['server_id']);
if ($serverId != 0) {
$map['serverId'] = $serverId;
}
if ($roleName != '') {
$map['role_name'] = ['like', '%' . $roleName . '%'];
}
if ($userAccount != '') {
$map['user_acount'] = ['like', '%' . $userAccount . '%'];
}
if ($sdkVersion != 0) {
$map['sdk_version'] = $sdkVersion;
}
if ($roleLevelBegin != 0 && $roleLevelEnd == 0) {
$map['role_level'] = ['egt', $roleLevelBegin];
} elseif ($roleLevelEnd != 0 && $roleLevelBegin == 0) {
$map['role_level'] = ['elt', $roleLevelEnd];
} elseif ($roleLevelEnd != 0 && $roleLevelBegin != 0) {
$map['role_level'] = ['between', [$roleLevelBegin, $roleLevelEnd]];
}
if ($playTime != '') {
$playTimeRow = explode(' 至 ', $playTime);
$playTimeBegin = 0;
$playTimeEnd = 0;
if (count($playTimeRow) == 2) {
$playTimeBegin = strtotime($playTimeRow[0] . ' 00:00:00');
$playTimeEnd = strtotime($playTimeRow[1] . ' 23:59:59');
} else {
$playTimeBegin = strtotime($playTimeRow[0] . ' 00:00:00');
$playTimeEnd = strtotime($playTimeRow[0] . ' 23:59:59');
}
$map['play_time'] = ['between', [$playTimeBegin, $playTimeEnd]];
}
if ($isSelf) {
$map['promote_id'] = $promote['id'];
} else {
if ($headmanPromoteId != 0) {
$map['promote_id'] = $headmanPromoteId;
} elseif ($promoteId != 0) {
$map['promote_id'] = $promoteId;
}
}
$query = M('user_play_info', 'tab_')->where($map);
list($records, $pagination, $count) = $this->paginate($query);
$games = $this->getGamesByPromote($promote);
$this->assign('games', $games);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display('userRoles');
}
public function userRecharges()
{
$gameId = I('game_id', 0);
$serverId = I('server_id', 0);
$isSelf = I('is_self', 0);
$roleName = I('role_name', '');
$userAccount = I('user_account', '');
$promoteId = I('promote_id', 0);
$sdkVersion = I('sdk_version', 0);
$headmanPromoteId = I('headman_promote_id', 0);
$promote = $this->getLoginPromote();
$map = [
'_logic' => 'or',
'id' => $promote['id'],
'parent_id' => $promote['id'],
'grand_id' => $promote['id'],
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = $this->getGroupPromotes($promote);
$groupPromotes = $this->getGroupPromotes($promote);
$map = $spendMap = ['promote_id' => ['in' => $ids]];
if ($gameId != 0) {
$map['game_id'] = $gameId;
}
if ($serverId != 0) {
$map['serverId'] = $serverId;
}
if (isset($_REQUEST['role_name'])) {
$map['role_name'] = trim($_REQUEST['role_name']);
unset($_REQUEST['role_name']);
if ($roleName != '') {
$map['role_name'] = ['like', '%' . $roleName . '%'];
}
$map['promote_id'] = session("promote_auth.pid");
$this->data_lists($p, 'UserPlayInfo', ['map' => $map]);
if ($userAccount != '') {
$map['user_acount'] = ['like', '%' . $userAccount . '%'];
}
if ($sdkVersion != 0) {
$map['sdk_version'] = $sdkVersion;
}
if ($isSelf) {
$map['promote_id'] = $promote['id'];
$spendMap['promote_id'] = $promote['id'];
} else {
if ($headmanPromoteId != 0) {
$map['promote_id'] = $headmanPromoteId;
$spendMap['promote_id'] = $headmanPromoteId;
} elseif ($promoteId != 0) {
$map['promote_id'] = $promoteId;
$spendMap['promote_id'] = $promoteId;
}
}
$query = M('user_play_info', 'tab_')->where($map);
list($roles, $pagination, $count) = $this->paginate($query);
$roleIds = array_column($roles, 'role_id');
$spendMap['pay_status'] = 1;
$spendMap['pay_game_status'] = 1;
if (count($roleIds) > 0) {
$spendMap['game_player_id'] = ['in', $roleIds];
} else {
$spendMap['_string'] = '1<>1';
}
$allRecharges = M('spend', 'tab_')->field('count(*) count, sum(cost) cost, game_player_id')->where($gameMap)->group('game_player_id')->select();
$allRecords = [];
foreach ($allRecharges as $recharge) {
$allRecords[$recharge['game_player_id']] = $recharge;
}
$map['pay_time'] = ['between', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]];
$todayRecharges = M('spend', 'tab_')->field('sum(cost) cost, game_player_id')->where($map)->group('game_player_id')->select();
$todayRecords = [];
foreach ($todayRecharges as $recharge) {
$todayRecords[$recharge['game_player_id']] = $recharge;
}
$records = [];
foreach ($roles as $role) {
$records[] = [
'user_account' => $role['user_account'],
'game_name' => $role['game_name'],
'role_name' => $role['role_name'],
'role_id' => $role['role_id'],
'role_level' => $role['role_level'],
'server_id' => $role['server_id'],
'server_name' => $role['server_name'],
'recharge_cost' => isset($allRecords[$role['role_id']]) ? round(floatval($allRecords[$role['role_id']]['cost']), 2) : 0,
'recharge_count' => isset($allRecords[$role['role_id']]) ? $allRecords[$role['role_id']]['count'] : 0,
'recharge_cost_today' =>isset($todayRecords[$role['role_id']]) ? round(floatval($todayRecords[$role['role_id']]['cost']), 2) : 0,
'play_time' => $role['play_time'],
'play_ip' => $role['play_ip'],
'promote_id' => $role['promote_id'],
'promote_account' => $role['promote_account'],
'sdk_version' => $role['sdk_version'],
'unlogin_day' => intval((strtotime(date('Y-m-d 00:00:00')) - strtotime(date('Y-m-d 00:00:00', $role['play_time']))) / (24*3600) )
];
}
$games = $this->getGamesByPromote($promote);
$this->assign('games', $games);
$this->assign('promotes', $promotes);
$this->assign('groupPromotes', $groupPromotes);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display('userRecharges');
}
private function getGamesByPromote($promote)
{
return M('apply', 'tab_')->field(['game_id', 'game_name'])->where(['promote_id' => $promote['id']])->select();
}
private function getGroupPromotes($promote)
{
$promotes = [];
if ($promote['parent_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']])->select();
}
return $promotes;
}
private function getNormalPromotes($promote)
{
$promotes = [];
if ($promote['parent_id'] > 0 && $promote['grand_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']])->select();
} elseif ($promote['parent_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['grand_id' => $promote['id']])->select();
}
return $promotes;
}
public function getGameServers()
{
$gameId = I('game_id', 0);
$servers = M('server', 'tab_')->field(['id', 'server_name'])->where(['game_id' => $gameId])->select();
$this->ajaxReturn([
'status' => 1,
'msg' => '成功',
'data' => ['servers' => $servers]
]);
}
/**

@ -930,7 +930,7 @@ class UserEvent extends BaseEvent {
public function arpu_analysis_data() {
public function arpu_analysis_data() {
if ($_REQUEST['time_start'] && $_REQUEST['time_end']) {
$request = $_REQUEST;
$game_id = $request['game_id'];

@ -54,7 +54,8 @@
<a href="{:U('Query/register')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq register '>active</if> ">注册明细</a>
<a href="{:U('Query/arpu_analysis')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq arpu_analysis '>active</if> ">ARPU统计</a>
<a href="{:U('Query/retention_analysis')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq retention_analysis '>active</if> ">留存统计</a>
<a href="{:U('Query/userPlayers')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userPlayers '>active</if> ">角色查询</a>
<a href="{:U('Query/userRoles')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userRoles '>active</if> ">角色查询</a>
<a href="{:U('Query/userRecharges')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userRecharges '>active</if> ">充值玩家</a>
</div>
<!-- <div class="subNav jssubNav"><i class="prev_icon icon_caiwu"></i><span>财务管理</span><i class="arrow_icon"></i></div> -->
<!-- <div class="navContent jsnavContent"> -->

@ -1,162 +0,0 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>角色查询</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">角色查询</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Promote/mychlid',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group fr">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group fr normal_space">
<input type="text" name="real_name" class="txt normal_txt" id="uid" placeholder="请输入姓名" value="{:I('real_name')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="mobile" class="txt normal_txt" id="uid" placeholder="请输入手机号" value="{:I('mobile')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="idcard" class="txt normal_txt" id="uid" placeholder="请输入身份证" value="{:I('idcard')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="account" class="txt normal_txt" id="uid" placeholder="请输入帐号" value="{:I('account')}">
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>创建时间</th>
</tr>
<empty name="lists_data">
<tr><td colspan="8" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="lists_data" id="vo" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$vo.user_account}</td>
<td>{$vo.promote_account}</td>
<td>{$vo.game_name}</td>
<td>{:getSDKTypeName($vo['sdk_version'])}</td>
<td>{$vo.server_name}</td>
<td>{$vo.role_name}</td>
<td>{$vo.role_level}</td>
<td>{$vo.play_time|date='Y-m-d H:i:s',###}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
$('.reset-password-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/resetPassword')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.close(index)
if (response.status == 1) {
layer.open({
content: '重置密码成功,您的新密码为:' + response.data.password
})
} else {
layer.msg(response.msg)
}
}
})
})
}
})
$('.froze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认冻结帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/froze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfreeze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认解冻帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/unfreeze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.shift-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.open({
title: '渠道迁移',
type: 1,
content: $('#shift-box'),
area: ['600px', '400px']
})
}
})
})
</script>
</block>

@ -0,0 +1,229 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
<style>
.form-group {
float: left;
margin-bottom: 10px;
}
.form-group label {
line-height: 34px;
height: 34px;
}
</style>
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>玩家充值</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">玩家充值</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/userRecharges',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space">
<select name="game_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择游戏</option>
<volist name="games" id="game">
<option value="{$game.game_id}">{$game.game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择区服</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="sdk_version" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<option value="1" <if condition="I('sdk_version') === '1'">selected</if>>Andriod</option>
<option value="2" <if condition="I('sdk_version') === '2'">selected</if>>IOS</option>
</select>
</div>
<if condition="$grand_id eq 0">
<div class="form-group normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space">
<input type="text" name="role_name" class="txt normal_txt" id="uid" placeholder="请输入角色名" value="{:I('role_name')}">
</div>
<div class="form-group normal_space">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
<!-- <div class="form-group normal_space">
<input type="text" name="device_sn" class="txt normal_txt" id="uid" placeholder="请输入设备号" value="{:I('device_sn')}">
</div> -->
<div class="form-group normal_space fr">
<label>充值总额:</label>
<input type="text" class="txt" name="cost_begin" style="width: 50px" value="{:I('cost_begin')}" >
<label> ~ </label>
<input type="text" class="txt" name="cost_end" style="width: 50px" value="{:I('cost_end')}" >
</div>
<div class="form-group normal_space">
<input type="submit" class="submit" value="查询">
</div>
<div class="form-group normal_space">
<label><input name="is_self" value="1" type="checkbox"> 本账号推广</label>
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>充值总额</th>
<th>充值次数</th>
<th>今日充值</th>
<th>未登录天数</th>
<th>最后登录时间</th>
<th>组长|推广员</th>
</tr>
<empty name="records">
<tr><td colspan="12" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="records" id="record" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.user_account}</td>
<td>{$record.game_name}</td>
<td>{:getSDKTypeName($record['sdk_version'])}</td>
<td>{$record.server_name}</td>
<td>{$record.role_name}</td>
<td>{$record.role_level}</td>
<td>{$record.recharge_cost}</td>
<td>{$record.recharge_count}</td>
<td>{$record.recharge_cost_today}</td>
<td>{$record.unlogin_day}</td>
<td>{$record.play_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.promote_account}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
$('.reset-password-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/resetPassword')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.close(index)
if (response.status == 1) {
layer.open({
content: '重置密码成功,您的新密码为:' + response.data.password
})
} else {
layer.msg(response.msg)
}
}
})
})
}
})
$('.froze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认冻结帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/froze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfreeze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认解冻帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/unfreeze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.shift-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.open({
title: '渠道迁移',
type: 1,
content: $('#shift-box'),
area: ['600px', '400px']
})
}
})
})
</script>
</block>

@ -0,0 +1,157 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
<style>
.form-group {
float: left;
margin-bottom: 10px;
}
.form-group label {
line-height: 34px;
height: 34px;
}
</style>
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>角色查询</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">角色查询</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/userRoles',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space">
<select name="game_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择游戏</option>
<volist name="games" id="game">
<option value="{$game.game_id}" <if condition="I('game_id') === $game['id']">selected</if>>{$game.game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="server_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择区服</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="sdk_version" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<option value="1" <if condition="I('sdk_version') === '1'">selected</if>>Andriod</option>
<option value="2" <if condition="I('sdk_version') === '2'">selected</if>>IOS</option>
</select>
</div>
<div class="form-group normal_space">
<input type="text" name="role_name" class="txt normal_txt" id="uid" placeholder="请输入角色名" value="{:I('role_name')}">
</div>
<div class="form-group normal_space">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
<if condition="$grand_id eq 0">
<div class="form-group normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}" <if condition="I('promote_id') === $promote['id']">selected</if>>{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}" <if condition="I('promote_id') === $promote['id']">selected</if>>{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space fr">
<label>创建时间:</label>
<input type="text" class="txt range-date" name="play_time" placeholder="创建时间" value="{:I('play_time')}" >
</div>
<div class="form-group normal_space fr">
<label>玩家等级:</label>
<input type="text" class="txt" name="role_level_begin" style="width: 50px" value="{:I('role_level_begin')}" >
<label> ~ </label>
<input type="text" class="txt" name="role_level_end" style="width: 50px" value="{:I('role_level_end')}" >
</div>
<div class="form-group">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group normal_space">
<label><input name="is_self" value="1" type="checkbox"> 本账号推广</label>
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>创建时间</th>
</tr>
<empty name="records">
<tr><td colspan="8" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="records" id="record" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.user_account}</td>
<td>{$record.promote_account}</td>
<td>{$record.game_name}</td>
<td>{:getSDKTypeName($record['sdk_version'])}</td>
<td>{$record.server_name}</td>
<td>{$record.role_name}</td>
<td>{$record.role_level}</td>
<td>{$record.play_time|date='Y-m-d H:i:s',###}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" href="__STATIC__/flatpickr/flatpickr.min.css">
<script src="__STATIC__/flatpickr/flatpickr.min.js"></script>
<script src="__STATIC__/flatpickr/l10n/zh.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function() {
$('.range-date').flatpickr({
mode: 'range',
locale: 'zh',
})
$('.select_gallery').select2();
})
</script>
</block>

@ -0,0 +1,121 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>注册明细</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">注册明细</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Promote/mychlid',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group fr">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group fr normal_space">
<input type="text" name="account" class="txt normal_txt" placeholder="请输入玩家帐号" value="{:I('account')}">
</div>
<div class="form-group fr normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<volist name="subPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<if condition="$grand_id eq 0">
<div class="form-group fr normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group fr normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space fr">
<label>注册时间:</label>
<input type="text" id="search-play-time" class="txt" name="register_time" placeholder="注册时间" value="{:I('register_time')}" >
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>设备IMIE/IDFA</th>
<th>设备类型</th>
<th>注册时间</th>
<th>注册IP</th>
<th>最近登录时间</th>
<th>最近登陆IP</th>
<th>操作</th>
</tr>
<empty name="records">
<tr><td colspan="8" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="records" id="record" mod="2">
<tr data-id="{$record.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.account}</td>
<td>{$record.promote_account}</td>
<td>{$record.device_number}</td>
<td></td>
<td>{$record.register_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.register_ip}</td>
<td>{$record.login_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.login_ip}</td>
<td><a href="{:U('Query/userRoles', ['id' => $record['id']])}">查看角色</a></td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" href="__STATIC__/flatpickr/flatpickr.min.css">
<script src="__STATIC__/flatpickr/flatpickr.min.js"></script>
<script src="__STATIC__/flatpickr/l10n/zh.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$('#search-play-time').flatpickr({
mode: 'range',
locale: 'zh',
})
$('.select_gallery').select2();
})
</script>
</block>

@ -12,7 +12,7 @@
* @param sting $idcard 身份证号码
* @author 鹿文学
*/
function is_adult($idcard) {
function is_adult($idcard, $adult=16) {
$id = substr($idcard,6,8);
$year = substr($id,0,4);
@ -21,7 +21,7 @@ function is_adult($idcard) {
$old = (time()-strtotime($year.'-'.$month.'-'.$day))/31536000;
if(intval($old)>=16) {
if(intval($old)>=$adult) {
return true;
} else {
return false;
@ -29,6 +29,33 @@ function is_adult($idcard) {
}
/* 支付验证 当前只有未成年
* return: array code 1成功 0失败 msg :错误消息
*/
function pay_check($user_id) {
$ret = array(
'code' => 1,
'msg' => '',
);
$idcard = M("user", "tab_")->where(array('id' => $user_id))->getField("idcard");
if (!$idcard) {
$ret['code'] = 1;
$ret['msg'] = '身份证不存在';
return $ret;
}
if (is_adult($idcard, 18)) {
$ret['code'] = 1;
$ret['msg'] = '';
return $ret;
} else {
$ret['code'] = 0;
$ret['msg'] = '未成年,不能充值!';
return $ret;
}
}
/* //获取支付方式 */
function get_pay_way($id=null)
{

@ -12,47 +12,7 @@ use Qiniu\json_decode;
class AppleController extends BaseController{
/**
* 'MerNo' => $data['merno'],
'Amount'=>$data['amount'],
'BillNo'=>$data['order_no'],
'TranCode'=>"SMZF012",
'PayType'=> "SMZF",
'PaymentType'=> $data['paymenttype'],//"UNION","ZFBZF",
'MerRemark' => 'MerRemark',
'subject' => $data['subject'],
'NotifyURL' => $data['notifyurl'],
'ReturnURL' => $data['returnurl'],
'mchAppId' => $data['mchAppId'],
'mchAppName' => $data['mchAppName'],
'deviceInfo' => $data['deviceInfo'],
'clientIp' => $data['clientIp'],
*/
public function test() {
$sqpay=new Sqpay();
$returl = C('pay_header'). "/sdk.php/Spend/pay_success/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id'];
$data['secret'] = C("sqpay.key");
$data['merno'] = C("sqpay.partner");
$data['amount'] = 0.01;
$data['order_no'] = '111111';
$data['paymenttype'] = "ZFBZF";
$data['MerRemark'] = "mark";
$data['subject'] = "subject";
$data['notifyurl'] = C('pay_header')."/callback.php/Notify/sq_callback";//通知
$data['returnurl'] = $returl;
$data['mchAppId'] = "wmtxkj.com";
$data['mchAppName'] = "mchAppName";
$data['deviceInfo'] = "AND_WAP";
$data['clientIp'] = get_client_ip();
$ret = $sqpay->sq_pay($data);
$ret = json_decode($ret, true);
pp($ret);
$json_data['url']=$ret[0]['payHtml'];
echo ($json_data['url']);
exit();
}
/**
*ios移动支付
*/
@ -70,6 +30,11 @@ class AppleController extends BaseController{
if(!is_array(find_uc_account($request['account']))){
$this->set_message(0,"fail","Uc用户暂不支持");
}
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id'],'pay_status'=>1))->find();
if($extend_data){
@ -126,9 +91,18 @@ class AppleController extends BaseController{
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
C(api('Config/lists'));
if (empty($request)) {
echo json_encode(['code'=>0,'msg'=>'登录数据不能为空']);exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
echo json_encode(['code'=>0,'msg'=> $payCheck['msg']]);exit;
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
echo json_encode(['code'=>0,'msg'=>'该游戏暂时无法充值,请联系客服!']);exit;
@ -152,7 +126,10 @@ class AppleController extends BaseController{
$request['payway'] = 1;
$request['title']=$request['price'];
$request['body']=$request['price'];
$request['callback'] = 'http://'.$_SERVER['HTTP_HOST']. "/sdk.php/Spend/pay_success/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id'];
$request['notifyurl'] = 'http://'.$_SERVER['HTTP_HOST']. "/callback.php/Notify/notify/apitype/alipay/method/notify";
$pay_url=$this->pay($request);
//echo $pay_url['url'];die;
//redirect($pay_url['url']);
echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>$pay_url['url'],'wap'=>1]]);exit;
} else {/* app */
@ -339,6 +316,8 @@ class AppleController extends BaseController{
->setGameName(get_game_name($param['game_id']))
->setGameAppid($param['game_appid'])
->setServerId(0)
->setCallback($param['callback'])
->setNotifyUrl($param['notifyurl'])
->setGameplayerName($param['game_player_name'])
->setServerName($param['server_name'])
->setUserId($param['user_id'])
@ -366,10 +345,23 @@ class AppleController extends BaseController{
{
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
/*$request['user_id'] = 1;
$request['game_id'] = 1;
$request['price'] = 0.01;
$request['extend'] = 21111177;
$request['pay_order_number'] = 21111177;
$request['code'] =1;
*/
if (empty($request)) {
// $this->set_message(0, "fail", "登录数据不能为空");
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=> $payCheck['msg'])));exit;
}
C(api('Config/lists'));
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
@ -400,6 +392,7 @@ class AppleController extends BaseController{
if (get_wx_pay_type() == 0) {
$weixn = new Weixin();
$is_pay = json_decode($weixn->weixin_pay("充值", $request['pay_order_number'], $pay_amount, 'MWEB'), true);
if($is_pay['status']==1){
if($request['code']==1){
$this->add_spend($request,1);
@ -550,6 +543,11 @@ class AppleController extends BaseController{
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>$payCheck['msg'])));exit;
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'该游戏暂时无法充值,请联系客服!')));exit;
@ -628,6 +626,11 @@ class AppleController extends BaseController{
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'参数错误')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=> $payCheck['msg'])));exit;
}
C(api('Config/lists'));
$user_info = get_user_entity($request['user_id']);
if($user_info['lock_status'] == 0 || $user_info['check_status'] == 0){

@ -378,6 +378,7 @@ class BaseController extends RestController{
$data_spned['selle_ratio'] = get_game_selle_ratio($param["game_id"]);
$data_spned['server_id'] = $param["server_id"];
$data_spned['server_name'] = $param["server_name"];
$data_spned['game_player_id'] = $param["game_player_id"];
$data_spned['game_player_name'] = $param["game_player_name"];
$data_spned['promote_id'] = $user_entity["promote_id"];
$data_spned['promote_account'] = $user_entity["promote_account"];

@ -10,6 +10,7 @@ use Com\WechatAuth;
use App\Model\UserModel;
use App\Model\PointShopRecordModel;
use Qiniu\json_decode;
use Think\Log;
class UserController extends BaseController
{
@ -836,7 +837,7 @@ class UserController extends BaseController
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
$user = get_user_entity($request['user_id']);
if($user['lock_status'] == 0 || $user['check_status'] == 0){
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服!");
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服!2");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
@ -1186,20 +1187,15 @@ class UserController extends BaseController
$data["sdk_version"] = $request["sdk_version"];
$data['play_ip'] = get_client_ip();
$data['pipuid'] = $user_data['puid'];
if ($res['id']>0) {
$user_play -> save($data);
Log::write('save_user_play_info:' . date('Y-m-d H:i:s') . ' ---- ' . json_encode($data), 'INFO');
if ($res['id']>0) {
$user_play->save($data);
$this->updateLoginRecord($data);
} else {
$user_play -> add($data);
$user_play->add($data);
$this->updateLoginRecord($data);
}
$this -> set_message(200, "success", "成功");
@ -1215,7 +1211,6 @@ class UserController extends BaseController
*
*/
private function updateLoginRecord($userPlay) {
//var_dump($userPlay);die;
$map = array(
'game_id' => $userPlay['game_id'],
'user_id' => $userPlay['user_id'],
@ -1235,8 +1230,7 @@ class UserController extends BaseController
'id'=>$userLoginRecordData['id']
);
$userLoginRecordModel->save($data);
return $userLoginRecordModel->save($data);
}
@ -1981,7 +1975,7 @@ class UserController extends BaseController
$cardd = M('User', 'tab_') -> where(array('idcard' => $data['idcard'])) -> find();
if ($cardd) {
$this -> set_message(1087, "fail", "身份证号码已被使用!");
// $this -> set_message(1087, "fail", "身份证号码已被使用!"); // 去掉身份证唯一验证
}
@ -1990,9 +1984,9 @@ class UserController extends BaseController
if (C('tool_age.status') == 0) {
if (is_adult($data['idcard'])) {
$data['age_status'] = 2;
$data['age_status'] = 2; // 成年
} else {
$data['age_status'] = 3;
$data['age_status'] = 3; // 未成年
}
} else {

@ -12,6 +12,7 @@ use Org\SqpaySDK\Sqpay;
use Qiniu\json_decode;
use Think\Log;
class WapPayController extends BaseController{
private function pay($param=array()){
$table = $param['code'] == 1 ? "spend" : "deposit";
$user = get_user_entity($param['user_id']);
@ -91,19 +92,23 @@ class WapPayController extends BaseController{
*/
public function alipay_pay(){
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
file_put_contents(dirname(__FILE__) . '/alipay_paywap.txt',json_encode($request));
C(api('Config/lists'));
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){die('a');
if($game['pay_status'] == 0){
$this->set_message(0,"fail","该游戏暂时无法充值,请联系客服!");
}
if($request['code'] == 1){
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'pay_status'=>1,'game_id'=>$request['game_id']))->find();
if($extend_data){die('a');
if($extend_data){
$this->set_message(1089,"fail","订单号重复,请关闭支付页面重新支付");
}
}
@ -256,6 +261,12 @@ Log::write(serialize($request), Log::DEBUG);
$this->error("参数有误", '', true);
}
// 支付验证 是否让支付
$payCheck = pay_check($param['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$payInfo = M('pay_info', 'tab_')->where(array(
'user_id' => $param['user_id'],
'game_id' => $param['game_id']
@ -460,6 +471,11 @@ Log::write(serialize($request), Log::DEBUG);
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$user_id = $request['user_id'];
$game_id = $request['game_id'];
$data = array(
@ -483,16 +499,22 @@ Log::write(serialize($request), Log::DEBUG);
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
Log::write(serialize($request), Log::DEBUG);
$request['user_id'] = 232;
/* $request['user_id'] = 232;
$request['game_id'] = 78;
$request['price'] = 0.02;
$request['code'] = 1;
$request['extend'] = "SP_522992339581";
$request['pay_order_number'] = "SP_24522992339581";
$request['pay_order_number'] = "SP_24522992339581"; */
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'该游戏暂时无法充值,请联系客服!')));exit;
@ -541,11 +563,11 @@ Log::write(serialize($request), Log::DEBUG);
'status' => 'normal',
'create_time' => time(),
));
/* if($request['code']==1){
if($request['code']==1){
$this->add_spend($request,1);
}else{
$this->add_deposit($request);
} */
}
}
$this->assign("pay_amount", $request['actual_amount']);
@ -566,6 +588,11 @@ Log::write(serialize($request), Log::DEBUG);
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
C(api('Config/lists'));
if($request['price']*1<=0){
$this->set_message(1011,"fail","充值金额有误");
@ -817,6 +844,12 @@ Log::write(serialize($request), Log::DEBUG);
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
C(api('Config/lists'));
if($request['price']<0){
$this->set_message(1011,"fail","充值金额有误");
@ -860,6 +893,12 @@ Log::write(serialize($request), Log::DEBUG);
$request['extend'] = "11212452299229";
$request['pay_order_number'] = "11212452299229"; */
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
if (empty($request)) {
$this->set_message(1001, "fail","登录数据不能为空");
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,68 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = global || self, factory(global.zh = {}));
}(this, function (exports) { 'use strict';
var fp = typeof window !== "undefined" && window.flatpickr !== undefined
? window.flatpickr
: {
l10ns: {}
};
var Mandarin = {
weekdays: {
shorthand: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
longhand: [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
]
},
months: {
shorthand: [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月",
],
longhand: [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月",
]
},
rangeSeparator: " 至 ",
weekAbbreviation: "周",
scrollTitle: "滚动切换",
toggleTitle: "点击切换 12/24 小时时制"
};
fp.l10ns.zh = Mandarin;
var zh = fp.l10ns;
exports.Mandarin = Mandarin;
exports.default = zh;
Object.defineProperty(exports, '__esModule', { value: true });
}));
Loading…
Cancel
Save