Merge branch 'dev' of 47.111.118.107:/srv/git/platform into dev

master
ELF
commit 7ca07fb23d

@ -4,6 +4,7 @@ namespace Callback\Controller;
use Think\Controller;
use Common\Api\GameApi;
use Org\UcenterSDK\Ucservice;
use Think\Log;
/**
* 支付回调控制器
* @author 小纯洁
@ -54,6 +55,7 @@ class BaseController extends Controller {
$spend = M('Spend',"tab_");
$map['pay_order_number'] = $data['out_trade_no'];
$d = $spend->where($map)->find();
if(empty($d)){$this->record_logs("数据异常");return false;}
// 支付金额判断 by zgc
if ($d['pay_amount'] != $data['money']) {
@ -61,6 +63,63 @@ class BaseController extends Controller {
}
if($d['pay_status'] == 0){
// 处理绑币平台币优先处理
if ($d['deduction_amount'] > 0) {
$out_trade_no = "PF_" . date('Ymd') . date('His') . sp_random_string(4);
$bind_balance = M('user_play', 'tab_')->where(array(
'user_id' => $d['user_id'],
'game_id' => $d['game_id']
))->getField('bind_balance');
$request = $d;
$request['pay_order_number'] = $out_trade_no;
$request['price'] = $bind_balance;
$request['deduction_amount'] = 0;
$request['pay_way'] = -1;
$request['pay_status'] = 1;
if ($d['deduction_amount'] > $bind_balance)
$bb = 0;
else
$bb = $bind_balance - $d['deduction_amount'];
if ($bind_balance > 0) {
M('user_play', 'tab_')->where(array(
'user_id' => $d['user_id'],
'game_id' => $d['game_id']
))->save(array(
'bind_balance' => $bb
));
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
if ($bb == 0) {
$mbalance = $d['deduction_amount'] - $bind_balance;
if ($mbalance > 0) {
$request['pay_way'] = 0;
$request['pay_order_number'] = $request['pay_order_number']."_1";
$request['price'] = $mbalance;
$balance = M('user', 'tab_')->where(array(
'id' => $d['user_id'],
))->getField('balance');
if ($balance < $mbalance) { // 异常
$this->record_logs($mbalance."平台币余额不足".$balance);return false;
}
M('user', 'tab_')->where(array(
'id' => $d['user_id']
))->save(array(
'balance' => $balance - $mbalance,
));
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
}
}
$data_save['pay_status'] = 1;
$data_save['order_number'] = $data['trade_no'];
$map_s['pay_order_number'] = $data['out_trade_no'];
@ -464,4 +523,155 @@ class BaseController extends Controller {
fwrite($myfile, $txt);
fclose($myfile);
}
/**
*消费表添加数据
*/
public function add_spend($data,$type=0){
$spend = M("spend","tab_");
$spend_data = $this->spend_param($data);
$ordercheck = $spend->where(array('pay_order_number'=>$spend_data["pay_order_number"]))->find();
if($ordercheck)
{
if($type==1){
redirect(U('Spend/notice',array('user_id'=>$ordercheck['user_id'],'game_id'=>$ordercheck['game_id'],'msg'=>'订单已经存在,请刷新充值页面重新下单!')));exit;
}else{
$this->set_message(0,'fail',"订单已经存在,请刷新充值页面重新下单!");
}
}
// if(!is_check_apply_promote($spend_data['game_id'],$spend_data['promote_id'])){
// $spend_data['promote_id']=0;
// $spend_data['promote_account']="自然注册";
// }
$result = $spend->add($spend_data);
return $result;
}
/**
*消费记录表 参数
*/
private function spend_param($param=array()){
$user_entity = get_user_entity($param['user_id']);
$data_spned['user_id'] = $param["user_id"];
$data_spned['user_account'] = $user_entity["account"];
$data_spned['user_nickname'] = $user_entity["nickname"];
$data_spned['game_id'] = $param["game_id"];
$data_spned['game_appid'] = $param["game_appid"];
$data_spned['game_name'] = get_game_name($param["game_id"]);
$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_name'] = $param["game_player_name"];
$data_spned['promote_id'] = $user_entity["promote_id"];
$data_spned['promote_account'] = $user_entity["promote_account"];
$data_spned['order_number'] = $param["order_number"];
$data_spned['pay_order_number'] = $param["pay_order_number"];
$data_spned['props_name'] = $param["title"];
$data_spned['cost'] = $param["price"];//原价
$data_spned['deduction_amount'] = $param["deduction_amount"];// 抵扣价格
$data_spned['discount_amount'] = $param["discount_amount"];// 折扣价格
$data_spned['pay_time'] = NOW_TIME;
$data_spned['pay_status'] = $param["pay_status"];
$data_spned['pay_game_status'] = 0;
$data_spned['extend'] = $param['extend'];
$data_spned['pay_way'] = $param["pay_way"];
if($data_spned['pay_way'] != 7){
$discount = $this->get_discount($param['game_id'],$user_entity['promote_id'],$param['user_id']);
$data_spned['pay_amount'] = $param["price"] * $discount['discount']/10;//实付金额
$data_spned['discount_type'] = $discount['discount_type'];
}else{//苹果支付不计入折扣
$data_spned['pay_amount'] = $param["price"];
$data_spned['discount_type'] = 0;
}
if (isset($param['actual_amount']) && $param['actual_amount'])
$data_spned['pay_amount'] = $param['actual_amount']; // 实际支付价格
$data_spned['spend_ip'] = $param["spend_ip"];
$data_spned['sdk_version'] = $param["sdk_version"];
if($param['small_user_id'] != $param['user_id']) {
$data_spned['small_id'] = $param["small_user_id"];
$data_spned['small_account'] = get_user_account_by_id($param['small_user_id']);
}
return $data_spned;
}
/**
* 获取用户折扣
* @param $game_id 游戏ID
* @param $promote_id 渠道ID
* @param $user_id 用户ID
* @return mixed
*/
protected function get_discount($game_id,$promote_id,$user_id){
//获取折扣
$map['game_id'] = $game_id;
$map['promote_id'] =-1;
$map['status'] = 2;
$discount = M('Promote_welfare','tab_')->where($map)->find();
if(null==$discount){
$map['game_id'] = $game_id;
$map['promote_id'] = $promote_id == 0 ? 0 : -2;
$map['status'] = 2;
$discount = M('Promote_welfare','tab_')->where($map)->find();
}
$discount = discount_data($discount);
if(empty($discount)){
$res['discount'] = 10;
$res['discount_type'] = 0;//无折扣
return $res;
}
//判断用户是否为首冲
$where['game_id'] = $game_id;
$where['user_id'] = $user_id;
$where['pay_status'] = 1;
$data = M('bind_spend','tab_')->where($where)->find();
if(!empty($data) || !empty(M('spend','tab_')->where($where)->find())){
$res['discount'] = $discount['continue_discount'];//续冲
$res['discount_type'] = 2;
}else{
$res['discount'] = $discount['first_discount'];//首冲
$res['discount_type'] = 1;
}
return $res;
}
/**
*游戏返利
*$type 类型 1 非绑定平台币 2绑定平台币
*/
/* public function set_ratio($data,$type = 1){
$map['pay_order_number']=$data;
$map['pay_way'] = ($type==2) ? -1 : 0; // 判断支付类型
$spend=M("Spend","tab_")->where($map)->find();
$reb_map['game_id']=$spend['game_id'];
$time = time();
$reb_map['starttime'] = ['lt',$time];
$reb_map_str = "endtime > {$time} or endtime = 0";
switch ($spend['promote_id']) {
case 0:
$reb_map['promote_id'] = array('in','0,-1');
break;
default:
$reb_map['promote_id'] = array('in','1,-1');
break;
}
//如果是绑币则判断是否开启绑币返利
if($type == 2){$reb_map['bind_status'] = 1;}
$rebate=M("Rebate","tab_")->where($reb_map)->where($reb_map_str)->find();//
if (!empty($rebate)) {
if($rebate['money']>0 && $rebate['status']==1){
if($spend['pay_amount']>=$rebate['money']){
$this->compute($spend,$rebate);
}else{
return false;
}
}else{
$this->compute($spend,$rebate);
}
}else{
return false;
}
} */
}

@ -15,15 +15,12 @@ use Sdk\Controller\Ipa365Controller;
*/
class NotifyController extends BaseController
{
/**
*通知方法
*/
public function notify()
{
C(api('Config/lists'));
$apitype = I('get.apitype');#获取支付api类型
@ -61,14 +58,13 @@ class NotifyController extends BaseController
if ($apitype == "swiftpass") {
$apitype = "weixin";
}
$pay = new \Think\Pay($pay_way, C($apitype));
if ($pay->verifyNotify($notify)) {
//获取回调订单信息
$order_info = $pay->getInfo();
Log::write(serialize($order_info), Log::DEBUG);
if ($order_info['status']) {
$pay_where = substr($order_info['out_trade_no'], 0, 2);
@ -96,7 +92,7 @@ class NotifyController extends BaseController
case 'TB':
$result = $this->set_balance($order_info);
$to_balance = 'http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/PromoteCoin/lists';
$to_balance = 'http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/PromoteCoin/lists';
break;
case 'BR':

@ -773,14 +773,20 @@ function get_all_toppromote()
}
//获取sdk类型名称
function getSDKTypeName($sdkType)
function getSDKTypeName($sdkType, $chinese = false)
{
$android = 'Android';
if ($chinese) {
$android = '安卓';
}
switch ($sdkType) {
case 0:
$sdkName = 'Android+ios';
$sdkName = $android . '+ios';
break;
case 1:
$sdkName = 'Android';
$sdkName = $android;
break;
case 2:
$sdkName = 'ios';

@ -128,22 +128,27 @@ class CoinOrderController extends BaseController
$data['order_status'] = 0;
}else{
$data['pay_amount'] = $coin_num;
$collection_account = I("collection_account");
$collection_account = I("collection_account","");
$pay_order_number = I("pay_order_number");
if($collection_account==''){
/*if($collection_account==''){
$this->ajaxReturn(['status'=>0,'info'=>'请选择汇入银行','time'=>1000],"JSON");
}
}*/
if($pay_order_number==''){
$this->ajaxReturn(['status'=>0,'info'=>'请输入支付凭证','time'=>1000],"JSON");
}
$res = $this->upload();
//$res = $this->upload();
$res = $this->uploadPicture();
if($res['status']==0){
$this->ajaxReturn(['status'=>0,'info'=>'请选择支付截图','time'=>1000],"JSON");
}
if($res['error']==1){
$this->ajaxReturn(['status'=>0,'info'=>$res['msg'],'time'=>1000],"JSON");
}
$data['collection_account'] = $collection_account;
$data['pay_order_number'] = $pay_order_number;
$data['remark'] = I("remark");
$data['voucher_img'] = $res['path'];
$data['voucher_img'] = $res['id'];
$data['order_status'] = 2;
$data['pay_way'] = 3;
}
@ -366,12 +371,16 @@ class CoinOrderController extends BaseController
return $ret;
}
public function upload(){
header("content-type:text/html;charset=utf-8");
//设置时区
#date_default_timezone_set('PRC');
//获取文件名
$filename = $_FILES['file']['name'];
if(!$filename){
return array("error"=>1,"msg"=>"请选择支付截图");
}
//获取文件临时路径
$temp_name = $_FILES['file']['tmp_name'];
//获取大小
@ -408,6 +417,36 @@ class CoinOrderController extends BaseController
}
}
/**
* 上传图片
* @author huajie <banhuajie@163.com>
*/
public function uploadPicture(){
/* 返回标准数据 */
$result = array('status' => 1, 'info' => '上传成功', 'data' => '');
/* 调用文件上传组件上传文件 */
$Picture = D('Picture');
$pic_driver = C('PICTURE_UPLOAD_DRIVER');
$info = $Picture->upload(
$_FILES,
C('PICTURE_UPLOAD'),
C('PICTURE_UPLOAD_DRIVER'),
C("UPLOAD_{$pic_driver}_CONFIG")
); //TODO:上传到远程服务器
/* 记录图片信息 */
if($info){
$result['status'] = 1;
$result = array_merge($info['voucher_img'], $result);
} else {
$result['status'] = 0;
$result['info'] = $Picture->getError();
}
ob_clean();
return $result;
}
public function echo_pay_qrcode($trade_no,$real_amont,$pay_amount,$qrcode_url,$type='1'){
if($type==1){
$tips = '请使用支付宝扫描二维码以完成支付';

File diff suppressed because it is too large Load Diff

@ -65,7 +65,7 @@
<select class="reselect select_gallery" name="collection_account">
<option value="" title="暂未开放 暂未开放" acountesc="">暂未开放 暂未开放</option>
<volist name="bank_list" id="bank">
<option value="{$bank.bank_account}" title="{$bank.bank}" acountesc="账户名称:{$bank.bank_name}<br/>汇入账户:{$bank.bank_account}<br/>开户行:{$bank.bank_name}">{$bank.bank}</option>
<option value="{$bank.bank_account}" title="{$bank.bank}" acountesc="账户名称:{$bank.account_name}<br/>汇入账户:{$bank.bank_account}<br/>开户行:{$bank.bank_name}">{$bank.bank}</option>
</volist>
</select>
<div id="acountesc"></div>
@ -165,7 +165,7 @@
function save_model() {
var formElement = document.querySelector("#payform");
var formData = new FormData(formElement);
formData.append("file",$("input[name=voucher_img]")[0].files[0])
formData.append("voucher_img",$("input[name=voucher_img]")[0].files[0])
jQuery.ajax({
type: 'POST',
url:'index.php?s=/Home/CoinOrder/order_add.html',
@ -177,13 +177,14 @@
contentType: false, //必须
success: function (result) {
if (result.status==1){
location.reload();
if(result.pay_type==1){
//op_w('index.php?s=/Home/CoinOrder/pay_center.html&trade_no='+result.trade_no)
window.open('index.php?s=/Home/CoinOrder/pay_center.html&trade_no='+result.trade_no,"_blank");
/*$.ajax().then(res=>{
box.location = res
})*/
location.reload();
}else{
layer.alert(result.info,function () {
parent.layer.closeAll();
location.reload();
});
}
}else{
layer.alert(result.info);

@ -159,6 +159,16 @@
</div>
</div>
</div>
<if condition="$order_info.pay_type eq 2">
<div class="tab detailed-box">
<div class="tr">
<label class="detailed-title detailed-label">支付截图:</label>
<div class="detailed-content-box">
<span><img src="{$order_info.voucher_img|get_cover='path'}" height="auto" width="250px" style="cursor: pointer" onclick="javascript:window.open('{$order_info.voucher_img|get_cover=\'path\'}','_blank')"></span>
</div>
</div>
</div>
</if>
<if condition="$order_info.pay_type eq 2">
<div class="tab detailed-box">
<div class="tr">

@ -0,0 +1,593 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.3" rel="stylesheet">
<link href="__CSS__/game_detailed.css" rel="stylesheet">
</block>
<block name="body">
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.selected-color {
color: #2bd8ed;
}
.pointer-hand {
cursor: pointer;
}
.icon-spend {
position: relative;
font-size: 1.2rem;
top: 3px;
float: right;
right: 10px;
}
.th-hide {
display: none;
}
.btn {
width: auto;
padding-left: 15px;
padding-right: 15px;
}
</style>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>数据汇总</span></div>
</div>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">数据汇总</span>
<span class="details">说明:默认展示旗下各子渠道的全部数据</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="tab normal_tab">
</div>
<!-- <form action="{:U('Query/summary')}" method="get" enctype="multipart/form-data" class="normal_form"> -->
<if condition="$thisParentPromoteId eq 0">
<div class="form-group normal_space fl">
<select id="team_leader_id" name="team_leader_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">组长账号</option>
<volist name=":getAllPromoteListByType(2)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</if>
<eq name="pID|isMinPromote" value="0">
<div class="form-group normal_space fl">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">推广员账号</option>
<volist name=":getAllPromoteListByType(3)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</eq>
<div class="form-group normal_space fl">
<select id="relation_game_id" name="relation_game_id" class="reselect select_gallery">
<option value="">请选择游戏</option>
<volist name=":get_promote_serach_game()" id="vo">
<option value="{$vo.relation_game_id}" title="{$vo.relation_game_name}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="server_id" name="server_id" class=" reselect select_gallery">
<option value="">请选择区服</option>
<volist name="serverData" id="vo">
<option value="{$vo.id}">{$vo.server_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" readonly id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{$initBegTime}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" readonly id="edate" class="txt" name="endtime" placeholder="结束时间" value="{$initEndTime}">
</div>
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' url="{:U('Query/dailySummary','model='.$model['name'],false)}"
value="查询">
</div>
<div class="form-group normal_space fl" style="margin-left: 60px;">
<label style="line-height: 34px;cursor: pointer;" id="own">
<i class="iconfont {:empty(I('own_id'))?'iconfangxingweixuanzhong':'iconfangxingxuanzhongfill selected-color'}"
style="font-size: 1.5rem;position: relative;top: 3px;margin-right: 2px;"></i>本账号
<input type="hidden" name="own_id" id="own_id" value="{:empty(I('own_id'))?0:I('own_id')}"/>
</label>
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
<!-- </form> -->
</div>
<div class="tab marg_top20" style="clear:both;display: flex;">
<div style="display: flex;">
<div class="btn btn-role highlight" data-type="1">
<p>创角数|创角用户</p>
</div>
<div class="btn btn-role" style="border-left: 0;border-right: 0;" data-type="2">
<p>新创角用户|设备</p>
</div>
<div class="btn btn-role" data-type="3">
<p>充值人数|充值总额</p>
</div>
</div>
</div>
</div>
<div id="chart_box" class="trunk-content" style="width: calc(100% - 40px);height: 400px;"></div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>日期</th>
<th class="pointer-hand" title="创角数:统计时间范围内,成功创建角色数量(唯一)">创角数</th>
<th class="pointer-hand" title="创角用户:统计时间范围内,成功创角的用户数(去重)">创角用户</th>
<th class="pointer-hand" title="新创角用户当日24小时首次创建角色的用户数; 新创角设备当日24小时首次创建角色设备总数去重;">新创角用户|新创角设备
</th>
<th class="pointer-hand" title="新增创角IP统计时间范围内首次创建角色IP总数去重">新增创角IP</th>
<th class="pointer-hand" title="登录用户数:统计时间范围内,登录的用户数(去重)">登录用户数</th>
<th class="pointer-hand" title="充值人数:统计时间范围内,支付成功且处理成功的游戏充值订单用户数(去重)">充值人数</th>
<th class="pointer-hand" title="充值次数:统计时间范围内,游戏充值成功订单数">充值次数</th>
<th class="pointer-hand spend-btn" title="充值总额:统计时间范围内,在游戏内充值成功的订单金额总和" style="width: 200px;">充值总额<i
class="iconfont iconplus-square icon-spend"></i></th>
<th class="pointer-hand spend-element th-hide" title="现金充值:统计时间范围内,在游戏内充值成功的订单,使用现金支付金额总和">现金充值</th>
<th class="pointer-hand spend-element th-hide" title="通用币充值:统计时间范围内,在游戏内充值成功的订单,使用通用币支付金额总和">通用币充值</th>
<th class="pointer-hand spend-element th-hide" title="绑定币充值:统计时间范围内,在游戏内充值成功的订单,使用绑定币支付金额总和">绑定币充值</th>
<th class="pointer-hand spend-element th-hide" title="折扣币充值:统计时间范围内,在游戏内充值成功的订单,使用折扣币支付金额总和,该部分不参与结算">
折扣币充值
</th>
<th class="pointer-hand spend-element th-hide" title="代金劵使用:统计时间范围内,在游戏内充值成功的订单,使用代金券金额总和,该部分不参与结算">
代金劵使用
</th>
</tr>
<empty name="listData">
<tr class="num2">
<td colspan="15" style="text-align: center;height: 45vh;">
<img src="__IMG__/20180207/icon_wushujv2.png"/>
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<else/>
<tr class="num2">
<td>合计</td>
<td>--</td>
<td>--</td>
<td>--|--</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>{$allData.spend_num}</td>
<td>{$allData.spend_all_amount}</td>
<td class="spend-element th-hide">{$allData.spend_cash}</td>
<td class="spend-element th-hide">{$allData.spend_generic}</td>
<td class="spend-element th-hide">{$allData.spend_binding}</td>
<td class="spend-element th-hide">{$allData.spend_discount}</td>
<td class="spend-element th-hide">{$allData.spend_voucher}</td>
</tr>
<volist name="listData" id="vo">
<tr class="num2">
<td>{$vo.day}</td>
<td>{$vo.role_num}</td>
<td>{$vo.user_num}</td>
<td>{$vo.new_user_num}|{$vo.new_device_num}</td>
<td>{$vo.new_ip_num}</td>
<td>{$vo.login_user_num}</td>
<td>{$vo.spend_user_num}</td>
<td>{$vo.spend_num}</td>
<td>{$vo.spend_all_amount}</td>
<td class="spend-element th-hide">{$vo.spend_cash}</td>
<td class="spend-element th-hide">{$vo.spend_generic}</td>
<td class="spend-element th-hide">{$vo.spend_binding}</td>
<td class="spend-element th-hide">{$vo.spend_discount}</td>
<td class="spend-element th-hide">{$vo.spend_voucher}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div style="margin-bottom: 150px;">
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script src="https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts.min.js"></script>
<script type="text/javascript">
var dateData = [];
var roleNum = [];
var userNum = [];
var newUserNum = [];
var newDeviceNum = [];
var spendUserNum = [];
var spendAllAmount = [];
<?php foreach($summaryData['date'] as $value) {?>
dateData.push('<?=$value?>');
<?php }?>
<?php foreach($summaryData['role_num'] as $value) {?>
roleNum.push(<?=$value?>);
<?php }?>
<?php foreach($summaryData['user_num'] as $value) {?>
userNum.push(<?=$value?>);
<?php }?>
<?php foreach($summaryData['new_user_num'] as $value) {?>
newUserNum.push(<?=$value?>);
<?php }?>
<?php foreach($summaryData['new_device_num'] as $value) {?>
newDeviceNum.push(<?=$value?>);
<?php }?>
<?php foreach($summaryData['spend_user_num'] as $value) {?>
spendUserNum.push(<?=$value?>);
<?php }?>
<?php foreach($summaryData['spend_all_amount'] as $value) {?>
spendAllAmount.push(<?=$value?>);
<?php }?>
setChart(1);
function setChart(dataType) {
var data1 = [];
var data2 = [];
var dataName1 = '';
var dataName2 = '';
var chartBox = echarts.init(document.getElementById('chart_box'));
switch (dataType) {
case 1:
data1 = roleNum;
data2 = userNum;
dataName1 = '创角数';
dataName2 = '创角用户';
break;
case 2:
data1 = newUserNum;
data2 = newDeviceNum;
dataName1 = '新创角用户';
dataName2 = '新创角设备';
break;
case 3:
data1 = spendUserNum;
data2 = spendAllAmount;
dataName1 = '充值人数';
dataName2 = '充值总额';
break;
}
option = {
title: {
text: "",
x: 'center',
y: 'top',
textStyle:
{
color: '#fff',
fontSize: 13
}
},
tooltip: {
trigger: 'axis'
},
grid: {
left: '3%',
right: '8%',
bottom: '5%',
top: "13%",
containLabel: true
},
color: ["#72b332", '#35a9e0'],
legend: {
data: [dataName1, dataName2],
show: true,
right: '46%',
y: "0",
textStyle: {
color: "#999",
fontSize: '13'
},
},
toolbox: {
show: false,
feature: {
mark: {show: true},
dataView: {show: true, readOnly: false},
magicType: {show: true, type: ['line', 'bar', 'stack', 'tiled']},
restore: {show: true},
saveAsImage: {show: true}
}
},
calculable: true,
xAxis: [
{
type: 'category',
boundaryGap: true,
data: dateData,
splitLine: {
show: false,
lineStyle: {
color: '#2eb383'
}
},
axisLabel: {
textStyle: {
color: "#808080"
},
alignWithLabel: true,
interval: 1,
},
axisLine: {
lineStyle: {
color: '#2eb383',
}
},
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value',
splitLine: {
show: false,
lineStyle: {
color: '#2eb383'
}
},
axisLabel: {
textStyle: {
color: "#808080"
}
},
axisLine: {
lineStyle: {
color: '#fff',
}
},
min: 0
}
],
series: [
{
name: dataName1,
type: 'line',
smooth: true,
symbol: 'circle',
data: data1
},
{
name: dataName2,
type: 'line',
smooth: true,
symbol: 'circle',
data: data2
}
],
};
chartBox.setOption(option);
}
$().ready(function () {
setValue('team_leader_id', {$Think.request.team_leader_id |default = '""'});
setValue('promote_id', {$Think.request.promote_id |default = '""'});
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
setValue('server_id', {$Think.request.server_id |default = '""'});
setValue('row', '{:I("get.row",10)}');
$('#own').on('click', function () {
var ownId = $('#own_id').val();
var checkBox = $(this).children('i');
if (ownId > 0) {
checkBox.removeClass('iconfangxingxuanzhongfill');
checkBox.removeClass('selected-color');
checkBox.addClass('iconfangxingweixuanzhong');
$('#own_id').val(0);
} else {
checkBox.removeClass('iconfangxingweixuanzhong');
checkBox.addClass('iconfangxingxuanzhongfill');
checkBox.addClass('selected-color');
$('#own_id').val({$pID});
}
});
$('.spend-btn').on('click', function () {
var element = $(this).find('i');
if (element.hasClass('iconplus-square')) {
element.removeClass('iconplus-square');
element.addClass('iconminus-square');
$('.spend-element').removeClass('th-hide');
} else {
element.removeClass('iconminus-square');
element.addClass('iconplus-square');
$('.spend-element').addClass('th-hide');
}
});
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('.btn-role').on('click', function () {
var thisElement = $(this);
if (!thisElement.hasClass('highlight')) {
var dataType = thisElement.attr('data-type');
$('.btn-role').removeClass('highlight');
thisElement.addClass('highlight');
setChart(parseInt(dataType));
}
});
$('#submit').click(function () {
var sdate = Date.parse($('#sdate').val()) / 1000;
var edate = Date.parse($('#edate').val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过30天请重新选择日期');
return false;
}
var url = $(this).attr('url');
console.log(url);
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$('#relation_game_id').change(function () {
var relationGameId = $(this).val();
var sdkVersion = $('#sdk_version').val();
getServerList(relationGameId, sdkVersion);
});
$('#sdk_version').change(function () {
var sdkVersion = $(this).val();
var relationGameId = $('#relation_game_id').val();
getServerList(relationGameId, sdkVersion);
});
function getServerList(relationGameId, sdkVersion) {
$.ajax({
url: "{:U('getServerAjax')}",
type: "post",
data: {relation_game_id: relationGameId, sdk_version: sdkVersion},
dataType: 'json',
success: function (data) {
var html = "<option value='' selected>请选择区服</option>";
if (data.status == 1) {
var serverData = data.data;
if (serverData.length > 0) {
for (var i in serverData) {
html += "<option value='" + serverData[i]['id'] + "'>" + serverData[i]['server_name'] + "</option>";
}
}
}
$("#server_id").empty();
$('#server_id').html(html);
$("#server_id").select2();
}
})
}
$(".select_gallery").select2();
});
</script>
</block>

@ -1,213 +1,358 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet" >
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.2" rel="stylesheet">
</block>
<block name="body">
<style>
@media screen and (max-width: 1500px) {
.normal_form{padding-top: 45px;}
.trunk-search .normal_txt {width: 100px}
.select2-container--default .select2-selection--single {width: 125px;}
.trunk-search .select-time .txt{width: 100px;}
.form-group .submit{width: 55px;}
}
</style>
<div class="page-search normal_list query-recharge-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>充值明细</span></div>
</div>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">充值明细</span>
<span class="details">对所有渠道用户玩家产生的充值信息,进行记录的功能</span>
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.normal_space {
margin-left: 0;
margin-right: 10px;
margin-bottom: 10px;
}
.selected-color {
color: #2bd8ed;
}
.pointer-hand {
cursor: pointer;
}
.icon-spend {
position: relative;
font-size: 1.2rem;
top: 3px;
float: right;
right: 10px;
}
</style>
<div class="page-search normal_list query-recharge-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>充值明细</span></div>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="tab normal_tab">
<!-- <a href="{:U('Query/recharge')}" class=" <eq name='Think.get.version' value=''>current</eq>">全部</a> -->
<a href="{:U('Query/recharge',['version'=>1])}" class="normal_change <if condition='I("request.version",1) == 1'> current</if>">常规消费</a>
<a href="{:U('Query/recharge',['version'=>2])}" class="normal_change wxnavbtn <eq name='Think.get.version' value='2'>current</eq>">绑币消费</a>
</div>
<form action="{:U('Query/recharge',['version'=>I("request.version",1),'row'=>I("get.row")])}" method="post" enctype="multipart/form-data" class="normal_form">
<div class="form-group normal_space fr">
<input type="submit" class="submit" id='submit' value="查询">
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title">充值时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="time_start" placeholder="开始时间" value="{:I('time_start')}" >
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="time_end" placeholder="结束时间" value="{:I('time_end')}">
</div>
</div>
<div class="form-group normal_space fr">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option game-id="0" value="0">推广员账号</option>
<option game-id="{:session('promote_auth.pid')}" value="{:session('promote_auth.pid')}">自己</option>
<volist name=":get_promote_chlid_account(PID)" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fr">
<select id="game_id" name="game_appid" class="reselect select_gallery">
<option game-id="0" value="0">请选择游戏</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.game_appid}" value="{$vo.id}" >{$vo['game_name']}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fr">
<input type="text" name="order_number" class="txt normal_txt" placeholder="请输入订单号" value="{:I('order_number')}">
</div>
<div class="form-group normal_space fr">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group fr">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
</form>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">充值明细</span>
<span class="details">对所有渠道用户玩家产生的充值信息,进行记录的功能</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/recharge',['version'=>I(" request.version
",1),'row'=>I("get.row")])}" method="post" enctype="multipart/form-data" class="normal_form">
<div class="form-group normal_space fl">
<select id="relation_game_id" name="relation_game_id" class="reselect select_gallery">
<option value="">请选择游戏</option>
<volist name=":get_promote_serach_game()" id="vo">
<option value="{$vo.relation_game_id}" title="{$vo.relation_game_name}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="server_id" name="server_id" class=" reselect select_gallery">
<option value="">请选择区服</option>
<volist name="serverData" id="vo">
<option value="{$vo.id}">{$vo.server_name}</option>
</volist>
</select>
</div>
<div class="form-group fl">
<input type="text" name="game_player_name" class="txt normal_txt" placeholder="请输入角色名"
value="{:I('game_player_name')}">
</div>
<div class="form-group fl">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号"
value="{:I('user_account')}">
</div>
<if condition="$thisParentPromoteId eq 0">
<div class="form-group normal_space fl">
<select id="team_leader_id" name="team_leader_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">组长账号</option>
<volist name=":getAllPromoteListByType(2)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</if>
<eq name="pID|isMinPromote" value="0">
<div class="form-group normal_space fl">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">推广员账号</option>
<volist name=":getAllPromoteListByType(3)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</eq>
<div class="form-group normal_space fl">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{:I('begtime')}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="endtime" placeholder="结束时间" value="{:I('endtime')}">
</div>
</div>
<div class="form-group normal_space fl">
<input type="text" name="order_number" class="txt normal_txt" placeholder="请输入订单号"
value="{:I('order_number')}">
</div>
<div class="form-group normal_space fl">
<select id="pay_way" name="pay_way" class="reselect select_gallery" style="min-width:130px;">
<option value="">支付方式</option>
<volist name="payWayData" id="vo" key="k">
<if condition="$k eq I('pay_way')">
<option value="{$k}" selected>{$vo}</option>
<else/>
<option value="{$k}">{$vo}</option>
</if>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' value="查询">
</div>
<div class="form-group normal_space fl" style="margin-left: 60px;">
<label style="line-height: 34px;cursor: pointer;" id="own">
<i class="iconfont {:empty(I('own_id'))?'iconfangxingweixuanzhong':'iconfangxingxuanzhongfill selected-color'}" style="font-size: 1.5rem;position: relative;top: 3px;margin-right: 2px;"></i>本账号
<input type="hidden" name="own_id" id="own_id" value="{:empty(I('own_id'))?0:I('own_id')}" />
</label>
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
</form>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>ID</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="list_data">
<tr><td colspan="10" 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="list_data" id="s" mod="2">
<tr class="<eq name='mod' value='1'>odd</eq>">
<td>{$s.id}</td>
<td>{$s.user_account}<gt name="s.small_id" value="0"><neq name="s.small_id" value="$s.user_id">{$s.small_account}</neq></gt></td>
<td>{$s.game_player_name}</td>
<td>{$s.pay_order_number}</td>
<td title="{$s['game_name']}">{:msubstr2($s['game_name'],0,10)}</td>
<td>{$s.server_name}</td>
<td>{$s.cost}</td>
<td>{$s.pay_amount}</td>
<td>{$s.pay_time|date="Y-m-d H:i:s",###}</td>
<td>
{:get_pay_way($s['pay_way'])}
<!-- <switch name='s.pay_way'>
<case value="0">平台币</case>
<case value="1">支付宝</case>
<case value="2">微信()</case>
</switch> -->
</td>
<td>{$s.promote_account}</td>
<td>
<a href="{:U('Query/viewSpendDetailed',array('id'=>$s['id']))}" style="cursor: pointer" class="chakan">查看详细</a>
<tr class="odd">
<th>玩家账号</th>
<th>游戏订单</th>
<th>订单金额</th>
<th>支付方式</th>
<th>游戏名称</th>
<th>区服</th>
<th>角色名</th>
<empty name="ownId">
<th>组长</th>
<th>推广员</th>
</empty>
<th>付款时间</th>
<th>操作</th>
</tr>
<empty name="listData">
<tr class="num2">
<td colspan="10" 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="listData" id="vo">
<tr class="num2">
<td>{$vo.user_account}</td>
<td>{$vo.order_number}</td>
<td>{$vo.pay_amount}</td>
<td>{:get_pay_way($vo['pay_way'])}</td>
<td>{$vo.game_name}</td>
<td>{$vo.server_name}</td>
<td>{$vo.game_player_name}</td>
<empty name="ownId">
<empty name="vo.pro_grand_id">
<td>{$vo.pro_account}({$vo.pro_real_name})</td>
<td></td>
<else/>
<td></td>
<td>{$vo.pro_account}({$vo.pro_real_name})</td>
</empty>
</empty>
<td>{$vo.pay_time|date='Y-m-d H:i:s',###}</td>
<td>
<a href="{:U('Query/viewSpendDetailed',array('id'=>$vo['id']))}" style="cursor: pointer"
class="chakan">查看详细</a>
</td>
</tr>
</volist>
<tr class="summary">
<td colspan="10">应付总计:¥{$total_cost|default=0},实付总计:¥{$total_amount|default=0}</td>
</tr>
</empty>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/expUser',array(
'id'=>4,
'user_account'=>I('user_account'),
'game_appid'=>I('game_appid'),
'time-start'=>I('time_start'),
'time-end'=>I('time_end'),
'start'=>I('start'),
'end'=>I('end'),
'promote_id'=>I('promote_id'),
'version'=>$_REQUEST['version'],'xlsname'=>'数据管理_充值明细'.(I('version',1)==2?'_绑币消费':'_常规消费')
))}" >导出</a>
{$_page}
</div>
{$_page}
</div>
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
setValue('promote_id',{$Think.request.promote_id|default=0});
setValue('game_appid',{$Think.request.game_appid|default=0});
setValue('row','{:I("get.row",10)}');
$().ready(function(){
$("#pagehtml a").on("click",function(event){
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action',geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
$('#submit').click(function(){
var sdate =$('#sdate').val();
var edate =$('#edate').val();
// if(sdate =='' || edate==''){
// layer.msg('请完整时间搜索框');
// return false;
// }
if(Date.parse(sdate) > Date.parse(edate)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
setValue('server_id', {$Think.request.server_id |default = '""'});
setValue('team_leader_id', {$Think.request.team_leader_id |default = '""'});
setValue('promote_id', {$Think.request.promote_id |default = 0});
setValue('row', '{:I("get.row",10)}');
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#own').on('click',function () {
var ownId = $('#own_id').val();
var checkBox = $(this).children('i');
if (ownId > 0) {
checkBox.removeClass('iconfangxingxuanzhongfill');
checkBox.removeClass('selected-color');
checkBox.addClass('iconfangxingweixuanzhong');
$('#own_id').val(0);
} else {
checkBox.removeClass('iconfangxingweixuanzhong');
checkBox.addClass('iconfangxingxuanzhongfill');
checkBox.addClass('selected-color');
$('#own_id').val({$pID});
}
});
$('#relation_game_id').change(function () {
var relationGameId = $(this).val();
var sdkVersion = $('#sdk_version').val();
getServerList(relationGameId, sdkVersion);
});
$('#sdk_version').change(function () {
var sdkVersion = $(this).val();
var relationGameId = $('#relation_game_id').val();
getServerList(relationGameId, sdkVersion);
});
function getServerList(relationGameId, sdkVersion)
{
$.ajax({
url: "{:U('getServerAjax')}",
type: "post",
data: {relation_game_id: relationGameId,sdk_version:sdkVersion},
dataType: 'json',
success: function (data) {
var html = "<option value='' selected>请选择区服</option>";
if (data.status == 1) {
var serverData = data.data;
if (serverData.length > 0) {
for (var i in serverData) {
html += "<option value='" + serverData[i]['id'] + "'>" + serverData[i]['server_name'] + "</option>";
}
}
}
$("#server_id").empty();
$('#server_id').html(html);
$("#server_id").select2();
}
})
}
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
});
$(".select_gallery").select2();
$('#edate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
});
</script>
$('#submit').click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
// if(sdate =='' || edate==''){
// layer.msg('请完整时间搜索框');
// return false;
// }
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
});
$(".select_gallery").select2();
});
</script>
</block>

@ -1,171 +1,213 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css" rel="stylesheet">
<style>
.selected-color {
color: #2bd8ed;
}
.pointer-hand {
cursor: pointer;
}
.icon-spend {
position: relative;
font-size: 1.2rem;
top: 3px;
float: right;
right: 10px;
}
</style>
</block>
<block name="body">
<div class="page-search normal_list query-register-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>注册明细</span></div>
</div>
<img src="__IMG__/20180207/icon_zhuce.png">
<span class="title_main">注册明细</span>
<span class="details">对所有渠道用户玩家产生的注册信息,进行记录的功能</span>
<div class="page-search normal_list query-register-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>注册明细</span></div>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/register',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space fr">
<input type="submit" class="submit" value="查询">
</div>
<div class="form-group normal_space fr">
<label class="form-title select-title">注册时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" autocomplete="off" name="time_start" placeholder="开始时间" value="{:I('time_start')}" >
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" autocomplete="off" name="time_end" placeholder="结束时间" value="{:I('time_end')}">
</div>
</div>
<div class="form-group normal_space fr">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:170px;">
<option game-id="0" value="0">请选择推广员</option>
<option game-id="{:session('promote_auth.pid')}" value="{:session('promote_auth.pid')}">自己</option>
<volist name=":get_promote_chlid_account(PID)" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fr">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group fr">
<input type="text" name="user_account" class="txt normal_txt" id="uid" style="width:128px;" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
</form>
<img src="__IMG__/20180207/icon_zhuce.png">
<span class="title_main">注册明细</span>
<span class="details">对所有渠道用户玩家产生的注册信息,进行记录的功能</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/register',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<if condition="$thisParentPromoteId eq 0">
<div class="form-group normal_space fl">
<select id="team_leader_id" name="team_leader_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">组长账号</option>
<volist name=":getAllPromoteListByType(2)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</if>
<eq name="pID|isMinPromote" value="0">
<div class="form-group normal_space fl">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">推广员账号</option>
<volist name=":getAllPromoteListByType(3)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</eq>
<div class="form-group fl">
<input type="text" name="account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号"
value="{:I('account')}">
</div>
<div class="form-group normal_space fl">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{:I('begtime')}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="endtime" placeholder="结束时间" value="{:I('endtime')}">
</div>
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' value="查询">
</div>
<div class="form-group normal_space fl" style="margin-left: 60px;">
<label style="line-height: 34px;cursor: pointer;" id="own">
<i class="iconfont {:empty(I('own_id'))?'iconfangxingweixuanzhong':'iconfangxingxuanzhongfill selected-color'}" style="font-size: 1.5rem;position: relative;top: 3px;margin-right: 2px;"></i>本账号
<input type="hidden" name="own_id" id="own_id" value="{:empty(I('own_id'))?0:I('own_id')}" />
</label>
</div>
</form>
</div>
<div class="page-list query-register-list">
</div>
<div class="page-list query-register-list">
<div class="trunk-content article">
<div class="trunk-list list_normal" style="">
<table class="table normal_table">
<tr class="odd">
<th>ID</th>
<th>玩家账号</th>
<th>游戏名称</th>
<th>区服</th>
<th>设备号</th>
<th>设备类型</th>
<th>注册时间</th>
<th>注册IP</th>
<th>推广员账号</th>
<th>操作</th>
</tr>
<empty name="list_data">
<tr><td colspan="7" 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="list_data" id="vo" mod="2">
<tr class="<eq name='mod' value='1'>odd</eq>">
<!-- <td>{$i+($p-1)*10}</td> -->
<td>{$vo.id}</td>
<div class="trunk-list list_normal" style="">
<table class="table normal_table">
<tr class="odd">
<th>玩家账号</th>
<th>推广账号</th>
<th>设备IMIE/IDFA</th>
<th>注册时间</th>
<th>注册IP</th>
<th>最近登录时间</th>
<th>最近登陆IP</th>
<th>操作</th>
</tr>
<empty name="listData">
<tr class="num2">
<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="listData" id="vo">
<tr class="num2">
<td>{$vo.account}</td>
<td>{$vo.fgame_name}</td>
<td>
<notempty name="vo.server_name">
{$vo.server_name}
<else/>
--
</notempty>
</td>
<td>{$vo.pkey}</td>
<td>{:getSDKTypeName($vo['sdk_version'])}</td>
<td>{$vo.promote_account}({$vo.pro_real_name})</td>
<td>{$vo.device_number}</td>
<td>{$vo.register_time|date='Y-m-d H:i:s',###}</td>
<td>{$vo.register_ip}</td>
<td>{$vo['promote_account']}<if condition="PLEVEL eq 0">{:get_parent_promote_($vo['promote_id'])}</if></td>
<td>{$vo.new_login_time}</td>
<td>{$vo.new_login_ip}</td>
<td>
<a href="{:U('Query/viewRole',array('id'=>$vo['id']))}" style="cursor: pointer" class="chakan">查看角色</a>
<a href="{:U('Query/viewRole',array('id'=>$vo['id']))}" style="cursor: pointer"
class="chakan">查看角色</a>
</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/expUser',array(
'id'=>6,
'account'=>I('post.user_account'),
'promote_id'=>I('post.promote_id'),
'game_appid'=>I('post.game_appid'),
'time_start'=>I('post.time_start'),
'time_end'=>I('post.time_end'),'xlsname'=>'数据管理_注册明细'
))}" >导出</a>
{$_page}
</div>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
{$_page}
</div>
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
setValue('promote_id',{$Think.request.promote_id|default=0});
setValue('game_appid','{$Think.request.game_appid|default=0}');
setValue('row','{:I("get.row",10)}');
$().ready(function(){
$("#pagehtml a").on("click",function(event){
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action',geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
$(".select_gallery").select2();
$('.submit').click(function(){
var sdate =$('#sdate').val();
var edate =$('#edate').val();
// if(sdate =='' || edate==''){
// layer.msg('请完整时间搜索框');
// return false;
// }
if(Date.parse(sdate) > Date.parse(edate)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('team_leader_id', {$Think.request.team_leader_id |default = '""'});
setValue('promote_id', {$Think.request.promote_id |default = 0});
setValue('row', '{:I("get.row",10)}');
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#own').on('click',function () {
var ownId = $('#own_id').val();
var checkBox = $(this).children('i');
if (ownId > 0) {
checkBox.removeClass('iconfangxingxuanzhongfill');
checkBox.removeClass('selected-color');
checkBox.addClass('iconfangxingweixuanzhong');
$('#own_id').val(0);
} else {
checkBox.removeClass('iconfangxingweixuanzhong');
checkBox.addClass('iconfangxingxuanzhongfill');
checkBox.addClass('selected-color');
$('#own_id').val({$pID});
}
});
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$(".select_gallery").select2();
$('.submit').click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
});
$('#edate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
});
</script>
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
});
});
</script>
</block>

@ -1,318 +1,369 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet" >
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.2" rel="stylesheet">
</block>
<block name="body">
<style>
@media screen and (max-width: 1500px) {
.normal_form{padding-top: 45px;}
.trunk-search .normal_txt {width: 100px}
.select2-container--default .select2-selection--single {width: 125px;}
.trunk-search .select-time .txt{width: 100px;}
.form-group .submit{width: 55px;}
}
</style>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>数据汇总</span></div>
</div>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">数据汇总</span>
<span class="details">说明:默认展示当前一级渠道及旗下各子渠道的全部数据</span>
<style>
@media screen and (max-width: 1500px) {
.normal_form {
padding-top: 45px;
}
.trunk-search .normal_txt {
width: 100px
}
.select2-container--default .select2-selection--single {
width: 125px;
}
.trunk-search .select-time .txt {
width: 100px;
}
.form-group .submit {
width: 55px;
}
}
.selected-color {
color: #2bd8ed;
}
.pointer-hand {
cursor: pointer;
}
.icon-spend {
position: relative;
font-size: 1.2rem;
top: 3px;
float: right;
right: 10px;
}
.th-hide {
display: none;
}
</style>
<div class="page-search normal_list query-recharge-search jssearch">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>数据汇总</span></div>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="tab normal_tab">
</div>
<!-- <form action="{:U('Query/summary')}" method="get" enctype="multipart/form-data" class="normal_form"> -->
<div class="form-group normal_space fr">
<input type="submit" class="submit" id='submit' url="{:U('Query/summary','model='.$model['name'],false)}" value="查询">
</div>
<div class="form-group normal_space fr">
<div class="select-time">
<input type="text" id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{:I('begtime')}" >
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="endtime" placeholder="结束时间" value="{:I('endtime')}">
</div>
</div>
<div class="form-group normal_space fr">
<select id="promote_account" name="promote_account" class="reselect select_gallery" style="min-width:130px;">
<option game-id="" value="">推广员账号</option>
<option game-id="{:session('promote_auth.pid')}" value="{:session('promote_auth.pid')}" <if condition="I('promote_account') eq session('promote_auth.pid')"> selected="true" </if> >自己</option>
<volist name=":get_promote_chlid_account(PID)" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}" <if condition="I('promote_account') eq $vo['id']"> selected="true" </if> >{$vo.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fr">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option game-id="" value="">推广员ID</option>
<option game-id="{:session('promote_auth.pid')}" value="{:session('promote_auth.pid')}" <if condition="I('promote_id') eq session('promote_auth.pid')"> selected="true" </if> >自己</option>
<volist name=":get_promote_chlid_account(PID)" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}" <if condition="I('promote_id') eq $vo['id']"> selected="true" </if> >{$vo.id}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fr">
<select id="game_level" name="game_level" class=" reselect select_gallery" >
<empty name="game_list">
<option value="" id="game_data" selected="true">暂无游戏等级</option>
<else/>
<if condition="I('game_level') neq '' ">
<option value="I('game_level')">{:I('game_level')}</option>
<else/>
<option value="" selected="true">请选择游戏等级</option>
</if>
</empty>
</select>
</div>
<div class="form-group normal_space fr">
<select id="server_name" name="server_id" class=" reselect select_gallery" >
<empty name="game_list">
<option value="" id="game_data" selected="true">暂无游戏区服</option>
<else/>
<if condition="I('server_name') neq '' ">
<option value="I('server_name')">{:I('server_name')}</option>
<else/>
<option value="" selected="true">请选择游戏区服</option>
</if>
</empty>
</select>
</div>
<div class="form-group normal_space fr">
<select id="game_id" name="game_id" class="reselect select_gallery">
<option game-id="0" value="">请选择游戏</option>
<volist name="game_list" id="vo">
<option value="{$vo.relation_game_id}" <if condition="I('game_id') eq $vo['relation_game_id']" > selected="true" </if> > {$vo.relation_game_name}</option>
</volist>
</select>
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
<!-- </form> -->
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">数据汇总</span>
<span class="details">说明:默认展示旗下各子渠道的全部数据</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="tab normal_tab">
</div>
<!-- <form action="{:U('Query/summary')}" method="get" enctype="multipart/form-data" class="normal_form"> -->
<if condition="$thisParentPromoteId eq 0">
<div class="form-group normal_space fl">
<select id="team_leader_id" name="team_leader_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">组长账号</option>
<volist name=":getAllPromoteListByType(2)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</if>
<eq name="pID|isMinPromote" value="0">
<div class="form-group normal_space fl">
<select id="promote_id" name="promote_id" class="reselect select_gallery" style="min-width:130px;">
<option value="0">推广员账号</option>
<volist name=":getAllPromoteListByType(3)" id="vo">
<option value="{$vo.id}">{$vo['account']}({$vo['real_name']})</option>
</volist>
</select>
</div>
</eq>
<div class="form-group normal_space fl">
<select id="relation_game_id" name="relation_game_id" class="reselect select_gallery">
<option value="">请选择游戏</option>
<volist name=":get_promote_serach_game()" id="vo">
<option value="{$vo.relation_game_id}" title="{$vo.relation_game_name}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="server_id" name="server_id" class=" reselect select_gallery">
<option value="">请选择区服</option>
<volist name="serverData" id="vo">
<option value="{$vo.id}">{$vo.server_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" readonly id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{$initBegTime}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" readonly id="edate" class="txt" name="endtime" placeholder="结束时间" value="{$initEndTime}">
</div>
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' url="{:U('Query/summary','model='.$model['name'],false)}"
value="查询">
</div>
<div class="form-group normal_space fl" style="margin-left: 60px;">
<label style="line-height: 34px;cursor: pointer;" id="own">
<i class="iconfont {:empty(I('own_id'))?'iconfangxingweixuanzhong':'iconfangxingxuanzhongfill selected-color'}" style="font-size: 1.5rem;position: relative;top: 3px;margin-right: 2px;"></i>本账号
<input type="hidden" name="own_id" id="own_id" value="{:empty(I('own_id'))?0:I('own_id')}" />
</label>
</div>
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
<!-- </form> -->
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table">
<tr class="odd">
<th>推广员ID</th>
<th>推广员帐号</th>
<th>注册用户</th>
<th>注册IP数</th>
<th>达标用户</th>
<th>达标游戏</th>
<th>移动端充值人数</th>
<th>安卓充值</th>
<th>苹果充值</th>
<tr class="odd">
<th>游戏名称</th>
<th>平台</th>
<th class="pointer-hand" title="创角数:统计时间范围内,成功创建角色数量(唯一)">创角数</th>
<th class="pointer-hand" title="创角用户:统计时间范围内,成功创角的用户数(去重)">创角用户</th>
<th class="pointer-hand" title="新创角用户当日24小时首次创建角色的用户数; 新创角设备当日24小时首次创建角色设备总数去重;">新创角用户|新创角设备</th>
<th class="pointer-hand" title="新增创角IP统计时间范围内首次创建角色IP总数去重">新增创角IP</th>
<th class="pointer-hand" title="登录用户数:统计时间范围内,登录的用户数(去重)">登录用户数</th>
<th class="pointer-hand" title="充值人数:统计时间范围内,支付成功且处理成功的游戏充值订单用户数(去重)">充值人数</th>
<th class="pointer-hand" title="充值次数:统计时间范围内,游戏充值成功订单数">充值次数</th>
<th class="pointer-hand spend-btn" title="充值总额:统计时间范围内,在游戏内充值成功的订单金额总和" style="width: 200px;">充值总额<i class="iconfont iconplus-square icon-spend"></i></th>
<th class="pointer-hand spend-element th-hide" title="现金充值:统计时间范围内,在游戏内充值成功的订单,使用现金支付金额总和">现金充值</th>
<th class="pointer-hand spend-element th-hide" title="通用币充值:统计时间范围内,在游戏内充值成功的订单,使用通用币支付金额总和">通用币充值</th>
<th class="pointer-hand spend-element th-hide" title="绑定币充值:统计时间范围内,在游戏内充值成功的订单,使用绑定币支付金额总和">绑定币充值</th>
<th class="pointer-hand spend-element th-hide" title="折扣币充值:统计时间范围内,在游戏内充值成功的订单,使用折扣币支付金额总和,该部分不参与结算">折扣币充值</th>
<th class="pointer-hand spend-element th-hide" title="代金劵使用:统计时间范围内,在游戏内充值成功的订单,使用代金券金额总和,该部分不参与结算">代金劵使用</th>
</tr>
<empty name="listData">
<tr class="num2">
<td colspan="15" style="text-align: center;height: 45vh;">
<img src="__IMG__/20180207/icon_wushujv2.png"/>
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
</td>
</tr>
<volist name="child" id="child" mod="2">
<tr class="num2">
<td>{$child['id']}</td>
<if condition="$child['id'] eq session('promote_auth.pid')">
<td>自己</td>
<else/>
<td>{$child['account']}</td>
</if>
<td>{:IsNull($child['register_user'])}</td>
<td>{:IsNull($child['register_ip'])}</td>
<td>{:IsNull($child['dabiao_user'])}</td>
<if condition="IsNull($child['dabiao_game']) eq 0">
<td>0</td>
<else/>
<td><a class="dabiao_game" href="javascript:;" url="{:U('Query/dabiao_game',array('begtime'=>I('begtime'),'endtime'=>I('endtime'),'promote_id'=>$child['id'],'game_id'=>I('game_id'),'server_id'=>I('server_id'),'game_level'=>I('game_level')))}" style="color: blue">{:IsNull($child['dabiao_game'])}</a></td>
</if>
<td>{:IsNull($child['spend'])}</td>
<td>{:null_to_0($child['and_spend'])}</td>
<td>{:null_to_0($child['ios_spend'])}</td>
</tr>
<volist name="listData" id="vo">
<tr class="num2">
<td>{$vo.game_name}</td>
<td>{:getSDKTypeName($vo['sdk_version'],true)}</td>
<td>{$vo.role_num}</td>
<td>{$vo.user_num}</td>
<td>{$vo.new_user_num}|{$vo.new_device_num}</td>
<td>{$vo.new_ip_num}</td>
<td>{$vo.login_user_num}</td>
<td>{$vo.spend_user_num}</td>
<td>{$vo.spend_num}</td>
<td>{$vo.spend_all_amount}</td>
<td class="spend-element th-hide">{$vo.spend_cash}</td>
<td class="spend-element th-hide">{$vo.spend_generic}</td>
<td class="spend-element th-hide">{$vo.spend_binding}</td>
<td class="spend-element th-hide">{$vo.spend_discount}</td>
<td class="spend-element th-hide">{$vo.spend_voucher}</td>
</tr>
</volist>
<tr class="num2">
<td>汇总</td>
<td>{$count}</td>
<td>{$all_data['register_user']}</td>
<td>{:IsNull($all_data['register_ip'])}</td>
<td>{:IsNull($all_data['dabiao_user'])}</td>
<td>{:IsNull($all_data['dabiao_game'])}</td>
<td>{:IsNull($all_data['spend'])}</td>
<td>{:null_to_0($all_data['and_spend'])}</td>
<td>{:null_to_0($all_data['ios_spend'])}</td>
</tr>
<tr class="num2">
<td>合计</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>--|--</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>{$allData.spend_num}</td>
<td>{$allData.spend_all_amount}</td>
<td class="spend-element th-hide">{$allData.spend_cash}</td>
<td class="spend-element th-hide">{$allData.spend_generic}</td>
<td class="spend-element th-hide">{$allData.spend_binding}</td>
<td class="spend-element th-hide">{$allData.spend_discount}</td>
<td class="spend-element th-hide">{$allData.spend_voucher}</td>
</tr>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/expUser',array(
'id'=>11,
'game_id'=>I('game_id'),
'promote_id'=>I('promote_id'),
'game_server'=>I('game_server'),
'game_level'=>I('game_level'),
'begtime'=>I('begtime'),
'endtime'=>I('endtime'),
'server_name'=>I('server_name'),
'promote_account'=>I('promote_account'),'xlsname'=>'数据管理_数据汇总'
))}" >导出</a>
{$_page}
</div>
{$_page}
</div>
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function(){
setValue('row','{:I("get.row",10)}');
$("#pagehtml a").on("click",function(event){
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action',geturl);
$('#data_form').submit();
});
var date="{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
scrollMonth:false,
scrollTime:false,
scrollInput:false,
endDate:date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
pickerPosition:'bottom-left',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
endDate:date
});
$('#submit').click(function(){
var sdate =$('#sdate').val();
var edate =$('#edate').val();
var pid = $('#promote_id').val();
var pac = $('#promote_account').val();
if(pid !='' && pac != '' && pid != pac){
layer.msg("渠道ID与渠道账号不匹配");
return false;
}
if(Date.parse(sdate) > Date.parse(edate)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
console.log(url);
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if(url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('getServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").val()},
dataType:'json',
success:function(data){
str1 = "<option value=''>请选择区服</option>";
str2 = "<option value=''>请选择等级</option>";
for (var i in data.data.server_name){
str1 += "<option value='"+data.data.server_name[i].id+"'>"+data.data.server_name[i].server_name+"</option>"
}
if(data.data.game_level.first_level_name){
str2 +="<option value='"+data.data.game_level.first_level_name+"'>"+data.data.game_level.first_level_name+"</option>";
str2 +="<option value='"+data.data.game_level.second_level_name+"'>"+data.data.game_level.second_level_name+"</option>";
str2 +="<option value='"+data.data.game_level.third_level_name+"'>"+data.data.game_level.third_level_name+"</option>";
}
$("#server_name").empty();
$("#server_name").append(str1);
$("#server_name").select2();
$("#game_level").empty();
$("#game_level").append(str2);
$("#game_level").select2();
}
})
})
var game_id = $("#game_id").val();
var game_server = "{:I('server_id')}";
var game_level = "{:I('game_level')}";
if(game_id>0){
$.ajax({
url:"{:U('getServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").val()},
dataType:'json',
success:function(data){
str1 = "<option value=''>请选择区服</option>";
str2 = "<option value=''>请选择等级</option>";
var server_name = data.data.server_name;
var levle = data.data.game_level;
for (var i in server_name){
str1 += "<option value='"+data.data.server_name[i].id+"' "+(game_server && server_name[i].id == game_server?'selected':'')+" >"+data.data.server_name[i].server_name+"</option>"
}
str2 +="<option value='"+data.data.game_level.first_level_name+"' "+(game_level && levle.first_level_name == game_level?'selected':'') +">"+data.data.game_level.first_level_name+"</option>";
str2 +="<option value='"+data.data.game_level.second_level_name+"' "+(game_level && levle.second_level_name == game_level?'selected':'') +">"+data.data.game_level.second_level_name+"</option>";
str2 +="<option value='"+data.data.game_level.third_level_name+"' "+(game_level && levle.third_level_name == game_level?'selected':'') +">"+data.data.game_level.third_level_name+"</option>";
$("#server_name").empty();
$("#server_name").append(str1);
$("#server_name").select2();
$("#game_level").empty();
$("#game_level").append(str2);
$("#game_level").select2();
}
})
}
$(".select_gallery").select2();
$(".dabiao_game").click(function(){
var href = $(this).attr('url');
layer.open({
type: 2,
title: "达标游戏",
shadeClose: true,
shade: 0.8,
area: ['71%', '80%'],
content: href,
});
return false;
})
});
</script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('team_leader_id', {$Think.request.team_leader_id |default = '""'});
setValue('promote_id', {$Think.request.promote_id |default = '""'});
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
setValue('server_id', {$Think.request.server_id |default = '""'});
setValue('row', '{:I("get.row",10)}');
$('#own').on('click',function () {
var ownId = $('#own_id').val();
var checkBox = $(this).children('i');
if (ownId > 0) {
checkBox.removeClass('iconfangxingxuanzhongfill');
checkBox.removeClass('selected-color');
checkBox.addClass('iconfangxingweixuanzhong');
$('#own_id').val(0);
} else {
checkBox.removeClass('iconfangxingweixuanzhong');
checkBox.addClass('iconfangxingxuanzhongfill');
checkBox.addClass('selected-color');
$('#own_id').val({$pID});
}
});
$('.spend-btn').on('click', function () {
var element = $(this).find('i');
if (element.hasClass('iconplus-square')) {
element.removeClass('iconplus-square');
element.addClass('iconminus-square');
$('.spend-element').removeClass('th-hide');
} else {
element.removeClass('iconminus-square');
element.addClass('iconplus-square');
$('.spend-element').addClass('th-hide');
}
});
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#submit').click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
console.log(url);
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
window.location.href = url;
});
$('#relation_game_id').change(function () {
var relationGameId = $(this).val();
var sdkVersion = $('#sdk_version').val();
getServerList(relationGameId, sdkVersion);
});
$('#sdk_version').change(function () {
var sdkVersion = $(this).val();
var relationGameId = $('#relation_game_id').val();
getServerList(relationGameId, sdkVersion);
});
function getServerList(relationGameId, sdkVersion)
{
$.ajax({
url: "{:U('getServerAjax')}",
type: "post",
data: {relation_game_id: relationGameId,sdk_version:sdkVersion},
dataType: 'json',
success: function (data) {
var html = "<option value='' selected>请选择区服</option>";
if (data.status == 1) {
var serverData = data.data;
if (serverData.length > 0) {
for (var i in serverData) {
html += "<option value='" + serverData[i]['id'] + "'>" + serverData[i]['server_name'] + "</option>";
}
}
}
$("#server_id").empty();
$('#server_id').html(html);
$("#server_id").select2();
}
})
}
$(".select_gallery").select2();
});
</script>
</block>

@ -1,102 +1,222 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.2" rel="stylesheet">
</block>
<block name="body">
<div class="page-search normal_list query-register-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>注册明细></span><span>角色详情</span></div>
</div>
<img src="__IMG__/20180207/icon_zhuce.png">
<span class="title_main">角色详情</span>
<div class="page-search normal_list query-register-search" style="font-size: small;">
<div style="position: absolute;margin: .6% 2% 0 2%;margin-top: -30px;color: #6a7082;">
<span class="back-btn" style="cursor: pointer;"><i class="iconfont iconreply"></i> 返回</span>
</div>
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>注册明细></span><span>角色详情</span></div>
</div>
<div class="page-list query-register-list">
<div class="trunk-content article">
<div class="trunk-list list_normal" style="">
<table class="table normal_table">
<tr class="odd">
<th>玩家账号</th>
<th>游戏名称</th>
<th>设备类型</th>
<th>游戏区服</th>
<th>角色名</th>
</tr>
<empty name="list_data">
<tr><td colspan="5" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<tr class="odd">
<td>{$list_data.account}</td>
<td>{$list_data.game_name}</td>
<td>{:getSDKTypeName($list_data['sdk_version'])}</td>
<td>{$list_data.server_name}</td>
<td>{$list_data.role_name}</td>
</tr>
</empty>
</table>
<img src="__IMG__/20180207/icon_zhuce.png">
<span class="title_main">角色详情</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/viewRole',array('row'=>I('get.row'),'id'=>I('get.id')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space fl">
<select id="relation_game_id" name="relation_game_id" class="reselect select_gallery">
<option value="">请选择游戏</option>
<volist name=":get_promote_serach_game()" id="vo">
<option value="{$vo.relation_game_id}" title="{$vo.relation_game_name}">{$vo.relation_game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
<option value="0">请选择设备类型</option>
<volist name=":getSDKType()" id="vo" key="k">
<option value="{$k}">{$vo}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<select id="server_id" name="server_id" class=" reselect select_gallery">
<option value="">请选择区服</option>
<volist name="serverData" id="vo">
<option value="{$vo.id}">{$vo.server_name}</option>
</volist>
</select>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/expUser',array(
'id'=>12,
'user_id'=>$list_data['id'],
))}" >导出
</a>{$_page}
<div class="form-group fl">
<input type="text" name="role_name" class="txt normal_txt" placeholder="请输入角色名"
value="{:I('role_name')}">
</div>
<div class="form-group normal_space fl">
<label class="form-title select-title" style="position: relative;">起止时间:</label>
<div class="select-time">
<input type="text" id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{:I('begtime')}">
</div>
<label class="form-title select-title zhi_color">&nbsp;&nbsp;</label>
<div class="select-time">
<input type="text" id="edate" class="txt" name="endtime" placeholder="结束时间" value="{:I('endtime')}">
</div>
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' value="查询">
</div>
</form>
</div>
</div>
<div class="page-list query-register-list">
<div class="trunk-content article">
<div class="trunk-list list_normal" style="">
<table class="table normal_table">
<tr class="odd">
<th>玩家账号</th>
<th>游戏名称</th>
<th>使用设备</th>
<th>设备类型</th>
<th>创建时间</th>
<th>游戏区服</th>
<th>角色名</th>
</tr>
<empty name="listData">
<tr class="num2">
<td colspan="7" 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="listData" id="vo">
<tr class="num2">
<td>{$vo.user_account}</td>
<td>{$vo.game_name}</td>
<td>Phone</td>
<td>{:getSDKTypeName($vo['sdk_version'])}</td>
<td>{$vo.play_time|date='Y-m-d H:i:s',###}</td>
<td>{$vo.server_name}</td>
<td>{$vo.role_name}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
{$_page}
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
setValue('promote_id','{$Think.request.promote_id|default=0}');
setValue('game_appid','{$Think.request.game_appid|default=0}');
setValue('row','{:I("get.row",10)}');
$().ready(function(){
$("#pagehtml a").on("click",function(event){
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action',geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
$(".select_gallery").select2();
$('.submit').click(function(){
var sdate =$('#sdate').val();
var edate =$('#edate').val();
// if(sdate =='' || edate==''){
// layer.msg('请完整时间搜索框');
// return false;
// }
if(Date.parse(sdate) > Date.parse(edate)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
});
$('#edate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
scrollMonth:false,
scrollTime:false,
scrollInput:false,
timepicker:false
});
});
</script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$().ready(function () {
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
setValue('server_id', {$Think.request.server_id |default = '""'});
setValue('row', '{:I("get.row",10)}');
var date = "{$setdate}";
$('#sdate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('#edate').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left',
scrollMonth: false,
scrollTime: false,
scrollInput: false,
endDate: date
});
$('.back-btn').on('click', function () {
location.href = "{:U('register')}";
});
$('#relation_game_id').change(function () {
var relationGameId = $(this).val();
var sdkVersion = $('#sdk_version').val();
getServerList(relationGameId, sdkVersion);
});
$('#sdk_version').change(function () {
var sdkVersion = $(this).val();
var relationGameId = $('#relation_game_id').val();
getServerList(relationGameId, sdkVersion);
});
function getServerList(relationGameId, sdkVersion)
{
$.ajax({
url: "{:U('getServerAjax')}",
type: "post",
data: {relation_game_id: relationGameId,sdk_version:sdkVersion},
dataType: 'json',
success: function (data) {
var html = "<option value='' selected>请选择区服</option>";
if (data.status == 1) {
var serverData = data.data;
if (serverData.length > 0) {
for (var i in serverData) {
html += "<option value='" + serverData[i]['id'] + "'>" + serverData[i]['server_name'] + "</option>";
}
}
}
$("#server_id").empty();
$('#server_id').html(html);
$("#server_id").select2();
}
})
}
$("#pagehtml a").on("click", function (event) {
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action', geturl);
$('#data_form').submit();
});
$(".select_gallery").select2();
$('.submit').click(function () {
var sdate = $('#sdate').val();
var edate = $('#edate').val();
// if(sdate =='' || edate==''){
// layer.msg('请完整时间搜索框');
// return false;
// }
if (Date.parse(sdate) > Date.parse(edate)) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
});
});
</script>
</block>

@ -2,6 +2,7 @@
<block name="css">
<link href="__CSS__/20180207/platform.css" rel="stylesheet">
<link href="__CSS__/detailed.css" rel="stylesheet">
<link href="__STATIC__/icons_alibaba/iconfont.css" rel="stylesheet">
<style>
.trunk-list .table3 {
width: 100%;
@ -27,6 +28,9 @@
<block name="body">
<div class="page-search normal_list charge-agentPay-search">
<div style="position: absolute;margin: .6% 2% 0 2%;margin-top: -30px;color: #6a7082;">
<span class="back-btn" style="cursor: pointer;"><i class="iconfont iconreply"></i> 返回</span>
</div>
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据管理></span><span>充值明细></span><span>查看详细</span></div>
@ -60,7 +64,7 @@
<div class="tab detailed-box">
<label class="detailed-title detailed-label">订单标题:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
<label class="detailed-title detailed-label">角色昵称:</label>
<div class="detailed-content-box">
@ -93,7 +97,7 @@
<div class="tab detailed-box">
<label class="detailed-title detailed-label">折扣币:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
<label class="detailed-title detailed-label">通用币:</label>
<div class="detailed-content-box">
@ -104,28 +108,28 @@
<div class="tab detailed-box">
<label class="detailed-title detailed-label">代金券:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
</div>
<div class="tab detailed-box">
<label class="detailed-title detailed-label">订单备注:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
</div>
<div class="tab detailed-box">
<label class="detailed-title detailed-label">支付备注:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
</div>
<div class="tab detailed-box">
<label class="detailed-title detailed-label">创建时间:</label>
<div class="detailed-content-box">
<span></span>
<span>{:date('Y-m-d H:i:s', $list_data['pay_time'])}</span>
</div>
<label class="detailed-title detailed-label">支付时间:</label>
<div class="detailed-content-box">
@ -136,11 +140,11 @@
<div class="tab detailed-box">
<label class="detailed-title detailed-label">处理结果:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
<label class="detailed-title detailed-label">处理时间:</label>
<div class="detailed-content-box">
<span></span>
<span>--</span>
</div>
</div>
</div>
@ -200,331 +204,8 @@
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function () {
$("#promote_child").change();
$(".select_gallery").select2();
$('.jspayradio input:first').prop('checked', true).siblings('i').addClass('current');
$('.jspayradio input').click(function () {
var that = $(this);
$('.jspayradio i').removeClass('current');
if (that.prop('checked')) {
that.siblings('i').addClass('current');
}
});
$(".zhe").hide();
});
$('#game_id').change(function () {
if ($("#game_id option:selected").val() != "") {
$(".zhe").show();
} else {
$(".zhe").hide();
}
var radio = $("#game_id option:selected").attr('data');
//radio = radio/10;
$('.zhe td.r').html(radio + "折");
$("#discount").val(radio);
var uccount = $('#account');
var game_id = $(this).val();
$.ajax({
type: 'post',
dataType: 'json',
data: {game_id: game_id},
url: '{:U("get_user_play")}',
success: function (data) {
uccount.find('option').remove().end().append('<option value="">请选择充值用户</option>');
if (parseInt(data.status) == 1) {
var html = '';
$.each(data.data, function (i, n) {
html += '<option value="' + n.user_account + '">' + n.user_account + '</option>';
});
uccount.append(html);
uccount.select2();
} else {
layer.msg(data.info);
}
},
error: function () {
layer.msg('服务器故障!');
}
});
});
$(function () {
if ($("#game_id option:selected").val() != "") {
$(".zhe").show();
} else {
$(".zhe").hide();
}
var radio = $("#game_id option:selected").attr('data');
$('.zhe td.r').html(radio + "折");
$("#discount").val(radio);
});
function sub_from() {
var pay_type = $("input[name='pay_type']:checked").val();
if (pay_type) {
var form = $('#form');
if (pay_type == 'swiftpass') {
$.ajax({
type: 'post',
dataType: 'json',
url: '{:U("agent_pay_action")}',
data: form.serialize(),
success: function (data) {
if (parseInt(data.status) == 1) {
if (data.data) {
img_qrcode(data.data);
} else if (data.url) {
window.location.href = data.url;
} else {
layer.msg(data.info);
}
} else {
layer.msg(data.info);
}
},
error: function () {
layer.msg('服务器故障!');
}
});
} else {
form.submit();
}
} else {
layer.msg('请选择充值方式');
}
}
function check() {
data = validation();
if (data.status != 1) {
layer.msg(data.msg, {icon: 2});
return false;
} else {
if ($("input[name='pay_type']:checked").val()) {
layer.prompt(
{
formType: 1,
title: '请输入二级密码',
value: ''
},
function (val) {
$.ajax({
url: '{:U("checkpwd")}',
type: 'post',
dataType: 'json',
data: {'pwd': val},
success: function (data) {
if (data.status > 0) {
sub_from();
} else {
layer.msg(data.msg)
}
},
error: function () {
alert("错误");
}
});
});
} else {
layer.msg('请选择充值方式');
}
}
}
$("#pay_fmoney").keyup(function () {
var ratio = $("#discount").val();
var jine = $(this).val();
if (ratio == '') {
layer.msg("请选择充值游戏名称");
$(this).val('');
}
if (jine) {
if (/^\+?[1-9][0-9]*$/.test(jine)) {
if (ratio >= 1) {
var real_amount = (jine * (ratio / 100) * 10).toFixed(2);
$("#yingfu").html(jine);
$("#real_amount").val(real_amount);
$("#shifu").html(real_amount);
} else {
var money = $(this).val();
$("#yingfu").html(money);
$("#real_amount").val(money);
$("#shifu").html(money);
}
} else {
$("#yingfu").html(0);
$("#shifu").html(0);
layer.msg("充值金额必须是正整数");
}
} else {
$("#yingfu").html(0);
$("#shifu").html(0);
}
$('.back-btn').on('click', function () {
history.back(-1);
});
function validation() {
var json_data = "";
var limits = {$pro['pay_limit']};
if ($("#game_id").val() == '') {
return json_data = {'status': 0, 'msg': '请选择充值游戏名称'}
}
if ($.trim($('#account').val()).length == 0) {
return json_data = {'status': 0, 'msg': '充值用户名不能为空'}
}
if (!checkAccount()) {
return json_data = {'status': 0, 'msg': '此用户没玩过这个游戏'}//此用户不属于您的渠道
}
if ($.trim($('#pay_fmoney').val()).length == 0 || $("#real_amount").val() == 0) {
return json_data = {'status': 0, 'msg': '充值金额不能为空'}
}
if (!intege($('#pay_fmoney').val())) {
return json_data = {'status': 0, 'msg': '充值金额必须是正整数'};
}
if (!checkSecond()) {
return json_data = {'status': 0, 'msg': '请设置二级密码'}
}
return json_data = {'status': 1, 'msg': '成功'};
}
$("#account").on('change', function () {
if ($.trim($('#game_id').val()) == '') {
$(this).val('');
layer.msg('请先选择游戏');
return false;
}
return false;
});
$("#account").blur(function () {
var status = checkAccount();
var account = $('#account').val();
if (account != '') {
if (!status) {
layer.msg('此用户没玩过这个游戏', {icon: 2});
}
}
})
function checkSecond() {
var status = 1;
$.ajax({
type: "post",
url: "{:U('checkSecond')}",
async: false,
dataType: "json",
success: function (data) {
status = data.status;
}
});
return status;
}
function checkAccount() {
var status = 0;
$.ajax({
type: "post",
url: "{:U('checkAccount')}",
async: false,
data: {user_account: $("#account").val(), game_id: $("#game_id").val()},
dataType: "json",
success: function (data) {
status = data.status;
}
});
// alert(status);
return status;
}
function intege(data) {
var re = /^[1-9]+[0-9]*]*$/;
if (!re.test(data)) {
return false;
} else {
return true;
}
}
$("#promote_child").change(function () {
var coin = get_child_coin($(this).val());
$("#money").text(coin + '元')
})
function get_child_coin(cid) {
var coin = 0;
$.ajax({
url: "{:U('PromoteCoin/get_coin')}",
data: {id: cid},
type: 'post',
async: false,
success: function (data) {
coin = data.coin;
},
errror: function () {
layer.msg("服务器故障!");
}
});
if (coin == null) {
coin = 0;
}
return coin;
}
</script>
<script type="text/javascript">
function img_qrcode(data) {
layer.open({
type: 1,
title: "微信扫码支付",
closeBtn: 1,
shadeClose: true,
skin: 'yourclass',
btn: ['确认充值', '返回'],
content: '<div class="d_body" style="height:px;text-align:center;"><div class="d_content"><div class="text_center"> <table class="list" align="right" width="100%"><tbody><tr><td class="text_right">订单号</td><td class="text_left">' + data.out_trade_no + '</td></tr><tr><td class="text_right">充值金额</td><td class="text_left">本次充值' + data.amount + '元,实际付款' + data.pay_money + '元</td></tr></tbody></table><img src="' + data.code_img_url + '" height="301" width="301"><img src="/Public/Media/images/wx_pay_tips.png"></div></div></div>',
end: function () {
window.location.href = "{:U('Charge/agent_pay')}";
}
});
var order_number = "'" + data.out_trade_no + "'";
setInterval("callback(" + order_number + ")", 1000);
}
</script>
<script type="text/javascript">
function callback(out_trado_no) {
$.ajax({
type: 'POST',
url: "{:U('Charge/checkOrder')}",
data: {"order_number": out_trado_no},
success: function (data) {
if (data.status > 0) {
layer.msg('支付成功');
window.location.href = "{:U('Charge/agent_pay_list')}"
}
}
});
}
</script>
</block>

@ -110,4 +110,5 @@ return array(
'SQ_UNION' => 10,
'SQ_SHORTCUT' => 15
),
'WX_PAY_LIMIT' => 3000, // 微信支付限额
);

@ -92,7 +92,14 @@ class AppleController extends BaseController{
$request = json_decode(think_decrypt($file),true);
C(api('Config/lists'));
/*$request['user_id'] = 1;
$request['game_id'] = 1;
$request['price'] = 1.01;
$request['extend'] = 21111183;
$request['pay_order_number'] = 21111183;
$request['sdk_version'] = 2;
$request['code'] =1;
*/
if (empty($request)) {
echo json_encode(['code'=>0,'msg'=>'登录数据不能为空']);exit;
}
@ -114,6 +121,8 @@ class AppleController extends BaseController{
if($extend_data){
echo json_encode(['code'=>0,'msg'=>'订单号重复,请关闭支付页面重新支付']);exit;
}
$this->other_price($request);
if(get_zfb_type()==0){ // 支付宝官方
if(C('alipay.way')==1 || ($request['is_create_ordernumer']==1 && C('alipay.way')==0)){/* wap */
@ -126,8 +135,8 @@ 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";
//$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']);
@ -333,7 +342,7 @@ class AppleController extends BaseController{
if($param['is_uc']==1){
return $pay->buildRequestForm($vo,1);
}else{
$pay_['url']= $pay->buildRequestForm($vo);
$pay_['url']= $pay->buildRequestForm($vo, 0, $param);
$pay_['out_trade_no']= $out_trade_no;
return $pay_;
}
@ -347,10 +356,10 @@ class AppleController extends BaseController{
$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['price'] = 157.01;
$request['extend'] = 21111178;
$request['pay_order_number'] = 21111178;
$request['sdk_version'] = 2;
$request['code'] =1;
*/
if (empty($request)) {
@ -358,7 +367,7 @@ class AppleController extends BaseController{
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
$payCheck = pay_check($user_id);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=> $payCheck['msg'])));exit;
}
@ -367,10 +376,9 @@ class AppleController extends BaseController{
if($game['pay_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'该游戏暂时无法充值,请联系客服!')));exit;
}
if($request['price']*1<=0){
if($request['price']*1<=0 || $request['price'] > C('WX_PAY_LIMIT')) {
// $this->set_message(0,"fail","充值金额有误");
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'充值金额有误')));exit;
}
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id'],'game_status'=>1))->find();
if($extend_data){
@ -387,7 +395,10 @@ class AppleController extends BaseController{
$discount = $this->get_discount($request['game_id'],$user['promote_id'],$request['user_id']);
$discount = $discount['discount'];
$pay_amount = $discount * $request['price'] / 10;
file_put_contents(dirname(__FILE__).'/1222222.txt',get_wx_pay_type());
file_put_contents(dirname(__FILE__).'/1222222.txt',get_wx_pay_type());
// 绑币平台币优先处理
$this->other_price($request, $discountAmount);
//0 官方 1威富通 2俊付通
if (get_wx_pay_type() == 0) {
$weixn = new Weixin();
@ -747,6 +758,102 @@ class AppleController extends BaseController{
}
/*
* 平台币抵扣
* 优先抵扣绑币 平台币 调这个接口说明 不走第三方支付通道
*/
public function platform_coin_deduction($user_id, $game_id) {
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
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;
}
if ($request['price'] *1<=0) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'充值金额有误')));exit;
}
$request['price'] = abs($request['price']);
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'pay_status'=>1,'game_id'=>$request['game_id']))->find();
if($extend_data){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'订单号重复,请关闭支付页面重新支付')));exit;
}
$user_info = get_user_entity($request['user_id']);
if($user_info['lock_status'] == 0 || $user_info['check_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'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;
}
$out_trade_no = "PF_" . date('Ymd') . date('His') . sp_random_string(4);
$request['order_number'] = $out_trade_no;
$request['pay_order_number'] = $out_trade_no;
$request['out_trade_no'] = $out_trade_no;
$request['title'] = $request['title'];
$request['pay_status'] = 1;
$request['pay_way'] = 0;
$request['spend_ip'] = get_client_ip();
$user_entity = get_user_entity($request['user_id']);
$discount_arr = $this->get_discount($request['game_id'], $user_entity['promote_id'], $request['user_id']);
$discount = $discount_arr['discount'];
$user = M("user", "tab_");
//添加黑名单
$check_deposit_money = $this->check_deposit_money($user_entity);
$check_bind_money = $this->check_bind_money($user_entity);
if($check_deposit_money === false || $check_bind_money === false || (C('BRUSH_MONEY') && (abs($check_deposit_money)>=C('BRUSH_MONEY') || abs($check_bind_money)>=C('BRUSH_MONEY'))) || (!C('BRUSH_MONEY') && (abs($check_deposit_money) != 0 || abs($check_bind_money) != 0))){
if(C('BRUSH_SMS_STATUS') && C('BRUSH_PHONE')&& C('BRUSH_SMS_ID')){
$result = $this-> send_block(C('BRUSH_PHONE'),$user_entity['account']);
}
$block_data['check_status'] = 0;
$block_data['block_time'] = time();
$user->where(['id'=>$user_entity['id']])->save($block_data);
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'您的账号暂时无法充值,请联系客服处理.')));exit;
}
$result = false;
// 先扣绑币
$request['pay_way'] = -1;
$user_play = M("UserPlay", "tab_");
$user_play_map['user_id'] = $request['user_id'];
$user_play_map['game_id'] = $request['game_id'];
$user_play_data = $user_play->where($user_play_map)->find();
if ($user_play_data['bind_balance'] < $request['price']) {
$price = $request['price'];
if ($user_play_data['bind_balance'] > 0) {
$user_play->where($user_play_map)->save(array('bind_balance' => 0)); // 扣绑定币
$request['price'] = $user_play_data['bind_balance'];
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
$request['pay_way'] = 0; // 扣平台币
$real_price = $price - $user_play_data['bind_balance'];
$user->where(array('id' => $request["user_id"]))->setDec("balance", $real_price);
//$this->set_message(0,"fail", $request['pay_order_number']);
$request['pay_order_number'] = $request['pay_order_number']."_1";
$request['price'] = $real_price;
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 1); // 游戏返利
} else { // 绑定币足够扣
$user_play->where($user_play_map)->setDec('bind_balance', $request['price']); // 扣绑定币
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
$game = new GameApi();
$game->game_pay_notify($request, $request['code']);
$url = 'http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success3/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id'];
redirect($url);
}
/**

@ -18,8 +18,11 @@ class BaseController extends RestController{
&&!preg_match("/wap_shortcut_pay/",GetCurUrl())
&&!preg_match("/shortcut_pay/",GetCurUrl())
&&!preg_match("/android_shortcut_pay/",GetCurUrl())
&&!preg_match("/alipay_pay/",GetCurUrl())
&&!preg_match("/wap_shortcut_pay/",GetCurUrl())
&&!preg_match("/apple_weixin_pay/",GetCurUrl())
&&!preg_match("/Ipa365/",GetCurUrl())
&&!preg_match("/user_login/",GetCurUrl())
&&!preg_match("/platform_coin_deduction/",GetCurUrl())
){
$data = json_decode(base64_decode(file_get_contents("php://input")),true);
@ -615,6 +618,7 @@ class BaseController extends RestController{
*/
public function set_ratio($data,$type = 1){
$map['pay_order_number']=$data;
$map['pay_way'] = ($type==2) ? -1 : 0; // 判断支付类型
$spend=M("Spend","tab_")->where($map)->find();
$reb_map['game_id']=$spend['game_id'];
$time = time();
@ -677,4 +681,39 @@ class BaseController extends RestController{
$add['create_time']=time();
return $add;
}
/**
* 优先扣除绑币 和平台 处理
* $request $discountAmount 折扣价格
*/
public function other_price(&$request, $discountAmount=0) {
// 优先扣除绑定币平台币
if ($request['code'] == '0') return $request; // 平台币充值 不做判断
$deductionAmount = 0;
$user_id = $request['user_id'];
$game_id = $request['game_id'];
$balance = M ('user', 'tab_')->where (array(
'id' => $user_id
))->getField('balance');
$bind_balance = M('user_play', 'tab_')->where(array(
'user_id' => $user_id,
'game_id' => $game_id
))->getField('bind_balance');
// 够抵扣的情况 不走这个接口
$deductionAmount = $bind_balance + $balance;
if ($deductionAmount > $request['price']) {
if ($request['sdk_version'] == 1)
$this->set_message(1089,"fail",$deductionAmount."平台币足够,请关闭支付页面重新支付".$pay_amount);
else {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>"平台币足够,请关闭支付页面重新支付")));exit;
}
}
// 实际支付金额 = 支付总金额 - 折扣抵扣价格 - 绑币和平台币抵扣金额
$request['actual_amount'] = round($request['price'] - $discountAmount - $deductionAmount, 2).'';
$request['discount_amount'] = round($discountAmount, 2).'';
$request['deduction_amount'] = round($deductionAmount, 2).'';
$request['price'] = round($request['actual_amount'], 2).'';
return $request;
//$this->set_message(1089,"fail",$request['price']."新支付".$pay_amount);
}
}

@ -68,7 +68,24 @@ class Ipa365Controller extends BaseController{
));
}
public function pay_order_check() {
$orderId = I('order_id');
$order = M('game_supersign', 'tab_')->where(array(
'order_id' => $orderId
))->find();
if (!$order) {
echo "订单不存在!";
}
if ($order['pay_status'] == 1) {
redirect(U("Ipa365/install_show", [
'game_id' => $order['game_id'],
'order_id' => $order['order_id']
]));
}
echo "订单正在处理中.请稍后再试!";
exit();
}
/*
* 发起支付
*/
@ -132,9 +149,6 @@ class Ipa365Controller extends BaseController{
$param['notifyurl'] = "https://api.wmtxkj.com/callback.php/Notify/notify/apitype/alipay";
$ret = $this->alipay($param);
$_SESSION['paytip_price']=self::signprice;
$_SESSION['paytip_order_id']=$orderId;
$_SESSION['paytip_url']=$ret['url'];
$this->assign("price", self::signprice);
$this->assign("url", $ret['url']);
@ -144,11 +158,47 @@ class Ipa365Controller extends BaseController{
$this->display();
}
public function paytip(){
$this->assign("price", $_SESSION['paytip_price']);
$this->assign("url", $_SESSION['paytip_url']);
$this->assign("order_id", $_SESSION['paytip_order_id']);
$orderId = I('order_id');
$payLog = M('game_supersign', 'tab_')->where(array(
'order_id' => $orderId,
))->find();
$this->assign('url', U('Ipa365/install', array(
'order_id' => $payLog['order_id'],
'user_id' => $payLog['user_id'],
'game_id' => $payLog['game_id'],
)));
$price = $payLog['pay_price'];
$userId = $payLog['user_id'];
$gameId = $payLog['game_id'];
$param['price'] = $price;
$param['sdk_version'] = '2';
$param['user_id'] = $userId;
$param['game_id'] = $gameId;
$param['order_id'] = $orderId;
$param['apitype'] = "alipay";
$param['config'] = "alipay";
$param['signtype']= "MD5";
$param['server'] = "alipay.wap.create.direct.pay.by.user";
$param['payway'] = 1;
$param['title'] = $price;
$param['body'] = $price;
$param['callback'] = "https://api.wmtxkj.com/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}";
$param['notifyurl'] = "https://api.wmtxkj.com/callback.php/Notify/notify/apitype/alipay";
$ret = $this->alipay($param);
$this->assign("url", $ret['url']);
$this->assign("price", $price);
$this->assign("order_id", $payLog['order_id']);
$this->assign("game_id", $payLog['game_id']);
//$this->assign("jump_url",$jump_url);
$this->display();
}

@ -328,6 +328,98 @@ class PayController extends BaseController
echo base64_encode(json_encode($data));
}
/*
* 平台币抵扣
* 优先抵扣绑币 平台币 调这个接口说明 不走第三方支付通道
*/
public function platform_coin_deduction() {
#获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
#记录信息
if ($request['price'] *1<=0) {
$this->set_message(1011, "fail", "充值金额有误");
}
$request['price'] = abs($request['price']);
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'pay_status'=>1,'game_id'=>$request['game_id']))->find();
if($extend_data){
$this->set_message(1089,"fail","订单号重复,请关闭支付页面重新支付");
}
$user_info = get_user_entity($request['user_id']);
if($user_info['lock_status'] == 0 || $user_info['check_status'] == 0){
$this->set_message(0,"fail","账号被禁用,无法充值,请联..系客服!");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
$this->set_message(0,"fail","该游戏暂时无法充值,请联系客服!");
}
$out_trade_no = "PF_" . date('Ymd') . date('His') . sp_random_string(4);
$request['order_number'] = $out_trade_no;
$request['pay_order_number'] = $out_trade_no;
$request['out_trade_no'] = $out_trade_no;
$request['title'] = $request['title'];
$request['pay_status'] = 1;
$request['pay_way'] = 0;
$request['spend_ip'] = get_client_ip();
$user_entity = get_user_entity($request['user_id']);
$discount_arr = $this->get_discount($request['game_id'], $user_entity['promote_id'], $request['user_id']);
$discount = $discount_arr['discount'];
$user = M("user", "tab_");
//添加黑名单
$check_deposit_money = $this->check_deposit_money($user_entity);
$check_bind_money = $this->check_bind_money($user_entity);
if($check_deposit_money === false || $check_bind_money === false || (C('BRUSH_MONEY') && (abs($check_deposit_money)>=C('BRUSH_MONEY') || abs($check_bind_money)>=C('BRUSH_MONEY'))) || (!C('BRUSH_MONEY') && (abs($check_deposit_money) != 0 || abs($check_bind_money) != 0))){
if(C('BRUSH_SMS_STATUS') && C('BRUSH_PHONE')&& C('BRUSH_SMS_ID')){
$result = $this-> send_block(C('BRUSH_PHONE'),$user_entity['account']);
}
$block_data['check_status'] = 0;
$block_data['block_time'] = time();
$user->where(['id'=>$user_entity['id']])->save($block_data);
echo base64_encode(json_encode(array("status" => 1076,"return_code" => "fail", "return_msg" => C('BRUSH_MONEY')."您的账号暂时无法充值,请联系客服处理.".$check_deposit_money)));
exit();
}
$result = false;
// 先扣绑币
$request['pay_way'] = -1;
$user_play = M("UserPlay", "tab_");
$user_play_map['user_id'] = $request['user_id'];
$user_play_map['game_id'] = $request['game_id'];
$user_play_data = $user_play->where($user_play_map)->find();
if ($user_play_data['bind_balance'] < $request['price']) {
$price = $request['price'];
if ($user_play_data['bind_balance'] > 0) {
$user_play->where($user_play_map)->save(array('bind_balance' => 0)); // 扣绑定币
$request['price'] = $user_play_data['bind_balance'];
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
$request['pay_way'] = 0; // 扣平台币
$real_price = $price - $user_play_data['bind_balance'];
$user->where(array('id' => $request["user_id"]))->setDec("balance", $real_price);
//$this->set_message(0,"fail", $request['pay_order_number']);
$request['pay_order_number'] = $request['pay_order_number']."_1";
$request['price'] = $real_price;
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 1); // 游戏返利
} else { // 绑定币足够扣
$user_play->where($user_play_map)->setDec('bind_balance', $request['price']); // 扣绑定币
$result = $this->add_spend($request);
$this->set_ratio($request['pay_order_number'], 2); // 游戏返利
}
$game = new GameApi();
$game->game_pay_notify($request, $request['code']);
if ($result) {
echo base64_encode(json_encode(array("status" => 200, "return_code" => "success", "return_msg" => "支付成功", "out_trade_no" => $out_trade_no)));
} else {
echo base64_encode(json_encode(array("status" => 1078, "return_code" => "fail", "return_msg" => "支付失败")));
}
}
/**
*平台币支付
@ -347,7 +439,7 @@ class PayController extends BaseController
}
$user_info = get_user_entity($request['user_id']);
if($user_info['lock_status'] == 0 || $user_info['check_status'] == 0){
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服!");
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服...");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){

@ -43,37 +43,35 @@ class SpendController extends Controller {
* @return [type] [description]
*/
public function pay_way() {
$user_id = I ( 'user_id' );
$game_id = I ( 'game_id' );
$user_id = I ('user_id');
$game_id = I ('game_id');
$file = file_get_contents ( "./Application/Sdk/OrderNo/" . $user_id . "-" . $game_id . ".txt" );
$request = json_decode ( think_decrypt ( $file ), true );
$data = array(
'coin' => $request ['body'],
'price' => $request ['price'],
'game_name' => $request ['game_name'],
'code' => $request ['code']
'coin' => $request ['body'],
'price' => $request ['price'],
'game_name' => $request ['game_name'],
'code' => $request ['code']
);
$balance = M ( 'user', 'tab_' )->where ( array (
'id' => $user_id
'id' => $user_id
) )->getField ( 'balance' );
$bind_balance = M ( 'user_play', 'tab_' )->where ( array (
'user_id' => $user_id,
'game_id' => $game_id
'user_id' => $user_id,
'game_id' => $game_id
) )->getField ( 'bind_balance' );
$data['price'] = 1;
/* $sqpay = new Sqpay();
$prefix = $request['code'] == 1 ? "SP_" : "PF_"; // SP 0 充值 1消费
$order_no = $prefix.date('Ymd').date('His').sp_random_string(4);
$ret = $sqpay->sq_pay($order_no,$request ['price'],$merno="168885",$ip=0,$returnurl="");
$ret = json_decode($ret, true); */
$this->assign ( 'balance', $balance );
$this->assign ( 'bind_balance', $bind_balance );
$this->assign ( 'data', $data );
$this->assign ( 'btncolor', $request ['btncolor'] );
if ($balance + $bind_balance > $data['price'])
$this->assign ('pay_price', 0); // 是否第三方支付
else
$this->assign ('pay_price', $data['price'] - $balance - $bind_balance);
/* $this->assign ( 'alipayurl', $ret[0]['payURL']);
header("Access-Control-Allow-Origin: *"); */
@ -87,6 +85,7 @@ class SpendController extends Controller {
$orderno = $_GET ['jinzhue'];
}
$pay_where = substr ( $orderno, 0, 2 );
$Scheme = file_get_contents ( "./Application/Sdk/Scheme/" . $_GET ['game_id'] . ".txt" );
$map ['pay_order_number'] = $orderno;
switch ($pay_where) {
case 'SP' :
@ -104,6 +103,7 @@ class SpendController extends Controller {
$result = M ( 'bind_recharge', 'tab_' )->field ( 'pay_status' )->where ( $map )->find ();
break;
}
$this->assign ( 'Scheme', $Scheme );
$this->assign ( 'paystatus', $result ['pay_status'] );
$this->display ();
}

@ -1711,6 +1711,7 @@ class UserController extends BaseController
} else if (pay_set_status('wei_xin_app') == 0 && pay_set_status('weixin') == 0 && pay_set_status('jft_wap') == 0) {
$wx_game = 0;
}
if ($request['price'] > C('WX_PAY_LIMIT')) $wx_game = 0;
if (pay_set_status('alipay') == 1 || (pay_set_status('goldpig') == 1 && C('goldpig.zfb'))
|| (pay_set_status('sqpay') == 1 && C('sqpay.zfb'))
) {

@ -57,35 +57,6 @@ class WapPayController extends BaseController{
return $pay->buildRequestForm($vo, 0, $param);
}
/**
* 优先扣除绑币 和平台 处理
* $request $discountAmount 折扣价格
*/
public function other_price(&$request, $discountAmount=0) {
// 优先扣除绑定币平台币
$deductionAmount = 0;
$user_id = $request['user_id'];
$game_id = $request['game_id'];
$balance = M ('user', 'tab_')->where (array(
'id' => $user_id
))->getField('balance');
$bind_balance = M('user_play', 'tab_')->where(array(
'user_id' => $user_id,
'game_id' => $game_id
))->getField('bind_balance');
// 够抵扣的情况 不走这个接口
$deductionAmount = $bind_balance + $balance;
if ($deductionAmount > $request['price']) {
$this->set_message(1089,"fail",$deductionAmount."平台币足够,请关闭支付页面重新支付".$pay_amount);
}
// 实际支付金额 = 支付总金额 - 折扣抵扣价格 - 绑币和平台币抵扣金额
$request['actual_amount'] = round($request['price'] - $discountAmount - $deductionAmount, 2).'';
$request['discount_amount'] = round($discountAmount, 2).'';
$request['deduction_amount'] = round($deductionAmount, 2).'';
$request['price'] = round($request['actual_amount'], 2).'';
return $request;
//$this->set_message(1089,"fail",$request['price']."新支付".$pay_amount);
}
/**
*支付宝移动支付
@ -120,7 +91,7 @@ class WapPayController extends BaseController{
$out_trade_no = $prefix.date('Ymd').date('His').sp_random_string(4);
$request = $this->other_price($request);
Log::write(serialize($request), Log::DEBUG);
//Log::write(serialize($request), Log::DEBUG);
if(get_zfb_type()==0){
$game_set_data = get_game_set_info($request['game_id']);
@ -133,6 +104,7 @@ Log::write(serialize($request), Log::DEBUG);
$request['title']=$request['price'];
$request['body']=$request['price'];
$request['out_trade_no'] = $out_trade_no;
//$this->set_message(1011,"fail", $request['code']);
$pay_url=$this->pay($request);
@ -594,7 +566,7 @@ Log::write(serialize($request), Log::DEBUG);
$this->set_message(1088, "fail", $payCheck['msg']);
}
C(api('Config/lists'));
if($request['price']*1<=0){
if($request['price']*1<=0 || $request['price'] > C('WX_PAY_LIMIT')){
$this->set_message(1011,"fail","充值金额有误");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();

@ -69,7 +69,7 @@
<span>{$price}元</span>
</div>
<a class="order-payinfo-item"
href="#;" onclick="jump('{$url}')"
href="#;" onclick="jump('{$order_id}')"
title="支付宝">
<div class="order-payinfo-icon">
<img src="__IMG__/ssg/alipay/zfb-pic.jpg" alt="支付宝">
@ -86,11 +86,11 @@
</div>
</body>
<script>
function jump($pay_url) {
function jump(pay_url) {
if(isWeiXin()){
window.location.href = "/sdk.php/Ipa365/paytip";
window.location.href = "/sdk.php/Ipa365/paytip/order_id/"+pay_url;
}else{
window.location.href=$pay_url;
window.location.href=pay_url;
}
}
//判断是否是微信浏览器的函数

@ -16,7 +16,7 @@
<script>
$(document).ready(function(){
if(isWeiXin()==false){
//window.location.href='{$url}';
window.location.href='{$url}';
}
});
//判断是否是微信浏览器的函数
@ -54,7 +54,7 @@
<label>商品名称:</label><span>超级签购买</span>
</div>
<div class="m-order-item">
<label>商品描述:</label><span>{$url}</span>
<label>商品描述:</label><span></span>
</div>
<div class="m-order-item">
<label>交易金额:</label><span>{$price}元</span>
@ -62,10 +62,10 @@
</div>
<div class="m-order-qrcode">
<div class="m-weixin-alipay-hintinfo">由于微信不支持支付宝直接支付请点击微信右上角菜单在Safari中打开</div>
<!--<div class="m-weixin-alipay-qrcode-foot">
<a class="fail-pay" href="http://apipay.37376.com/pay/payreturn?TradeNo=201909231287512597767135279&amp;SignatureStamp=1569242244&amp;SignatureMD5=256B903183112B9BA4A826E579E89142">支付遇到问题</a>
<a class="success-pay" href="http://apipay.37376.com/pay/payreturn?TradeNo=201909231287512597767135279&amp;SignatureStamp=1569242244&amp;SignatureMD5=256B903183112B9BA4A826E579E89142">支付完成</a>
</div>-->
<div class="m-weixin-alipay-qrcode-foot">
<a class="fail-pay" href="{:U('Ipa365/pay_order_check', array('order_id' => $order_id, 'game_id' => $game_id))}">支付遇到问题</a>
<a class="success-pay" href="{:U('Ipa365/pay_order_check', array('order_id' => $order_id, 'game_id' => $game_id))}">支付完成</a>
</div>
</div>
</div>

@ -42,11 +42,27 @@ border: 1px solid #999;
</style>
<div class="news_area" style="padding:0px;">
<input type="hidden" name="pay_order_number" class="orderno" value="{:I('pay_order_number')}">
<input type="hidden" name="Scheme" class="Scheme" value="{$Scheme}">
<br/><br/><br/><br/><br/>
<style>
.notice {
margin: 0 auto;
padding: 0;
font-size: 1.2rem;
background: rgba(25,177,234);
color: #fff;
line-height: 3.2rem;
width: 80%;
border-radius: 0.7rem;
}
</style>
<!--未绑定-->
<div class="pay_suc">
<if condition="$paystatus eq 1">
<img src="__IMG__/my_suc.png">
<h3>支付成功</h3>
<button class="notice" id="back_success">点击返回</button>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var orderno=$('.orderno').val();
@ -60,12 +76,11 @@ border: 1px solid #999;
}
}catch(err){
setTimeout(function () {
/* setTimeout(function () {
window.location.href= "/mobile.php?s=/User/index.html";
},1000)
},1000) */
}
</script>
@ -76,7 +91,7 @@ border: 1px solid #999;
<img src="__IMG__/my_fail.png">
<h3>支付失败{$paystatus}</h3>
<button class="notice" id="back_error">点击返回</button>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var orderno=$('.orderno').val();
@ -89,9 +104,9 @@ try{
window.webkit.messageHandlers.exchangeResult.postMessage(0);
}
}catch(err){
setTimeout(function () {
/* setTimeout(function () {
window.location.href= "/mobile.php?s=/User/index.html";
},1000)
},1000) */
}
</script>
@ -106,6 +121,75 @@ try{
</div>
<script>
$("#back_success").click(function() {
/* var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
try{
if(isAndroid){
window.mengchuang.getPayResult('succeed');
}else{
window.webkit.messageHandlers.exchangeResult.postMessage(1);
}
}catch(err){
} */
var Scheme=$('.Scheme').val();
var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
if(isAndroid){
window.mengchuang.getPayResult('succeed');
}else{
<if condition="get_wx_type() neq 1">
window.location.href = Scheme+"://1&back";
<else/>
window.location.href = "mengchuang://showWapPayResult_btnType_?1&back";
</if>
}
});
$("#back_error").click(function() {
/* var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
try{
if(isAndroid){
window.mengchuang.getPayResult('fail');
}else{
window.webkit.messageHandlers.exchangeResult.postMessage(0);
}
}catch(err){
} */
var Scheme=$('.Scheme').val();
var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
if(isAndroid){
window.mengchuang.getPayResult('fail');
}else{
<if condition="get_wx_type() neq 1">
if (!Scheme)
;
else
window.location.href = Scheme+"://0&back";
<else/>
window. location.href = "mengchuang://showWapPayResult_btnType_?0&back";
</if>
}
});
</script>
</body>
</html>

@ -43,13 +43,26 @@ border: 1px solid #999;
<div class="news_area" style="padding:0px;">
<input type="hidden" name="pay_order_number" class="orderno" value="{:I('pay_order_number')}">
<input type="hidden" name="Scheme" class="Scheme" value="{$Scheme}">
<br/><br/><br/><br/><br/>
<style>
.notice {
margin: 0 auto;
padding: 0;
font-size: 1.2rem;
background: rgba(25,177,234);
color: #fff;
line-height: 3.2rem;
width: 80%;
border-radius: 0.7rem;
}
</style>
<!--未绑定-->
<div class="pay_suc">
<if condition="$paystatus eq 1">
<!-- <img src="__IMG__/my_suc.png">
<h3>支付成功</h3> -->
<img src="__IMG__/my_suc.png">
<h3>支付成功</h3>
<button class="notice" id="back_success">点击返回</button>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var Scheme=$('.Scheme').val();
@ -75,8 +88,9 @@ border: 1px solid #999;
<else/>
<img src="__IMG__/my_fail.png">
<h3>支付失败{$paystatus}</h3>
<button class="notice" id="back_error">点击返回1</button>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var Scheme=$('.Scheme').val();
@ -106,6 +120,43 @@ if(isAndroid){
</div>
<script>
$("#back_success").click(function() {
var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
try{
if(isAndroid){
window.mengchuang.getPayResult('succeed');
}else{
window.webkit.messageHandlers.exchangeResult.postMessage(1);
}
}catch(err){
}
});
$("#back_error").click(function() {
var orderno=$('.orderno').val();
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
try{
if(isAndroid){
window.mengchuang.getPayResult('fail');
}else{
window.webkit.messageHandlers.exchangeResult.postMessage(0);
}
}catch(err){
}
});
</script>
</body>
</html>

@ -1,245 +1,270 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<link href="__CSS__/index.css" rel="stylesheet" />
<style>input{outline:none;-webkit-appearance:none;}
html{font-size:12px;}
body {background:#F3F2F7;font-size:inherit;}
i{font-style:normal;font-weight:normal;}
.recharge_table {display:table;width:100%;}
.recharge_table .recharge_cell {display:table-cell;vertical-align:middle;text-align:center;}
.recharge_content {margin:0 auto;}
.recharge_content span {display:block;}
.recharge_money {height:5.818rem;background:#FFF;}
.recharge_content_number {color:#01B1EC;font-size:1.3rem;}
.recharge_content_coin,.recharge_game_name {color:#999;}
.recharge_content_number i {font-size:1.636rem;}
.recharge_game {background:#FFF;font-size:1.2rem;height:3.727rem;line-height:3.737rem;border-top:2px solid #DEE2E5;}
.recharge_game .recharge_value {padding:0 1.13rem;}
.recharge_way {height:10.8rem;}
.recharge_way_title {height:2.7rem;line-height:2.7rem;text-align:center;font-size:1.07rem;}
.recharge_way_content,.recharge_way_wrap {height:8rem;}
.recharge_way_btn {height:7.2rem;display:inline-block;}
.recharge_way_btn img{width:6.84rem;height:6.84rem;display:inline-block;margin-top:.18rem;}
.recharge_way_btn_alipay img{width:6.84rem;height:6.84rem;margin-top:0;}
.platform_pop {position:absolute;top:0;left:0;width:100%;height:100%;display:none;}
.platform_pop_table {width:100%;height:100%;}
.platform_box {color:#999;position:relative;top:0;left:auto;right:auto;width:24rem;display:block;margin:0 auto;background:#FFF;border-radius:.3rem;}
.platform_pop_close {position:absolute;top:0.8rem;right:0.8rem;color:#999;}
.platform_pop_close img {width:1.7rem;height:1.7rem;}
.platform_title {line-height:3.4rem;font-size:1.8rem;}
.platform_content {padding:0 0.8rem;text-align:left;font-size:1.5rem;}
.platform_notice {color:#333;line-height:1.4;}
.platform_notice span {color:red;}
.platform_radio {padding-top:.2rem;padding-bottom:0.2rem;}
.platform_radio .platform_radio_item {display:block;line-height:1.8;position:relative;}
.platform_radio_item input {position:absolute;top:0;left:0;z-index:-1;width:1.8rem;height:1.8rem;}
.platform_radio_item input~i{width:1.6rem;height:1.6rem;background:url(__IMG__/btn_check_n.png) center center no-repeat;background-size:100% 100%;display:inline-block;vertical-align:middle;margin-top:-.3rem;margin-right:0.2rem;}
.platform_radio_item input:checked~i{background-image:url(__IMG__/btn_check_s.png);}
.platform_btn {padding:0.2rem .8rem 1rem;}
.platform_btn input {background:#F9AB42;color:#FFF;line-height:1.8;font-size:1.8rem;border:none;width:100%;border-radius:.3rem;}
@media screen and (max-width:400px) {
.recharge_game {border-top-width:1px;}
}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="__CSS__/weui.min.css">
<script src="__JS__/flex.min.js"></script>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script src="__STATIC__/layer_mobile/layer.js"></script>
<title>支付中心</title>
</head>
<style>
html,
body {
background-color: #F5F5F5;
min-height: 100vh;
</head>
}
<body>
<div class="containers">
<div class="recharge_money recharge_table">
<div class="recharge_cell">
<div class="recharge_content">
<span class="recharge_content_number"><i>{$data.price}</i></span>
<span class="recharge_content_coin">{$data.coin}</span>
</div>
</div>
</div>
<eq name="data.code" value="1">
<div class="recharge_game">
<div class="recharge_value">
<span class="recharge_game_name">游戏名称:</span>
<span>{$data.game_name}</span>
</div>
</div>
</eq>
<div class="recharge_way">
<div class="recharge_way_title">请选择支付方式</div>
<div class="recharge_way_content">
<div class="recharge_way_wrap recharge_table">
<if condition="C('wei_xin.status') eq 1 or C('weixin_gf.status') eq 1 or (C('goldpig.status') eq 1 and C('goldpig.wx') eq 1) or (C('heepay.status') eq 1 and C('heepay.wxp') eq 1)">
<div class="recharge_cell">
<a href="{:U('Apple/apple_weixin_pay',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_wechat"><img src="__IMG__/btn_pay_wechat@3x.png"></a>
</div>
</if>
<if condition="C('alipay.status') eq 1 or (C('goldpig.status') eq 1 and C('goldpig.zfb') eq 1) or (C('sqpay.status') eq 1 and C('sqpay.zfb') eq 1)">
<div class="recharge_cell">
<!-- <a href="{:U('Apple/apple_alipay_pay',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_alipay"><img src="__IMG__/btn_pay_alipay@3x.png"></a>
-->
<a href="javascript:;" data-url="/sdk.php?s=/Apple/apple_alipay_pay&user_id={:I('user_id')}&game_id={:I('game_id')}" id="alipaybtn" class="recharge_way_btn recharge_way_btn_alipay"><img src="__IMG__/btn_pay_alipay@3x.png"></a>
<!--
<a href="{$alipayurl}" data-url="" id="alipaybtn" class="recharge_way_btn recharge_way_btn_alipay"><img src="__IMG__/btn_pay_alipay@3x.png"></a>
-->
</div>
</if>
<if condition="C('sqpay.status') eq 1 and C('sqpay.union') eq 1">
<div class="recharge_cell">
<a href="{:U('Apple/apple_union_pay', array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_alipay">
<img src="__IMG__/unionpay.png"></a>
</div>
</if>
.weui-cells {
border-radius: .2rem;
box-shadow: 0px 0px .05rem rgba(0, 0, 0, .2);
margin-top: 0px;
}
<if condition="pay_set_status('ptb_pay') eq 1 and $data['code'] eq 1">
<div class="recharge_cell">
<a href="javascript:;" id="platform_id" class="recharge_way_btn recharge_way_btn_platform"><img src="__IMG__/btn_pay_platform@3x.png"></a>
</div>
</if>
.weui-cell {
height: 0.85rem;
font-size: .28rem;
color: #292929;
padding: 0px .3rem;
}
<if condition="pay_set_status('bind_pay') eq 1 and $data['code'] eq 1">
<div class="recharge_cell">
<a href="javascript:;" id="platform_id1" class="recharge_way_btn recharge_way_btn_platform"><img src="__IMG__/icon_bangbi@3x.png"></a>
</div>
</if>
<if condition="C('sqpay.status') eq 1 and C('sqpay.shortcut') eq 1">
<div class="recharge_cell">
<a href="{:U('WapPay/wap_shortcut_pay', array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_alipay">
<img src="__IMG__/unionpay.png"></a>
</div>
</if>
</div>
</div>
</div>
<div class="platform_pop" id="platform_pop">
<div class="platform_pop_table recharge_table">
<div class="recharge_cell">
<form class="platform_box" action="{:U('Apple/apple_platform_pay',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" enctype="multipart/form-data" method="post">
<a href="javascript:;" id="platform_pop_close" class="platform_pop_close"><img src="__IMG__/icon_close@3x.png" ></a>
<div class="platform_title">平台币</div>
<div class="platform_content">
<div class="platform_notice">应付款平台币数量:<span>{$data.price}</span></div>
<div class="platform_radio">
<label class="platform_radio_item"><input type="radio" name="way" value="1" checked><i></i>平台币余额:<span>{$balance}</span></label>
</div>
</div>
<div class="platform_btn">
<input type="submit" value="立即支付" style="background-color:<notempty name='btncolor'>#{$btncolor}<else />#F9AB42</notempty>">
</div>
</form>
</div>
</div>
</div>
<div class="platform_pop" id="platform_pop1">
<div class="platform_pop_table recharge_table">
<div class="recharge_cell">
<form class="platform_box" action="{:U('Apple/apple_platform_pay',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" enctype="multipart/form-data" method="post">
<a href="javascript:;" id="platform_pop_close1" class="platform_pop_close"><img src="__IMG__/icon_close@3x.png" ></a>
<div class="platform_title">绑币平台币</div>
<div class="platform_content">
<div class="platform_notice">应付款绑币数量:<span>{$data.price}</span></div>
<div class="platform_radio">
<label class="platform_radio_item"><input type="radio" name="way" value="2" checked><i></i>绑定平台币余额:<span>{$bind_balance}</span></label>
</div>
</div>
<div class="platform_btn">
<input type="submit" value="立即支付" style="background-color:<notempty name='btncolor'>#{$btncolor}<else />#F9AB42</notempty>">
</div>
</form>
</div>
</div>
</div>
</div>
</body>
<script>
var html=document.getElementsByTagName('html')[0];
function fontsizechange() {
var rate = html.clientWidth/640;
var basesize = 22;
html.style.fontSize = (rate>1?basesize:basesize*rate)+'px';
}
fontsizechange();
window.onresize = function() {
fontsizechange();
}
$(function() {
$('#platform_id').on('click',function() {
$('#platform_pop').fadeIn().find('#platform_pop_close').on('click',function() {
$(this).closest('#platform_pop').fadeOut();
return false;
});
return false;
});
img {
width: .72rem;
height: .72rem;
margin-right: .2rem;
/* margin: .3rem; */
}
.paylist .weui-cell {
padding: .2rem .3rem;
height: 1rem;
}
.paylist .weui-cell__hd {
display: flex;
}
.weui-cells:after {
border: 0px;
}
.weui-cells:before {
border: 0px;
}
@media screen and (orientation: portrait) {
.box{
padding:.3rem;
}
.bottombutton{
height:1rem;background-color: #21B1EB;color: #ffffff;font-size: .32rem;text-align: center;line-height:1rem;bottom: 0px;
position: fixed;left: 0;right: 0;
}
}
@media screen and (orientation: landscape) {
/*横屏 css*/
.box{
padding:.3rem .5rem;
}
.bottombutton{
height:1rem;background-color: #21B1EB;color: #ffffff;font-size: .32rem;text-align: center;line-height:1rem;
width: 7.5rem;border-radius: .2rem;position: absolute;left: 50%;margin: .5rem 0 .5rem -3.75rem;
}
body{
padding-bottom: .50rem;
}
.paylist-box{
display: flex;
height: auto;
flex-wrap:wrap;
}
.paylist-box .weui-cell{
min-width: 30%;
box-sizing: content-box;
margin-left: 3%;
padding: .2rem .0rem;
/* padding: .4rem .3rem; */
}
.paylist-box .weui-cell:before{
content: none;
}
}
.border-half-line{
width: 97%;
margin-left: 3%;
float:left;
height:1px;
background-color: #e5e5e5;
-webkit-transform:scale(1,0.5);
transform:scale(1,0.5);
-webkit-transform-origin:top center;
transform-origin: top center
}
$('#platform_id1').on('click',function() {
$('#platform_pop1').fadeIn().find('#platform_pop_close1').on('click',function() {
$(this).closest('#platform_pop1').fadeOut();
return false;
});
@media screen and (orientation: portrait) {
.box{
padding:.3rem;
}
}
@media screen and (orientation: landscape) {
/*横屏 css*/
.box{
padding:.3rem .5rem;
}
.bottombutton{
height:1rem;background-color: #21B1EB;color: #ffffff;font-size: .32rem;text-align: center;line-height:1rem;
width: 7.5rem;border-radius: .2rem;position: absolute;left: 50%;margin: .5rem 0 .5rem -3.75rem;
}
body{
padding-bottom: .50rem;
}
}
return false;
});
$('#alipaybtn').on('click',function() {
var that = $(this),url = $.trim(that.attr('data-url'));
if(that.hasClass('disabledbtn')){return false;}
that.addClass('disabled');
$.ajax({
type:'post',
dataType:'json',
data:{},
url:url,
success:function(result) {
if(result.code==200) {
var data = result.data;
if(data.wap==1) {
location.href = data.url;
} else if (data.wap==1) {
window.webkit.messageHandlers.noticeAppResult.postMessage(data.url);
}
else {
</style>
window.webkit.messageHandlers.noticeAppResult.postMessage(data.url);
<body>
<div class="box">
<div class="weui-cells">
<div class="weui-cell">
<div class="weui-cell__bd">
<p>订单金额:</p>
</div>
<div class="weui-cell__ft" style="color: red">¥{$data['price']}元</div>
</div>
<div class="weui-cell">
<div class="weui-cell__bd">
<p>您的账户余额:</p>
</div>
<div class="weui-cell__ft" style="color: #A9A9A9;">{$balance+$bind_balance}平台币</div>
</div>
</div>
<div class="weui-cells" style="margin-top: .3rem;">
<div class="weui-cell">
<div class="weui-cell__bd">
<p>适用平台余额:</p>
</div>
<div class="weui-cell__ft" style="color: #292929">-¥{$balance+$bind_balance}</div>
</div>
<div class="weui-cell">
<div class="weui-cell__bd">
<p>还需支付:</p>
</div>
<div data-pay_price="{$pay_price}" id="pay_price" class="weui-cell__ft" style="color: red">¥{$pay_price}</div>
</div>
</div>
<div class="weui-cells paylist" style="margin-top: .3rem;">
<div class="weui-cells__title" style="line-height: .85rem;color: #a9a9a9;font-size:.28rem;margin: 0px;">
请选择支付方式</div>
<div class="border-half-line" style="position: absolute;"></div>
<div class="paylist-box">
<if condition="C('alipay.status') eq 1 or (C('goldpig.status') eq 1 and C('goldpig.zfb') eq 1) or (C('sqpay.status') eq 1 and C('sqpay.zfb') eq 1)">
<a id="alipaybtn" class="weui-cell" href="javascript:;" data-url="/sdk.php?s=/Apple/apple_alipay_pay&user_id={:I('user_id')}&game_id={:I('game_id')}" id="alipaybtn" class="recharge_way_btn recharge_way_btn_alipay">
<div class="weui-cell__hd"><img src="__IMG__/alipay.png"></div>
<div class="weui-cell__bd">
<p style="color: #292929;font-size:.28rem;">支付宝支付</p>
<p style="color: #a9a9a9;font-size:.2rem;">推荐支付宝用户使用</p>
</div>
</a>
</if>
<if condition="$pay_price elt C('WX_PAY_LIMIT')">
<if condition="C('wei_xin.status') eq 1 or C('weixin_gf.status') eq 1 or (C('goldpig.status') eq 1 and C('goldpig.wx') eq 1) or (C('heepay.status') eq 1 and C('heepay.wxp') eq 1)">
<a class="weui-cell" href="{:U('Apple/apple_weixin_pay',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_wechat">
<div class="weui-cell__hd"><img src="__IMG__/wxpay.png"></div>
<div class="weui-cell__bd">
<p style="color: #292929;font-size:.28rem;">微信支付</p>
<p style="color: #a9a9a9;font-size:.2rem;">推荐微信用户使用</p>
</div>
</a>
</if>
</if>
<if condition="C('sqpay.status') eq 1 and C('sqpay.union') eq 1">
<a class="weui-cell" href="{:U('Apple/apple_union_pay', array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_alipay">
<div class="weui-cell__hd"><img src="__IMG__/cardpay.png"></div>
<div class="weui-cell__bd">
<p style="color: #292929;font-size:.28rem;">银行卡支付</p>
<p style="color: #a9a9a9;font-size:.2rem;">使用银行卡支付</p>
</div>
</a>
</if>
<if condition="C('sqpay.status') eq 1 and C('sqpay.shortcut') eq 1">
<a class="weui-cell" href="{:U('WapPay/wap_shortcut_pay', array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}" class="recharge_way_btn recharge_way_btn_alipay">
<div class="weui-cell__hd"><img src="__IMG__/onlinepay.png"></div>
<div class="weui-cell__bd">
<p style="color: #292929;font-size:.28rem;">快捷支付</p>
<p style="color: #a9a9a9;font-size:.2rem;">可在线快捷支付</p>
</div>
</a>
</if>
</div>
</div>
}
} else {
layer.open({
content: result.msg
,skin: 'msg'
,time: 2 //2秒后自动关闭
});
}
},error:function() {
that.removeClass('disabledbtn');
}
</div>
<botton id="platform_pay" class="bottombutton">
确认支付
</botton>
</body>
<script>
$(function() {
if ($("#pay_price").data("pay_price") == 0) {
$("#platform_pay").show();
$(".paylist").hide();
} else {
$("#platform_pay").hide();
$(".paylist").show();
}
$("#platform_pay").click(function() {
var url = "{:U('Apple/platform_coin_deduction',array('user_id'=>I('user_id'),'game_id'=>I('game_id')))}";
window.location.href = url;
});
$('#alipaybtn').on('click',function() {
var that = $(this),url = $.trim(that.attr('data-url'));
if(that.hasClass('disabledbtn')){return false;}
that.addClass('disabled');
$.ajax({
type:'post',
dataType:'json',
data:{},
url:url,
success:function(result) {
if(result.code==200) {
var data = result.data;
if(data.wap==1) {
location.href = data.url;
} else if (data.wap==1) {
window.webkit.messageHandlers.noticeAppResult.postMessage(data.url);
}
else {
window.webkit.messageHandlers.noticeAppResult.postMessage(data.url);
}
} else {
layer.open({
content: result.msg
,skin: 'msg'
,time: 2 //2秒后自动关闭
});
return false;
});
});
}
},error:function() {
that.removeClass('disabledbtn');
}
</script>
});
return false;
});
});
</script>
</html>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

@ -0,0 +1 @@
!function(e){var t=e.document,n=t.documentElement,i="orientationchange"in e?"orientationchange":"resize",a=function e(){var t=n.getBoundingClientRect().width;return n.style.fontSize=5*Math.max(Math.min(t/750*20,11.2),8.55)+"px",e}();n.setAttribute("data-dpr",e.navigator.appVersion.match(/iphone/gi)?e.devicePixelRatio:1),/iP(hone|od|ad)/.test(e.navigator.userAgent)&&(t.documentElement.classList.add("ios"),parseInt(e.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)[1],10)>=8&&t.documentElement.classList.add("hairline")),t.addEventListener&&(e.addEventListener(i,a,!1),t.addEventListener("DOMContentLoaded",a,!1))}(window);

@ -1,10 +1,10 @@
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1568792597467'); /* IE9 */
src: url('iconfont.eot?t=1568792597467#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAP0AAsAAAAACNQAAAOlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDTgqEMINHATYCJAMcCxAABCAFhG0HYxuSB8guoRzbUSSQjOyaFDmxoqYXAF+ieKDmet9mk9x9YtWviuR5PAGqTi0AGlVJmlhiCgD3v3OZHrDb88v59tANWaEu/aS54kvTMdoDYTf2KNyE3OQU9sJg77iDec1pjXwpVocKXxtCeSMUKebPkcDpfqlCU9WAmrfAf7if6bKB8tm3uWSFRdN4PBoOKPIq6ezI7kAO/RbZHUFa9vsEVOskk0ZPzC2ijJRxLiCsYFRDmZRNWtEclAU5cG8q7JMpJ9uTq9jr/354Y3DIkMgi40NjFo2baKjwMhv3KsyIh7YN5wH3EBF9ISlhE+hbIx7m+oqrVjIJoyH1c2WJpAhFtxe9pFKhQIoQUm0oU61WvXkjQSIVZXKC/b/DjbVgCs3nFAgBgQIhoQghpBRhhMgLQMh4mdU7VGzpdD3K2I+bCN/XEOgzo9DczKgqXaheSWgHjj5rNjm0E1rBCfKLSRtOQcLCtoo6/CM0F1z14rBnBDyTEWhnuK1m+fterdnsHQKBtjLw/XSHOelIe67ZimxOqy3P6XRIV9rT7t6dcO/exAcPJt+/v8XSTAokSXHB7uXBBOnysfeL1vKZsc2Ta1L/5Oiod5/cmr5Ul5BvCDVgyC7ZlW+T568+/xq+9nqutv+3rXrPsF6+by1Udn5+M1aKT+cWpjhYS4u35+e5LS6c7fepORU1RcW2uhL2ptrezj2Iv3/TTLErcVRxW80DTsdbtyJWn6YSrKJldo/5sPu8+dr/vcGHlp6MfNmItiBUnnTGYZ8ar/AkP6O5YhEXQWJiGP4D/I29H9c8u6HvW5kUPNqHNhqtSHWTvUW9xvLXLW84lapKw15K5cH2UQElQ8W5eRbV5gIvOtTsczhDW+NGgrK2GBIlXSAq64pO8X0hU2Mo5MqGQbU+Jh+u0YKLC2kVejtGEDR6hES9ixA1eken+A/ItPuBXGOIQ7VJoeuZNboHlhvloAkwsb6OmeF7xHKKXNA8DzRyNJ5U+txl4CFL4momly1Oggd8iBvCFVoTgmDCfRdPoI+B4/g44H4DDFGyhAh6ytkK9E0lw3dRzigc0AjAhOnWYYzB5yHuciGX+/l5gIo4NLyiryK6DHAhtjlWVVJpgJ7UeY36LmV3aAVVIwiEniI4nwubwB7gmDkfFsCHGoBBKLE6ZAI9ymQeaaorTW9w7/MKVDO+XApJiCENWchDKZTlizTPiliagkfNyE8nn1tN0UjzdJYPnChUDMYNB5IcGO86QgAAAA==') format('woff2'),
url('iconfont.woff?t=1568792597467') format('woff'),
url('iconfont.ttf?t=1568792597467') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1568792597467#iconfont') format('svg'); /* iOS 4.1- */
src: url('iconfont.eot?t=1569546352126'); /* IE9 */
src: url('iconfont.eot?t=1569546352126#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAUAAAsAAAAAC3wAAASyAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCEFgqILIY9ATYCJAMsCxgABCAFhG0HgS8brAkRFaQrkP08sG0eW1ljTcMvS4sUj54tD9Mwzf8cBPRb+rPsQgiXkxipm19TV6iq/oo41J7qBQDoMfuh0uKaEcqfjzCHcvbJo297aS4r8Oj/xlydekj6p9fWy93EHdVkkng0FhokHiGJePRMyBDKcmcYnuFCHMyHIQCLbBRB1KnXpA0mCnKUAMSg9GhPTFsEFSIVmH7D50KFWIKOqc3VbgCL1b8XXyklTNDQJeRRLfrV7UMNj0/FpRNz6CKn4+SXAm6XgQSKAArEIt/MHKTeVQSJ9XkLRRcghImG4Qkvr5/Td/3Vn4rHYh5eHj+HnbFqKpkoCBEhiRR6PxuQKAx0BBpxmMTn/c8zQJ4EyJzTbYEHR5DgiRSKfrZCBAO8vAg6+DkQBPg5ETTwXYQ48FchmOCvRoiHT8UjWJAeONwGkkAUBDEJMJu4NMoUdBkUEaKbISkpOUuWhGREZWE/0hofOnUvm775fvnwybtZ1YY7Y+btQTl7A+H5+4Xu7rMmhk7cyaI23i0bPn0/u77pXocOrEhJWTHPtlfZ7Va5+3emtm2/ev7etYP7RVe7++al9FmRiib0XTl/v9sz2i/MNd8SSlnpNWHePndinz1OQf/Uete+dKRFV6/bFS6Zt8cZ2meFs3d+WjSRz85m8khLrLKtFSlw2crUgGx1mjhhVacHD9o8fNj28eP2jx6NY652GrFij3A0GBK2E2KvMTLUjo1dQno4msNyO/dZ4z5uoOjTV8x/2/aRV4YcjtPWdMy2jrrlnv9DiSGHt6SMDH/90jYxUSpHqZYJLXOVzDnFnZuplLOmX/rnr2sy5oonxZxDiHtcxjXr1+/Lln2/HLImY+mMfPOjrBVlmsOdk+msIr3Hnr/ev8a4i2fG2j9uDsoN+l+4tm+KR+z01i3ns4/JeW7LVoq1TaM592/d4tqB05vXrDF6lOhhYMzXlzB62MZd2nJR/ftvXqRYEuEwx+374hvl3bsSOjdiAh24Qv3uw7Kw4FSxQ29aP5Unyz5eQkj4XIubS/zmwhY/LNxK2/3bw3lF+vp8Xu7RTL0CEHvtLTKHqryibLIm39cUjvannN61Tnqynx9Grhqw70cvkRHsFUuvLTO/NXK7h6v89hBQADw97g6D5ZijyMeykXqJbd2arTGXqK+dWPJYEH4IAghQBrlMU2DRVbAtF5J4lb8vNfZIEJikmqARR1aQmOShKmYRj16CFYKBSXWwKEz9ywMkMwKJUPFAIWYCEEQ4DBohLoMkwk2qYr4EHZvvwCAiJFi0E8k3DJAPLfjpLaOouIA8AavgNYvXJ230N1KzIlvtqvwfc+E6TP3o7P1CjzmPU8qe5lo16BwcfILHobUBYg47VLVfa43bYdB+H9Sr4C6e4i2jqLgA8gSwCl7L1vXJ9fvfSM2KHDLjx/Qfc+HtAxM9Ywzql8fHmrEuE8ueZirq0IC+jQwO+EQptLQrANF/vx2q2rOm6IhbBrSSjuvpy/e56W0/VWYh3/yMMEnRDIfLY/nx2k94OrKnA/KxCX9eg6eNh+PRodnau/eBa+N7Qk9LC/e/1HRHEW4h+TnaVjrFWVl8cew/w0pqIqOn9eW8ZZ3Rni4uAAA=') format('woff2'),
url('iconfont.woff?t=1569546352126') format('woff'),
url('iconfont.ttf?t=1569546352126') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1569546352126#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
@ -15,6 +15,14 @@
-moz-osx-font-smoothing: grayscale;
}
.iconfangxingweixuanzhong:before {
content: "\e720";
}
.iconfangxingxuanzhongfill:before {
content: "\e721";
}
.iconfanhui:before {
content: "\e600";
}
@ -35,6 +43,14 @@
content: "\e781";
}
.iconminus-square:before {
content: "\e796";
}
.iconplus-square:before {
content: "\e797";
}
.iconreply:before {
content: "\e82f";
}

File diff suppressed because one or more lines are too long

@ -20,6 +20,12 @@ Created by iconfont
/>
<missing-glyph />
<glyph glyph-name="fangxingweixuanzhong" unicode="&#59168;" d="M832-32.00086l-640 0c-52.9288 0-96.00086 43.07206-96.00086 95.99914l0 640c0 52.9288 43.07206 96.00086 96.00086 96.00086l640 0c52.92708 0 95.99914-43.07206 95.99914-96.00086l0-640C928.00086 11.0712 884.9288-32.00086 832-32.00086zM192 735.99914c-17.632039 0-32.00086-14.368821-32.00086-32.00086l0-640c0-17.664722 14.368821-31.99914 32.00086-31.99914l640 0c17.664722 0 31.99914 14.336138 31.99914 31.99914l0 640c0 17.632039-14.336138 32.00086-31.99914 32.00086L192 735.99914z" horiz-adv-x="1024" />
<glyph glyph-name="fangxingxuanzhongfill" unicode="&#59169;" d="M832 799.99914l-640 0c-52.9288 0-96.00086-43.07206-96.00086-96.00086l0-640c0-52.92708 43.07206-95.99914 96.00086-95.99914l640 0c52.92708 0 95.99914 43.07206 95.99914 95.99914l0 640C928.00086 756.9288 884.9288 799.99914 832 799.99914zM727.231286 457.567746 471.00766 198.560839c-0.063647-0.063647-0.192662-0.096331-0.25631-0.192662-0.096331-0.063647-0.096331-0.192662-0.192662-0.25631-2.048757-1.983389-4.575729-3.19957-6.944443-4.544765-1.183497-0.672598-2.143368-1.696116-3.392232-2.176052-3.839484-1.536138-7.904314-2.33603-11.967424-2.33603-4.095794 0-8.224271 0.799892-12.096439 2.399677-1.279828 0.543583-2.303346 1.632469-3.519527 2.303346-2.368714 1.343475-4.832039 2.528692-6.880796 4.544765-0.063647 0.063647-0.096331 0.192662-0.159978 0.25631-0.063647 0.096331-0.192662 0.096331-0.25631 0.192662l-126.016611 129.503454c-12.320065 12.672705-12.032791 32.928047 0.639914 45.248112 12.672705 12.287381 32.895364 12.063755 45.248112-0.639914l103.26354-106.112189 233.279613 235.808305c12.416396 12.576374 32.704421 12.672705 45.248112 0.25631C739.520387 490.368499 739.647682 470.111437 727.231286 457.567746z" horiz-adv-x="1024" />
<glyph glyph-name="fanhui" unicode="&#58880;" d="M532.526499-8.817574L139.506311 384.202615 532.526499 777.222803c12.258185 12.258185 12.432147 32.892131-0.187265 45.51052-12.707416 12.707416-32.995485 12.703323-45.511543 0.187265L75.166957 411.260877c-7.120165-7.120165-10.163477-17.065677-8.990768-26.624381-1.500167-9.755178 1.5104-20.010753 8.990768-27.491121l411.660734-411.660734c12.258185-12.258185 32.892131-12.432147 45.511543 0.187265 12.707416 12.707416 12.7023 32.995485 0.187265 45.51052z" horiz-adv-x="1024" />
@ -35,6 +41,12 @@ Created by iconfont
<glyph glyph-name="plus-circle" unicode="&#59265;" d="M696 416H544V568c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-152H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152v-152c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8V352h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8zM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m0-820c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372z" horiz-adv-x="1024" />
<glyph glyph-name="minus-square" unicode="&#59286;" d="M328 352h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8zM880 784H144c-17.7 0-32-14.3-32-32v-736c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32V752c0 17.7-14.3 32-32 32z m-40-728H184V712h656v-656z" horiz-adv-x="1024" />
<glyph glyph-name="plus-square" unicode="&#59287;" d="M328 352h152v-152c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8V352h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544V568c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-152H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8zM880 784H144c-17.7 0-32-14.3-32-32v-736c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32V752c0 17.7-14.3 32-32 32z m-40-728H184V712h656v-656z" horiz-adv-x="1024" />
<glyph glyph-name="reply" unicode="&#59439;" d="M398.208 593.088V832L0 413.888l398.208-418.176V240.64c284.48 0 483.584-95.552 625.792-304.64-56.896 298.688-227.584 597.312-625.792 657.088z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -50,14 +50,14 @@ class Pay
$this->setDriver($class, $config);
}
public function buildRequestForm(Pay\PayVo $vo, $uc = 0)
public function buildRequestForm(Pay\PayVo $vo, $uc = 0, $param=array())
{
$this->payer->check();
$result = false;
if ($uc == 0) {
switch ($vo->getTable()) {
case 'spend':
$result = $this->add_spend($vo);
$result = $this->add_spend($vo, $param);
break;
case 'deposit':
$result = $this->add_deposit($vo);
@ -302,7 +302,7 @@ class Pay
/**
*消费表添加数据
*/
private function add_spend(Pay\PayVo $vo)
private function add_spend(Pay\PayVo $vo, $param=array())
{
$spend = M("spend", "tab_");
$spend_data['user_id'] = $vo->getUserId();
@ -337,6 +337,10 @@ class Pay
$spend_data['small_id'] = $vo->getSmallId();
$spend_data['small_account'] = $vo->getSmallAccount();
}
if ($param) {
$spend_data['deduction_amount'] = $param['deduction_amount'];
$spend_data['discount_amount'] = $param['discount_amount'];
}
$result = $spend->add($spend_data);
return $result;
}

Loading…
Cancel
Save