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 d1e166a..3a1aea3 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 12e9b88..5d6ddeb 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,6 +1,8 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User; +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.params.UserDeleteKeyWords; @@ -14,6 +16,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import static cn.hutool.core.date.DateTime.now; @Service public class UserServiceImpl implements UserService { @@ -111,4 +114,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/pom.xml b/service/pom.xml index 803c542..d952cf8 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -33,7 +33,6 @@ com.github.pagehelper pagehelper - com.electromagnetic.data electromagnetic-framework 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 be3a96c..fd8f6fb 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 @@ -44,7 +44,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();