From 22e936e491b49fddbc664dd0709df55545d2d1fd Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期三, 14 十月 2026 14:53:35 +0800
Subject: [PATCH] feat(服务商小程序与认证服务): 实现服务商小程序登录与忘记密码功能
---
hugray-server/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/AccountUserServiceImpl.java | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/hugray-server/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/AccountUserServiceImpl.java b/hugray-server/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/AccountUserServiceImpl.java
index a26c589..dd3f888 100644
--- a/hugray-server/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/AccountUserServiceImpl.java
+++ b/hugray-server/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/AccountUserServiceImpl.java
@@ -89,6 +89,12 @@
}
@Override
+ public AccountUser selectAccountUserByUsername(String userName)
+ {
+ return accountUserMapper.selectAccountUserByUsername(userName);
+ }
+
+ @Override
public List<AccountUser> selectAccountUserList(AccountUser accountUser)
{
return accountUserMapper.selectAccountUserList(accountUser);
@@ -408,6 +414,37 @@
}
@Override
+ public void resetPasswordByPhone(String phone, String rawPassword)
+ {
+ // STEP 1: 入参兜底校验(认证服务已校验,此处做服务层兜底)
+ if (StringUtils.isEmpty(phone))
+ {
+ throw new ServiceException("请输入手机号");
+ }
+ if (StringUtils.isEmpty(rawPassword))
+ {
+ throw new ServiceException("请输入新密码");
+ }
+ // STEP 2: 按手机号定位会员(逻辑删除已在 SQL 中过滤)
+ AccountUser accountUser = accountUserMapper.selectAccountUserByPhone(phone);
+ if (StringUtils.isNull(accountUser))
+ {
+ throw new ServiceException("该手机号未注册,请先注册");
+ }
+ // STEP 3: 构造单列更新对象,密码 BCrypt 加密后落库(不触碰其它资料)
+ AccountUser update = new AccountUser();
+ update.setUserId(accountUser.getUserId());
+ update.setPassword(SecurityUtils.encryptPassword(rawPassword));
+ update.setUpdateBy(phone);
+ // STEP 4: 只更新 password 一列;影响行数为 0 说明会员不存在或已删除
+ if (accountUserMapper.updateUserPassword(update) == 0)
+ {
+ throw new ServiceException("密码重置失败,请稍后重试");
+ }
+ log.info("[MEMBER_RESET_PWD] reset success, phone={}", maskPhone(phone));
+ }
+
+ @Override
public AccountUserInfoVo getAccountUserInfo(Long userId)
{
// STEP 1: 校验会员ID(登录态缺失时直接失败,避免无归属查询)
--
Gitblit v1.7.1