Merge branch 'dev_zcl' into dev

master
zhengchanglong 5 years ago
commit 5dbfb59f3f

@ -215,4 +215,160 @@ class PromoteCoinController extends ThinkController {
$this->display();
}
//获取线下充值列表
public function offlineList($p=0)
{
//获取记录
$map = array();
$map['pay_type'] = 2;
$map['is_del'] = 0;
//其他条件查询
if(isset($_REQUEST['promote_account'])){
$map['promote_account']=array('like','%'.trim($_REQUEST['promote_account']).'%');
unset($_REQUEST['promote_account']);
}
if(isset($_REQUEST['time-start'])&&isset($_REQUEST['time-end'])){
$map['create_time'] =array('BETWEEN',array(strtotime($_REQUEST['time-start']),strtotime($_REQUEST['time-end'])+24*60*60-1));
unset($_REQUEST['time-start']);unset($_REQUEST['time-end']);
}elseif(isset($_REQUEST['time-start'])){
$map['create_time'] = ['GT',strtotime(I('time-start'))];
unset($_REQUEST['time-start']);
}elseif(isset($_REQUEST['time-end'])){
$map['create_time'] = ['LT',strtotime(I('time-end'))+86399];
unset($_REQUEST['time-end']);
}
if(isset($_REQUEST['order_status'])){
$map['order_status']=$_REQUEST['order_status'];
unset($_REQUEST['order_status']);
}
$data = D("CoinPayOrder")->lists($_GET["p"], $map, $order);
// dump($data);
//执行查询
// parent::order_lists("CoinPayOrder",$_GET["p"],$extend);
$this->meta_title = '线下充值审核列表';
$this->assign('list_data',$data['data']);
$this->assign('_page',$data['page']);
$this->display();
# code...
}
public function offlineOrderInfo()
{
if(!isset($_REQUEST['id'])){
exit("参数错误");
}
$id = $_REQUEST['id'];
$data = D("CoinPayOrder")->info($id);
$this->meta_title = '线下充值审核详情';
$this->assign('data', $data);
$this->display();
# code...
}
//审核通过
public function offlineAgree()
{
if(!isset($_REQUEST['ids']) || count($_REQUEST['ids']) < 1){
exit("参数错误");
}
$ids = I("ids");
$count = count($ids);
//执行操作
for ($i=0; $i <$count; $i++) {
$this->doOfflineAgree($ids[$i]);
}
$this->success("批量通过成功");
# code...
}
//批量审核拒绝
public function offlineReject()
{
if(!isset($_REQUEST['ids']) || count($_REQUEST['ids']) < 1){
exit("参数错误");
}
$ids = I("ids");
$count = count($ids);
//执行操作
for ($i=0; $i <$count; $i++) {
$this->orderReject($ids[$i]);
}
$this->success("批量拒绝成功");
# code...
}
public function doOfflineAgree($id)
{
//获取记录
$order = D("CoinPayOrder")->info($id);
if($order['order_status'] != 2){
return;
}
//
$balance_map['promote_id'] = $order['promote_id'];
$balance_map['game_id'] = 0;
$balance = M('promote_balance_coin', 'tab_')->where($balance_map)->find();
$this->balance_coin_update($order,$balance);//更新汇总
$this->coin_record_add($order,$balance); //添加流水
$this->promote_balance_coin_update($order); //更新推广员平台币余额
$this->orderAgree($id);//更新表
}
public function orderReject($id)
{
$order = D("CoinPayOrder")->info($id);
if($order['order_status'] != 2){
return;
}
$savedata = array();
$auth = $_SESSION['onethink_admin']['user_auth'];
$savedata['auditor_id']=$auth['uid'];
$savedata['auditor_account']=$auth['username'];
$savedata['auditor_time']=time();
$savedata['order_status']=-1;
D("CoinPayOrder")->updateData($savedata,$id);
# code...
}
public function orderAgree($id)
{
$savedata = array();
$auth = $_SESSION['onethink_admin']['user_auth'];
$savedata['auditor_id']=$auth['uid'];
$savedata['auditor_account']=$auth['username'];
$savedata['auditor_time']=time();
$savedata['order_status']=4;
D("CoinPayOrder")->updateData($savedata,$id);
# code...
}
// 添加流水
public function coin_record_add($order,$balance){
$data['sn']=date('Ymd') . date('His') . sp_random_num(6);
$data['type']=1;
$data['sub_type'] =1;
$data['target_id'] = $order['promote_id'];
$data['target_type'] = 1;
$data['ref_id'] = $order['id'];
$data['coin'] = $order['real_amount'];
$data['balance_coin'] = $balance['num']+$order['coin_num'];
$data['remark'] = $order['remark'];
$data['create_time']=time();
$data['description']='线下充值';
M('promote_coin_record', 'tab_')->data($data)->add();
}
//更新汇总
public function balance_coin_update($order,$balance){
if(!empty($balance)){
$map['promote_id'] = $order['promote_id'];
$map['game_id'] = 0;
M('promote_balance_coin', 'tab_')->where($map)->setInc('num',$order['coin_num']);
}else{
$balance['promote_id']= $order['promote_id'];
$balance['game_id'] = 0;
$balance['num']=$order['coin_num'];
M('promote_balance_coin', 'tab_')->data($balance)->add();
}
}
//更新推广员平台币余额
public function promote_balance_coin_update($order){
$map['id'] = $order['promote_id'];
M('promote', 'tab_')->where($map)->setInc('balance_coin',$order['coin_num']);
}
}

@ -0,0 +1,82 @@
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: huajie <banhuajie@163.com>
// +----------------------------------------------------------------------
namespace Admin\Model;
use Think\Model;
/**
* 文档基础模型
*/
class CoinPayOrderModel extends Model{
/**
* 构造函数
* @param string $name 模型名称
* @param string $tablePrefix 表前缀
* @param mixed $connection 数据库连接信息
*/
public function __construct($name = '', $tablePrefix = '', $connection = '') {
/* 设置默认的表前缀 */
$this->tablePrefix ='tab_';
/* 执行构造方法 */
parent::__construct($name, $tablePrefix, $connection);
}
public function lists($p=1, $map=array(), $order, $field=true)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
if(isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
$list = $this->field($field?:true)
->where($map)
->page($page, $row)
->order($order?$order:'pay_time desc')
->select();
$count = $this->where($map)->count();
$data['data'] = $list;
$page = set_pagination($count,$row);
if($page) {
$data['page']=$page;
}
return $data;
}
//获取单个信息
public function info($id)
{
$info = $this->field($field?:true)
->where("id = '".$id."'")
->find();
if(!empty($info['voucher_img'])){
$info['voucher_img'] = get_cover($info['voucher_img'])['path'];
}
return $info;
# code...
}
//更新
public function updateData($save,$id)
{
if(!empty($save['id'])){
return false;
}
return $this->where("id = {$id}")->save($save);
# code...
}
}

@ -0,0 +1,342 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css"/>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">线下充值审核</h3>
<p class="description_text">说明:当用户在推广后台发起线下充值时,可在本页面审核是否通过,通过则自动发币</p>
</div>
<div class="cf top_nav_list">
<div class="fl button_list">
<div class="tools">
<a class="ajax-post " onclick="loadicon()" target-form="ids" url="{:U('PromoteCoin/offlineAgree')}"><span class="button_icon button_icon12"></span>审核通过</a>
<a class="ajax-post " onclick="loadicon()" target-form="ids" url="{:U('PromoteCoin/offlineReject')}"><span class="button_icon button_icon9"></span>审核不通过</a>
</div>
</div>
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list">
<input type="text" name="promote_account" placeholder="充值账号" class=""
value="{:I('promote_account')}">
</div>
<div class="input-list">
<input type="text" id="time-start" name="time-start" class="" value="{:I('time-start')}"
placeholder="开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" id="time-end" name="time-end" class="" value="{:I('time-end')}"
placeholder="结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="order_status" style="color:#444" class="select_gallery" id="pay_game_status">
<option value="">审核状态</option>
<option value="2">待审核</option>
<option value="4">审核通过</option>
<option value="-1">审核不通过</option>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list search_item">
<a class="sch-btn" href="javascript:;" id="search"
url="{:U('PromoteCoin/offlineList','model='.$model['name'] . '&row='.I('row'),false)}">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list zdata_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th class="">
<input class="check-all" type="checkbox" name="ids[]">
</th>
<th>充值账号</th>
<th>提交时间</th>
<th>平台币数量</th>
<th>付款金额</th>
<th>汇入银行</th>
<th>支付凭证</th>
<th>备注</th>
<th>审核状态</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name="list_data">
<td colspan="15" class="text-center">aOh! 暂时还没有内容!</td>
<else/>
<volist name="list_data" id="data">
<tr>
<td><input class="ids" type="checkbox" value="{$data['id']}" name="ids[]"></td>
<td>{$data.promote_account}</td>
<td>{:set_show_time($data['create_time'])}</td>
<td>{$data.coin_num}</td>
<td>{$data.real_amount}</td>
<td>— —</td>
<td>{$data.pay_order_number}</td>
<td>{$data.remark}</td>
<td>
<if condition="($data.order_status eq 2)"> 待审核
<elseif condition="$data.order_status eq 4"/>审核通过
<else /> 审核不通过
</if>
</td>
<td>
<a href="{:U('PromoteCoin/offlineOrderInfo?id='.$data['id'])}">查看 </a>
</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
<!-- <a class="sch-btn" href="{:U('Export/expUser',array_merge(array('id'=>7,'xlsname'=>'游戏订单_游戏充值'),I('get.')))}">导出</a> -->
{$_page|default=''}
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="PromoteCoin/offlineList">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<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 src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script>
<volist name = ":I('get.')" id = "vo">
Think.setValue('{$key}', "{$vo}");
</volist>
$(".select_gallery").select2();
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('PromoteCoin/offlineList')}");
function loadicon(){
layer.load(2,{shade:0.3,time:1.5*1000});
return true;
}
$(function () {
//搜索功能
$("#search").click(function () {
var url = $(this).attr('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;
});
//回车自动提交
$('.jssearch').find('input').keyup(function (event) {
if (event.keyCode === 13) {
$("#search").click();
}
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
showMeridian:true,
pickDate:true,
minView: 2,
autoclose: true,
pickTime:true,
todayBtn:true,
}).on('change',function(ev){
var val = new Date($.trim($(this).val())).getTime();
var end = new Date($.trim($('#time-end').val())).getTime();
if (val>end) {
layer.msg('开始时间大于结束时间!');$(this).val('');
}
return false;
});
$("#time-end").datetimepicker({
format:"yyyy-mm-dd",
language: "zh-CN",
showMeridian:true,
minView:2,
autoclose:true,
todayBtn:true,
}).on('change',function(ev){
var val = new Date($.trim($(this).val())).getTime();
var start = new Date($.trim($('#time-start').val())).getTime();
if (val<start) {
layer.msg('开始时间大于结束时间!');$(this).val('');
}
return false;
});
$(".d_list").find(".drop-down11").hover(function () {
$(this).find(".nav-list").removeClass("hidden");
}, function () {
$(this).find(".nav-list").addClass("hidden");
});
$(".drop-down11 .nav-list li").find("a").each(function () {
var that = $(".drop-down11");
$(this).click(function () {
var text = $(this).text(), val = $(this).attr("value");
that.find(".sort-txt").text(text).attr("data", val);
that.find(".nav-list").addClass("hidden");
that.siblings('.hiddenvalue').val(val);
})
});
$(".d_list").find(".drop-down12").hover(function () {
$(this).find(".nav-list").removeClass("hidden");
}, function () {
$(this).find(".nav-list").addClass("hidden");
});
$(".drop-down12 .nav-list li").find("a").each(function () {
var that = $(".drop-down12");
$(this).click(function () {
var text = $(this).text(), val = $(this).attr("value");
that.find(".sort-txt").text(text).attr("data", val);
that.find(".nav-list").addClass("hidden");
that.siblings('.hiddenvalue').val(val);
})
});
$(".d_list").find(".drop-down13").hover(function () {
$(this).find(".nav-list").removeClass("hidden");
}, function () {
$(this).find(".nav-list").addClass("hidden");
});
$(".drop-down13 .nav-list li").find("a").each(function () {
var that = $(".drop-down13");
$(this).click(function () {
var text = $(this).text(), val = $(this).attr("value");
that.find(".sort-txt").text(text).attr("data", val);
that.find(".nav-list").addClass("hidden");
that.siblings('.hiddenvalue').val(val);
})
});
//下拉内容框
$(".drop-down2").on('click', function (event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function () {
navlist.addClass('hidden');
});
event.stopPropagation();
});
$('#i_list_id').on('keyup', function (event) {
var val = $.trim($(this).val()).toLowerCase();
$('#i_list_idh').val(val);
});
$("#i_list_li").find("a").each(function () {
$(this).click(function () {
var text = $.trim($(this).text()).toLowerCase();
$("#i_list_id").val(text);
$('#i_list_idh').val(text);
})
});
})
/**
* 初始化select2单选默认带搜索功能。
*/
//初始化页面加载
$(document).ready(function () {
//初始化select2单选
initSelect2WithSearch();
});
function initSelect2WithSearch() {
$("#pay_game_status").select2({
tags: true,
placeholder: '审核状态',
allowClear: false,
minimumResultsForSearch: Infinity, // 永久隐藏搜索框
});
}
</script>
</block>

@ -0,0 +1,154 @@
<extend name="Public/base" />
<block name="body">
<style>
.tabcon1711 .table_click,
.tabcon1711 .table_click:hover {
border: none;
}
.tabcon1711 .table_click .table_click_text {
border-bottom: 1px solid transparent;
}
.tabcon1711 .table_click:hover .table_click_text {
border-bottom-color: #145CCD;
}
.tabcon1711 .datainfo {
font-size: 14px;
}
.submit_btn {
background-image: none;
}
</style>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="tab-content tabcon1711">
<!-- 表单 -->
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">线下充值审核</h3>
<p class="description_text">说明:当用户在推广后台发起线下充值时,可在本页面审核是否通过,通过则自动发币</p>
</div>
<div class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="l">充值账号:</td>
<td class="r">
<span class="datainfo">{$data['promote_account']}</span>
</td>
</tr>
<tr>
<td class="l">平台币数量:</td>
<td class="r">
<span class="datainfo">{$data['coin_num']}</span>
</td>
</tr>
<tr>
<td class="l">购买金额:</td>
<td class="r">
<span class="datainfo">{$data['real_amount']}</span>
</td>
</tr>
<tr>
<td class="l">汇入银行:</td>
<td class="r">
<span class="datainfo">--</span>
</td>
</tr>
<tr>
<td class="l">支付凭证:</td>
<td class="r">
<span class="datainfo">{$data['pay_order_number']}</span>
</td>
</tr>
<tr>
<td class="l">支付截图:</td>
<td class="r">
<img src="{$data['voucher_img']}" style="width: 200px;height: auto;">
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r">
<span class="datainfo">{$data['remark']}</span>
</td>
</tr>
<if condition="$data.order_status eq 2 ">
<tr>
<td class="l noticeinfo"></td>
<td class="r">
<div class="new_submit" data-id="{$data['id']}">
<button id="agree" class="submit_btn" style="background-color:rgba(51, 153, 255, 1);">
审核通过
</button>
<button id="reject" class="submit_btn " style="background-color:red;">
拒绝审核通过
</button>
</div>
</td>
</tr>
</if>
</table>
</div>
</div>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<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__/layer/extend/layer.ext.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('PromoteCoin/offlineList')}");
Think.setValue("prmoote_id_to", "{$data.promote_id |default= 0}");
$('#submit').click(function () {
$('#form').submit();
});
$("#agree").on("click",function(){
var id = $(this).parents(".new_submit").data("id");
var url= "{:U('PromoteCoin/offlineAgree')}"+"&ids[]="+id;
$.get(url, function(result){
if(result.status == 1){
layer.msg(result.info, {
icon: 1,
time: 1000 //2秒关闭如果不配置默认是3秒
}, function(){
window.location.reload()
});
}
});
})
$("#reject").on("click",function(){
var id = $(this).parents(".new_submit").data("id");
var url= "{:U('PromoteCoin/offlineReject')}"+"&ids[]="+id;
$.get(url, function(result){
if(result.status == 1){
layer.msg(result.info, {
icon: 1,
time: 1000 //2秒关闭如果不配置默认是3秒
}, function(){
window.location.reload()
});
}
});
// window.location.href = "{:U('PromoteCoin/offlineReject')}"+"&ids[]="+id;
})
$(function () {
});
</script>
</block>
Loading…
Cancel
Save