Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
986f5248
ShopXO
项目概览
纵之格
/
ShopXO
通知
394
Star
16
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
986f5248
编写于
4月 30, 2019
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
充值
上级
52200d01
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
293 addition
and
99 deletion
+293
-99
application/plugins/view/wallet/wallet/nav.html
application/plugins/view/wallet/wallet/nav.html
+51
-19
application/plugins/view/wallet/wallet/recharge.html
application/plugins/view/wallet/wallet/recharge.html
+10
-6
application/plugins/wallet/Service.php
application/plugins/wallet/Service.php
+100
-7
application/plugins/wallet/Wallet.php
application/plugins/wallet/Wallet.php
+29
-8
public/static/common/js/common.js
public/static/common/js/common.js
+76
-55
public/static/plugins/css/wallet/wallet.css
public/static/plugins/css/wallet/wallet.css
+9
-1
public/static/plugins/js/wallet/wallet.js
public/static/plugins/js/wallet/wallet.js
+18
-3
未找到文件。
application/plugins/view/wallet/wallet/nav.html
浏览文件 @
986f5248
...
...
@@ -12,7 +12,7 @@
<div
class=
"am-topbar-right"
>
{{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 in_array($plugins_action, ['index', 'cash'])}}
<a
class=
"am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-money"
>
申请提现
</a>
...
...
@@ -37,17 +37,37 @@
</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
>
×
</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-hd"
>
<h4
class=
"am-popup-title"
>
充值
</h4>
<h4
class=
"am-popup-title"
>
支付方式
</h4>
<span
data-am-modal-close
class=
"am-close"
>
×
</span>
</div>
<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"
>
<!-- 支付方式 -->
<div
class=
"business-item am-form-group"
>
<label>
选择支付
</label>
<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 "
>
{{if !empty($buy_payment_list)}}
<ul
class=
"payment-list"
data-type=
"payment"
>
{{foreach $buy_payment_list as $payment}}
...
...
@@ -68,17 +88,8 @@
<input
type=
"number"
name=
"payment_id"
min=
"1"
data-validation-message=
"请选择支付方式"
value=
"0"
required
/>
</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"
>
<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>
</div>
</form>
...
...
@@ -86,13 +97,34 @@
</div>
</div>
<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
)
{
window
.
location
.
href
=
e
.
data
;
}
else
{
$
(
'
form.form-validation-plugins-recharge-p
ay
'
).
find
(
'
button[type="submit"]
'
).
button
(
'
reset
'
);
$
(
'
form.form-validation-plugins-recharge-p
opup
'
).
find
(
'
button[type="submit"]
'
).
button
(
'
reset
'
);
$
.
AMUI
.
progress
.
done
();
Prompt
(
e
.
msg
);
}
...
...
application/plugins/view/wallet/wallet/recharge.html
浏览文件 @
986f5248
...
...
@@ -44,8 +44,8 @@
<tr>
<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>
操作
</th>
...
...
@@ -55,11 +55,15 @@
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr>
<td>
{{$v.type_name}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.msg}}
</td>
<td>
{{$v.original_integral}}
</td>
<td>
{{$v.new_integral}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.add_time_time}}
</td>
<td>
{{$v.recharge_no}}
</td>
<td>
{{$v.money}}
</td>
<td>
{{$v.status_text}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.payment_name}}
</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>
{{/foreach}}
{{/if}}
...
...
application/plugins/wallet/Service.php
浏览文件 @
986f5248
...
...
@@ -29,12 +29,101 @@ class Service
'default_level_images'
];
//
等级规则
public
static
$
members_level_rule
s_list
=
[
0
=>
[
'value'
=>
0
,
'name'
=>
'
积分(可用积分)
'
,
'checked'
=>
true
],
1
=>
[
'value'
=>
1
,
'name'
=>
'
消费总额(已完成订单)
'
],
//
充值支付状态
public
static
$
recharge_statu
s_list
=
[
0
=>
[
'value'
=>
0
,
'name'
=>
'
未支付
'
,
'checked'
=>
true
],
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
...
...
@@ -81,10 +170,14 @@ class Service
'add_time'
=>
time
(),
];
$
params
[
'recharge_id'
]
=
Db
::
name
(
'PluginsWalletRecharge'
)
->
insertGetId
(
$data
);
if
(
$
params
[
'recharge_id'
]
>
0
)
$
recharge_id
=
Db
::
name
(
'PluginsWalletRecharge'
)
->
insertGetId
(
$data
);
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
);
}
...
...
application/plugins/wallet/Wallet.php
浏览文件 @
986f5248
...
...
@@ -121,10 +121,36 @@ class Wallet extends Controller
public
function
recharge
(
$params
=
[])
{
// 参数
$params
=
input
();
$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
);
...
...
@@ -186,12 +212,7 @@ class Wallet extends Controller
{
// 用户
$params
[
'user'
]
=
$this
->
user
;
$ret
=
Service
::
Pay
(
$params
);
if
(
$ret
[
'code'
]
==
0
)
{
return
redirect
(
$ret
[
'data'
][
'data'
]);
}
return
$ret
[
'msg'
];
return
Service
::
Pay
(
$params
);
}
/**
...
...
public/static/common/js/common.js
浏览文件 @
986f5248
...
...
@@ -908,19 +908,84 @@ function ConfirmDataDelete(e)
}
/**
* [
ConfirmNetworkAjax 确认
网络请求]
* [
AjaxRequest ajax
网络请求]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 201
8-09-24T08:24:58
+0800
* @datetime 201
9-04-30T00:25:21
+0800
* @param {[object]} e [当前元素对象]
*/
function
ConfirmNetworkAjax
(
e
)
function
AjaxRequest
(
e
)
{
var
id
=
e
.
data
(
'
id
'
);
var
field
=
e
.
data
(
'
field
'
)
||
'
value
'
;
var
value
=
e
.
data
(
'
value
'
)
||
''
;
var
url
=
e
.
data
(
'
url
'
);
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
msg
=
e
.
data
(
'
msg
'
)
||
'
操作后不可恢复、确认继续吗?
'
;
...
...
@@ -929,57 +994,7 @@ function ConfirmNetworkAjax(e)
content
:
msg
,
onConfirm
:
function
(
e
)
{
// ajax
$
.
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
(
'
网络异常出错
'
);
}
});
AjaxRequest
(
e
);
},
onCancel
:
function
(){}
});
...
...
@@ -1535,7 +1550,13 @@ $(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
));
}
});
/**
...
...
public/static/plugins/css/wallet/wallet.css
浏览文件 @
986f5248
...
...
@@ -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
;
position
:
absolute
;
}
\ No newline at end of file
public/static/plugins/js/wallet/wallet.js
浏览文件 @
986f5248
$
(
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
()
...
...
@@ -14,6 +15,20 @@ $(function()
value
=
$
(
this
).
data
(
'
value
'
);
$
(
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录