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();