diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/AuthCustomerException.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/AuthCustomerException.java index 4f766e5..07ba0f7 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/exception/AuthCustomerException.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/AuthCustomerException.java @@ -15,7 +15,7 @@ public class AuthCustomerException extends RuntimeException { Integer code; // 描述信息 - String message; + String message = "服务异常"; // 返回结果状态 ResultCodeEnum resultCodeEnum; diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java index 2a2ce25..7c42b49 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java @@ -6,6 +6,7 @@ import cn.bunny.dao.vo.result.Result; import cn.bunny.dao.vo.result.ResultCodeEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.DefaultMessageSourceResolvable; +import org.springframework.util.StringUtils; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @@ -36,6 +37,7 @@ public class GlobalExceptionHandler { @ResponseBody public Result exceptionHandler(RuntimeException exception) { String message = exception.getMessage(); + message = StringUtils.hasText(message) ? message : "服务器异常"; // 解析异常 String jsonParseError = "JSON parse error (.*)"; @@ -67,7 +69,7 @@ public class GlobalExceptionHandler { log.error("GlobalExceptionHandler===>运行时异常信息:{}", message); exception.printStackTrace(); - return Result.error(null, 500, "服务器异常"); + return Result.error(null, 500, message); } // 捕获系统异常 diff --git a/service/src/main/java/cn/bunny/services/security/service/impl/CustomUserDetailsServiceImpl.java b/service/src/main/java/cn/bunny/services/security/service/impl/CustomUserDetailsServiceImpl.java index f80f12e..6328e34 100644 --- a/service/src/main/java/cn/bunny/services/security/service/impl/CustomUserDetailsServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/security/service/impl/CustomUserDetailsServiceImpl.java @@ -8,7 +8,7 @@ import cn.bunny.dao.vo.result.ResultCodeEnum; import cn.bunny.dao.vo.system.user.LoginVo; import cn.bunny.services.mapper.UserMapper; import cn.bunny.services.security.custom.CustomUser; -import cn.bunny.services.utils.UserFactory; +import cn.bunny.services.utils.UserUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -27,7 +27,7 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security. private UserMapper userMapper; @Autowired - private UserFactory userFactory; + private UserUtil userUtil; /** * 根据用户名获取用户对象(获取不到直接抛异常) @@ -80,6 +80,6 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security. String md5Password = DigestUtils.md5DigestAsHex(password.getBytes()); if (!user.getPassword().equals(md5Password)) throw new AuthCustomerException(ResultCodeEnum.LOGIN_ERROR); - return userFactory.buildLoginUserVo(user, readMeDay); + return userUtil.buildLoginUserVo(user, readMeDay); } } diff --git a/service/src/main/java/cn/bunny/services/service/impl/MessageReceivedServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/MessageReceivedServiceImpl.java index b5d9012..7b064a3 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/MessageReceivedServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/MessageReceivedServiceImpl.java @@ -13,7 +13,7 @@ import cn.bunny.dao.vo.system.message.MessageReceivedWithMessageVo; import cn.bunny.dao.vo.system.message.MessageUserVo; import cn.bunny.services.mapper.MessageReceivedMapper; import cn.bunny.services.service.MessageReceivedService; -import cn.bunny.services.utils.UserFactory; +import cn.bunny.services.utils.UserUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -39,7 +39,7 @@ import java.util.List; public class MessageReceivedServiceImpl extends ServiceImpl implements MessageReceivedService { @Autowired - private UserFactory userFactory; + private UserUtil userUtil; /** * 管理员管理用户消息接收分页查询 @@ -58,7 +58,7 @@ public class MessageReceivedServiceImpl extends ServiceImpl implements MessageService { @Autowired - private UserFactory userFactory; + private UserUtil userUtil; @Autowired private MessageReceivedMapper messageReceivedMapper; @@ -152,7 +152,7 @@ public class MessageServiceImpl extends ServiceImpl impl // 设置封面返回内容 String cover = dto.getCover(); - dto.setCover(userFactory.checkGetUserAvatar(cover)); + dto.setCover(userUtil.checkGetUserAvatar(cover)); // 先保存消息数据,之后拿到保存消息的id Message message = new Message(); @@ -198,7 +198,7 @@ public class MessageServiceImpl extends ServiceImpl impl // 设置封面返回内容 String cover = dto.getCover(); - dto.setCover(userFactory.checkGetUserAvatar(cover)); + dto.setCover(userUtil.checkGetUserAvatar(cover)); // 更新内容 Message message = new Message(); diff --git a/service/src/main/java/cn/bunny/services/service/impl/RouterServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/RouterServiceImpl.java index 609ad19..1cc5211 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/RouterServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/RouterServiceImpl.java @@ -21,7 +21,7 @@ import cn.bunny.services.mapper.RouterMapper; import cn.bunny.services.mapper.RouterRoleMapper; import cn.bunny.services.security.custom.CustomCheckIsAdmin; import cn.bunny.services.service.RouterService; -import cn.bunny.services.utils.RouterServiceFactory; +import cn.bunny.services.utils.RouterServiceUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -46,7 +46,7 @@ import java.util.stream.Collectors; @Transactional public class RouterServiceImpl extends ServiceImpl implements RouterService { @Autowired - private RouterServiceFactory routerServiceFactory; + private RouterServiceUtil routerServiceUtil; @Autowired private RoleMapper roleMapper; @@ -151,7 +151,7 @@ public class RouterServiceImpl extends ServiceImpl impleme // 构建树形结构 routerVoList.forEach(routerVo -> { if (routerVo.getParentId() == 0) { - routerVo.setChildren(routerServiceFactory.handleGetChildrenWIthRouter(routerVo.getId(), routerVoList)); + routerVo.setChildren(routerServiceUtil.handleGetChildrenWIthRouter(routerVo.getId(), routerVoList)); list.add(routerVo); } }); diff --git a/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java index c3cd277..4ce201d 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java @@ -11,7 +11,7 @@ import cn.bunny.dao.vo.system.user.LoginVo; import cn.bunny.services.mapper.UserMapper; import cn.bunny.services.mapper.UserRoleMapper; import cn.bunny.services.service.UserRoleService; -import cn.bunny.services.utils.UserFactory; +import cn.bunny.services.utils.UserUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -38,7 +38,7 @@ public class UserRoleServiceImpl extends ServiceImpl i private UserRoleMapper userRoleMapper; @Autowired - private UserFactory userFactory; + private UserUtil userUtil; @Autowired private UserMapper userMapper; @@ -94,7 +94,7 @@ public class UserRoleServiceImpl extends ServiceImpl i // 重新设置Redis中的用户存储信息vo对象 String username = adminUser.getUsername(); - loginVo = userFactory.buildLoginUserVo(adminUser, readMeDay); + loginVo = userUtil.buildLoginUserVo(adminUser, readMeDay); redisTemplate.opsForValue().set(RedisUserConstant.getAdminLoginInfoPrefix(username), loginVo, readMeDay, TimeUnit.DAYS); } } diff --git a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java index a54dc95..28a56fb 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java @@ -21,7 +21,7 @@ import cn.bunny.dao.vo.system.user.*; import cn.bunny.services.mapper.*; import cn.bunny.services.service.FilesService; import cn.bunny.services.service.UserService; -import cn.bunny.services.utils.UserFactory; +import cn.bunny.services.utils.UserUtil; import cn.bunny.services.utils.email.ConcreteSenderEmailTemplate; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CircleCaptcha; @@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit; public class UserServiceImpl extends ServiceImpl implements UserService { @Autowired - private UserFactory userFactory; + private UserUtil userUtil; @Autowired private ConcreteSenderEmailTemplate concreteSenderEmailTemplate; @@ -131,7 +131,7 @@ public class UserServiceImpl extends ServiceImpl implemen if (adminUser == null) throw new AuthCustomerException(ResultCodeEnum.USER_IS_EMPTY); if (adminUser.getStatus()) throw new AuthCustomerException(ResultCodeEnum.FAIL_NO_ACCESS_DENIED_USER_LOCKED); - LoginVo buildUserVo = userFactory.buildLoginUserVo(adminUser, dto.getReadMeDay()); + LoginVo buildUserVo = userUtil.buildLoginUserVo(adminUser, dto.getReadMeDay()); RefreshTokenVo refreshTokenVo = new RefreshTokenVo(); BeanUtils.copyProperties(buildUserVo, refreshTokenVo); @@ -154,7 +154,7 @@ public class UserServiceImpl extends ServiceImpl implemen // 查询用户信息 AdminUser adminUser = getOne(Wrappers.lambdaQuery().eq(AdminUser::getId, userId)); - UserLoginLog userLoginLog = userFactory.setUserLoginLog(adminUser, token, ipAddr, ipRegion, "logout"); + UserLoginLog userLoginLog = userUtil.setUserLoginLog(adminUser, token, ipAddr, ipRegion, "logout"); userLoginLogMapper.insert(userLoginLog); // 删除Redis中用户信息 @@ -181,7 +181,7 @@ public class UserServiceImpl extends ServiceImpl implemen UserVo userVo = new UserVo(); BeanUtils.copyProperties(user, userVo); - userVo.setAvatar(userFactory.checkGetUserAvatar(avatar)); + userVo.setAvatar(userUtil.checkGetUserAvatar(avatar)); return userVo; } @@ -243,7 +243,7 @@ public class UserServiceImpl extends ServiceImpl implemen // 重新生成用户信息到Redis中 user.setAvatar(adminUser.getAvatar()); - userFactory.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME); + userUtil.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME); } /** @@ -342,7 +342,7 @@ public class UserServiceImpl extends ServiceImpl implemen if (user == null) throw new AuthCustomerException(ResultCodeEnum.USER_IS_EMPTY); // 检查用户头像 - dto.setAvatar(userFactory.checkPostUserAvatar(dto.getAvatar())); + dto.setAvatar(userUtil.checkPostUserAvatar(dto.getAvatar())); // 更新用户 AdminUser adminUser = new AdminUser(); @@ -352,7 +352,7 @@ public class UserServiceImpl extends ServiceImpl implemen // 重新生成用户信息到Redis中 BeanUtils.copyProperties(dto, user); - userFactory.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME); + userUtil.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME); } /** @@ -400,7 +400,7 @@ public class UserServiceImpl extends ServiceImpl implemen List voList = page.getRecords().stream() .map(adminUser -> { // 如果存在用户头像,则设置用户头像 - String avatar = userFactory.checkGetUserAvatar(adminUser.getAvatar()); + String avatar = userUtil.checkGetUserAvatar(adminUser.getAvatar()); AdminUserVo adminUserVo = new AdminUserVo(); BeanUtils.copyProperties(adminUser, adminUserVo); @@ -487,7 +487,7 @@ public class UserServiceImpl extends ServiceImpl implemen // 重新生成用户信息到Redis中 BeanUtils.copyProperties(dto, adminUser); - userFactory.buildUserVo(adminUser, RedisUserConstant.REDIS_EXPIRATION_TIME); + userUtil.buildUserVo(adminUser, RedisUserConstant.REDIS_EXPIRATION_TIME); } /** diff --git a/service/src/main/java/cn/bunny/services/utils/RoleUtil.java b/service/src/main/java/cn/bunny/services/utils/RoleUtil.java index abd8aaf..67e8f88 100644 --- a/service/src/main/java/cn/bunny/services/utils/RoleUtil.java +++ b/service/src/main/java/cn/bunny/services/utils/RoleUtil.java @@ -20,7 +20,7 @@ public class RoleUtil { private UserMapper userMapper; @Autowired - private UserFactory userFactory; + private UserUtil userUtil; /** * 批量更新Redis中用户信息 @@ -39,6 +39,6 @@ public class RoleUtil { String adminLoginInfoPrefix = RedisUserConstant.getAdminLoginInfoPrefix(user.getUsername()); Object object = redisTemplate.opsForValue().get(adminLoginInfoPrefix); return object != null; - }).forEach(user -> userFactory.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME)); + }).forEach(user -> userUtil.buildUserVo(user, RedisUserConstant.REDIS_EXPIRATION_TIME)); } } diff --git a/service/src/main/java/cn/bunny/services/utils/RouterServiceFactory.java b/service/src/main/java/cn/bunny/services/utils/RouterServiceUtil.java similarity index 96% rename from service/src/main/java/cn/bunny/services/utils/RouterServiceFactory.java rename to service/src/main/java/cn/bunny/services/utils/RouterServiceUtil.java index 3b47538..1cc3a37 100644 --- a/service/src/main/java/cn/bunny/services/utils/RouterServiceFactory.java +++ b/service/src/main/java/cn/bunny/services/utils/RouterServiceUtil.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import java.util.List; @Component -public class RouterServiceFactory { +public class RouterServiceUtil { /** * * 递归调用设置子路由 diff --git a/service/src/main/java/cn/bunny/services/utils/UserFactory.java b/service/src/main/java/cn/bunny/services/utils/UserUtil.java similarity index 96% rename from service/src/main/java/cn/bunny/services/utils/UserFactory.java rename to service/src/main/java/cn/bunny/services/utils/UserUtil.java index ec9f855..cc83660 100644 --- a/service/src/main/java/cn/bunny/services/utils/UserFactory.java +++ b/service/src/main/java/cn/bunny/services/utils/UserUtil.java @@ -1,5 +1,6 @@ package cn.bunny.services.utils; +import cn.bunny.common.service.exception.AuthCustomerException; import cn.bunny.common.service.utils.JwtHelper; import cn.bunny.common.service.utils.ip.IpUtil; import cn.bunny.common.service.utils.minio.MinioUtil; @@ -35,7 +36,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; @Component -public class UserFactory { +public class UserUtil { @Autowired private PowerMapper powerMapper; @@ -54,7 +55,14 @@ public class UserFactory { @Autowired private MinioUtil minioUtil; - @Transactional + /** + * 构建登录用户返回对象 + * + * @param user 用户 + * @param readMeDay 保存登录信息时间 + * @return 登录信息 + */ + @Transactional(rollbackFor = AuthCustomerException.class) public LoginVo buildLoginUserVo(AdminUser user, long readMeDay) { Long userId = user.getId(); String email = user.getEmail();