From cea8c222a289b85d0156e80bcd9c90be546d9d2a Mon Sep 17 00:00:00 2001 From: s2042968 Date: Mon, 25 Nov 2024 14:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E6=9C=AA=E5=8F=91=E5=B8=83=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boardservice/user/enums/PublishEnum.java | 24 +++++++++++++++++++ .../user/service/UserService.java | 9 ++++++- .../user/service/impl/UserServiceImpl.java | 22 +++++++++++++++++ .../main/resources/sqlmapper/UserMapper.xml | 2 +- .../service/facade/user/UserFacadeImpl.java | 2 +- 5 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/enums/PublishEnum.java diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/enums/PublishEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/enums/PublishEnum.java new file mode 100644 index 0000000..eb12480 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/enums/PublishEnum.java @@ -0,0 +1,24 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 发布状态枚举 + */ +@AllArgsConstructor +@Getter +public enum PublishEnum { + /** + * 已发布 + */ + PUBLISHED(1,"已发布"), + /** + * 未发布 + */ + UNPUBLISHED(0,"未发布"), + ; + private Integer code; + private String desc; + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/UserService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/UserService.java index 536c606..55f566f 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/UserService.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/UserService.java @@ -69,8 +69,15 @@ public interface UserService { /** * 根据userId逻辑删除用户 - * @param userId + * @param userDeleteKeyWords * @return */ Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords); + + /** + * 检查用户是否有效,未发布的用户无效,实习到期的用户无效 + * @param user + * @return + */ + Boolean checkUserValid(User user); } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java index e9f6fab..46f65f2 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java @@ -1,5 +1,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums.EffectFlagEnum; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.enums.PublishEnum; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User; @@ -15,6 +17,8 @@ import java.util.List; import java.lang.String; import javax.annotation.Resource; +import static cn.hutool.core.date.DateTime.now; + @Service public class UserServiceImpl implements UserService { @@ -111,4 +115,22 @@ public class UserServiceImpl implements UserService { public Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords) { return userRepository.deleteUser(userDeleteKeyWords)>0; } + + /** + * 检查用户是否有效,未发布,实习到期,已被逻辑删除的用户无效 + * @param user + * @return + */ + @Override + public Boolean checkUserValid(User user){ + if ( user == null + || user.getIsPublished() == PublishEnum.UNPUBLISHED.getCode() + || user.getEffectFlag() == EffectFlagEnum.EFFECT_FLAG_0.getCode() + ) { + return false; + } else if( user.getInternshipEndDate()!=null && user.getInternshipEndDate().before(now())) { + return false; + } + return true; + } } diff --git a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml index 996a144..1e765f1 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml @@ -122,7 +122,7 @@ - AND is_published = CAST(#{isPublished} AS INT) + AND is_published = CAST(#{isPublished} AS SIGNED) diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java index 68267c7..c60d223 100644 --- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java @@ -49,7 +49,7 @@ public class UserFacadeImpl implements UserFacade { UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest); String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstant.SECRET_KEY); User user = userService.getUserByWorkNumber(info.getWorkNumber()); - if ( user!=null && userService.matchPassword(user, decodePwd)) { + if ( userService.checkUserValid(user) && userService.matchPassword(user, decodePwd)) { String tokenStr = tokenService.createToken(info); tokenService.createUserToken(user, tokenStr); UserLoginResponse userLoginResponse = new UserLoginResponse();