Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jamesyang1999
ShopXO
提交
7821caa9
ShopXO
项目概览
jamesyang1999
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7821caa9
编写于
5月 08, 2019
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
钱包
上级
ef9567d9
变更
24
展开全部
隐藏空白更改
内联
并排
Showing
24 changed file
with
1375 addition
and
310 deletion
+1375
-310
application/index/controller/Safety.php
application/index/controller/Safety.php
+2
-1
application/plugins/view/wallet/cash/authinfo.html
application/plugins/view/wallet/cash/authinfo.html
+99
-0
application/plugins/view/wallet/cash/createinfo.html
application/plugins/view/wallet/cash/createinfo.html
+80
-0
application/plugins/view/wallet/cash/index.html
application/plugins/view/wallet/cash/index.html
+24
-14
application/plugins/view/wallet/public/nav.html
application/plugins/view/wallet/public/nav.html
+1
-1
application/plugins/view/wallet/recharge/index.html
application/plugins/view/wallet/recharge/index.html
+2
-2
application/plugins/wallet/Cash.php
application/plugins/wallet/Cash.php
+156
-4
application/plugins/wallet/Common.php
application/plugins/wallet/Common.php
+2
-11
application/plugins/wallet/Recharge.php
application/plugins/wallet/Recharge.php
+3
-2
application/plugins/wallet/Walletadmin.php
application/plugins/wallet/Walletadmin.php
+5
-5
application/plugins/wallet/install.sql
application/plugins/wallet/install.sql
+24
-1
application/plugins/wallet/service/BaseService.php
application/plugins/wallet/service/BaseService.php
+227
-111
application/plugins/wallet/service/CashService.php
application/plugins/wallet/service/CashService.php
+347
-0
application/plugins/wallet/service/PayService.php
application/plugins/wallet/service/PayService.php
+3
-8
application/plugins/wallet/service/RechargeService.php
application/plugins/wallet/service/RechargeService.php
+137
-0
application/plugins/wallet/service/WalletService.php
application/plugins/wallet/service/WalletService.php
+32
-127
config/shopxo.sql
config/shopxo.sql
+53
-13
public/static/common/css/common.css
public/static/common/css/common.css
+22
-2
public/static/index/default/css/common.css
public/static/index/default/css/common.css
+0
-6
public/static/index/default/css/safety.css
public/static/index/default/css/safety.css
+1
-0
public/static/plugins/css/wallet/index/cash.css
public/static/plugins/css/wallet/index/cash.css
+47
-0
public/static/plugins/css/wallet/index/common.css
public/static/plugins/css/wallet/index/common.css
+0
-2
public/static/plugins/css/wallet/index/recharge.css
public/static/plugins/css/wallet/index/recharge.css
+0
-0
public/static/plugins/js/wallet/index/cash.js
public/static/plugins/js/wallet/index/cash.js
+108
-0
未找到文件。
application/index/controller/Safety.php
浏览文件 @
7821caa9
...
...
@@ -146,7 +146,8 @@ class Safety extends Common
{
$params
=
array
(
'width'
=>
100
,
'height'
=>
32
,
'height'
=>
28
,
'use_point_back'
=>
false
,
'key_prefix'
=>
'safety'
,
);
$verify
=
new
\
base\Verify
(
$params
);
...
...
application/plugins/view/wallet/cash/authinfo.html
0 → 100644
浏览文件 @
7821caa9
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div
class=
"am-container user-main"
>
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div
class=
"user-content"
>
<div
class=
"user-content-body"
>
<!-- user menu start -->
{{include file="../../../plugins/view/wallet/public/nav" /}}
<!-- user menu end -->
<!-- tips start -->
<div
class=
"am-alert am-alert-success wallet-cash-auth-tips"
data-am-alert
>
<p
class=
"title"
>
操作提示
</p>
<ul>
<li>
1. 请选择 "绑定邮箱" 或 "绑定手机" 方式其一作为安全校验码的获取方式并正确输入。
</li>
<li>
2. 如果您的邮箱已失效,可以
<a
href=
"{{:MyUrl('index/safety/index')}}"
>
绑定手机
</a>
后通过接收手机短信完成验证。
</li>
<li>
3. 如果您的手机已失效,可以
<a
href=
"{{:MyUrl('index/safety/index')}}"
>
绑定邮箱
</a>
后通过接收邮件完成验证。
</li>
<li>
4. 请正确输入下方图形验证码,如看不清可点击图片进行更换,输入完成后进行下一步操作。
</li>
<li>
5. 收到安全验证码后,请在{{:Myc('common_verify_expire_time', 600, true)/60}}分钟内完成验证。
</li>
</ul>
</div>
<!-- tips end -->
<!-- form start -->
<form
class=
"am-form form-validation"
method=
"post"
action=
"{{:PluginsHomeUrl('wallet', 'cash', 'verifycheck')}}"
request-type=
"ajax-url"
request-value=
"{{:PluginsHomeUrl('wallet', 'cash', 'createinfo')}}"
>
<div
class=
"am-form-group"
>
<label>
选择身份认证方式
<span
class=
"am-form-group-label-tips-must"
>
必选
</span></label>
<select
name=
"account_type"
class=
"chosen-select"
data-placeholder=
"请选择..."
data-validation-message=
"请选择身份认证方式"
required
>
{{if !empty($check_account_list)}}
{{foreach $check_account_list as $v}}
{{if !empty($user[$v['field']])}}
<option
value=
"{{$v.value}}"
>
{{$v.name}}[ {{$user[$v['field']]}} ]
</option>
{{/if}}
{{/foreach}}
{{/if}}
</select>
</div>
<div
class=
"am-form-group"
>
<label>
请输入安全验证码
<span
class=
"am-form-group-label-tips-must"
>
必填
</span></label>
<div
class=
"am-input-group am-input-group-sm"
>
<input
type=
"number"
name=
"verify"
class=
"am-radius"
placeholder=
"验证码"
minlength=
"6"
maxlength=
"6"
data-validation-message=
"验证码格式 6 位数字"
required
/>
<span
class=
"am-input-group-btn"
>
<button
class=
"am-btn am-btn-default am-radius btn-loading-example verify-submit"
type=
"button"
data-am-loading=
"{spinner:'circle-o-notch', loadingText:'发送中...'}"
data-url=
"{{:PluginsHomeUrl('wallet', 'cash', 'verifysend')}}"
data-verify=
"{{:MyC('home_img_verify_state')}}"
data-text=
"获取安全验证码"
data-send-text=
"还有 {time} 秒"
data-time=
"{{:MyC('common_verify_time_interval', 30, true)}}"
>
获取安全验证码
</button>
</span>
</div>
</div>
<div
class=
"am-form-group am-form-group-refreshing"
>
<button
type=
"submit"
class=
"am-btn am-btn-primary am-radius am-btn-sm btn-loading-example"
data-am-loading=
"{loadingText: '处理中...'}"
>
确认,进入下一步
</button>
</div>
</form>
<!-- form end -->
<!-- verify win start -->
<div
class=
"am-modal am-modal-no-btn"
tabindex=
"-1"
id=
"verify-win"
>
<div
class=
"am-modal-dialog am-radius"
>
<div
class=
"am-modal-hd"
>
<a
href=
"javascript:;"
class=
"am-close am-close-spin"
data-am-modal-close
>
×
</a>
</div>
<div
class=
"am-modal-bd"
>
<div
class=
"base"
>
<input
type=
"text"
placeholder=
"图形验证码"
maxlength=
"6"
id=
"verify-img-value"
data-validation-message=
"请输入有效的图形验证码"
class=
"am-form-field am-radius"
/>
<div
class=
"am-fl"
>
<img
src=
"{{:PluginsHomeUrl('wallet', 'cash', 'verifyentry')}}"
class=
"am-radius c-p"
id=
"verify-img"
onClick=
"this.src=this.src+'#'+Math.random();"
/>
<a
href=
"javascript:;"
class=
"verify-tips"
onClick=
"document.getElementById('verify-img').src='{{:PluginsHomeUrl('wallet', 'cash', 'verifyentry')}}#'+Math.random();"
>
看不清换一张
</a>
</div>
</div>
<button
type=
"button"
class=
"am-btn am-btn-secondary am-radius am-btn-sm block btn-loading-example verify-submit-win"
data-am-loading=
"{spinner:'circle-o-notch', loadingText:'发送中...'}"
data-win=
"1"
>
确认
</button>
</div>
</div>
</div>
<!-- verify win end -->
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/plugins/view/wallet/cash/createinfo.html
0 → 100644
浏览文件 @
7821caa9
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div
class=
"am-container user-main"
>
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div
class=
"user-content"
>
<div
class=
"user-content-body"
>
<!-- user menu start -->
{{include file="../../../plugins/view/wallet/public/nav" /}}
<!-- user menu end -->
<!-- form start -->
<form
class=
"am-form form-validation create-info"
method=
"post"
action=
"{{:PluginsHomeUrl('wallet', 'cash', 'create')}}"
request-type=
"ajax-url"
request-value=
"{{:PluginsHomeUrl('wallet', 'cash', 'index')}}"
>
<div
class=
"am-form-group"
>
<label>
提现金额
<span
class=
"am-form-group-label-tips-must"
>
必填
</span></label>
<div
class=
"am-input-group am-input-group-sm"
>
<input
type=
"number"
autocomplete=
"off"
name=
"money"
step=
"0.01"
min=
"0.00"
max=
"{{$user_wallet.normal_money}}"
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>
<div
class=
"am-alert"
data-am-alert
>
当前可用金额
<span
class=
"cash-normal-mony"
>
{{$user_wallet.normal_money}}
</span>
元
</div>
</div>
<div
class=
"am-form-group"
>
<label>
收款银行
<span
class=
"am-form-group-label-tips-must"
>
必填
</span></label>
<input
type=
"text"
name=
"bank_name"
placeholder=
"收款银行"
minlength=
"1"
maxlength=
"60"
data-validation-message=
"收款银行格式 1~60 个字符之间"
class=
"am-radius"
required
/>
<div
class=
"am-alert"
data-am-alert
>
强烈建议优先填写国有4大银行(中国银行、中国建设银行、中国工商银行和中国农业银行) 请填写详细的开户银行分行名称,虚拟账户如支付宝、财付通、微信 直接填写 支付宝 即可。
</div>
</div>
<div
class=
"am-form-group"
>
<label>
收款账号
<span
class=
"am-form-group-label-tips-must"
>
必填
</span></label>
<input
type=
"text"
name=
"bank_accounts"
placeholder=
"收款账号"
minlength=
"1"
maxlength=
"60"
data-validation-message=
"收款账号格式 1~60 个字符之间"
class=
"am-radius"
required
/>
<div
class=
"am-alert"
data-am-alert
>
银行账号或虚拟账号(支付宝、财付通等账号)
</div>
</div>
<div
class=
"am-form-group"
>
<label>
开户人姓名
<span
class=
"am-form-group-label-tips-must"
>
必填
</span></label>
<input
type=
"text"
name=
"bank_username"
placeholder=
"开户人姓名"
minlength=
"1"
maxlength=
"30"
data-validation-message=
"开户人姓名格式 1~30 个字符之间"
class=
"am-radius"
required
/>
<div
class=
"am-alert"
data-am-alert
>
收款账号的开户人姓名
</div>
</div>
<div
class=
"am-form-group am-form-group-refreshing"
>
<button
type=
"submit"
class=
"am-btn am-btn-primary am-radius am-btn-sm btn-loading-example"
data-am-loading=
"{loadingText: '处理中...'}"
>
确认提现
</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/plugins/view/wallet/cash/index.html
浏览文件 @
7821caa9
...
...
@@ -45,11 +45,11 @@
<tr>
<td>
<span>
状态:
</span>
<select
name=
"
type"
class=
"chosen-select"
data-placeholder=
"操作类型
..."
>
<option
value=
"-1"
>
操作类型
...
</option>
{{if !empty($c
ommon_integral_log_type
_list)}}
{{foreach $c
ommon_integral_log_type
_list as $v}}
<option
value=
"{{$v.
id}}"
{{
if
isset
($
params
['
type
'])
and
$
params
['
type
']
eq
$
v
['
id
']}}
selected
{{/
if
}}
>
{{$v.name}}
</option>
<select
name=
"
status"
class=
"chosen-select"
data-placeholder=
"提现状态
..."
>
<option
value=
"-1"
>
提现状态
...
</option>
{{if !empty($c
ash_status
_list)}}
{{foreach $c
ash_status
_list as $v}}
<option
value=
"{{$v.
value}}"
{{
if
isset
($
params
['
status
'])
and
$
params
['
status
']
eq
$
v
['
value
']}}
selected
{{/
if
}}
>
{{$v.name}}
</option>
{{/foreach}}
{{/if}}
</select>
...
...
@@ -68,22 +68,32 @@
<table
class=
"am-table am-table-striped"
>
<thead>
<tr>
<th>
操作类型
</th>
<th>
提现单号
</th>
<th>
提现金额(元)
</th>
<th
class=
"am-hide-sm-only"
>
打款金额(元)
</th>
<th>
状态
</th>
<th
class=
"am-hide-sm-only"
>
收款银行
</th>
<th>
收款账号
</th>
<th
class=
"am-hide-sm-only"
>
开户人姓名
</th>
<th
class=
"am-hide-sm-only"
>
描述
</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>
</tr>
</thead>
<tbody>
{{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.cash_no}}
</td>
<td
class=
"money-bold"
>
{{$v.money}}
</td>
<td
class=
"am-hide-sm-only money-bold money"
>
{{if $v['pay_money'] gt 0}}{{$v.pay_money}}{{/if}}
</td>
<td>
{{$v.status_text}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.bank_name}}
</td>
<td>
{{$v.bank_accounts}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.bank_username}}
</td>
<td
class=
"am-hide-sm-only operation-msg"
>
{{$v.msg}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.pay_time_text}}
</td>
<td
class=
"am-hide-sm-only"
>
{{$v.add_time_text}}
</td>
</tr>
{{/foreach}}
{{/if}}
...
...
application/plugins/view/wallet/public/nav.html
浏览文件 @
7821caa9
...
...
@@ -15,7 +15,7 @@
<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_control, ['wallet', 'cash'])}}
<a
class=
"am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-money"
>
提现
</a>
<a
href=
"{{:PluginsHomeUrl('wallet', 'cash', 'authinfo')}}"
class=
"am-btn am-btn-success am-topbar-btn am-btn-sm am-icon-money"
>
提现
</a>
{{/if}}
</div>
</ul>
...
...
application/plugins/view/wallet/recharge/index.html
浏览文件 @
7821caa9
...
...
@@ -44,7 +44,7 @@
<tr>
<th>
充值单号
</th>
<th>
充值金额(元)
</th>
<th>
支付金额(元)
</th>
<th
class=
"am-hide-sm-only"
>
支付金额(元)
</th>
<th>
状态
</th>
<th
class=
"am-hide-sm-only"
>
支付方式
</th>
<th
class=
"am-hide-sm-only"
>
支付时间
</th>
...
...
@@ -58,7 +58,7 @@
<tr
id=
"data-list-{{$v.id}}"
>
<td>
{{$v.recharge_no}}
</td>
<td
class=
"money-bold"
>
{{$v.money}}
</td>
<td
class=
"
money"
>
{{if $v['pay_money'] gt 0}}+
{{$v.pay_money}}{{/if}}
</td>
<td
class=
"
am-hide-sm-only money-bold money"
>
{{if $v['pay_money'] gt 0}}
{{$v.pay_money}}{{/if}}
</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>
...
...
application/plugins/wallet/Cash.php
浏览文件 @
7821caa9
...
...
@@ -11,8 +11,8 @@
namespace
app\plugins\wallet
;
use
app\plugins\wallet\Common
;
use
app\plugins\wallet\
Business
Service
;
use
app\
service\Plugins
Service
;
use
app\plugins\wallet\
service\Cash
Service
;
use
app\
plugins\wallet\service\Base
Service
;
/**
* 钱包 - 余额提现
...
...
@@ -47,15 +47,167 @@ class Cash extends Common
public
function
index
(
$params
=
[])
{
// 参数
$params
=
input
();
$params
[
'user'
]
=
$this
->
user
;
$this
->
assign
(
'data_list'
,
[]);
// 分页
$number
=
MyC
(
'admin_page_number'
,
10
,
true
);
// 条件
$where
=
BaseService
::
CashWhere
(
$params
);
// 获取总数
$total
=
BaseService
::
CashTotal
(
$where
);
// 分页
$page_params
=
array
(
'number'
=>
$number
,
'total'
=>
$total
,
'where'
=>
$params
,
'page'
=>
isset
(
$params
[
'page'
])
?
intval
(
$params
[
'page'
])
:
1
,
'url'
=>
PluginsHomeUrl
(
'wallet'
,
'cash'
,
'index'
),
);
$page
=
new
\
base\Page
(
$page_params
);
$this
->
assign
(
'page_html'
,
$page
->
GetPageHtml
());
// 获取列表
$data_params
=
array
(
'm'
=>
$page
->
GetPageStarNumber
(),
'n'
=>
$number
,
'where'
=>
$where
,
);
$data
=
BaseService
::
CashList
(
$data_params
);
$this
->
assign
(
'data_list'
,
$data
[
'data'
]);
// 静态数据
$this
->
assign
(
'cash_status_list'
,
CashService
::
$cash_status_list
);
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
(
'../../../plugins/view/wallet/cash/index'
);
}
/**
* 余额提现 - 安全验证
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public
function
authinfo
(
$params
=
[])
{
// 手机号/邮箱
$check_account_list
=
[
[
'field'
=>
'mobile_security'
,
'value'
=>
'mobile'
,
'name'
=>
'手机'
],
[
'field'
=>
'email_security'
,
'value'
=>
'email'
,
'name'
=>
'邮箱'
],
];
$this
->
assign
(
'check_account_list'
,
$check_account_list
);
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
(
'../../../plugins/view/wallet/cash/authinfo'
);
}
/**
* 余额提现 - 提现信息填写页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public
function
createinfo
(
$params
=
[])
{
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
(
'../../../plugins/view/wallet/cash/createinfo'
);
}
/**
* 验证码显示
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $params [输入参数]
*/
public
function
verifyentry
(
$params
=
[])
{
$params
=
array
(
'width'
=>
100
,
'height'
=>
28
,
'use_point_back'
=>
false
,
'key_prefix'
=>
'wallet_cash'
,
);
$verify
=
new
\
base\Verify
(
$params
);
$verify
->
Entry
();
}
/**
* 验证码发送
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $params [输入参数]
*/
public
function
verifysend
(
$params
=
[])
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 开始处理
$params
[
'user'
]
=
$this
->
user
;
return
CashService
::
VerifySend
(
$params
);
}
/**
* 验证码校验
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $params [输入参数]
*/
public
function
verifycheck
(
$params
=
[])
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 开始处理
$params
[
'user'
]
=
$this
->
user
;
return
CashService
::
VerifyCheck
(
$params
);
}
/**
* 提现创建
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $params [输入参数]
*/
public
function
create
(
$params
=
[])
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 开始处理
$params
[
'user'
]
=
$this
->
user
;
return
CashService
::
Create
(
$params
);
}
}
?>
\ No newline at end of file
application/plugins/wallet/Common.php
浏览文件 @
7821caa9
...
...
@@ -59,17 +59,8 @@ class Common extends Controller
// 用户钱包
$user_wallet
=
WalletService
::
UserWallet
(
$this
->
user
[
'id'
]);
// 用户钱包状态
$wallet_error
=
''
;
if
(
isset
(
$user_wallet
[
'code'
])
and
$user_wallet
[
'code'
]
==
0
)
{
if
(
!
isset
(
$user_wallet
[
'data'
][
'status'
])
||
$user_wallet
[
'data'
][
'status'
]
!=
0
)
{
$wallet_error
=
array_key_exists
(
$user_wallet
[
'data'
][
'status'
],
WalletService
::
$wallet_status_list
)
?
'用户钱包[ '
.
WalletService
::
$wallet_status_list
[
$user_wallet
[
'data'
][
'status'
]][
'name'
]
.
' ]'
:
'用户钱包状态异常错误'
;
}
}
else
{
$wallet_error
=
isset
(
$user_wallet
[
'msg'
])
?
$user_wallet
[
'msg'
]
:
'用户钱包异常错误'
;
}
// 用户钱包错误信息
$wallet_error
=
(
$user_wallet
[
'code'
]
==
0
)
?
''
:
$user_wallet
[
'msg'
];
$this
->
assign
(
'wallet_error'
,
$wallet_error
);
// 所有ajax请求校验用户钱包状态
...
...
application/plugins/wallet/Recharge.php
浏览文件 @
7821caa9
...
...
@@ -13,6 +13,7 @@ namespace app\plugins\wallet;
use
app\plugins\wallet\Common
;
use
app\plugins\wallet\service\BaseService
;
use
app\plugins\wallet\service\PayService
;
use
app\plugins\wallet\service\RechargeService
;
/**
* 钱包 - 充值
...
...
@@ -102,7 +103,7 @@ class Recharge extends Common
// 用户
$params
[
'user'
]
=
$this
->
user
;
$params
[
'user_wallet'
]
=
$this
->
user_wallet
;
return
Bas
eService
::
RechargeCreate
(
$params
);
return
Recharg
eService
::
RechargeCreate
(
$params
);
}
/**
...
...
@@ -196,7 +197,7 @@ class Recharge extends Common
// 开始处理
$params
[
'user'
]
=
$this
->
user
;
return
Bas
eService
::
RechargeDelete
(
$params
);
return
Recharg
eService
::
RechargeDelete
(
$params
);
}
}
?>
\ No newline at end of file
application/plugins/wallet/Walletadmin.php
浏览文件 @
7821caa9
...
...
@@ -12,7 +12,7 @@ namespace app\plugins\wallet;
use
think\Controller
;
use
app\plugins\wallet\service\WalletService
;
use
app\
service\Plugins
Service
;
use
app\
plugins\wallet\service\Base
Service
;
/**
* 钱包插件 - 钱包管理
...
...
@@ -37,10 +37,10 @@ class Walletadmin extends Controller
$number
=
MyC
(
'admin_page_number'
,
10
,
true
);
// 条件
$where
=
Wallet
Service
::
WalletWhere
(
$params
);
$where
=
Base
Service
::
WalletWhere
(
$params
);
// 获取总数
$total
=
Wallet
Service
::
WalletTotal
(
$where
);
$total
=
Base
Service
::
WalletTotal
(
$where
);
// 分页
$page_params
=
array
(
...
...
@@ -61,7 +61,7 @@ class Walletadmin extends Controller
'n'
=>
$number
,
'where'
=>
$where
,
);
$data
=
Wallet
Service
::
WalletList
(
$data_params
);
$data
=
Base
Service
::
WalletList
(
$data_params
);
$this
->
assign
(
'data_list'
,
$data
[
'data'
]);
}
else
{
$this
->
assign
(
'data_list'
,
[]);
...
...
@@ -94,7 +94,7 @@ class Walletadmin extends Controller
'n'
=>
1
,
'where'
=>
[
'id'
=>
intval
(
$params
[
'id'
])],
);
$ret
=
Wallet
Service
::
WalletList
(
$data_params
);
$ret
=
Base
Service
::
WalletList
(
$data_params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$data
=
$ret
[
'data'
][
0
];
...
...
application/plugins/wallet/install.sql
浏览文件 @
7821caa9
...
...
@@ -49,4 +49,27 @@ CREATE TABLE `s_plugins_wallet_log` (
PRIMARY
KEY
(
`id`
),
KEY
`wallet_id`
(
`wallet_id`
),
KEY
`user_id`
(
`user_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
ROW_FORMAT
=
DYNAMIC
COMMENT
=
'钱包日志 - 应用'
\ No newline at end of file
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
ROW_FORMAT
=
DYNAMIC
COMMENT
=
'钱包日志 - 应用'
;
#
钱包提现
CREATE
TABLE
`s_plugins_wallet_cash`
(
`id`
int
(
11
)
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增id'
,
`user_id`
int
(
11
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'用户id'
,
`wallet_id`
int
(
11
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'钱包id'
,
`cash_no`
char
(
60
)
NOT
NULL
DEFAULT
''
COMMENT
'提现单号'
,
`status`
tinyint
(
2
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'状态(0未打款, 1已打款, 2打款失败)'
,
`money`
decimal
(
10
,
2
)
unsigned
NOT
NULL
DEFAULT
'0.00'
COMMENT
'提现金额'
,
`pay_money`
decimal
(
10
,
2
)
unsigned
NOT
NULL
DEFAULT
'0.00'
COMMENT
'打款金额'
,
`bank_name`
char
(
60
)
NOT
NULL
DEFAULT
''
COMMENT
'收款银行'
,
`bank_accounts`
char
(
60
)
NOT
NULL
DEFAULT
''
COMMENT
'收款账号'
,
`bank_username`
char
(
60
)
NOT
NULL
DEFAULT
''
COMMENT
'开户人姓名'
,
`msg`
char
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'描述(用户可见)'
,
`pay_time`
int
(
11
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'打款时间'
,
`add_time`
int
(
11
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'添加时间'
,
`upd_time`
int
(
11
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`cash_no`
(
`cash_no`
),
KEY
`status`
(
`status`
),
KEY
`user_id`
(
`user_id`
),
KEY
`wallet_id`
(
`wallet_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
ROW_FORMAT
=
DYNAMIC
COMMENT
=
'钱包提现 - 应用'
;
\ No newline at end of file
application/plugins/wallet/service/BaseService.php
浏览文件 @
7821caa9
...
...
@@ -11,11 +11,11 @@
namespace
app\plugins\wallet\service
;
use
think\Db
;
use
app\service\PluginsService
;
use
app\service\ResourcesService
;
use
app\service\PaymentService
;
use
app\plugins\wallet\service\WalletService
;
use
app\plugins\wallet\service\PayService
;
use
app\plugins\wallet\service\CashService
;
use
app\plugins\wallet\service\RechargeService
;
/**
* 基础服务层
...
...
@@ -26,6 +26,131 @@ use app\plugins\wallet\service\PayService;
*/
class
BaseService
{
/**
* 钱包列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-04-30T00:13:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
WalletList
(
$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
(
'PluginsWallet'
)
->
field
(
$field
)
->
where
(
$where
)
->
limit
(
$m
,
$n
)
->
order
(
$order_by
)
->
select
();
if
(
!
empty
(
$data
))
{
$wallet_status_list
=
WalletService
::
$wallet_status_list
;
foreach
(
$data
as
&
$v
)
{
// 用户信息
$v
[
'user'
]
=
self
::
GetUserInfo
(
$v
[
'user_id'
]);
// 状态
$v
[
'status_text'
]
=
(
isset
(
$v
[
'status'
])
&&
isset
(
$wallet_status_list
[
$v
[
'status'
]]))
?
$wallet_status_list
[
$v
[
'status'
]][
'name'
]
:
'未知'
;
// 创建时间
$v
[
'add_time_text'
]
=
empty
(
$v
[
'add_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'add_time'
]);
}
}
return
DataReturn
(
'处理成功'
,
0
,
$data
);
}
/**
* 获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-05
* @desc description
* @param [int] $user_id [用户id]
*/
private
static
function
GetUserInfo
(
$user_id
)
{
$user
=
Db
::
name
(
'User'
)
->
field
(
'username,nickname,mobile,email,avatar'
)
->
find
(
$user_id
);
if
(
!
empty
(
$user
))
{
$user
[
'user_name_view'
]
=
$user
[
'username'
];
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'nickname'
];
}
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'mobile'
];
}
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'email'
];
}
// 头像
if
(
!
empty
(
$user
[
'avatar'
]))
{
$user
[
'avatar'
]
=
ResourcesService
::
AttachmentPathViewHandle
(
$user
[
'avatar'
]);
}
else
{
$user
[
'avatar'
]
=
config
(
'shopxo.attachment_host'
)
.
'/static/index/'
.
strtolower
(
config
(
'DEFAULT_THEME'
,
'default'
))
.
'/images/default-user-avatar.jpg'
;
}
}
return
$user
;
}
/**
* 钱包总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public
static
function
WalletTotal
(
$where
=
[])
{
return
(
int
)
Db
::
name
(
'PluginsWallet'
)
->
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
WalletWhere
(
$params
=
[])
{
$where
=
[];
// 用户
if
(
!
empty
(
$params
[
'keywords'
]))
{
$user_ids
=
Db
::
name
(
'User'
)
->
where
(
'username|nickname|mobile|email'
,
'='
,
$params
[
'keywords'
])
->
column
(
'id'
);
if
(
!
empty
(
$user_ids
))
{
$where
[]
=
[
'user_id'
,
'in'
,
$user_ids
];
}
else
{
// 无数据条件,避免用户搜索条件没有数据造成的错觉
$where
[]
=
[
'id'
,
'='
,
0
];
}
}
// 状态
if
(
isset
(
$params
[
'status'
])
&&
$params
[
'status'
]
>
-
1
)
{
$where
[]
=
[
'status'
,
'='
,
$params
[
'status'
]];
}
return
$where
;
}
/**
* 充值列表
* @author Devil
...
...
@@ -61,13 +186,13 @@ class BaseService
}
// 支付状态
$v
[
'status_text'
]
=
isset
(
$v
[
'status'
])
?
Pay
Service
::
$recharge_status_list
[
$v
[
'status'
]][
'name'
]
:
''
;
$v
[
'status_text'
]
=
isset
(
$v
[
'status'
])
?
Recharge
Service
::
$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'
]);
$v
[
'add_time_text'
]
=
empty
(
$v
[
'
add_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'add
_time'
]);
}
}
return
DataReturn
(
'处理成功'
,
0
,
$data
);
...
...
@@ -115,113 +240,6 @@ class BaseService
return
$where
;
}
/**
* 充值订单创建
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
RechargeCreate
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user_wallet'
,
'error_msg'
=>
'用户钱包有误'
,
],
[
'checked_type'
=>
'fun'
,
'key_name'
=>
'money'
,
'checked_data'
=>
'CheckPrice'
,
'error_msg'
=>
'请输入有效的充值金额'
,
],
[
'checked_type'
=>
'min'
,
'key_name'
=>
'money'
,
'checked_data'
=>
0.01
,
'error_msg'
=>
'请输入大于0的充值金额'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 添加
$data
=
[
'recharge_no'
=>
date
(
'YmdHis'
)
.
GetNumberCode
(
6
),
'wallet_id'
=>
$params
[
'user_wallet'
][
'id'
],
'user_id'
=>
$params
[
'user'
][
'id'
],
'money'
=>
PriceNumberFormat
(
$params
[
'money'
]),
'status'
=>
0
,
'add_time'
=>
time
(),
];
$recharge_id
=
Db
::
name
(
'PluginsWalletRecharge'
)
->
insertGetId
(
$data
);
if
(
$recharge_id
>
0
)
{
return
DataReturn
(
'添加成功'
,
0
,
[
'recharge_id'
=>
$recharge_id
,
'recharge_no'
=>
$data
[
'recharge_no'
],
'money'
=>
$data
[
'money'
],
]);
}
return
DataReturn
(
'添加失败'
,
-
100
);
}
/**
* 充值纪录删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-14
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
RechargeDelete
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'删除数据id有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 删除
$where
=
[
'id'
=>
intval
(
$params
[
'id'
]),
'user_id'
=>
$params
[
'user'
][
'id'
]
];
if
(
Db
::
name
(
'PluginsWalletRecharge'
)
->
where
(
$where
)
->
delete
())
{
return
DataReturn
(
'删除成功'
,
0
);
}
return
DataReturn
(
'删除失败或资源不存在'
,
-
100
);
}
/**
* 钱包明细列表
* @author Devil
...
...
@@ -320,5 +338,103 @@ class BaseService
return
$where
;
}
/**
* 提现列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-04-30T00:13:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
CashList
(
$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
(
'PluginsWalletCash'
)
->
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'
])
?
CashService
::
$cash_status_list
[
$v
[
'status'
]][
'name'
]
:
''
;
// 备注
$v
[
'msg'
]
=
empty
(
$v
[
'msg'
])
?
''
:
str_replace
(
"
\n
"
,
'<br />'
,
$v
[
'msg'
]);
// 打款时间
$v
[
'pay_time_text'
]
=
empty
(
$v
[
'pay_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'pay_time'
]);
// 创建时间
$v
[
'add_time_text'
]
=
empty
(
$v
[
'add_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'add_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
CashTotal
(
$where
=
[])
{
return
(
int
)
Db
::
name
(
'PluginsWalletCash'
)
->
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
CashWhere
(
$params
=
[])
{
$where
=
[];
// 用户id
if
(
!
empty
(
$params
[
'user'
]))
{
$where
[]
=
[
'user_id'
,
'='
,
$params
[
'user'
][
'id'
]];
}
// 关键字
if
(
!
empty
(
$params
[
'keywords'
]))
{
$where
[]
=
[
'cash_no'
,
'='
,
$params
[
'keywords'
]];
}
// 状态
if
(
isset
(
$params
[
'status'
])
&&
$params
[
'status'
]
>
-
1
)
{
$where
[]
=
[
'status'
,
'='
,
$params
[
'status'
]];
}
return
$where
;
}
}
?>
\ No newline at end of file
application/plugins/wallet/service/CashService.php
0 → 100644
浏览文件 @
7821caa9
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\plugins\wallet\service
;
use
think\Db
;
use
app\service\MessageService
;
use
app\plugins\wallet\service\WalletService
;
/**
* 提现服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
CashService
{
// 提现状态
public
static
$cash_status_list
=
[
0
=>
[
'value'
=>
0
,
'name'
=>
'未打款'
,
'checked'
=>
true
],
1
=>
[
'value'
=>
1
,
'name'
=>
'已打款'
],
2
=>
[
'value'
=>
2
,
'name'
=>
'打款失败'
],
];
/**
* 验证码发送
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-05T19:17:10+0800
* @param [array] $params [输入参数]
*/
public
static
function
VerifySend
(
$params
=
[])
{
// 数据验证
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'account_type'
,
'error_msg'
=>
'身份认证方式有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 账户
if
(
empty
(
$params
[
'user'
][
$params
[
'account_type'
]]))
{
return
DataReturn
(
'当前验证类型账号未绑定'
,
-
1
);
}
// 验证码基础参数
$img_verify_params
=
array
(
'key_prefix'
=>
'wallet_cash'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
);
// 是否开启图片验证码
$verify
=
self
::
IsImaVerify
(
$params
,
$img_verify_params
);
if
(
$verify
[
'code'
]
!=
0
)
{
return
$verify
;
}
// 当前验证账户
$accounts
=
$params
[
'user'
][
$params
[
'account_type'
]];
// 发送验证码
$verify_params
=
array
(
'key_prefix'
=>
md5
(
'wallet_cash_'
.
$accounts
),
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
);
$code
=
GetNumberCode
(
6
);
if
(
$params
[
'account_type'
]
==
'mobile'
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
$status
=
$obj
->
SendCode
(
$accounts
,
$code
,
MyC
(
'home_sms_user_mobile_binding'
));
}
else
{
$obj
=
new
\
base\Email
(
$verify_params
);
$email_params
=
array
(
'email'
=>
$accounts
,
'content'
=>
MyC
(
'home_email_user_email_binding'
),
'title'
=>
MyC
(
'home_site_name'
)
.
' - 账户安全认证'
,
'code'
=>
$code
,
);
$status
=
$obj
->
SendHtml
(
$email_params
);
}
// 状态
if
(
$status
)
{
// 清除验证码
if
(
isset
(
$verify
[
'data'
])
&&
is_object
(
$verify
[
'data'
]))
{
$verify
[
'data'
]
->
Remove
();
}
return
DataReturn
(
'发送成功'
,
0
);
}
return
DataReturn
(
'发送失败'
.
'['
.
$obj
->
error
.
']'
,
-
100
);
}
/**
* 是否开启图片验证码校验
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-22T15:48:31+0800
* @param [array] $params [输入参数]
* @param [array] $verify_params [配置参数]
* @return [object] [图片验证码类对象]
*/
private
static
function
IsImaVerify
(
$params
,
$verify_params
)
{
if
(
MyC
(
'home_img_verify_state'
)
==
1
)
{
if
(
empty
(
$params
[
'verify'
]))
{
return
DataReturn
(
'参数错误'
,
-
10
);
}
$verify
=
new
\
base\Verify
(
$verify_params
);
if
(
!
$verify
->
CheckExpire
())
{
return
DataReturn
(
'验证码已过期'
,
-
11
);
}
if
(
!
$verify
->
CheckCorrect
(
$params
[
'verify'
]))
{
return
DataReturn
(
'验证码错误'
,
-
12
);
}
return
DataReturn
(
'操作成功'
,
0
,
$verify
);
}
return
DataReturn
(
'操作成功'
,
0
);
}
/**
* 验证码校验
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-28T15:57:19+0800
* @param [array] $params [输入参数]
*/
public
static
function
VerifyCheck
(
$params
=
[])
{
// 数据验证
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'account_type'
,
'error_msg'
=>
'身份认证方式有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'verify'
,
'error_msg'
=>
'验证码不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 账户
if
(
empty
(
$params
[
'user'
][
$params
[
'account_type'
]]))
{
return
DataReturn
(
'当前验证类型账号未绑定'
,
-
1
);
}
// 当前验证账户
$accounts
=
$params
[
'user'
][
$params
[
'account_type'
]];
// 验证码校验
$verify_params
=
array
(
'key_prefix'
=>
md5
(
'wallet_cash_'
.
$accounts
),
'expire_time'
=>
MyC
(
'common_verify_expire_time'
)
);
if
(
$params
[
'account_type'
]
==
'mobile'
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
}
else
{
$obj
=
new
\
base\Email
(
$verify_params
);
}
// 是否已过期
if
(
!
$obj
->
CheckExpire
())
{
return
DataReturn
(
'验证码已过期'
,
-
10
);
}
// 是否正确
if
(
$obj
->
CheckCorrect
(
$params
[
'verify'
]))
{
// 校验成功标记
session
(
'wallet_cash_'
.
$params
[
'account_type'
],
true
);
// 清除验证码
$obj
->
Remove
();
return
DataReturn
(
'验证正确'
,
0
);
}
return
DataReturn
(
'验证码错误'
,
-
11
);
}
/**
* 提现创建
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
Create
(
$params
=
[])
{
// 数据验证
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'money'
,
'error_msg'
=>
'提现金额不能为空'
,
],
[
'checked_type'
=>
'length'
,
'key_name'
=>
'bank_name'
,
'checked_data'
=>
'1,60'
,
'error_msg'
=>
'收款银行格式 1~60 个字符之间'
,
],
[
'checked_type'
=>
'length'
,
'key_name'
=>
'bank_accounts'
,
'checked_data'
=>
'1,60'
,
'error_msg'
=>
'收款账号格式 1~60 个字符之间'
,
],
[
'checked_type'
=>
'length'
,
'key_name'
=>
'bank_username'
,
'checked_data'
=>
'1,30'
,
'error_msg'
=>
'开户人姓名格式 1~30 个字符之间'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 用户钱包
$user_wallet
=
WalletService
::
UserWallet
(
$params
[
'user'
][
'id'
]);
if
(
$user_wallet
[
'code'
]
!=
0
)
{
return
$user_wallet
;
}
// 提现金额
$money
=
PriceNumberFormat
(
$params
[
'money'
]);
if
(
$money
>
$user_wallet
[
'data'
][
'normal_money'
])
{
return
DataReturn
(
'提现金额不能大于有效金额'
,
-
1
);
}
// 开始处理
Db
::
startTrans
();
// 添加提现数据
$data
=
[
'cash_no'
=>
date
(
'YmdHis'
)
.
GetNumberCode
(
6
),
'user_id'
=>
$user_wallet
[
'data'
][
'user_id'
],
'wallet_id'
=>
$user_wallet
[
'data'
][
'id'
],
'status'
=>
0
,
'money'
=>
$money
,
'bank_name'
=>
$params
[
'bank_name'
],
'bank_accounts'
=>
$params
[
'bank_accounts'
],
'bank_username'
=>
$params
[
'bank_username'
],
'add_time'
=>
time
(),
];
$cash_id
=
Db
::
name
(
'PluginsWalletCash'
)
->
insertGetId
(
$data
);
if
(
$cash_id
<=
0
)
{
Db
::
rollback
();
return
DataReturn
(
'提现操作失败'
,
-
100
);
}
// 钱包更新
$wallet_data
=
[
'normal_money'
=>
PriceNumberFormat
(
$user_wallet
[
'data'
][
'normal_money'
]
-
$money
),
'upd_time'
=>
time
(),
];
if
(
!
Db
::
name
(
'PluginsWallet'
)
->
where
([
'id'
=>
$user_wallet
[
'data'
][
'id'
]])
->
update
(
$wallet_data
))
{
Db
::
rollback
();
return
DataReturn
(
'钱包操作失败'
,
-
100
);
}
// 日志
$log_data
=
[
'user_id'
=>
$user_wallet
[
'data'
][
'user_id'
],
'wallet_id'
=>
$user_wallet
[
'data'
][
'id'
],
'business_type'
=>
2
,
'operation_type'
=>
0
,
'money_type'
=>
0
,
'operation_money'
=>
$money
,
'original_money'
=>
$user_wallet
[
'data'
][
'normal_money'
],
'latest_money'
=>
$wallet_data
[
'normal_money'
],
];
$log_data
[
'msg'
]
=
'用户提现申请[ 减少有效金额'
.
$log_data
[
'operation_money'
]
.
'元 ]'
;
if
(
!
WalletService
::
WalletLogInsert
(
$log_data
))
{
Db
::
rollback
();
return
DataReturn
(
'日志添加失败'
,
-
101
);
}
// 消息通知
MessageService
::
MessageAdd
(
$user_wallet
[
'data'
][
'user_id'
],
'账户余额变动'
,
$log_data
[
'msg'
],
0
,
$cash_id
);
// 提交事务
Db
::
commit
();
return
DataReturn
(
'操作成功'
,
0
);
}
}
?>
\ No newline at end of file
application/plugins/wallet/service/PayService.php
浏览文件 @
7821caa9
...
...
@@ -16,6 +16,7 @@ use app\service\PayLogService;
use
app\service\MessageService
;
use
app\service\PluginsService
;
use
app\plugins\wallet\service\WalletService
;
use
app\plugins\wallet\service\RechargeService
;
/**
* 支付服务层
...
...
@@ -26,12 +27,6 @@ use app\plugins\wallet\service\WalletService;
*/
class
PayService
{
// 充值支付状态
public
static
$recharge_status_list
=
[
0
=>
[
'value'
=>
0
,
'name'
=>
'未支付'
,
'checked'
=>
true
],
1
=>
[
'value'
=>
1
,
'name'
=>
'已支付'
],
];
/**
* 支付
* @author Devil
...
...
@@ -299,7 +294,7 @@ class PayService
}
if
(
$params
[
'recharge'
][
'status'
]
>
0
)
{
$status_text
=
self
::
$recharge_status_list
[
$params
[
'recharge'
][
'status'
]][
'name'
];
$status_text
=
RechargeService
::
$recharge_status_list
[
$params
[
'recharge'
][
'status'
]][
'name'
];
return
DataReturn
(
'状态不可操作['
.
$status_text
.
']'
,
0
);
}
...
...
@@ -409,7 +404,7 @@ class PayService
}
// 消息通知
MessageService
::
MessageAdd
(
$params
[
'recharge'
][
'user_id'
],
'账户
充值
'
,
$log_data
[
'msg'
],
2
,
$params
[
'recharge'
][
'id'
]);
MessageService
::
MessageAdd
(
$params
[
'recharge'
][
'user_id'
],
'账户
余额变动
'
,
$log_data
[
'msg'
],
2
,
$params
[
'recharge'
][
'id'
]);
}
}
...
...
application/plugins/wallet/service/RechargeService.php
0 → 100644
浏览文件 @
7821caa9
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\plugins\wallet\service
;
use
think\Db
;
/**
* 充值服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
RechargeService
{
// 充值支付状态
public
static
$recharge_status_list
=
[
0
=>
[
'value'
=>
0
,
'name'
=>
'未支付'
,
'checked'
=>
true
],
1
=>
[
'value'
=>
1
,
'name'
=>
'已支付'
],
];
/**
* 充值订单创建
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
RechargeCreate
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user_wallet'
,
'error_msg'
=>
'用户钱包有误'
,
],
[
'checked_type'
=>
'fun'
,
'key_name'
=>
'money'
,
'checked_data'
=>
'CheckPrice'
,
'error_msg'
=>
'请输入有效的充值金额'
,
],
[
'checked_type'
=>
'min'
,
'key_name'
=>
'money'
,
'checked_data'
=>
0.01
,
'error_msg'
=>
'请输入大于0的充值金额'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 添加
$data
=
[
'recharge_no'
=>
date
(
'YmdHis'
)
.
GetNumberCode
(
6
),
'wallet_id'
=>
$params
[
'user_wallet'
][
'id'
],
'user_id'
=>
$params
[
'user'
][
'id'
],
'money'
=>
PriceNumberFormat
(
$params
[
'money'
]),
'status'
=>
0
,
'add_time'
=>
time
(),
];
$recharge_id
=
Db
::
name
(
'PluginsWalletRecharge'
)
->
insertGetId
(
$data
);
if
(
$recharge_id
>
0
)
{
return
DataReturn
(
'添加成功'
,
0
,
[
'recharge_id'
=>
$recharge_id
,
'recharge_no'
=>
$data
[
'recharge_no'
],
'money'
=>
$data
[
'money'
],
]);
}
return
DataReturn
(
'添加失败'
,
-
100
);
}
/**
* 充值纪录删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-14
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
RechargeDelete
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'删除数据id有误'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 删除
$where
=
[
'id'
=>
intval
(
$params
[
'id'
]),
'user_id'
=>
$params
[
'user'
][
'id'
]
];
if
(
Db
::
name
(
'PluginsWalletRecharge'
)
->
where
(
$where
)
->
delete
())
{
return
DataReturn
(
'删除成功'
,
0
);
}
return
DataReturn
(
'删除失败或资源不存在'
,
-
100
);
}
}
?>
\ No newline at end of file
application/plugins/wallet/service/WalletService.php
浏览文件 @
7821caa9
...
...
@@ -53,131 +53,6 @@ class WalletService
2
=>
[
'value'
=>
2
,
'name'
=>
'赠送'
],
];
/**
* 钱包列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-04-30T00:13:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
WalletList
(
$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
(
'PluginsWallet'
)
->
field
(
$field
)
->
where
(
$where
)
->
limit
(
$m
,
$n
)
->
order
(
$order_by
)
->
select
();
if
(
!
empty
(
$data
))
{
$wallet_status_list
=
WalletService
::
$wallet_status_list
;
foreach
(
$data
as
&
$v
)
{
// 用户信息
$v
[
'user'
]
=
self
::
GetUserInfo
(
$v
[
'user_id'
]);
// 状态
$v
[
'status_text'
]
=
(
isset
(
$v
[
'status'
])
&&
isset
(
$wallet_status_list
[
$v
[
'status'
]]))
?
$wallet_status_list
[
$v
[
'status'
]][
'name'
]
:
'未知'
;
// 创建时间
$v
[
'add_time_text'
]
=
empty
(
$v
[
'add_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'add_time'
]);
}
}
return
DataReturn
(
'处理成功'
,
0
,
$data
);
}
/**
* 获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-05
* @desc description
* @param [int] $user_id [用户id]
*/
private
static
function
GetUserInfo
(
$user_id
)
{
$user
=
Db
::
name
(
'User'
)
->
field
(
'username,nickname,mobile,email,avatar'
)
->
find
(
$user_id
);
if
(
!
empty
(
$user
))
{
$user
[
'user_name_view'
]
=
$user
[
'username'
];
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'nickname'
];
}
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'mobile'
];
}
if
(
empty
(
$user
[
'user_name_view'
]))
{
$user
[
'user_name_view'
]
=
$user
[
'email'
];
}
// 头像
if
(
!
empty
(
$user
[
'avatar'
]))
{
$user
[
'avatar'
]
=
ResourcesService
::
AttachmentPathViewHandle
(
$user
[
'avatar'
]);
}
else
{
$user
[
'avatar'
]
=
config
(
'shopxo.attachment_host'
)
.
'/static/index/'
.
strtolower
(
config
(
'DEFAULT_THEME'
,
'default'
))
.
'/images/default-user-avatar.jpg'
;
}
}
return
$user
;
}
/**
* 钱包总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public
static
function
WalletTotal
(
$where
=
[])
{
return
(
int
)
Db
::
name
(
'PluginsWallet'
)
->
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
WalletWhere
(
$params
=
[])
{
$where
=
[];
// 用户
if
(
!
empty
(
$params
[
'keywords'
]))
{
$user_ids
=
Db
::
name
(
'User'
)
->
where
(
'username|nickname|mobile|email'
,
'='
,
$params
[
'keywords'
])
->
column
(
'id'
);
if
(
!
empty
(
$user_ids
))
{
$where
[]
=
[
'user_id'
,
'in'
,
$user_ids
];
}
else
{
// 无数据条件,避免用户搜索条件没有数据造成的错觉
$where
[]
=
[
'id'
,
'='
,
0
];
}
}
// 状态
if
(
isset
(
$params
[
'status'
])
&&
$params
[
'status'
]
>
-
1
)
{
$where
[]
=
[
'status'
,
'='
,
$params
[
'status'
]];
}
return
$where
;
}
/**
* 用户钱包
* @author Devil
...
...
@@ -207,13 +82,43 @@ class WalletService
$wallet_id
=
Db
::
name
(
'PluginsWallet'
)
->
insertGetId
(
$data
);
if
(
$wallet_id
>
0
)
{
$wallet
=
Db
::
name
(
'PluginsWallet'
)
->
find
(
$wallet_id
);
return
DataReturn
(
'操作成功'
,
0
,
Db
::
name
(
'PluginsWallet'
)
->
find
(
$wallet_id
)
);
}
else
{
return
DataReturn
(
'钱包添加失败'
,
-
100
);
}
}
else
{
return
self
::
UserWalletStatusCheck
(
$wallet
);
}
}
/**
* 用户钱包状态校验
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-08
* @desc description
* @param [array] $user_wallet [用户钱包]
*/
public
static
function
UserWalletStatusCheck
(
$user_wallet
)
{
// 用户钱包状态
$wallet_error
=
''
;
if
(
isset
(
$user_wallet
[
'status'
]))
{
if
(
$user_wallet
[
'status'
]
!=
0
)
{
$wallet_error
=
array_key_exists
(
$user_wallet
[
'status'
],
self
::
$wallet_status_list
)
?
'用户钱包[ '
.
self
::
$wallet_status_list
[
$user_wallet
[
'status'
]][
'name'
]
.
' ]'
:
'用户钱包状态异常错误'
;
}
}
else
{
$wallet_error
=
'用户钱包异常错误'
;
}
return
DataReturn
(
'操作成功'
,
0
,
$wallet
);
if
(
!
empty
(
$wallet_error
))
{
return
DataReturn
(
$wallet_error
,
-
30
);
}
return
DataReturn
(
'操作成功'
,
0
,
$user_wallet
);
}
/**
...
...
config/shopxo.sql
浏览文件 @
7821caa9
此差异已折叠。
点击以展开。
public/static/common/css/common.css
浏览文件 @
7821caa9
...
...
@@ -233,9 +233,29 @@ ul.plug-file-upload-view-video li {
/**
* 覆盖框架样式
*/
.am-alert
{
background
:
#f1faff
;
border
:
1px
solid
#e2f5ff
;
color
:
#1490d2
;
}
.am-alert-danger
{
background-color
:
#fff1f0
;
border-color
:
#ffe4e3
;
color
:
#dd514c
;
}
.am-alert-secondary
{
background-color
:
#f6f6f6
;
border-color
:
#efefef
;
color
:
#666
;
}
.am-alert-success
{
background-color
:
#eef7ea
;
border-color
:
#e3f3d6
;
color
:
#468847
;
}
.am-alert-warning
{
background-color
:
#ff
eee
1
;
border-color
:
#f
9e4d3
;
background-color
:
#ff
f7f
1
;
border-color
:
#f
ff0e4
;
color
:
#f37b1d
;
}
.am-input-radius
input
.am-form-field
{
...
...
public/static/index/default/css/common.css
浏览文件 @
7821caa9
...
...
@@ -738,12 +738,6 @@ img.common-user-icon {
vertical-align
:
middle
;
}
/**
* 用户中心
*/
.user-content-body
{
-webkit-box-flex
:
1
;
-webkit-flex
:
1
0
auto
;
-ms-flex
:
1
0
auto
;
flex
:
1
0
auto
;
overflow
:
hidden
;
}
/**
* 用户中心左侧菜单
*/
...
...
public/static/index/default/css/safety.css
浏览文件 @
7821caa9
...
...
@@ -11,6 +11,7 @@
.user-content-body
#verify-win
.am-modal-bd
{
margin-top
:
10px
;
}
.user-content-body
#verify-win
.am-modal-bd
.base
{
overflow
:
hidden
;
}
.user-content-body
#verify-win
.am-modal-bd
.base
.verify-tips
{
font-size
:
12px
;
}
.user-content-body
#verify-img
{
vertical-align
:
middle
;
}
.user-content-body
legend
{
padding-bottom
:
0.2rem
;
...
...
public/static/plugins/css/wallet/index/cash.css
浏览文件 @
7821caa9
/**
* 操作提示
*/
.user-content-body
.wallet-cash-auth-tips
.title
{
font-weight
:
500
;
font-size
:
16px
;
margin-bottom
:
2px
;
}
.user-content-body
.wallet-cash-auth-tips
ul
li
{
color
:
#486d48
;
line-height
:
24px
;
}
.user-content-body
.wallet-cash-auth-tips
ul
li
a
{
color
:
#0085ef
;
text-decoration
:
underline
;
}
/**
* 弹窗图片验证码
*/
.user-content-body
.verify-submit-win
,
.user-content-body
.verify-submit-win-new
{
margin-top
:
20px
;
display
:
block
;
}
.user-content-body
.reg-switch-tips
{
font-weight
:
100
;
font-size
:
12px
;
color
:
#f87689
;
margin-left
:
20px
;
}
.user-content-body
#verify-win
.am-modal-bd
{
margin-top
:
10px
;
}
.user-content-body
#verify-win
.am-modal-bd
.base
{
overflow
:
hidden
;
}
.user-content-body
#verify-win
.am-modal-bd
.base
.verify-tips
{
font-size
:
12px
;
}
.user-content-body
#verify-img
{
vertical-align
:
middle
;
}
/**
* 提现可用金额
*/
.user-content-body
form
.create-info
.am-alert
{
color
:
#90cae9
;
}
.user-content-body
form
.create-info
.cash-normal-mony
{
font-weight
:
700
;
color
:
#55b35a
;
}
.user-content-body
form
.create-info
.am-form-group
:hover
.am-alert
{
color
:
#1490d2
;
}
/**
* 列表
*/
.user-content-body
.data-list
.operation-msg
{
width
:
20%
;
}
\ No newline at end of file
public/static/plugins/css/wallet/index/common.css
浏览文件 @
7821caa9
...
...
@@ -74,8 +74,6 @@
* 账户信息
*/
.user-content-body
.am-alert-secondary
{
background-color
:
#f6f6f6
;
border-color
:
#ececec
;
margin-bottom
:
20px
;
}
.user-content-body
.normal
.integral-value
{
...
...
public/static/plugins/css/wallet/index/recharge.css
已删除
100644 → 0
浏览文件 @
ef9567d9
public/static/plugins/js/wallet/index/cash.js
0 → 100644
浏览文件 @
7821caa9
$
(
function
()
{
$verify_win
=
$
(
'
#verify-win
'
);
// 原帐号验证码发送
$
(
'
.verify-submit, .verify-submit-win
'
).
on
(
'
click
'
,
function
()
{
// 是否选择验证账号类型
var
$account_type_tag
=
$
(
'
form.form-validation select[name="account_type"]
'
);
var
account_type
=
$account_type_tag
.
val
()
||
null
;
if
(
account_type
==
null
)
{
$account_type_tag
.
trigger
(
'
change
'
);
Prompt
(
$account_type_tag
.
data
(
'
validation-message
'
));
return
false
;
}
// 图片验证码校验
var
$this
=
$
(
this
);
var
$verify
=
$
(
'
#verify-img-value
'
);
var
verify
=
''
;
// 是否需要先校验图片验证码
if
(
$this
.
data
(
'
verify
'
)
==
1
)
{
// 开启图片验证码窗口
$verify_win
.
modal
(
'
open
'
);
$verify
.
focus
();
return
false
;
}
// 验证码窗口操作按钮则更新按钮对象
var
is_win
=
$
(
this
).
data
(
'
win
'
);
if
(
is_win
==
1
)
{
$this
=
$
(
'
.verify-submit
'
);
// 验证码参数处理
verify
=
$verify
.
val
().
replace
(
/
\s
+/g
,
''
);
if
(
verify
.
length
<
6
)
{
Prompt
(
$verify
.
data
(
'
validation-message
'
));
$verify
.
focus
();
return
false
;
}
}
// 验证码时间间隔
var
time_count
=
parseInt
(
$this
.
data
(
'
time
'
));
// 按钮交互
$this
.
button
(
'
loading
'
);
if
(
is_win
==
1
)
{
$
(
'
.verify-submit-win
'
).
button
(
'
loading
'
);
}
// 发送验证码
$
.
ajax
({
url
:
$
(
'
.verify-submit
'
).
data
(
'
url
'
),
type
:
'
POST
'
,
data
:{
"
verify
"
:
verify
,
"
account_type
"
:
account_type
},
dataType
:
'
json
'
,
success
:
function
(
result
)
{
if
(
result
.
code
==
0
)
{
var
intervalid
=
setInterval
(
function
()
{
if
(
time_count
==
0
)
{
$this
.
button
(
'
reset
'
);
if
(
is_win
==
1
)
{
$
(
'
.verify-submit-win
'
).
button
(
'
reset
'
);
}
$this
.
text
(
$this
.
data
(
'
text
'
));
$verify
.
val
(
''
);
clearInterval
(
intervalid
);
}
else
{
var
send_msg
=
$this
.
data
(
'
send-text
'
).
replace
(
/{time}/
,
time_count
--
);
$this
.
text
(
send_msg
);
}
},
1000
);
$verify_win
.
modal
(
'
close
'
);
}
else
{
$this
.
button
(
'
reset
'
);
if
(
is_win
==
1
)
{
$
(
'
.verify-submit-win
'
).
button
(
'
reset
'
);
}
Prompt
(
result
.
msg
);
}
},
error
:
function
()
{
$this
.
button
(
'
reset
'
);
if
(
is_win
==
1
)
{
$
(
'
.verify-submit-win
'
).
button
(
'
reset
'
);
}
Prompt
(
'
网络错误
'
);
}
});
});
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录