From 7821caa9cce891f268f536a6af26d0d10cd62bb4 Mon Sep 17 00:00:00 2001 From: devil_gong Date: Wed, 8 May 2019 18:19:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=B1=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/index/controller/Safety.php | 3 +- .../plugins/view/wallet/cash/authinfo.html | 99 +++++ .../plugins/view/wallet/cash/createinfo.html | 80 ++++ .../plugins/view/wallet/cash/index.html | 38 +- .../plugins/view/wallet/public/nav.html | 2 +- .../plugins/view/wallet/recharge/index.html | 4 +- application/plugins/wallet/Cash.php | 160 +++++++- application/plugins/wallet/Common.php | 13 +- application/plugins/wallet/Recharge.php | 5 +- application/plugins/wallet/Walletadmin.php | 10 +- application/plugins/wallet/install.sql | 25 +- .../plugins/wallet/service/BaseService.php | 338 +++++++++++------ .../plugins/wallet/service/CashService.php | 347 ++++++++++++++++++ .../plugins/wallet/service/PayService.php | 11 +- .../wallet/service/RechargeService.php | 137 +++++++ .../plugins/wallet/service/WalletService.php | 159 ++------ config/shopxo.sql | 66 +++- public/static/common/css/common.css | 24 +- public/static/index/default/css/common.css | 6 - public/static/index/default/css/safety.css | 1 + .../static/plugins/css/wallet/index/cash.css | 47 +++ .../plugins/css/wallet/index/common.css | 2 - .../plugins/css/wallet/index/recharge.css | 0 public/static/plugins/js/wallet/index/cash.js | 108 ++++++ 24 files changed, 1375 insertions(+), 310 deletions(-) create mode 100644 application/plugins/view/wallet/cash/authinfo.html create mode 100644 application/plugins/view/wallet/cash/createinfo.html create mode 100644 application/plugins/wallet/service/CashService.php create mode 100644 application/plugins/wallet/service/RechargeService.php delete mode 100644 public/static/plugins/css/wallet/index/recharge.css create mode 100644 public/static/plugins/js/wallet/index/cash.js diff --git a/application/index/controller/Safety.php b/application/index/controller/Safety.php index f32a6317b..bc5a3259e 100755 --- a/application/index/controller/Safety.php +++ b/application/index/controller/Safety.php @@ -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); diff --git a/application/plugins/view/wallet/cash/authinfo.html b/application/plugins/view/wallet/cash/authinfo.html new file mode 100644 index 000000000..702d45dfc --- /dev/null +++ b/application/plugins/view/wallet/cash/authinfo.html @@ -0,0 +1,99 @@ +{{include file="public/header" /}} + + +{{include file="public/header_top_nav" /}} + + +{{include file="public/nav_search" /}} + + +{{include file="public/header_nav" /}} + + +{{include file="public/goods_category" /}} + + +
+ + + {{include file="public/user_menu" /}} + + + +
+
+ + {{include file="../../../plugins/view/wallet/public/nav" /}} + + + +
+

操作提示

+
    +
  • 1. 请选择 "绑定邮箱" 或 "绑定手机" 方式其一作为安全校验码的获取方式并正确输入。
  • +
  • 2. 如果您的邮箱已失效,可以 绑定手机 后通过接收手机短信完成验证。
  • +
  • 3. 如果您的手机已失效,可以 绑定邮箱 后通过接收邮件完成验证。
  • +
  • 4. 请正确输入下方图形验证码,如看不清可点击图片进行更换,输入完成后进行下一步操作。
  • +
  • 5. 收到安全验证码后,请在{{:Myc('common_verify_expire_time', 600, true)/60}}分钟内完成验证。
  • +
+
+ + + +
+
+ + +
+ +
+ +
+ + + + +
+
+ +
+ +
+
+ + + +
+
+
+ × +
+
+
+ + +
+ +
+
+
+ +
+
+ +
+ + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/wallet/cash/createinfo.html b/application/plugins/view/wallet/cash/createinfo.html new file mode 100644 index 000000000..4a35be8e5 --- /dev/null +++ b/application/plugins/view/wallet/cash/createinfo.html @@ -0,0 +1,80 @@ +{{include file="public/header" /}} + + +{{include file="public/header_top_nav" /}} + + +{{include file="public/nav_search" /}} + + +{{include file="public/header_nav" /}} + + +{{include file="public/goods_category" /}} + + +
+ + + {{include file="public/user_menu" /}} + + + +
+
+ + {{include file="../../../plugins/view/wallet/public/nav" /}} + + + +
+
+ +
+ + + + +
+
+ 当前可用金额 {{$user_wallet.normal_money}} 元 +
+
+ +
+ + +
+ 强烈建议优先填写国有4大银行(中国银行、中国建设银行、中国工商银行和中国农业银行) 请填写详细的开户银行分行名称,虚拟账户如支付宝、财付通、微信 直接填写 支付宝 即可。 +
+
+ +
+ + +
+ 银行账号或虚拟账号(支付宝、财付通等账号) +
+
+ +
+ + +
+ 收款账号的开户人姓名 +
+
+ +
+ +
+
+ +
+
+ +
+ + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/wallet/cash/index.html b/application/plugins/view/wallet/cash/index.html index f6e6a034f..8f5fc95ca 100755 --- a/application/plugins/view/wallet/cash/index.html +++ b/application/plugins/view/wallet/cash/index.html @@ -45,11 +45,11 @@ 状态: - + + {{if !empty($cash_status_list)}} + {{foreach $cash_status_list as $v}} + {{/foreach}} {{/if}} @@ -68,22 +68,32 @@ - + + + + + + + - - - + + {{if !empty($data_list)}} {{foreach $data_list as $v}} - - - - - + + + + + + + + + + {{/foreach}} {{/if}} diff --git a/application/plugins/view/wallet/public/nav.html b/application/plugins/view/wallet/public/nav.html index 360c6907d..56a39561f 100755 --- a/application/plugins/view/wallet/public/nav.html +++ b/application/plugins/view/wallet/public/nav.html @@ -15,7 +15,7 @@ {{/if}} {{if in_array($plugins_control, ['wallet', 'cash'])}} - 提现 + 提现 {{/if}} diff --git a/application/plugins/view/wallet/recharge/index.html b/application/plugins/view/wallet/recharge/index.html index 3d85cf9fa..6a2ada963 100755 --- a/application/plugins/view/wallet/recharge/index.html +++ b/application/plugins/view/wallet/recharge/index.html @@ -44,7 +44,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/application/plugins/wallet/Cash.php b/application/plugins/wallet/Cash.php index f14936df9..c9ba46741 100644 --- a/application/plugins/wallet/Cash.php +++ b/application/plugins/wallet/Cash.php @@ -11,8 +11,8 @@ namespace app\plugins\wallet; use app\plugins\wallet\Common; -use app\plugins\wallet\BusinessService; -use app\service\PluginsService; +use app\plugins\wallet\service\CashService; +use app\plugins\wallet\service\BaseService; /** * 钱包 - 余额提现 @@ -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 diff --git a/application/plugins/wallet/Common.php b/application/plugins/wallet/Common.php index 8ca36677b..26682ea59 100644 --- a/application/plugins/wallet/Common.php +++ b/application/plugins/wallet/Common.php @@ -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请求校验用户钱包状态 diff --git a/application/plugins/wallet/Recharge.php b/application/plugins/wallet/Recharge.php index ec99dfad5..793bdef59 100755 --- a/application/plugins/wallet/Recharge.php +++ b/application/plugins/wallet/Recharge.php @@ -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 BaseService::RechargeCreate($params); + return RechargeService::RechargeCreate($params); } /** @@ -196,7 +197,7 @@ class Recharge extends Common // 开始处理 $params['user'] = $this->user; - return BaseService::RechargeDelete($params); + return RechargeService::RechargeDelete($params); } } ?> \ No newline at end of file diff --git a/application/plugins/wallet/Walletadmin.php b/application/plugins/wallet/Walletadmin.php index d98d7361d..74fe7323c 100644 --- a/application/plugins/wallet/Walletadmin.php +++ b/application/plugins/wallet/Walletadmin.php @@ -12,7 +12,7 @@ namespace app\plugins\wallet; use think\Controller; use app\plugins\wallet\service\WalletService; -use app\service\PluginsService; +use app\plugins\wallet\service\BaseService; /** * 钱包插件 - 钱包管理 @@ -37,10 +37,10 @@ class Walletadmin extends Controller $number = MyC('admin_page_number', 10, true); // 条件 - $where = WalletService::WalletWhere($params); + $where = BaseService::WalletWhere($params); // 获取总数 - $total = WalletService::WalletTotal($where); + $total = BaseService::WalletTotal($where); // 分页 $page_params = array( @@ -61,7 +61,7 @@ class Walletadmin extends Controller 'n' => $number, 'where' => $where, ); - $data = WalletService::WalletList($data_params); + $data = BaseService::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 = WalletService::WalletList($data_params); + $ret = BaseService::WalletList($data_params); if(!empty($ret['data'][0])) { $data = $ret['data'][0]; diff --git a/application/plugins/wallet/install.sql b/application/plugins/wallet/install.sql index 62101bbda..bc9f42087 100644 --- a/application/plugins/wallet/install.sql +++ b/application/plugins/wallet/install.sql @@ -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 diff --git a/application/plugins/wallet/service/BaseService.php b/application/plugins/wallet/service/BaseService.php index f0ed2773d..0726ddafd 100755 --- a/application/plugins/wallet/service/BaseService.php +++ b/application/plugins/wallet/service/BaseService.php @@ -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']) ? PayService::$recharge_status_list[$v['status']]['name'] : ''; + $v['status_text'] = isset($v['status']) ? RechargeService::$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", '
', $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 diff --git a/application/plugins/wallet/service/CashService.php b/application/plugins/wallet/service/CashService.php new file mode 100644 index 000000000..cf6cce57b --- /dev/null +++ b/application/plugins/wallet/service/CashService.php @@ -0,0 +1,347 @@ + ['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 diff --git a/application/plugins/wallet/service/PayService.php b/application/plugins/wallet/service/PayService.php index f3f05546b..bf6be8234 100644 --- a/application/plugins/wallet/service/PayService.php +++ b/application/plugins/wallet/service/PayService.php @@ -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']); } } diff --git a/application/plugins/wallet/service/RechargeService.php b/application/plugins/wallet/service/RechargeService.php new file mode 100644 index 000000000..c7fed7503 --- /dev/null +++ b/application/plugins/wallet/service/RechargeService.php @@ -0,0 +1,137 @@ + ['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 diff --git a/application/plugins/wallet/service/WalletService.php b/application/plugins/wallet/service/WalletService.php index a4262afeb..c48258c25 100644 --- a/application/plugins/wallet/service/WalletService.php +++ b/application/plugins/wallet/service/WalletService.php @@ -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); } /** diff --git a/config/shopxo.sql b/config/shopxo.sql index c0427dac0..9c350f629 100644 --- a/config/shopxo.sql +++ b/config/shopxo.sql @@ -11,7 +11,7 @@ Target Server Version : 50722 File Encoding : utf-8 - Date: 05/07/2019 18:41:02 PM + Date: 05/08/2019 18:18:58 PM */ SET NAMES utf8mb4; @@ -262,7 +262,7 @@ CREATE TABLE `s_config` ( -- Records of `s_config` -- ---------------------------- BEGIN; -INSERT INTO `s_config` VALUES ('15', '10', '分页数量', '分页显示数量', '分页不能超过3位数', 'admin', 'admin_page_number', '1555296203'), ('59', '1', '扣减库存规则', '需扣减库存开启方可有效,默认订单支付成功', '', 'common', 'common_deduction_inventory_rules', '1555296203'), ('60', '1', '是否扣减库存', '建议不要随意修改,以免造成库存数据错乱,关闭不影响库存回滚', '', 'common', 'common_is_deduction_inventory', '1555296203'), ('11', '0', 'Excel编码', 'excel模块编码选择', '请选择编码', 'admin', 'admin_excel_charset', '1555296203'), ('16', 'ShopXO企业级B2C电商系统提供商 - 演示站点', '站点标题', '浏览器标题,一般不超过80个字符', '站点标题不能为空', 'home', 'home_seo_site_title', '1555904981'), ('17', '商城系统,开源电商系统,免费电商系统,PHP电商系统,商城系统,B2C电商系统,B2B2C电商系统', '站点关键字', '一般不超过100个字符,多个关键字以半圆角逗号 [ , ] 隔开', '站点关键字不能为空', 'home', 'home_seo_site_keywords', '1555904981'), ('18', 'ShopXO是国内领先的商城系统提供商,为企业提供php商城系统、微信商城、小程序。', '站点描述', '站点描述,一般不超过200个字符', '站点描述不能为空', 'home', 'home_seo_site_description', '1555904981'), ('19', '黔ICP备15003530号', 'ICP证书号', 'ICP域名备案号', '', 'home', 'home_site_icp', '1554804368'), ('20', '', '底部统计代码', '支持html,可用于添加流量统计代码', '', 'home', 'home_statistics_code', '0'), ('21', '1', '站点状态', '可暂时将站点关闭,其他人无法访问,但不影响管理员访问后台', '请选择站点状态', 'home', 'home_site_state', '1554804368'), ('22', '升级中...', '关闭原因', '支持html,当网站处于关闭状态时,关闭原因将显示在前台', '', 'home', 'home_site_close_reason', '1554804368'), ('23', 'Australia/Eucla', '默认时区', '默认 亚洲/上海 [标准时+8]', '请选择默认时区', 'common', 'common_timezone', '1554804368'), ('24', '', '底部代码', '支持html,可用于添加流量统计代码', '', 'home', 'home_footer_info', '1554804368'), ('28', 'ShopXO', '站点名称', '', '站点名称不能为空', 'home', 'home_site_name', '1554804368'), ('29', '0', '链接模式', '详情ThinkPHP官网5.1版本文档 [http://www.thinkphp.cn/]', '请选择url模式', 'home', 'home_seo_url_model', '1555904981'), ('25', '2048000', '图片最大限制', '单位B [上传图片还受到服务器空间PHP配置最大上传 20M 限制]', '请填写图片上传最大限制', 'home', 'home_max_limit_image', '1554804368'), ('26', '51200000', '文件最大限制', '单位B [上传文件还受到服务器空间PHP配置最大上传 20M 限制]', '请填写文件上传最大限制', 'home', 'home_max_limit_file', '1554804368'), ('27', '102400000', '视频最大限制', '单位B [上传视频还受到服务器空间PHP配置最大上传 20M 限制]', '请填写视频上传最大限制', 'home', 'home_max_limit_video', '1554804368'), ('30', 'html', '伪静态后缀', '链接后面的后缀别名,默认 [ html ]', '小写字母,不能超过8个字符', 'home', 'home_seo_url_html_suffix', '1555904981'), ('31', '0', '用户注册开启审核', '开启后用户注册需要审核通过方可登录', '请选择用户注册开启审核', 'common', 'common_register_is_enable_audit', '1555296203'), ('32', '/static/upload/images/common/2019/01/14/1547448748316693.png', '手机端logo', '支持 [jpg, png, gif]', '请上传手机端网站logo', 'home', 'home_site_logo_wap', '1554804344'), ('33', '/static/upload/images/common/2019/01/14/1547448705165706.png', '电脑端logo', '支持 [jpg, png, gif]', '请上传电脑端网站logo', 'home', 'home_site_logo', '1554804344'), ('34', '1200', '页面最大宽度', '页面最大宽度,单位px,0则100%', '请上传桌面图标', 'home', 'home_content_max_width', '1554804368'), ('35', '/static/upload/images/common/2019/01/14/1547448728921121.jpg', '桌面图标', '建议使用png格式', '图片比例值格式有误 0~100 之间,小数点后面最大两位', 'common', 'home_site_desktop_icon', '1554804368'), ('36', 'sms,email', '是否开启注册', '关闭注册后,前台站点将无法注册,可选择 [ 短信, 邮箱 ]', '请选择是否开启注册状态', 'home', 'home_user_reg_state', '1554804368'), ('37', '1', '是否开启登录', '关闭后,前端站点将无法登录', '请选择是否开启登录状态', 'home', 'home_user_login_state', '1554804368'), ('38', '0', '获取验证码-开启图片验证码', '防止短信轰炸', '请选择是否开启强制图片验证码', 'home', 'home_img_verify_state', '1554804368'), ('39', '60', '获取验证码时间间隔', '防止频繁获取验证码,一般在 30~120 秒之间,单位 [秒]', '请填写获取验证码时间间隔', 'home', 'common_verify_time_interval', '1554804368'), ('40', '', '用户注册-短信模板ID', '验证码code', '请填写用户注册短信模板内容', 'home', 'home_sms_user_reg', '1554347567'), ('41', '', '短信签名', '发送短信包含的签名', '短信签名 3~8 个的中英文字符', 'common', 'common_sms_sign', '1546059306'), ('42', '', '短信KeyID', 'Access Key ID', '请填写Access Key ID', 'common', 'common_sms_apikey', '1546059306'), ('43', '', '密码找回-短信模板ID', '验证码code', '请填写密码找回短信模板内容', 'home', 'home_sms_user_forget_pwd', '1554347567'), ('44', '600', '验证码有效时间', '验证码过期时间,一般10分钟左右,单位 [秒]', '请填写验证码有效时间', 'home', 'common_verify_expire_time', '1554804368'), ('45', '', 'SMTP服务器', '设置SMTP服务器的地址,如 smtp.163.com', '请填写SMTP服务器', 'common', 'common_email_smtp_host', '1554347557'), ('46', '', 'SMTP端口', '设置SMTP服务器的端口,默认为 25', '请填写SMTP端口号', 'common', 'common_email_smtp_port', '1554347557'), ('47', '', '发信人邮件地址', '发信人邮件地址,使用SMTP协议发送的邮件地址,如 shopxo@163.com', '请填写发信人邮件地址', 'common', 'common_email_smtp_account', '1554347557'), ('48', '', 'SMTP身份验证用户名', '如 ShopXO', '请填写SMTP身份验证用户名', 'common', 'common_email_smtp_name', '1554347557'), ('49', '', 'SMTP身份验证密码', 'shopxo@163.com邮件的密码', '请填写SMTP身份验证密码', 'common', 'common_email_smtp_pwd', '1554347557'), ('50', '', '发件人显示名称', '如 ShopXO', '', 'common', 'common_email_smtp_send_name', '1554347557'), ('51', '3', '分享赠送积分次数限制', '分享用户注册赠送积分次数限制 [ 0则不赠送,若要不限请加大数值 ]', '', 'common', 'common_share_giving_integral_frequency', '1542011644'), ('58', '', '短信KeySecret', 'Access Key Secret', '请填写Access Key Secret', 'common', 'common_sms_apisecret', '1546059306'), ('53', '021-88888888', '商店电话', '空则不显示', '', 'common', 'common_customer_store_tel', '1555407364'), ('56', '10', '分享赠送积分', '分享用户注册后赠送积分 [ 0则不赠送 ]', '', 'common', 'common_share_giving_integral', '1542011644'), ('57', 'default', '默认模板', '前台默认模板', '请填写默认模板', 'common', 'common_default_theme', '1550113393'), ('62', 'XSdiGjfg3wOHiKjpYEMG6CYA', '百度地图api密钥', '百度地图api密钥', '请填写百度地图api密钥', 'common', 'common_baidu_map_ak', '1555296203'), ('63', '

用户注册,你的验证码是  #code#

', '用户注册-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_reg', '1533637393'), ('64', '

密码找回,你的验证码是  #code#

', '密码找回-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_forget_pwd', '1533637393'), ('65', '

邮箱绑定,你的验证码是  #code#

', '邮箱绑定-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_email_binding', '1533637393'), ('66', '20181012123', 'css/js版本标记', '用于css/js浏览器缓存版本识别', '', 'home', 'home_static_cache_version', '1554804368'), ('67', '', '手机号码绑定-短信模板ID', '验证码code', '请填写手机号码绑定短信模板内容', 'home', 'home_sms_user_mobile_binding', '1554347567'), ('68', '连衣裙,帐篷,iphone,小米,包包', '搜索关键字', '搜索框下热门关键字(输入回车)', '请填写关键字', 'home', 'home_search_keywords', '1555296203'), ('69', '2', '搜索关键字类型', '自定义需要配置以下关键字', '请选择关键字类型', 'home', 'home_search_keywords_type', '1555296203'), ('70', '0', '订单预约模式', '开启后用户提交订单需要管理员确认', '请选择是否开启预约模式', 'common', 'common_order_is_booking', '1555296203'), ('71', 'ShopXO', '名称', '', '请填写名称', 'common', 'common_app_mini_alipay_title', '1553147473'), ('72', '国内领先企业级B2C开源电商系统!', '描述', '', '请填写描述', 'common', 'common_app_mini_alipay_describe', '1553147473'), ('73', '021-88888888', '客服电话', '', '请填写客服电话', 'common', 'common_app_customer_service_tel', '1550377653'), ('74', '2019032163603894', 'AppID', '小程序ID', '请填写AppID', 'common', 'common_app_mini_alipay_appid', '1553147473'), ('75', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxAXbZitfaALDaevrWVITveMu2fh3L8t3p/5WGPNEVOqCnL3v8EeYZWOLSuBHhpJaLb7Q3HrPWynzpcJ2C17+DxCVS3Js8J/iAgiJGJB4f8wZuPBwqKncGXdrAtN6EYp3H9K1IQeCmGN9di4Ht7igDDREnVWrUIc1Q6O64KDg8YLhWaTf2FMFvdPKiH9tijIZuvtYxxOUkHmgG6N7+IIvKPLdYde0dt/eTy6L1wbXSWoStfmFYd38vywt51N6AlChh/XAQmUGYTq1sW+PFXg2MrDyyWIEZxGb1dINhlMgXMqxTropo31kXa09vUffNvPWVmR38iT9lY+n6ZWSVzH3QIDAQAB', '应用公钥', '', '请填写应用公钥', 'common', 'common_app_mini_alipay_rsa_public', '1553147473'), ('76', 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7EBdtmK19oAsNp6+tZUhO94y7Z+Hcvy3en/lYY80RU6oKcve/wR5hlY4tK4EeGklotvtDces9bKfOlwnYLXv4PEJVLcmzwn+ICCIkYkHh/zBm48HCoqdwZd2sC03oRincf0rUhB4KYY312Lge3uKAMNESdVatQhzVDo7rgoODxguFZpN/YUwW908qIf22KMhm6+1jHE5SQeaAbo3v4gi8o8t1h17R2395PLovXBtdJahK1+YVh3fy/LC3nU3oCUKGH9cBCZQZhOrWxb48VeDYysPLJYgRnEZvV0g2GUyBcyrFOuimjfWRdrT29R98289ZWZHfyJP2Vj6fplZJXMfdAgMBAAECggEAXXHCYkscj169ZsrXZUTtBBWBRbS1DTKrVUSQqGjibb9fd+zKeg2cgZ7V8RaEX2c+OIL/rUdg/cQjZ33nuwetn+lqMWa4FYYZcvitJYO36Y8yvJMVnYbnIayhOWpENr2l97HWzaZZ41GsOp1SDInGl8bLCe93pwEZqgyltFv0GoSfNu3trFFxPZgZJalV0t5M7+RchutkHskwrwI9BdnCJs38lh08jHHppQdkgcpyCiCdu/b4f+n9z97Op5Va8WY1M+wwqRk76Ias8mqwJXT/+t/sXhqkMv1ylAb89+b3rgiOU7KlZMpIAercW/ZRojnDjpY9ViaCxwWPwb/VkPrDgQKBgQDkDuie0DAIDP5C74dPj/Z0mapsU9bKlcgC+nowEUaEO7A9cwMVFal0x9p7BKIJsV2b6d1qJGP7rM9YtRMldJQmuxPcHOKPcZR8pGLqFYT2QGKGurohb/o+btGda/SGwJfi6jwQUF0AE+1k+Dj9P3hDxHgkj6ZMkHEBtqUj520VTQKBgQDR+1rPPex8zTQgl9uSY0hlXPyYEhpXicNhzyet1Su+TV8wdGNUr2YeuDHEu6oiRocBaT8DEwpy9EToe56EK3Ht2AQ76NBSUp9EOl1twocebM42etJSJZGpB1AgP+R/hmUbcBPXEwXdy5XeYnYmpVUcoizzKrnRDxg3TRF3kIX00QKBgGc49EMFmefa8a6cOdNiJrvp3YBAhkSVfL0UX/+nohIx7fgyOV/uuQ9ZceMiWrEmbWcneAcVx4dfVU4iTzMxy+in3jpPfKBOWVX9FaQ77z2CMNYoaBzAUTS29ftZpIjlXRngySTdKurhGh8MVscRVj7eCz8JIc0fx3ZuE9rnYbE1AoGAJoqJL3LBPmL3x2e4IJVii2BW6J6iASFDIGfCc7Cl18chyqYCOV/8UXUjhWWgo6voScUEkM7k4xacs0NFZCMJRUuZ81kXK5UIsKA519SVsmrsKqm+gt9sbebuuQyhJxsG4dNfgOF3+S7N8kSGRS+hgKDvuS5Fbu7jVfsqUpTPUZECgYAcbq3mqWwExY2Kn0I660OqOFk620pGsSY7gECUQintCZioYemzC1TN9pM6fKnOIYriV4Ou7iswhEfVX+5bwMjH2ujmu8KDdpkpdhRoFCw3GUn/PDelQrptaKkKXnOIJe/R8m+TUxYCtECTlKlYS4hTst7YhTDz5sQHcXRtveATZQ==', '应用私钥', '', '请填写应用私钥', 'common', 'common_app_mini_alipay_rsa_private', '1553147473'), ('78', '1', '是否启用搜索', '', '', 'common', 'common_app_is_enable_search', '1550377653'), ('77', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EjwWvSpPIoZTuwFEBg9d1vEGDp/J9QYg1npx9kiAyK5Wa7DmLfpWd+ItQ9UmR0I6MzYPzbqBu1pslh6l9GrZYFgsljbjI1PHwToieolV0PScQK1omciuX0QQ/glNbHAFQG87fe0RFtaJKL9ILgjH+p4k+ElS1z8lTyC3CAqzU89lqimV6nW/8v4tPFjiBpUiJnSevA7a6W8FxwbcfXYRIZy7aB3U5hYnOcOYaTTtWmBHRmamyItxnRKC3Np/1y9O6HbS2XZRRSClgqmPN+fBwHc2DppRezSW5hUUgQoZAXMzAK0moxcKlo1aO891hz6rGATRLHloIdj/GRX2t2okQIDAQAB', '支付宝公钥', '', '请填写支付宝公钥', 'common', 'common_app_mini_alipay_out_rsa_public', '1553147473'), ('79', '1', '是否启用留言', '', '', 'common', 'common_app_is_enable_answer', '1550377653'), ('80', '3', '商品可添加规格最大数量', '建议不超过3个规格', '请填写谷歌最大数', 'common', 'common_spec_add_max_number', '1555296203'), ('81', '-', '路由分隔符', '建议填写 [ - 或 / ] 默认 [ - ] ,仅PATHINFO模式+短地址模式下有效', '请填写路由分隔符', 'common', 'common_route_separator', '1555904981'), ('82', '', 'AppID', '小程序ID', '请填写appid', 'common', 'common_app_mini_weixin_appid', '1546962555'), ('83', '', 'AppSecret ', '小程序密钥', '请填写appsecret', 'common', 'common_app_mini_weixin_appsecret', '1546962555'), ('84', 'ShopXO', '名称', '', '请填写名称', 'common', 'common_app_mini_weixin_title', '1546962555'), ('85', '国内领先企业级B2C开源电商系统!', '描述', '', '请填写描述', 'common', 'common_app_mini_weixin_describe', '1546962555'), ('61', '用户中心公告文字,后台配置修改。', '用户中心公告', '空则不显示公告', '', 'common', 'common_user_center_notice', '1550377653'), ('8', '欢迎来到ShopXO企业级B2C开源电商系统、演示站点请勿发起支付、以免给您带来不必要的财产损失。', '商城公告', '空则不显示公告', '', 'common', 'common_shop_notice', '1550377653'), ('86', 'test@qq.com', '商店邮箱', '空则不显示', '客服邮箱格式有误', 'common', 'common_customer_store_email', '1555407364'), ('87', '/static/upload/images/common/2019/04/09/1554805439263794.jpeg', '商店二维码', '空则不展示', '', 'common', 'common_customer_store_qrcode', '1555407364'), ('88', '上海市 浦东新区 盛夏路665号 上地大厦18层', '商店地址', '空则不展示', '', 'common', 'common_customer_store_address', '1555407364'); +INSERT INTO `s_config` VALUES ('15', '10', '分页数量', '分页显示数量', '分页不能超过3位数', 'admin', 'admin_page_number', '1555296203'), ('59', '1', '扣减库存规则', '需扣减库存开启方可有效,默认订单支付成功', '', 'common', 'common_deduction_inventory_rules', '1555296203'), ('60', '1', '是否扣减库存', '建议不要随意修改,以免造成库存数据错乱,关闭不影响库存回滚', '', 'common', 'common_is_deduction_inventory', '1555296203'), ('11', '0', 'Excel编码', 'excel模块编码选择', '请选择编码', 'admin', 'admin_excel_charset', '1555296203'), ('16', 'ShopXO企业级B2C电商系统提供商 - 演示站点', '站点标题', '浏览器标题,一般不超过80个字符', '站点标题不能为空', 'home', 'home_seo_site_title', '1555904981'), ('17', '商城系统,开源电商系统,免费电商系统,PHP电商系统,商城系统,B2C电商系统,B2B2C电商系统', '站点关键字', '一般不超过100个字符,多个关键字以半圆角逗号 [ , ] 隔开', '站点关键字不能为空', 'home', 'home_seo_site_keywords', '1555904981'), ('18', 'ShopXO是国内领先的商城系统提供商,为企业提供php商城系统、微信商城、小程序。', '站点描述', '站点描述,一般不超过200个字符', '站点描述不能为空', 'home', 'home_seo_site_description', '1555904981'), ('19', '黔ICP备15003530号', 'ICP证书号', 'ICP域名备案号', '', 'home', 'home_site_icp', '1557297837'), ('20', '', '底部统计代码', '支持html,可用于添加流量统计代码', '', 'home', 'home_statistics_code', '0'), ('21', '1', '站点状态', '可暂时将站点关闭,其他人无法访问,但不影响管理员访问后台', '请选择站点状态', 'home', 'home_site_state', '1557297837'), ('22', '升级中...', '关闭原因', '支持html,当网站处于关闭状态时,关闭原因将显示在前台', '', 'home', 'home_site_close_reason', '1557297837'), ('23', 'Australia/Eucla', '默认时区', '默认 亚洲/上海 [标准时+8]', '请选择默认时区', 'common', 'common_timezone', '1557297837'), ('24', '', '底部代码', '支持html,可用于添加流量统计代码', '', 'home', 'home_footer_info', '1557297837'), ('28', 'ShopXO', '站点名称', '', '站点名称不能为空', 'home', 'home_site_name', '1557297837'), ('29', '0', '链接模式', '详情ThinkPHP官网5.1版本文档 [http://www.thinkphp.cn/]', '请选择url模式', 'home', 'home_seo_url_model', '1555904981'), ('25', '2048000', '图片最大限制', '单位B [上传图片还受到服务器空间PHP配置最大上传 20M 限制]', '请填写图片上传最大限制', 'home', 'home_max_limit_image', '1557297837'), ('26', '51200000', '文件最大限制', '单位B [上传文件还受到服务器空间PHP配置最大上传 20M 限制]', '请填写文件上传最大限制', 'home', 'home_max_limit_file', '1557297837'), ('27', '102400000', '视频最大限制', '单位B [上传视频还受到服务器空间PHP配置最大上传 20M 限制]', '请填写视频上传最大限制', 'home', 'home_max_limit_video', '1557297837'), ('30', 'html', '伪静态后缀', '链接后面的后缀别名,默认 [ html ]', '小写字母,不能超过8个字符', 'home', 'home_seo_url_html_suffix', '1555904981'), ('31', '0', '用户注册开启审核', '开启后用户注册需要审核通过方可登录', '请选择用户注册开启审核', 'common', 'common_register_is_enable_audit', '1555296203'), ('32', '/static/upload/images/common/2019/01/14/1547448748316693.png', '手机端logo', '支持 [jpg, png, gif]', '请上传手机端网站logo', 'home', 'home_site_logo_wap', '1557297837'), ('33', '/static/upload/images/common/2019/01/14/1547448705165706.png', '电脑端logo', '支持 [jpg, png, gif]', '请上传电脑端网站logo', 'home', 'home_site_logo', '1557297837'), ('34', '1200', '页面最大宽度', '页面最大宽度,单位px,0则100%', '请上传桌面图标', 'home', 'home_content_max_width', '1557297837'), ('35', '/static/upload/images/common/2019/01/14/1547448728921121.jpg', '桌面图标', '建议使用png格式', '图片比例值格式有误 0~100 之间,小数点后面最大两位', 'common', 'home_site_desktop_icon', '1557297837'), ('36', 'sms,email', '是否开启注册', '关闭注册后,前台站点将无法注册,可选择 [ 短信, 邮箱 ]', '请选择是否开启注册状态', 'home', 'home_user_reg_state', '1557297837'), ('37', '1', '是否开启登录', '关闭后,前端站点将无法登录', '请选择是否开启登录状态', 'home', 'home_user_login_state', '1557297837'), ('38', '1', '获取验证码-开启图片验证码', '防止短信轰炸', '请选择是否开启强制图片验证码', 'home', 'home_img_verify_state', '1557297837'), ('39', '60', '获取验证码时间间隔', '防止频繁获取验证码,一般在 30~120 秒之间,单位 [秒]', '请填写获取验证码时间间隔', 'home', 'common_verify_time_interval', '1557297837'), ('40', '', '用户注册-短信模板ID', '验证码code', '请填写用户注册短信模板内容', 'home', 'home_sms_user_reg', '1554347567'), ('41', '', '短信签名', '发送短信包含的签名', '短信签名 3~8 个的中英文字符', 'common', 'common_sms_sign', '1546059306'), ('42', '', '短信KeyID', 'Access Key ID', '请填写Access Key ID', 'common', 'common_sms_apikey', '1546059306'), ('43', '', '密码找回-短信模板ID', '验证码code', '请填写密码找回短信模板内容', 'home', 'home_sms_user_forget_pwd', '1554347567'), ('44', '600', '验证码有效时间', '验证码过期时间,一般10分钟左右,单位 [秒]', '请填写验证码有效时间', 'home', 'common_verify_expire_time', '1557297837'), ('45', 'smtp.163.com', 'SMTP服务器', '设置SMTP服务器的地址,如 smtp.163.com', '请填写SMTP服务器', 'common', 'common_email_smtp_host', '1557300274'), ('46', '25', 'SMTP端口', '设置SMTP服务器的端口,默认为 25', '请填写SMTP端口号', 'common', 'common_email_smtp_port', '1557300274'), ('47', 'weiletao88@163.com', '发信人邮件地址', '发信人邮件地址,使用SMTP协议发送的邮件地址,如 shopxo@163.com', '请填写发信人邮件地址', 'common', 'common_email_smtp_account', '1557300274'), ('48', 'weiletao88@163.com', 'SMTP身份验证用户名', '如 ShopXO', '请填写SMTP身份验证用户名', 'common', 'common_email_smtp_name', '1557300274'), ('49', 'weiletao?', 'SMTP身份验证密码', 'shopxo@163.com邮件的密码', '请填写SMTP身份验证密码', 'common', 'common_email_smtp_pwd', '1557300274'), ('50', 'ShopXO', '发件人显示名称', '如 ShopXO', '', 'common', 'common_email_smtp_send_name', '1557300274'), ('51', '3', '分享赠送积分次数限制', '分享用户注册赠送积分次数限制 [ 0则不赠送,若要不限请加大数值 ]', '', 'common', 'common_share_giving_integral_frequency', '1542011644'), ('58', '', '短信KeySecret', 'Access Key Secret', '请填写Access Key Secret', 'common', 'common_sms_apisecret', '1546059306'), ('53', '021-88888888', '商店电话', '空则不显示', '', 'common', 'common_customer_store_tel', '1555407364'), ('56', '10', '分享赠送积分', '分享用户注册后赠送积分 [ 0则不赠送 ]', '', 'common', 'common_share_giving_integral', '1542011644'), ('57', 'default', '默认模板', '前台默认模板', '请填写默认模板', 'common', 'common_default_theme', '1550113393'), ('62', 'XSdiGjfg3wOHiKjpYEMG6CYA', '百度地图api密钥', '百度地图api密钥', '请填写百度地图api密钥', 'common', 'common_baidu_map_ak', '1555296203'), ('63', '

用户注册,你的验证码是  #code#

', '用户注册-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_reg', '1533637393'), ('64', '

密码找回,你的验证码是  #code#

', '密码找回-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_forget_pwd', '1533637393'), ('65', '

邮箱绑定,你的验证码是  #code#

', '邮箱绑定-邮件模板', '验证码变量标识符 [ #code# ]', '', 'home', 'home_email_user_email_binding', '1533637393'), ('66', '20181012123', 'css/js版本标记', '用于css/js浏览器缓存版本识别', '', 'home', 'home_static_cache_version', '1557297837'), ('67', '', '手机号码绑定-短信模板ID', '验证码code', '请填写手机号码绑定短信模板内容', 'home', 'home_sms_user_mobile_binding', '1554347567'), ('68', '连衣裙,帐篷,iphone,小米,包包', '搜索关键字', '搜索框下热门关键字(输入回车)', '请填写关键字', 'home', 'home_search_keywords', '1555296203'), ('69', '2', '搜索关键字类型', '自定义需要配置以下关键字', '请选择关键字类型', 'home', 'home_search_keywords_type', '1555296203'), ('70', '0', '订单预约模式', '开启后用户提交订单需要管理员确认', '请选择是否开启预约模式', 'common', 'common_order_is_booking', '1555296203'), ('71', 'ShopXO', '名称', '', '请填写名称', 'common', 'common_app_mini_alipay_title', '1553147473'), ('72', '国内领先企业级B2C开源电商系统!', '描述', '', '请填写描述', 'common', 'common_app_mini_alipay_describe', '1553147473'), ('73', '021-88888888', '客服电话', '', '请填写客服电话', 'common', 'common_app_customer_service_tel', '1550377653'), ('74', '2019032163603894', 'AppID', '小程序ID', '请填写AppID', 'common', 'common_app_mini_alipay_appid', '1553147473'), ('75', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxAXbZitfaALDaevrWVITveMu2fh3L8t3p/5WGPNEVOqCnL3v8EeYZWOLSuBHhpJaLb7Q3HrPWynzpcJ2C17+DxCVS3Js8J/iAgiJGJB4f8wZuPBwqKncGXdrAtN6EYp3H9K1IQeCmGN9di4Ht7igDDREnVWrUIc1Q6O64KDg8YLhWaTf2FMFvdPKiH9tijIZuvtYxxOUkHmgG6N7+IIvKPLdYde0dt/eTy6L1wbXSWoStfmFYd38vywt51N6AlChh/XAQmUGYTq1sW+PFXg2MrDyyWIEZxGb1dINhlMgXMqxTropo31kXa09vUffNvPWVmR38iT9lY+n6ZWSVzH3QIDAQAB', '应用公钥', '', '请填写应用公钥', 'common', 'common_app_mini_alipay_rsa_public', '1553147473'), ('76', 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7EBdtmK19oAsNp6+tZUhO94y7Z+Hcvy3en/lYY80RU6oKcve/wR5hlY4tK4EeGklotvtDces9bKfOlwnYLXv4PEJVLcmzwn+ICCIkYkHh/zBm48HCoqdwZd2sC03oRincf0rUhB4KYY312Lge3uKAMNESdVatQhzVDo7rgoODxguFZpN/YUwW908qIf22KMhm6+1jHE5SQeaAbo3v4gi8o8t1h17R2395PLovXBtdJahK1+YVh3fy/LC3nU3oCUKGH9cBCZQZhOrWxb48VeDYysPLJYgRnEZvV0g2GUyBcyrFOuimjfWRdrT29R98289ZWZHfyJP2Vj6fplZJXMfdAgMBAAECggEAXXHCYkscj169ZsrXZUTtBBWBRbS1DTKrVUSQqGjibb9fd+zKeg2cgZ7V8RaEX2c+OIL/rUdg/cQjZ33nuwetn+lqMWa4FYYZcvitJYO36Y8yvJMVnYbnIayhOWpENr2l97HWzaZZ41GsOp1SDInGl8bLCe93pwEZqgyltFv0GoSfNu3trFFxPZgZJalV0t5M7+RchutkHskwrwI9BdnCJs38lh08jHHppQdkgcpyCiCdu/b4f+n9z97Op5Va8WY1M+wwqRk76Ias8mqwJXT/+t/sXhqkMv1ylAb89+b3rgiOU7KlZMpIAercW/ZRojnDjpY9ViaCxwWPwb/VkPrDgQKBgQDkDuie0DAIDP5C74dPj/Z0mapsU9bKlcgC+nowEUaEO7A9cwMVFal0x9p7BKIJsV2b6d1qJGP7rM9YtRMldJQmuxPcHOKPcZR8pGLqFYT2QGKGurohb/o+btGda/SGwJfi6jwQUF0AE+1k+Dj9P3hDxHgkj6ZMkHEBtqUj520VTQKBgQDR+1rPPex8zTQgl9uSY0hlXPyYEhpXicNhzyet1Su+TV8wdGNUr2YeuDHEu6oiRocBaT8DEwpy9EToe56EK3Ht2AQ76NBSUp9EOl1twocebM42etJSJZGpB1AgP+R/hmUbcBPXEwXdy5XeYnYmpVUcoizzKrnRDxg3TRF3kIX00QKBgGc49EMFmefa8a6cOdNiJrvp3YBAhkSVfL0UX/+nohIx7fgyOV/uuQ9ZceMiWrEmbWcneAcVx4dfVU4iTzMxy+in3jpPfKBOWVX9FaQ77z2CMNYoaBzAUTS29ftZpIjlXRngySTdKurhGh8MVscRVj7eCz8JIc0fx3ZuE9rnYbE1AoGAJoqJL3LBPmL3x2e4IJVii2BW6J6iASFDIGfCc7Cl18chyqYCOV/8UXUjhWWgo6voScUEkM7k4xacs0NFZCMJRUuZ81kXK5UIsKA519SVsmrsKqm+gt9sbebuuQyhJxsG4dNfgOF3+S7N8kSGRS+hgKDvuS5Fbu7jVfsqUpTPUZECgYAcbq3mqWwExY2Kn0I660OqOFk620pGsSY7gECUQintCZioYemzC1TN9pM6fKnOIYriV4Ou7iswhEfVX+5bwMjH2ujmu8KDdpkpdhRoFCw3GUn/PDelQrptaKkKXnOIJe/R8m+TUxYCtECTlKlYS4hTst7YhTDz5sQHcXRtveATZQ==', '应用私钥', '', '请填写应用私钥', 'common', 'common_app_mini_alipay_rsa_private', '1553147473'), ('78', '1', '是否启用搜索', '', '', 'common', 'common_app_is_enable_search', '1550377653'), ('77', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EjwWvSpPIoZTuwFEBg9d1vEGDp/J9QYg1npx9kiAyK5Wa7DmLfpWd+ItQ9UmR0I6MzYPzbqBu1pslh6l9GrZYFgsljbjI1PHwToieolV0PScQK1omciuX0QQ/glNbHAFQG87fe0RFtaJKL9ILgjH+p4k+ElS1z8lTyC3CAqzU89lqimV6nW/8v4tPFjiBpUiJnSevA7a6W8FxwbcfXYRIZy7aB3U5hYnOcOYaTTtWmBHRmamyItxnRKC3Np/1y9O6HbS2XZRRSClgqmPN+fBwHc2DppRezSW5hUUgQoZAXMzAK0moxcKlo1aO891hz6rGATRLHloIdj/GRX2t2okQIDAQAB', '支付宝公钥', '', '请填写支付宝公钥', 'common', 'common_app_mini_alipay_out_rsa_public', '1553147473'), ('79', '1', '是否启用留言', '', '', 'common', 'common_app_is_enable_answer', '1550377653'), ('80', '3', '商品可添加规格最大数量', '建议不超过3个规格', '请填写谷歌最大数', 'common', 'common_spec_add_max_number', '1555296203'), ('81', '-', '路由分隔符', '建议填写 [ - 或 / ] 默认 [ - ] ,仅PATHINFO模式+短地址模式下有效', '请填写路由分隔符', 'common', 'common_route_separator', '1555904981'), ('82', '', 'AppID', '小程序ID', '请填写appid', 'common', 'common_app_mini_weixin_appid', '1546962555'), ('83', '', 'AppSecret ', '小程序密钥', '请填写appsecret', 'common', 'common_app_mini_weixin_appsecret', '1546962555'), ('84', 'ShopXO', '名称', '', '请填写名称', 'common', 'common_app_mini_weixin_title', '1546962555'), ('85', '国内领先企业级B2C开源电商系统!', '描述', '', '请填写描述', 'common', 'common_app_mini_weixin_describe', '1546962555'), ('61', '用户中心公告文字,后台配置修改。', '用户中心公告', '空则不显示公告', '', 'common', 'common_user_center_notice', '1550377653'), ('8', '欢迎来到ShopXO企业级B2C开源电商系统、演示站点请勿发起支付、以免给您带来不必要的财产损失。', '商城公告', '空则不显示公告', '', 'common', 'common_shop_notice', '1550377653'), ('86', 'test@qq.com', '商店邮箱', '空则不显示', '客服邮箱格式有误', 'common', 'common_customer_store_email', '1555407364'), ('87', '/static/upload/images/common/2019/04/09/1554805439263794.jpeg', '商店二维码', '空则不展示', '', 'common', 'common_customer_store_qrcode', '1555407364'), ('88', '上海市 浦东新区 盛夏路665号 上地大厦18层', '商店地址', '空则不展示', '', 'common', 'common_customer_store_address', '1555407364'); COMMIT; -- ---------------------------- @@ -622,13 +622,13 @@ CREATE TABLE `s_message` ( `add_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间', PRIMARY KEY (`id`), KEY `user_id` (`user_id`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='消息'; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='消息'; -- ---------------------------- -- Records of `s_message` -- ---------------------------- BEGIN; -INSERT INTO `s_message` VALUES ('1', '100', '订单支付', '订单支付成功,金额7.02元', '2', '1', '0', '0', '0', '0', '1553826950'), ('2', '100', '订单支付', '订单支付成功,金额10.01元', '3', '1', '0', '0', '0', '0', '1553827061'), ('3', '77', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554188629'), ('4', '104', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554195345'), ('5', '104', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554256553'), ('6', '108', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1554270624'), ('7', '114', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554343971'), ('8', '115', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554344687'), ('9', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1554962882'), ('10', '90', '订单支付', '订单支付成功,金额267.74元', '1', '1', '0', '1', '0', '0', '1554966442'), ('11', '90', '订单发货', '订单已发货', '1', '1', '0', '1', '0', '0', '1554966457'), ('12', '90', '积分变动', '订单商品完成赠送积分增加1', '0', '0', '0', '1', '0', '0', '1554966464'), ('13', '90', '订单收货', '订单收货成功', '1', '1', '0', '1', '0', '0', '1554966464'), ('14', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1555244676'), ('15', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1555903059'), ('16', '90', '订单支付', '订单支付成功,金额9231.9元', '3', '1', '0', '1', '0', '0', '1556258500'), ('17', '90', '订单支付', '订单支付成功,金额6600元', '4', '1', '0', '1', '0', '0', '1556258528'), ('18', '90', '订单支付', '订单支付成功,金额248元', '5', '1', '0', '1', '0', '0', '1556258552'), ('19', '90', '订单支付', '订单支付成功,金额466元', '6', '1', '0', '1', '0', '0', '1556259546'), ('20', '90', '订单支付', '订单支付成功,金额238元', '7', '1', '0', '1', '0', '0', '1556260768'), ('21', '90', '订单支付', '订单支付成功,金额228元', '8', '1', '0', '1', '0', '0', '1556260794'), ('22', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1556415732'), ('23', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1556603278'), ('24', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1557022304'), ('25', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1557138595'); +INSERT INTO `s_message` VALUES ('1', '100', '订单支付', '订单支付成功,金额7.02元', '2', '1', '0', '0', '0', '0', '1553826950'), ('2', '100', '订单支付', '订单支付成功,金额10.01元', '3', '1', '0', '0', '0', '0', '1553827061'), ('3', '77', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554188629'), ('4', '104', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554195345'), ('5', '104', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554256553'), ('6', '108', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1554270624'), ('7', '114', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554343971'), ('8', '115', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '0', '0', '0', '1554344687'), ('9', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1554962882'), ('10', '90', '订单支付', '订单支付成功,金额267.74元', '1', '1', '0', '1', '0', '0', '1554966442'), ('11', '90', '订单发货', '订单已发货', '1', '1', '0', '1', '0', '0', '1554966457'), ('12', '90', '积分变动', '订单商品完成赠送积分增加1', '0', '0', '0', '1', '0', '0', '1554966464'), ('13', '90', '订单收货', '订单收货成功', '1', '1', '0', '1', '0', '0', '1554966464'), ('14', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1555244676'), ('15', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1555903059'), ('16', '90', '订单支付', '订单支付成功,金额9231.9元', '3', '1', '0', '1', '0', '0', '1556258500'), ('17', '90', '订单支付', '订单支付成功,金额6600元', '4', '1', '0', '1', '0', '0', '1556258528'), ('18', '90', '订单支付', '订单支付成功,金额248元', '5', '1', '0', '1', '0', '0', '1556258552'), ('19', '90', '订单支付', '订单支付成功,金额466元', '6', '1', '0', '1', '0', '0', '1556259546'), ('20', '90', '订单支付', '订单支付成功,金额238元', '7', '1', '0', '1', '0', '0', '1556260768'), ('21', '90', '订单支付', '订单支付成功,金额228元', '8', '1', '0', '1', '0', '0', '1556260794'), ('22', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1556415732'), ('23', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1556603278'), ('24', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1557022304'), ('25', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1557138595'), ('26', '90', '账户余额变动', '管理员操作[ 赠送金额增加1.00元 ]', '1', '0', '0', '1', '0', '0', '1557282760'), ('27', '90', '账户余额变动', '管理员操作[ 赠送金额增加1.00元 ]', '1', '0', '0', '1', '0', '0', '1557282981'), ('28', '90', '积分变动', '登录奖励积分积分增加5', '0', '0', '0', '1', '0', '0', '1557298489'), ('29', '90', '账户余额变动', '用户提现申请[ 减少有效金额1.00元 ]', '2', '0', '0', '1', '0', '0', '1557308295'), ('30', '90', '账户余额变动', '管理员操作[ 赠送金额增加2.00元 ]', '1', '0', '0', '1', '0', '0', '1557310710'); COMMIT; -- ---------------------------- @@ -1050,7 +1050,40 @@ CREATE TABLE `s_plugins_wallet` ( -- Records of `s_plugins_wallet` -- ---------------------------- BEGIN; -INSERT INTO `s_plugins_wallet` VALUES ('1', '90', '0', '10.00', '2.00', '0.00', '1556610086', '1557198251'), ('2', '91', '1', '124.00', '3.00', '1.00', '1559610086', '0'), ('3', '77', '0', '7566744.00', '12.00', '2345.00', '1586610086', '0'); +INSERT INTO `s_plugins_wallet` VALUES ('1', '90', '0', '9.00', '2.00', '2.00', '1556610086', '1557310710'), ('2', '91', '1', '124.00', '3.00', '1.00', '1559610086', '0'), ('3', '77', '0', '7566744.00', '12.00', '2345.00', '1586610086', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for `s_plugins_wallet_cash` +-- ---------------------------- +DROP TABLE IF EXISTS `s_plugins_wallet_cash`; +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 AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钱包提现 - 应用'; + +-- ---------------------------- +-- Records of `s_plugins_wallet_cash` +-- ---------------------------- +BEGIN; +INSERT INTO `s_plugins_wallet_cash` VALUES ('2', '90', '1', '20190508173815366298', '0', '1.00', '0.00', '支付宝', 'fuxiang,gong@qq.com', '龚福祥', 'trtr热天一日游try太容易田润叶头疼同仁医院犹太人羊肉汤', '0', '1557308295', '0'); COMMIT; -- ---------------------------- @@ -1072,7 +1105,14 @@ 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='钱包日志 - 应用'; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钱包日志 - 应用'; + +-- ---------------------------- +-- Records of `s_plugins_wallet_log` +-- ---------------------------- +BEGIN; +INSERT INTO `s_plugins_wallet_log` VALUES ('1', '90', '1', '0', '2', '1', '1.00', '0.00', '1.00', '管理员操作[ 赠送金额增加1.00元 ]', '1557282760'), ('2', '90', '1', '0', '2', '1', '1.00', '1.00', '2.00', '管理员操作[ 赠送金额增加1.00元 ]', '1557282981'), ('3', '90', '1', '0', '2', '0', '2.00', '2.00', '0.00', '管理员操作[ 赠送金额减少2.00元 ]', '1557282998'), ('4', '90', '1', '2', '0', '0', '1.00', '10.00', '9.00', '用户提现申请[ 减少有效金额1.00元 ]', '1557308295'), ('5', '90', '1', '0', '2', '1', '2.00', '0.00', '2.00', '管理员操作[ 赠送金额增加2.00元 ]', '1557310710'); +COMMIT; -- ---------------------------- -- Table structure for `s_plugins_wallet_recharge` @@ -1085,7 +1125,7 @@ CREATE TABLE `s_plugins_wallet_recharge` ( `recharge_no` char(60) NOT NULL DEFAULT '' COMMENT '充值单号', `status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '状态(0未支付, 1已支付)', `money` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '金额', - `pay_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '支付金额', + `pay_money` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '支付金额', `payment_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '支付方式id', `payment` char(60) NOT NULL DEFAULT '' COMMENT '支付方式标记', `payment_name` char(60) NOT NULL DEFAULT '' COMMENT '支付方式名称', @@ -1095,13 +1135,13 @@ CREATE TABLE `s_plugins_wallet_recharge` ( UNIQUE KEY `recharge_no` (`recharge_no`), KEY `status` (`status`), KEY `user_id` (`user_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钱包充值 - 应用'; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钱包充值 - 应用'; -- ---------------------------- -- Records of `s_plugins_wallet_recharge` -- ---------------------------- BEGIN; -INSERT INTO `s_plugins_wallet_recharge` VALUES ('1', '90', '1', '20190507181038613181', '0', '0.01', '0.00', '0', '', '', '0', '1557223838'), ('2', '90', '1', '20190507181326357094', '0', '1.00', '0.00', '0', '', '', '0', '1557224006'); +INSERT INTO `s_plugins_wallet_recharge` VALUES ('1', '90', '1', '20190507181038613181', '0', '0.01', '0.00', '0', '', '', '0', '1557223838'), ('2', '90', '1', '20190507181326357094', '0', '1.00', '0.00', '0', '', '', '0', '1557224006'), ('3', '90', '1', '20190508181721821688', '0', '12.00', '0.00', '0', '', '', '0', '1557310641'); COMMIT; -- ---------------------------- @@ -1304,7 +1344,7 @@ CREATE TABLE `s_slide` ( KEY `is_enable` (`is_enable`), KEY `sort` (`sort`), KEY `platform` (`platform`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='轮播图片'; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='轮播图片'; -- ---------------------------- -- Records of `s_slide` @@ -1352,7 +1392,7 @@ CREATE TABLE `s_user` ( -- Records of `s_user` -- ---------------------------- BEGIN; -INSERT INTO `s_user` VALUES ('77', '', '', '', '0', '776202', '09b2f04a4fbbe3a229c1a2a9610b9457', '', '龚哥哥', '13250814883', '', '2', 'https://tfs.alipayobjects.com/images/partner/T10d8lXm4dXXXXXXXX', '上海', '上海市', '1540915200', '', '1103', '0', '0', '0', '0', '1554190351'), ('90', '2088502175420842', '', '', '0', '111838', 'df8407982491a385deba755bdc06b5f4', '', '魔鬼', '17688888888', '', '2', '', '上海', '上海市', '666201600', '', '81', '0', '0', '0', '1539167253', '1557138595'), ('91', '', '', '', '0', '237515', '605a4ec1509a4034ee6250882fb57691', '游客-xQyKJJ', '游客-xQyKJJ', '', '', '0', '', '', '', '0', '', '0', '0', '0', '0', '1556075950', '1556075950'); +INSERT INTO `s_user` VALUES ('77', '', '', '', '0', '776202', '09b2f04a4fbbe3a229c1a2a9610b9457', '', '龚哥哥', '13250814883', '', '2', 'https://tfs.alipayobjects.com/images/partner/T10d8lXm4dXXXXXXXX', '上海', '上海市', '1540915200', '', '1103', '0', '0', '0', '0', '1554190351'), ('90', '2088502175420842', '', '', '0', '791690', '38297a620e600e6ee2cd0a11cb1c8dec', '', '魔鬼', '17688888888', 'fuxiang.gong@qq.com', '2', '', '上海', '上海市', '666201600', '', '86', '0', '0', '0', '1539167253', '1557298489'), ('91', '', '', '', '0', '237515', '605a4ec1509a4034ee6250882fb57691', '游客-xQyKJJ', '游客-xQyKJJ', '', '', '0', '', '', '', '0', '', '0', '0', '0', '0', '1556075950', '1556075950'); COMMIT; -- ---------------------------- @@ -1402,13 +1442,13 @@ CREATE TABLE `s_user_integral_log` ( `add_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间', PRIMARY KEY (`id`), KEY `user_id` (`user_id`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户积分日志'; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户积分日志'; -- ---------------------------- -- Records of `s_user_integral_log` -- ---------------------------- BEGIN; -INSERT INTO `s_user_integral_log` VALUES ('1', '90', '1', '45', '50', '登录奖励积分', '0', '1554962882'), ('2', '90', '1', '50', '51', '订单商品完成赠送', '0', '1554966464'), ('3', '90', '1', '51', '56', '登录奖励积分', '0', '1555244676'), ('4', '90', '1', '56', '61', '登录奖励积分', '0', '1555903059'), ('5', '90', '1', '61', '66', '登录奖励积分', '0', '1556415732'), ('6', '90', '1', '66', '71', '登录奖励积分', '0', '1556603278'), ('7', '90', '1', '71', '76', '登录奖励积分', '0', '1557022304'), ('8', '90', '1', '76', '81', '登录奖励积分', '0', '1557138595'); +INSERT INTO `s_user_integral_log` VALUES ('1', '90', '1', '45', '50', '登录奖励积分', '0', '1554962882'), ('2', '90', '1', '50', '51', '订单商品完成赠送', '0', '1554966464'), ('3', '90', '1', '51', '56', '登录奖励积分', '0', '1555244676'), ('4', '90', '1', '56', '61', '登录奖励积分', '0', '1555903059'), ('5', '90', '1', '61', '66', '登录奖励积分', '0', '1556415732'), ('6', '90', '1', '66', '71', '登录奖励积分', '0', '1556603278'), ('7', '90', '1', '71', '76', '登录奖励积分', '0', '1557022304'), ('8', '90', '1', '76', '81', '登录奖励积分', '0', '1557138595'), ('9', '90', '1', '81', '86', '登录奖励积分', '0', '1557298489'); COMMIT; SET FOREIGN_KEY_CHECKS = 1; diff --git a/public/static/common/css/common.css b/public/static/common/css/common.css index 15136c58d..40ab6520d 100755 --- a/public/static/common/css/common.css +++ b/public/static/common/css/common.css @@ -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: #ffeee1; - border-color: #f9e4d3; + background-color: #fff7f1; + border-color: #fff0e4; color: #f37b1d; } .am-input-radius input.am-form-field { diff --git a/public/static/index/default/css/common.css b/public/static/index/default/css/common.css index 2f6188735..abfa243b4 100755 --- a/public/static/index/default/css/common.css +++ b/public/static/index/default/css/common.css @@ -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; } - /** * 用户中心左侧菜单 */ diff --git a/public/static/index/default/css/safety.css b/public/static/index/default/css/safety.css index 8cb20f1f1..46558e5db 100755 --- a/public/static/index/default/css/safety.css +++ b/public/static/index/default/css/safety.css @@ -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; diff --git a/public/static/plugins/css/wallet/index/cash.css b/public/static/plugins/css/wallet/index/cash.css index e69de29bb..06d304c08 100644 --- a/public/static/plugins/css/wallet/index/cash.css +++ b/public/static/plugins/css/wallet/index/cash.css @@ -0,0 +1,47 @@ +/** + * 操作提示 + */ +.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 diff --git a/public/static/plugins/css/wallet/index/common.css b/public/static/plugins/css/wallet/index/common.css index 325e9d084..2baa72432 100644 --- a/public/static/plugins/css/wallet/index/common.css +++ b/public/static/plugins/css/wallet/index/common.css @@ -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 { diff --git a/public/static/plugins/css/wallet/index/recharge.css b/public/static/plugins/css/wallet/index/recharge.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/public/static/plugins/js/wallet/index/cash.js b/public/static/plugins/js/wallet/index/cash.js new file mode 100644 index 000000000..3a9622370 --- /dev/null +++ b/public/static/plugins/js/wallet/index/cash.js @@ -0,0 +1,108 @@ +$(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
操作类型提现单号提现金额(元)打款金额(元)状态收款银行收款账号开户人姓名 描述原始积分最新积分时间打款时间创建时间
{{$v.type_name}}{{$v.msg}}{{$v.original_integral}}{{$v.new_integral}}{{$v.add_time_time}}{{$v.cash_no}}{{$v.money}}{{if $v['pay_money'] gt 0}}{{$v.pay_money}}{{/if}}{{$v.status_text}}{{$v.bank_name}}{{$v.bank_accounts}}{{$v.bank_username}}{{$v.msg}}{{$v.pay_time_text}}{{$v.add_time_text}}
充值单号 充值金额(元)支付金额(元)支付金额(元) 状态 支付方式 支付时间
{{$v.recharge_no}} {{$v.money}}{{if $v['pay_money'] gt 0}}+{{$v.pay_money}}{{/if}}{{if $v['pay_money'] gt 0}}{{$v.pay_money}}{{/if}} {{$v.status_text}} {{$v.payment_name}} {{$v.pay_time_text}}