提交 986f5248 编写于 作者: G gongfuxiang

充值

上级 52200d01
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<div class="am-topbar-right"> <div class="am-topbar-right">
{{if in_array($plugins_action, ['index', 'recharge'])}} {{if in_array($plugins_action, ['index', 'recharge'])}}
<button class="am-btn am-btn-secondary am-topbar-btn am-btn-sm am-icon-shield" data-am-modal="{target: '#plugins-recharge-pay-modal-popup'}"> 在线充值</button> <button class="am-btn am-btn-secondary am-topbar-btn am-btn-sm am-icon-shield" data-am-modal="{target: '#plugins-recharge-pay-modal', width: 260, height: 130}"> 在线充值</button>
{{/if}} {{/if}}
{{if in_array($plugins_action, ['index', 'cash'])}} {{if in_array($plugins_action, ['index', 'cash'])}}
<a class="am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-money"> 申请提现</a> <a class="am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-money"> 申请提现</a>
...@@ -37,17 +37,37 @@ ...@@ -37,17 +37,37 @@
</div> </div>
<!-- 充值窗口 --> <!-- 充值窗口 -->
<div class="am-popup" id="plugins-recharge-pay-modal-popup"> <div class="am-modal am-modal-no-btn" tabindex="-1" id="plugins-recharge-pay-modal">
<div class="am-modal-dialog">
<div class="am-modal-hd">
<a href="javascript: void(0)" class="am-close am-close-spin" data-am-modal-close>&times;</a>
</div>
<div class="am-modal-bd">
<form class="am-form form-validation-plugins-recharge-modal" action="{{:PluginsHomeUrl('wallet', 'wallet', 'rechargecreate')}}" method="POST" request-type="ajax-fun" request-value="PluginsRechargeBack">
<label>充值金额</label>
<div class="am-input-group am-input-group-sm">
<input type="number" autocomplete="off" name="money" step="0.01" class="am-radius" placeholder="充值金额" data-validation-message="请输入充值金额" required />
<span class="am-input-group-btn">
<button type="button" class="am-btn am-btn-default am-radius"></button>
</span>
</div>
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
</form>
</div>
</div>
</div>
<!-- 支付方式 -->
<div class="am-popup" id="plugins-recharge-pay-popup">
<div class="am-popup-inner"> <div class="am-popup-inner">
<div class="am-popup-hd"> <div class="am-popup-hd">
<h4 class="am-popup-title">充值</h4> <h4 class="am-popup-title">支付方式</h4>
<span data-am-modal-close class="am-close">&times;</span> <span data-am-modal-close class="am-close">&times;</span>
</div> </div>
<div class="am-popup-bd"> <div class="am-popup-bd">
<form class="am-form form-validation-plugins-recharge-pay" action="{{:PluginsHomeUrl('wallet', 'wallet', 'rechargecreate')}}" method="POST" request-type="ajax-fun" request-value="PluginsRechargeFormBack"> <form class="am-form form-validation-plugins-recharge-popup" action="{{:PluginsHomeUrl('wallet', 'wallet', 'pay')}}" method="POST" request-type="ajax-fun" request-value="PluginsRechargePayBack">
<!-- 支付方式 --> <div class="business-item ">
<div class="business-item am-form-group">
<label>选择支付</label>
{{if !empty($buy_payment_list)}} {{if !empty($buy_payment_list)}}
<ul class="payment-list" data-type="payment"> <ul class="payment-list" data-type="payment">
{{foreach $buy_payment_list as $payment}} {{foreach $buy_payment_list as $payment}}
...@@ -68,17 +88,8 @@ ...@@ -68,17 +88,8 @@
<input type="number" name="payment_id" min="1" data-validation-message="请选择支付方式" value="0" required /> <input type="number" name="payment_id" min="1" data-validation-message="请选择支付方式" value="0" required />
</div> </div>
<div class="am-form-group">
<label>充值金额</label>
<div class="am-input-group am-input-group-sm">
<input type="number" autocomplete="off" name="money" step="0.01" class="am-radius" placeholder="充值金额" data-validation-message="请输入充值金额" required />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius"></button>
</span>
</div>
</div>
<div class="am-form-group am-form-group-refreshing"> <div class="am-form-group am-form-group-refreshing">
<input type="hidden" name="recharge_id" value="" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button> <button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
</div> </div>
</form> </form>
...@@ -86,13 +97,34 @@ ...@@ -86,13 +97,34 @@
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function PluginsRechargeFormBack(e) /**
* 充值回调
*/
function PluginsRechargeBack(e)
{
$.AMUI.progress.done();
$('form.form-validation-plugins-recharge-modal').find('button[type="submit"]').button('reset');
if(e.code == 0)
{
$('#plugins-recharge-pay-modal').modal('close');
var $popup = $('#plugins-recharge-pay-popup');
$popup.find('input[name="recharge_id"]').val(e.data.recharge_id);
$popup.modal('open');
} else {
Prompt(e.msg);
}
}
/**
* 支付回调
*/
function PluginsRechargePayBack(e)
{ {
if(e.code == 0) if(e.code == 0)
{ {
window.location.href = e.data; window.location.href = e.data;
} else { } else {
$('form.form-validation-plugins-recharge-pay').find('button[type="submit"]').button('reset'); $('form.form-validation-plugins-recharge-popup').find('button[type="submit"]').button('reset');
$.AMUI.progress.done(); $.AMUI.progress.done();
Prompt(e.msg); Prompt(e.msg);
} }
......
...@@ -44,8 +44,8 @@ ...@@ -44,8 +44,8 @@
<tr> <tr>
<th>充值单号</th> <th>充值单号</th>
<th>充值金额(元)</th> <th>充值金额(元)</th>
<th>支付方式</th>
<th>状态</th> <th>状态</th>
<th class="am-hide-sm-only">支付方式</th>
<th class="am-hide-sm-only">支付时间</th> <th class="am-hide-sm-only">支付时间</th>
<th class="am-hide-sm-only">创建时间</th> <th class="am-hide-sm-only">创建时间</th>
<th>操作</th> <th>操作</th>
...@@ -55,11 +55,15 @@ ...@@ -55,11 +55,15 @@
{{if !empty($data_list)}} {{if !empty($data_list)}}
{{foreach $data_list as $v}} {{foreach $data_list as $v}}
<tr> <tr>
<td>{{$v.type_name}}</td> <td>{{$v.recharge_no}}</td>
<td class="am-hide-sm-only">{{$v.msg}}</td> <td>{{$v.money}}</td>
<td>{{$v.original_integral}}</td> <td>{{$v.status_text}}</td>
<td>{{$v.new_integral}}</td> <td class="am-hide-sm-only">{{$v.payment_name}}</td>
<td class="am-hide-sm-only">{{$v.add_time_time}}</td> <td class="am-hide-sm-only">{{$v.pay_time_text}}</td>
<td class="am-hide-sm-only">{{$v.add_time_text}}</td>
<td>
<button class="am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-shield recharge-submit" data-value="{{$v.id}}"> 继续支付</button>
</td>
</tr> </tr>
{{/foreach}} {{/foreach}}
{{/if}} {{/if}}
......
...@@ -29,12 +29,101 @@ class Service ...@@ -29,12 +29,101 @@ class Service
'default_level_images' 'default_level_images'
]; ];
// 等级规则 // 充值支付状态
public static $members_level_rules_list = [ public static $recharge_status_list = [
0 => ['value' => 0, 'name' => '积分(可用积分)', 'checked' => true], 0 => ['value' => 0, 'name' => '未支付', 'checked' => true],
1 => ['value' => 1, 'name' => '消费总额(已完成订单)'], 1 => ['value' => 1, 'name' => '已支付'],
]; ];
/**
* 充值列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-04-30T00:13:14+0800
* @param array $params [description]
*/
public static function RechargeList($params = [])
{
$where = empty($params['where']) ? [] : $params['where'];
$m = isset($params['m']) ? intval($params['m']) : 0;
$n = isset($params['n']) ? intval($params['n']) : 10;
$field = empty($params['field']) ? '*' : $params['field'];
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
// 获取数据列表
$data = Db::name('PluginsWalletRecharge')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
if(!empty($data))
{
$common_gender_list = lang('common_gender_list');
foreach($data as &$v)
{
// 用户信息
if(!empty($v['user_id']))
{
$user = Db::name('User')->where(['id'=>$v['user_id']])->field('username,nickname,mobile,gender,avatar')->find();
$v['username'] = empty($user['username']) ? '' : $user['username'];
$v['nickname'] = empty($user['nickname']) ? '' : $user['nickname'];
$v['mobile'] = empty($user['mobile']) ? '' : $user['mobile'];
$v['avatar'] = empty($user['avatar']) ? '' : $user['avatar'];
$v['gender_text'] = isset($user['gender']) ? $common_gender_list[$user['gender']]['name'] : '';
}
// 支付状态
$v['status_text'] = isset($v['status']) ? self::$recharge_status_list[$v['status']]['name'] : '';
// 支付时间
$v['pay_time_text'] = empty($v['pay_time']) ? '' : date('Y-m-d H:i:s', $v['pay_time']);
// 创建时间
$v['add_time_text'] = empty($v['pay_time']) ? '' : date('Y-m-d H:i:s', $v['pay_time']);
}
}
return DataReturn('处理成功', 0, $data);
}
/**
* 总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public static function RechargeTotal($where = [])
{
return (int) Db::name('PluginsWalletRecharge')->where($where)->count();
}
/**
* 充值列表条件
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function RechargeListWhere($params = [])
{
$where = [];
// 用户id
if(!empty($params['user']))
{
$where[] = ['user_id', '=', $params['user']['id']];
}
// 关键字
if(!empty($params['keywords']))
{
$where[] = ['recharge_no', 'like', '%'.$params['keywords'].'%'];
}
return $where;
}
/** /**
* 充值订单创建 * 充值订单创建
* @author Devil * @author Devil
...@@ -81,10 +170,14 @@ class Service ...@@ -81,10 +170,14 @@ class Service
'add_time' => time(), 'add_time' => time(),
]; ];
$params['recharge_id'] = Db::name('PluginsWalletRecharge')->insertGetId($data); $recharge_id = Db::name('PluginsWalletRecharge')->insertGetId($data);
if($params['recharge_id'] > 0) if($recharge_id > 0)
{ {
return self::Pay($params); return DataReturn('添加成功',0, [
'recharge_id' => $recharge_id,
'recharge_no' => $data['recharge_no'],
]);
//return self::Pay($params);
} }
return DataReturn('添加失败', -100); return DataReturn('添加失败', -100);
} }
......
...@@ -121,10 +121,36 @@ class Wallet extends Controller ...@@ -121,10 +121,36 @@ class Wallet extends Controller
public function recharge($params = []) public function recharge($params = [])
{ {
// 参数 // 参数
$params = input();
$params['user'] = $this->user; $params['user'] = $this->user;
$this->assign('data_list', []); // 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = Service::RechargeListWhere($params);
// 获取总数
$total = Service::RechargeTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => PluginsHomeUrl('wallet', 'wallet', 'recharge'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = Service::RechargeList($data_params);
$this->assign('data_list', $data['data']);
// 参数 // 参数
$this->assign('params', $params); $this->assign('params', $params);
...@@ -186,12 +212,7 @@ class Wallet extends Controller ...@@ -186,12 +212,7 @@ class Wallet extends Controller
{ {
// 用户 // 用户
$params['user'] = $this->user; $params['user'] = $this->user;
$ret = Service::Pay($params); return Service::Pay($params);
if($ret['code'] == 0)
{
return redirect($ret['data']['data']);
}
return $ret['msg'];
} }
/** /**
......
...@@ -908,19 +908,84 @@ function ConfirmDataDelete(e) ...@@ -908,19 +908,84 @@ function ConfirmDataDelete(e)
} }
/** /**
* [ConfirmNetworkAjax 确认网络请求] * [AjaxRequest ajax网络请求]
* @author Devil * @author Devil
* @blog http://gong.gg/ * @blog http://gong.gg/
* @version 1.0.0 * @version 1.0.0
* @datetime 2018-09-24T08:24:58+0800 * @datetime 2019-04-30T00:25:21+0800
* @param {[object]} e [当前元素对象] * @param {[object]} e [当前元素对象]
*/ */
function ConfirmNetworkAjax(e) function AjaxRequest(e)
{ {
var id = e.data('id'); var id = e.data('id');
var field = e.data('field') || 'value';
var value = e.data('value') || ''; var value = e.data('value') || '';
var url = e.data('url'); var url = e.data('url');
var view = e.data('view') || ''; var view = e.data('view') || '';
// ajax
$.ajax({
url:url,
type:'POST',
dataType:"json",
timeout:10000,
data:{id:id, field: value},
success:function(result)
{
if(result.code == 0)
{
switch(view)
{
// 成功则删除数据列表
case 'delete' :
Prompt(result.msg, 'success');
$('#data-list-'+id).remove();
break;
// 刷新
case 'reload' :
Prompt(result.msg, 'success');
setTimeout(function()
{
window.location.reload();
}, 1500);
break;
// 回调函数
case 'fun' :
if(IsExitsFunction(value))
{
window[value](result);
} else {
Prompt('['+value+']配置方法未定义');
}
break;
// 默认提示成功
default :
Prompt(result.msg, 'success');
}
} else {
Prompt(result.msg);
}
},
error:function(xhr, type)
{
Prompt('网络异常出错');
}
});
}
/**
* [ConfirmNetworkAjax 确认网络请求]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-24T08:24:58+0800
* @param {[object]} e [当前元素对象]
*/
function ConfirmNetworkAjax(e)
{
var title = e.data('title') || '温馨提示'; var title = e.data('title') || '温馨提示';
var msg = e.data('msg') || '操作后不可恢复、确认继续吗?'; var msg = e.data('msg') || '操作后不可恢复、确认继续吗?';
...@@ -929,57 +994,7 @@ function ConfirmNetworkAjax(e) ...@@ -929,57 +994,7 @@ function ConfirmNetworkAjax(e)
content: msg, content: msg,
onConfirm: function(e) onConfirm: function(e)
{ {
// ajax AjaxRequest(e);
$.ajax({
url:url,
type:'POST',
dataType:"json",
timeout:10000,
data:{id:id, value: value},
success:function(result)
{
if(result.code == 0)
{
switch(view)
{
// 成功则删除数据列表
case 'delete' :
Prompt(result.msg, 'success');
$('#data-list-'+id).remove();
break;
// 刷新
case 'reload' :
Prompt(result.msg, 'success');
setTimeout(function()
{
window.location.reload();
}, 1500);
break;
// 回调函数
case 'fun' :
if(IsExitsFunction(value))
{
window[value](result);
} else {
Prompt('['+value+']配置方法未定义');
}
break;
// 默认提示成功
default :
Prompt(result.msg, 'success');
}
} else {
Prompt(result.msg);
}
},
error:function(xhr, type)
{
Prompt('网络异常出错');
}
});
}, },
onCancel: function(){} onCancel: function(){}
}); });
...@@ -1535,7 +1550,13 @@ $(function() ...@@ -1535,7 +1550,13 @@ $(function()
*/ */
$(document).on('click', '.submit-ajax', function() $(document).on('click', '.submit-ajax', function()
{ {
ConfirmNetworkAjax($(this)); var is_confirm = $(this).data('is-confirm');
if(is_confirm == undefined || is_confirm == 1)
{
ConfirmNetworkAjax($(this));
} else {
AjaxRequest($(this));
}
}); });
/** /**
......
...@@ -117,7 +117,15 @@ ...@@ -117,7 +117,15 @@
/** /**
* 充值窗口 * 充值窗口
*/ */
#plugins-recharge-pay-modal-popup input[name="payment_id"] { #plugins-recharge-pay-modal button[type="submit"] {
margin-top: 10px;
}
/**
* 支付选择窗口
*/
#plugins-recharge-pay-popup input[name="payment_id"] {
margin-left: -10000px; margin-left: -10000px;
position: absolute; position: absolute;
} }
\ No newline at end of file
$(function() $(function()
{ {
// 支付操作表单 // 表单初始化
FromInit('form.form-validation-plugins-recharge-pay'); FromInit('form.form-validation-plugins-recharge-modal');
FromInit('form.form-validation-plugins-recharge-popup');
// 混合列表选择 // 混合列表选择
$('.business-item ul li').on('click', function() $('.business-item ul li').on('click', function()
...@@ -14,6 +15,20 @@ $(function() ...@@ -14,6 +15,20 @@ $(function()
value = $(this).data('value'); value = $(this).data('value');
$(this).addClass('selected').siblings('li').removeClass('selected'); $(this).addClass('selected').siblings('li').removeClass('selected');
} }
$('form.form-validation-plugins-recharge-pay input[name='+$(this).parent().data('type')+'_id]').val(value).blur(); $('form.form-validation-plugins-recharge-popup input[name='+$(this).parent().data('type')+'_id]').val(value).blur();
});
// 充值列表支付发起事件
$('.recharge-submit').on('click', function()
{
var recharge_id = $(this).data('value') || null;
var $popup = $('#plugins-recharge-pay-popup');
if(recharge_id != null)
{
$popup.find('input[name="recharge_id"]').val(recharge_id);
$popup.modal('open');
} else {
Prompt('充值id有误');
}
}); });
}); });
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册