| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <?php
- /****************************************************************
- * Author: king -- LiBaoJia
- * Date: 5/19/21 10:11 AM
- * Email: livsyitian@163.com
- * QQ: 995265288
- * IDE: PhpStorm
- * User: www.yunzshop.com www.yunzshop.com
- * Company: 广州市芸众信息科技有限公司
- * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务
- ****************************************************************/
- namespace app\backend\modules\password\controllers;
- use app\common\components\BaseController;
- use app\common\facades\Setting;
- use app\common\modules\shop\ShopConfig;
- class SettingController extends BaseController
- {
- public function index()
- {
- if ($this->postData()) return $this->store();
- return view('password.setting', $this->viewData());
- }
- /**
- * 数据存储
- */
- private function store()
- {
- $postData = $this->postData();
- $postData['withdraw_verify'] = $this->setWithdrawVerify();
- collect($postData)->each(function ($item, $key) {
- Setting::set("pay_password.{$key}", $item);
- });
- return $this->successJson('支付密码设置成功');
- }
- private function setWithdrawVerify()
- {
- $withdraw_verify = [];
- if (request()->withdraw_verify) {
- $data = request()->withdraw_verify;
- if (($data['is_phone_verify'] || $data['is_member_export_verify'] || $data['is_commission_export_verify']) && !$data['phone']) {
- return $this->errorJson('开启了校验验证,必须设置校验手机号');
- }
- if ($data['verify_expire'] && intval($data['verify_expire']) > 120) {
- return $this->errorJson('校验有效期不得超过120分钟');
- }
- $set = $this->setData()['withdraw_verify']?:[];
- if ($set && $set['phone']) {//之前已设置手机号
- if ($data['phone'] && $data['phone'] <> $set['phone']) {//更改了手机号
- //验证原手机
- $check = app('sms')->checkCode($set['phone'],$data['form2']['verify_code'],'_editWithdraw');
- if ($check['status'] == 0) {
- return $this->errorJson('原手机验证码验证错误:'.$check['json']);
- }
- //验证新手机
- $check = app('sms')->checkCode($data['phone'],$data['form2']['verify_code_new'],'_editWithdrawNew');
- if ($check['status'] == 0) {
- return $this->errorJson('新手机验证码验证错误:'.$check['json']);
- }
- } elseif(($set['is_phone_verify'] && !$data['is_phone_verify']) ||
- ($set['is_member_export_verify'] && !$data['is_member_export_verify']) ||
- ($set['is_commission_export_verify'] && !$data['is_commission_export_verify'])) {//原先开启的现关闭
- //验证手机验证码
- if (empty($data['form3']['verify_code'])) {
- return $this->errorJson('关闭场景需要验证手机验证码,请填写');
- }
- $check = app('sms')->checkCode($set['phone'],$data['form3']['verify_code'],'_closeWithdraw');
- if ($check['status'] == 0) {
- return $this->errorJson('手机验证码验证错误:'.$check['json']);
- }
- }
- } else {//没有设置过手机号
- if ($data['phone']) {
- $check = app('sms')->checkCode($data['phone'],$data['form1']['verify_code'],'_setWithdraw');
- if ($check['status'] == 0) {
- return $this->errorJson($check['json']);
- }
- }
- }
- $withdraw_verify = [
- 'is_set_phone' => $data['phone']?1:0,
- 'is_phone_verify' => $data['is_phone_verify']?1:0,
- 'is_member_export_verify' => $data['is_member_export_verify']?1:0,
- 'is_commission_export_verify' => $data['is_commission_export_verify']?1:0,
- 'phone' => $data['phone']?:"",
- 'verify_expire' => $data['verify_expire']?:"",
- ];
- }
- return $withdraw_verify;
- }
- /**
- * 提交数据
- *
- * @return array
- */
- private function postData()
- {
- return request()->input('pay_password', []);
- }
- /**
- * view 数据
- *
- * @return array
- */
- private function viewData()
- {
- return [
- 'setting' => $this->setData(),
- 'condition' => $this->conditionData(),
- 'withdraw_verify' => $this->setData()['withdraw_verify'] ?: [],
- ];
- }
- /**
- * 设置数据
- *
- * @return array
- */
- private function setData()
- {
- return Setting::getByGroup('pay_password') ?: [];
- }
- /**
- * 自动加载插件配置使用支付密码项
- *
- * @return array
- */
- private function conditionData()
- {
- return ShopConfig::current()->get('password');
- }
- /**
- * 发送验证码
- * @return \Illuminate\Http\JsonResponse
- */
- public function sendVerifyCode()
- {
- $phone = request()->phone;
- switch (request()->type) {
- case 1://设置提现手机号获取验证码
- $key = '_setWithdraw';
- break;
- case 2://更改提现手机号获取原手机号验证码
- $key = '_editWithdraw';
- $set = $this->setData()['withdraw_verify'];
- $phone = $set['phone'];
- break;
- case 3://更改提现手机号获取新手机号验证码
- $key = '_editWithdrawNew';
- break;
- case 4://关闭提现手机号验证获取原手机号验证码
- $key = '_closeWithdraw';
- $set = $this->setData()['withdraw_verify'];
- $phone = $set['phone'];
- break;
- default:
- return $this->errorJson('类型错误');
- }
- if (!$phone) {
- return $this->errorJson('手机号不能为空');
- }
- $sms = app('sms')->sendWithdrawSet($phone,'86',$key);
- if ($sms['status'] == 0) {
- return $this->errorJson($sms['json']);
- }
- return $this->successJson();
- }
- /**
- * 校验验证码
- * @return \Illuminate\Http\JsonResponse
- */
- public function verifyWithdrawCode()
- {
- $sms = app('sms');
- $code = request()->code;
- $phone = request()->phone;
- if (empty($code)) {
- return $this->errorJson('请填写验证码');
- }
- if (empty($phone) && request()->type <> 3) {
- return $this->errorJson('请填写手机号');
- }
- $set = $this->setData()['withdraw_verify'];
- switch (request()->type) {
- case 1: //设置提现手机号验证校验验证码
- if ($set && $set['phone']) {
- return $this->errorJson('使用验证类型错误!');
- }
- $key = '_setWithdraw';
- $check = $sms->checkCode($phone,$code,$key);
- if ($check['status'] == 0) {
- return $this->errorJson($check['json']);
- }
- break;
- case 2://更改提现手机号验证校验验证码
- if (empty($set) || !$set['phone']) {
- return $this->errorJson('使用验证类型错误!');
- }
- $oldCode = request()->oldCode;
- if (empty($oldCode)) {
- return $this->errorJson('请填写原手机号的验证码');
- }
- $key = '_editWithdraw';
- $check = $sms->checkCode($set['phone'],$oldCode,$key);
- if ($check['status'] == 0) {
- return $this->errorJson($check['json']);
- }
- $key = '_editWithdrawNew';
- $check = $sms->checkCode($phone,$code,$key);
- if ($check['status'] == 0) {
- return $this->errorJson($check['json']);
- }
- break;
- case 3://关闭提现手机号验证校验验证码
- if (empty($set) || !$set['phone']) {
- return $this->errorJson('使用验证类型错误!');
- }
- $key = '_closeWithdraw';
- $check = $sms->checkCode($set['phone'],$code,$key);
- if ($check['status'] == 0) {
- return $this->errorJson($check['json']);
- }
- break;
- default:
- return $this->errorJson('验证码校验类型错误');
- }
- return $this->successJson('校验通过');
- }
- }
|