diff --git a/app/api/controller/PayPassword.php b/app/api/controller/PayPassword.php new file mode 100755 index 00000000..bbb47086 --- /dev/null +++ b/app/api/controller/PayPassword.php @@ -0,0 +1,24 @@ +request->post(); + $post['message_key'] = NoticeEnum::GET_BACK_MOBILE_NOTICE; + (new PayPasswordValidate())->goCheck('', $post); + $result = UserLogic::resetPayPassword($post); + if (false === $result) { + return JsonServer::error(UserLogic::getError()); + } + return JsonServer::success('修改成功', $result); + } +} \ No newline at end of file diff --git a/app/api/logic/UserLogic.php b/app/api/logic/UserLogic.php index aa0b7191..213f05d4 100755 --- a/app/api/logic/UserLogic.php +++ b/app/api/logic/UserLogic.php @@ -22,7 +22,6 @@ use app\common\server\WeChatServer; use EasyWeChat\Factory; use EasyWeChat\Kernel\Exceptions\Exception; use think\facade\Db; -use app\api\logic\BillionsLogic; class UserLogic extends Logic { @@ -613,4 +612,31 @@ class UserLogic extends Logic return count($valid_array); } + + public static function resetPayPassword($post) + { + try { + $account = User::where(['mobile' => $post['mobile'], 'del' => 0]) + ->find(); + if (!$account) { + throw new \Exception('账号不存在'); + } + //更新密码 + $pay_password = create_password($post['pay_password'], $account['salt']);//生成密码 + if ($account['pay_password'] == $pay_password) { + throw new \Exception('密码未改动'); + } + $data = [ + 'pay_password' => $pay_password, + 'update_time' => time(), + ]; + User::where(['id' => $account['id'], 'del' => 0]) + ->update($data); + + return ['flag' => true]; + } catch (\Exception $e) { + self::$error = $e->getMessage(); + return false; + } + } } diff --git a/app/api/validate/PayPasswordValidate.php b/app/api/validate/PayPasswordValidate.php new file mode 100755 index 00000000..2cd8e9ac --- /dev/null +++ b/app/api/validate/PayPasswordValidate.php @@ -0,0 +1,78 @@ + 'require|mobile', + 'password' => 'require|confirm:password|checkPassword', + 'repassword' => 'require|confirm:password|checkPassword', + 'code' => 'require|checkCode', + ]; + + protected $message = [ + 'mobile.require' => '请输入手机号', + 'password.require' => '请输入密码', + 'repassword.require' => '请再次输入密码', + 'repassword.confirm' => '两次密码输入不一致', + 'code.require' => '请输入验证码', + 'mobile.mobile' => '非有效手机号码' + ]; + + /** + * @notes 验证码 + * @param $value + * @param $rule + * @param $data + * @return array|bool|string + * @author suny + * @date 2021/7/13 6:29 下午 + */ + public static function checkCode($value, $rule, $data) + { + $res = SmsLogic::check($data['message_key'], $data['mobile'], $value); + if (false === $res) { + return SmsLogic::getError(); + } + return true; + } + + public static function checkPassword($value, $rule, $data) + { + if (!is_numeric($value)) { + return '密码类型错误'; + } + + if (strlen($value) != 6) { + return '密码长度需要满足6位'; + } + } +} \ No newline at end of file