From e0b4e02acc396136183986b0c002e28f7bc49bb6 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Fri, 19 Jan 2024 18:15:14 +0800 Subject: [PATCH] =?UTF-8?q?feat&fix:=20=E8=BD=AE=E6=92=AD=E5=9B=BE?= =?UTF-8?q?=E3=80=81=E6=97=A5=E5=BF=97=E8=A1=A5=E4=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/OrganizeInternalOA-SQL.md | 20 ++++ .../java/com/jsl/oa/config/JwtFilter.java | 3 + .../oa/config/shiro/ShiroConfiguration.java | 1 + .../jsl/oa/controllers/InfoController.java | 69 ++++++++++- src/main/java/com/jsl/oa/dao/InfoDAO.java | 80 +++++++++++++ .../jsl/oa/exception/BusinessException.java | 6 +- .../jsl/oa/exception/ProcessException.java | 2 +- .../java/com/jsl/oa/mapper/InfoMapper.java | 11 ++ .../jsl/oa/model/doData/info/CarouselDO.java | 34 ++++++ .../voData/business/info/CarouselVO.java | 21 ++++ .../java/com/jsl/oa/services/InfoService.java | 60 ++++++++++ .../jsl/oa/services/impl/InfoServiceImpl.java | 112 ++++++++++++++++++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 11 +- src/main/java/com/jsl/oa/utils/JwtUtil.java | 6 +- .../java/com/jsl/oa/utils/ResultUtil.java | 16 +-- 15 files changed, 433 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/jsl/oa/dao/InfoDAO.java create mode 100644 src/main/java/com/jsl/oa/model/doData/info/CarouselDO.java create mode 100644 src/main/java/com/jsl/oa/model/voData/business/info/CarouselVO.java create mode 100644 src/main/java/com/jsl/oa/services/InfoService.java create mode 100644 src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java diff --git a/doc/OrganizeInternalOA-SQL.md b/doc/OrganizeInternalOA-SQL.md index d649be2..fb1ea0f 100755 --- a/doc/OrganizeInternalOA-SQL.md +++ b/doc/OrganizeInternalOA-SQL.md @@ -397,3 +397,23 @@ node6 --|> node4 | 3 | `data` | json数据 | json | | YES | | | | 4 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP | | 5 | `updated_at` | 修改时间 | timestamp | | YES | | | + + + +### oa_message 数据表 + +#### 说明 + +> 【消息表】用户消息获取,如站内消息等信息的消息,需要配合Email操作 + +#### 数据表字段属性 + +| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 | +| :--: | :----------: | :----------: | :-------------: | :--: | :--: | :---------------: | :---------------: | +| 1 | `id` | 消息主键 | bigint unsigned | PRI | NO | auto_increment | | +| 2 | `uid` | 用户主键 | bigint unsigned | MUL | NO | | | +| 3 | `title` | 消息抬头 | varchar(100) | | NO | | | +| 4 | `text` | 消息正文 | text | | NO | | | +| 5 | `read` | 消息是否已读 | tinyint(1) | | NO | | 0 | +| 6 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP | +| 7 | `deleted_at` | 删除时间 | timestamp | | YES | | | diff --git a/src/main/java/com/jsl/oa/config/JwtFilter.java b/src/main/java/com/jsl/oa/config/JwtFilter.java index 2270844..d32ed19 100755 --- a/src/main/java/com/jsl/oa/config/JwtFilter.java +++ b/src/main/java/com/jsl/oa/config/JwtFilter.java @@ -4,6 +4,7 @@ import com.google.gson.Gson; import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.JwtUtil; import com.jsl.oa.utils.ResultUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authc.ExpiredCredentialsException; import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter; @@ -20,6 +21,7 @@ import javax.servlet.http.HttpServletRequest; * @version v1.1.0 * @since v1.1.0 */ +@Slf4j public class JwtFilter extends BasicHttpAuthenticationFilter { /** @@ -41,6 +43,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter { } else { // 解析Bearer后面的令牌 token = token.replace("Bearer ", ""); + log.info("请求令牌:" + token); return JwtUtil.verify(token); } } diff --git a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java index bbf96ed..84f15e1 100755 --- a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java +++ b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java @@ -28,6 +28,7 @@ public class ShiroConfiguration { filterChainDefinitionMap.put("/auth/**/**", "anon"); // 登录接口允许匿名访问 filterChainDefinitionMap.put("/unauthorized", "anon"); // 未授权接口允许匿名访问 filterChainDefinitionMap.put("/", "anon"); // 首页允许匿名访问 + filterChainDefinitionMap.put("/info/header-image/get", "anon"); // 信息接口允许匿名访问 filterChainDefinitionMap.put("/**/**", "jwt"); // 其他接口一律拦截(需要Token) shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); diff --git a/src/main/java/com/jsl/oa/controllers/InfoController.java b/src/main/java/com/jsl/oa/controllers/InfoController.java index 008c89a..9cbe2eb 100755 --- a/src/main/java/com/jsl/oa/controllers/InfoController.java +++ b/src/main/java/com/jsl/oa/controllers/InfoController.java @@ -1,9 +1,76 @@ package com.jsl.oa.controllers; +import com.jsl.oa.model.voData.business.info.CarouselVO; +import com.jsl.oa.services.InfoService; +import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.Processing; +import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; + +/** + *

信息控制器

+ *
+ * 信息控制器,包含信息获取接口 + * + * @author 筱锋xiao_lfeng + * @version v1.1.0 + * @since v1.1.0 + */ +@Slf4j @RestController @RequiredArgsConstructor public class InfoController { + private final InfoService infoService; + + @GetMapping("/info/header-image/get") + public BaseResponse infoGetHeaderImage() { + log.info("请求接口[GET]: /info/header-image/get"); + return infoService.getHeaderImage(); + } + + @PutMapping("/info/header-image/edit") + public BaseResponse infoEditHeaderImage(@RequestBody @Validated CarouselVO carouselVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) { + log.info("请求接口[PUT]: /info/header-image/edit"); + // 参数校验 + if (bindingResult.hasErrors()) { + log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult)); + return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + if (id == null) { + log.warn("参数校验失败: {}", "id不能为空"); + return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "id不能为空"); + } + return infoService.editHeaderImage(request, carouselVO, id); + } + + @DeleteMapping("/info/header-image/del") + public BaseResponse infoDelHeaderImage(@RequestParam Integer id, HttpServletRequest request) { + log.info("请求接口[DELETE]: /info/header-image/del"); + return infoService.delHeaderImage(request, id); + } + + @PostMapping("/info/header-image/add") + public BaseResponse infoAddHeaderImage(@RequestBody @Validated CarouselVO carouselVO, HttpServletRequest request, @NotNull BindingResult bindingResult) { + log.info("请求接口[POST]: /info/header-image/add"); + // 参数校验 + if (bindingResult.hasErrors()) { + log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult)); + return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return infoService.addHeaderImage(request, carouselVO); + } + + @PutMapping("/info/header-image/edit-setting") + public BaseResponse infoEditSettingHeaderImage(@RequestBody @Validated CarouselVO carouselVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) { + log.info("请求接口[PUT]: /info/header-image/edit-setting"); + return null; + } } diff --git a/src/main/java/com/jsl/oa/dao/InfoDAO.java b/src/main/java/com/jsl/oa/dao/InfoDAO.java new file mode 100644 index 0000000..8ff9fd5 --- /dev/null +++ b/src/main/java/com/jsl/oa/dao/InfoDAO.java @@ -0,0 +1,80 @@ +package com.jsl.oa.dao; + +import com.google.gson.Gson; +import com.jsl.oa.mapper.InfoMapper; +import com.jsl.oa.model.doData.info.CarouselDO; +import lombok.RequiredArgsConstructor; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collections; + +/** + *

轮播图数据表

+ *
+ * 内容进入自定义实体类 + * + * @author 筱锋xiao_lfeng + * @version v1.1.0 + * @since v1.1.0 + */ +@Component +@RequiredArgsConstructor +public class InfoDAO { + private final InfoMapper infoMapper; + private final Gson gson; + + /** + *

获取轮播图

+ *
+ * 获取轮播图 + * + * @return {@link CarouselDO} + */ + public CarouselDO getCarousel() { + String getCarouselSql = infoMapper.getCarousel(); + CarouselDO getCarousel = null; + if (!getCarouselSql.equals("{}")) { + getCarousel = gson.fromJson(getCarouselSql, CarouselDO.class); + } + if (getCarousel == null) { + // 初始化 + getCarousel = new CarouselDO(); + getCarousel.setOrder("desc"); + getCarousel.setData(new ArrayList<>()); + try { + infoMapper.insertCarousel(); + } catch (DuplicateKeyException ignored) { + } + } + // 获取排序 + for (int i = 0; i < getCarousel.getData().size(); i++) { + for (int j = 0; j < getCarousel.getData().size(); j++) { + if (getCarousel.getOrder().equals("desc")) { + if (getCarousel.getData().get(i).getDisplayOrder() > getCarousel.getData().get(j).getDisplayOrder()) { + Collections.swap(getCarousel.getData(), i, j); + } + } else { + if (getCarousel.getData().get(i).getDisplayOrder() < getCarousel.getData().get(j).getDisplayOrder()) { + Collections.swap(getCarousel.getData(), i, j); + } + } + } + } + return getCarousel; + } + + /** + *

设置轮播图

+ *
+ * 设置轮播图 + * + * @param carouselDO 轮播图 + * @return {@link Boolean} + */ + public boolean setCarousel(CarouselDO carouselDO) { + String setCarouselSql = gson.toJson(carouselDO); + return infoMapper.setCarousel(setCarouselSql); + } +} diff --git a/src/main/java/com/jsl/oa/exception/BusinessException.java b/src/main/java/com/jsl/oa/exception/BusinessException.java index 79590f0..4127281 100755 --- a/src/main/java/com/jsl/oa/exception/BusinessException.java +++ b/src/main/java/com/jsl/oa/exception/BusinessException.java @@ -1,6 +1,8 @@ package com.jsl.oa.exception; import com.jsl.oa.utils.ErrorCode; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; /** *

业务异常类

@@ -12,9 +14,11 @@ import com.jsl.oa.utils.ErrorCode; * @author 筱锋xiao_lfeng * @see RuntimeException */ +@Slf4j public class BusinessException extends RuntimeException { - public BusinessException(ErrorCode errorCode) { + public BusinessException(@NotNull ErrorCode errorCode) { super(errorCode.getOutput() + "|" + errorCode.getMessage()); + log.warn("业务异常: {}", errorCode.getOutput() + "|" + errorCode.getMessage()); } } diff --git a/src/main/java/com/jsl/oa/exception/ProcessException.java b/src/main/java/com/jsl/oa/exception/ProcessException.java index de91c09..841f3b0 100755 --- a/src/main/java/com/jsl/oa/exception/ProcessException.java +++ b/src/main/java/com/jsl/oa/exception/ProcessException.java @@ -36,6 +36,6 @@ public class ProcessException { @ExceptionHandler(value = Exception.class) public ResponseEntity businessException(@NotNull Exception e) { log.error(e.getMessage(), e); - return ResultUtil.error("Exception", 500, "服务器异常"); + return ResultUtil.error("ServerInternalError", 500, "服务器内部错误"); } } diff --git a/src/main/java/com/jsl/oa/mapper/InfoMapper.java b/src/main/java/com/jsl/oa/mapper/InfoMapper.java index 7185cc1..ffc2812 100644 --- a/src/main/java/com/jsl/oa/mapper/InfoMapper.java +++ b/src/main/java/com/jsl/oa/mapper/InfoMapper.java @@ -1,6 +1,7 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.ConfigDO; +import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @@ -45,4 +46,14 @@ public interface InfoMapper { */ @Update("INSERT INTO organize_oa.oa_config (value, data, created_at) VALUES (#{value}, #{data}, #{createdAt})") void insertSecurityKey(ConfigDO configDO); + + + @Select("SELECT data FROM organize_oa.oa_config WHERE value= 'carousel'") + String getCarousel(); + + @Update("UPDATE organize_oa.oa_config SET data = #{setCarouselSql} WHERE value = 'carousel'") + boolean setCarousel(String setCarouselSql); + + @Insert("INSERT INTO organize_oa.oa_config (value, data, created_at) VALUES ('carousel', null, NOW())") + void insertCarousel(); } diff --git a/src/main/java/com/jsl/oa/model/doData/info/CarouselDO.java b/src/main/java/com/jsl/oa/model/doData/info/CarouselDO.java new file mode 100644 index 0000000..cd118e1 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/doData/info/CarouselDO.java @@ -0,0 +1,34 @@ +package com.jsl.oa.model.doData.info; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + *

轮播图数据表

+ *
+ * 内容进入自定义实体类 + * + * @version v1.1.0 + * @since v1.1.0 + * @author 筱锋xiao_lfeng + */ +@Data +public class CarouselDO { + private String order; + private List data; + + @Data + @Accessors(chain = true) + public static class DataDO { + private Integer displayOrder; + private String image; + private String title; + private String description; + private Boolean isActive; + private String createdAt; + private String updatedAt; + private String author; + } +} diff --git a/src/main/java/com/jsl/oa/model/voData/business/info/CarouselVO.java b/src/main/java/com/jsl/oa/model/voData/business/info/CarouselVO.java new file mode 100644 index 0000000..ad0f9dd --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/business/info/CarouselVO.java @@ -0,0 +1,21 @@ +package com.jsl.oa.model.voData.business.info; + +import lombok.Data; + +/** + *

轮播图VO

+ *
+ * 轮播图VO,用于接收轮播图请求 + * + * @version v1.1.0 + * @since v1.1.0 + * @author 筱锋xiao_lfeng + */ +@Data +public class CarouselVO { + private Integer displayOrder; + private String image; + private String title; + private String description; + private Boolean isActive; +} diff --git a/src/main/java/com/jsl/oa/services/InfoService.java b/src/main/java/com/jsl/oa/services/InfoService.java new file mode 100644 index 0000000..b45dad1 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/InfoService.java @@ -0,0 +1,60 @@ +package com.jsl.oa.services; + +import com.jsl.oa.model.voData.business.info.CarouselVO; +import com.jsl.oa.utils.BaseResponse; + +import javax.servlet.http.HttpServletRequest; + +/** + *

信息服务接口

+ *
+ * 信息服务接口,包含信息获取接口 + * + * @author 筱锋xiao_lfeng + * @version v1.1.0 + * @since v1.1.0 + */ +public interface InfoService { + /** + *

添加轮播图

+ *
+ * 添加轮播图 + * + * @param request 请求 + * @param carouselVO 轮播图VO + * @return {@link BaseResponse} + */ + BaseResponse addHeaderImage(HttpServletRequest request, CarouselVO carouselVO); + + /** + *

编辑轮播图

+ *
+ * 编辑轮播图 + * + * @param request 请求 + * @param carouselVO 轮播图VO + * @param id 轮播图ID + * @return {@link BaseResponse} + */ + BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO, Integer id); + + /** + *

获取轮播图

+ *
+ * 获取轮播图 + * + * @return {@link BaseResponse} + */ + BaseResponse getHeaderImage(); + + /** + *

删除轮播图

+ *
+ * 删除轮播图 + * + * @param request 请求 + * @param id 轮播图ID + * @return {@link BaseResponse} + */ + BaseResponse delHeaderImage(HttpServletRequest request, Integer id); +} diff --git a/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java new file mode 100644 index 0000000..c8ded1e --- /dev/null +++ b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java @@ -0,0 +1,112 @@ +package com.jsl.oa.services.impl; + +import com.jsl.oa.dao.InfoDAO; +import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.mapper.RoleMapper; +import com.jsl.oa.model.doData.UserDO; +import com.jsl.oa.model.doData.info.CarouselDO; +import com.jsl.oa.model.voData.business.info.CarouselVO; +import com.jsl.oa.services.InfoService; +import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.Processing; +import com.jsl.oa.utils.ResultUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.sql.Timestamp; + +@Slf4j +@Service +@RequiredArgsConstructor +public class InfoServiceImpl implements InfoService { + private final RoleMapper roleMapper; + private final InfoDAO infoDAO; + private final UserDAO userDAO; + + @Override + public BaseResponse addHeaderImage(HttpServletRequest request, CarouselVO carouselVO) { + // 用户权限校验 + if (!Processing.checkUserIsAdmin(request, roleMapper)) { + return ResultUtil.error(ErrorCode.NOT_ADMIN); + } + // 获取用户 + Long userId = Processing.getAuthHeaderToUserId(request); + UserDO userDO = userDAO.getUserById(userId); + // 获取轮播图信息 + CarouselDO carouselDO = infoDAO.getCarousel(); + // 添加轮播图 + CarouselDO.DataDO carousel = new CarouselDO.DataDO(); + carousel.setDisplayOrder(carouselVO.getDisplayOrder()) + .setImage(carouselVO.getImage()) + .setDescription(carouselVO.getDescription()) + .setTitle(carouselVO.getTitle()) + .setIsActive(carouselVO.getIsActive()) + .setAuthor(userDO.getUsername()) + .setCreatedAt(new Timestamp(System.currentTimeMillis()).toString()); + carouselDO.getData().add(carousel); + // 保存轮播图 + if (infoDAO.setCarousel(carouselDO)) { + return ResultUtil.success(); + } else { + return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); + } + } + + @Override + public BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO, Integer id) { + // 用户权限校验 + if (!Processing.checkUserIsAdmin(request, roleMapper)) { + return ResultUtil.error(ErrorCode.NOT_ADMIN); + } + // 获取用户 + Long userId = Processing.getAuthHeaderToUserId(request); + UserDO userDO = userDAO.getUserById(userId); + // 获取轮播图信息 + CarouselDO carouselDO = infoDAO.getCarousel(); + // 获取指定轮播图 + CarouselDO.DataDO carousel = carouselDO.getData().get(id); + carousel.setDisplayOrder(carouselVO.getDisplayOrder()) + .setImage(carouselVO.getImage()) + .setDescription(carouselVO.getDescription()) + .setTitle(carouselVO.getTitle()) + .setIsActive(carouselVO.getIsActive()) + .setAuthor(userDO.getUsername()) + .setUpdatedAt(new Timestamp(System.currentTimeMillis()).toString()); + // 保存轮播图 + if (infoDAO.setCarousel(carouselDO)) { + return ResultUtil.success(); + } else { + return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); + } + } + + @Override + public BaseResponse getHeaderImage() { + CarouselDO carouselDO = infoDAO.getCarousel(); + return ResultUtil.success(carouselDO); + } + + @Override + public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) { + // 用户权限校验 + if (!Processing.checkUserIsAdmin(request, roleMapper)) { + return ResultUtil.error(ErrorCode.NOT_ADMIN); + } + // 获取轮播图信息 + CarouselDO carouselDO = infoDAO.getCarousel(); + // 删除指定轮播图 + if (id > carouselDO.getData().size()) { + return ResultUtil.error(ErrorCode.ID_NOT_EXIST); + } + CarouselDO.DataDO data = carouselDO.getData().remove(id - 1); + // 保存轮播图 + if (infoDAO.setCarousel(carouselDO)) { + return ResultUtil.success(data); + } else { + return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); + } + } +} diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index a32dd5d..f76888e 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -1,7 +1,9 @@ package com.jsl.oa.utils; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Getter public enum ErrorCode { WRONG_PASSWORD("WrongPassword", 40010, "密码错误"), @@ -17,10 +19,11 @@ public enum ErrorCode { VERIFICATION_INVALID("VerificationInvalid", 40102, "验证码无效"), TOKEN_NOT_EXIST("TokenNotExist", 40103, "Token不存在"), USER_IS_LOCKED("UserIsLocked", 40300, "用户已被锁定"), - USER_IS_DEACTIVATED("UserIsDeactivated", 40300, "用户已被禁用"), - NOT_ADMIN("NotAdmin", 40300, "不是管理员"), - EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40300, "请使用邮箱登陆"), - PASSWORD_NOT_SAME("PasswordNotSame", 40301, "两次密码不一致"), + USER_IS_DEACTIVATED("UserIsDeactivated", 40301, "用户已被禁用"), + NOT_ADMIN("NotAdmin", 40302, "不是管理员"), + EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40303, "请使用邮箱登陆"), + PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"), + ID_NOT_EXIST("IdNotExist", 40305, "ID不存在"), DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"), DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"), DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"), diff --git a/src/main/java/com/jsl/oa/utils/JwtUtil.java b/src/main/java/com/jsl/oa/utils/JwtUtil.java index 146a253..abde623 100755 --- a/src/main/java/com/jsl/oa/utils/JwtUtil.java +++ b/src/main/java/com/jsl/oa/utils/JwtUtil.java @@ -54,10 +54,10 @@ public class JwtUtil { try { Long getTokenInUserId = getUserId(token); // 验证用户名是否匹配 - log.debug("Token值" + getTokenInUserId.toString()); + log.info("令牌用户主键:" + getTokenInUserId.toString()); return Pattern.matches("^[0-9]+$", getTokenInUserId.toString()); } catch (Exception e) { - log.debug("Token验证失败", e); + log.info("令牌错误或失效"); return false; } } @@ -80,9 +80,7 @@ public class JwtUtil { long userId; try { userId = Long.parseLong(claimsJws.getBody().getSubject()); - log.debug("用户ID" + userId); } catch (NumberFormatException exception) { - log.debug("用户ID格式错误", exception); throw new NumberFormatException("用户ID格式错误"); } return userId; diff --git a/src/main/java/com/jsl/oa/utils/ResultUtil.java b/src/main/java/com/jsl/oa/utils/ResultUtil.java index 99c6636..90a0cd5 100755 --- a/src/main/java/com/jsl/oa/utils/ResultUtil.java +++ b/src/main/java/com/jsl/oa/utils/ResultUtil.java @@ -10,48 +10,48 @@ public class ResultUtil { @Contract(" -> new") public static @NotNull BaseResponse success() { - log.debug("请求接口成功"); + log.info("成功: Success[200] {}", "操作成功"); return new BaseResponse("Success", 200, "操作成功", null); } @Contract("_ -> new") public static @NotNull BaseResponse success(String message) { - log.debug("请求接口成功"); + log.info("成功: Success[200] {}", message); return new BaseResponse("Success", 200, message, null); } @Contract(value = "_ -> new", pure = true) public static @NotNull BaseResponse success(Object data) { - log.debug("请求接口成功"); + log.info("成功: Success[200] {}", "操作成功"); return new BaseResponse("Success", 200, "操作成功", data); } @Contract(value = "_, _ -> new", pure = true) public static @NotNull BaseResponse success(String message, Object data) { - log.debug("请求接口成功"); + log.info("成功: Success[200] {}", message); return new BaseResponse("Success", 200, message, data); } @Contract("_ -> new") public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode) { - log.debug("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage()); + log.warn("失败: 错误码[" + errorCode.getCode() + "]: {} - {}", errorCode.getOutput(), errorCode.getMessage()); return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage()); } @Contract("_, _ -> new") public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode, Object data) { - log.debug("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage()); + log.warn("失败: 错误码[" + errorCode.getCode() + "]: {} - {}", errorCode.getOutput(), errorCode.getMessage()); return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), data); } @Contract(value = "_, _, _, _ -> new", pure = true) public static @NotNull BaseResponse error(String output, Integer code, String message, Object data) { - log.debug("请求接口错误[" + code + "] " + message); + log.warn("失败: 错误码[" + code + "]: {} - {}", output, message); return new BaseResponse(output, code, message, data); } public static @NotNull ResponseEntity error(String output, Integer code, String message) { - log.debug("请求接口错误[" + code + "] " + message); + log.warn("失败: 错误码[" + code + "]: {} - {}", output, message); return ResponseEntity.status(code) .body(new BaseResponse(output, code, message)); }