diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
index db38ce7..7b9e3a0 100644
--- a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
+++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
@@ -56,13 +56,13 @@ public class UserController {
}
@ApiOperation(value = "校验工号唯一性", notes = "")
- @RequestMapping(value = "/validate", method = RequestMethod.POST)
+ @RequestMapping(value = "/validateWorkNumber", method = RequestMethod.POST)
public ElectromagneticResult> validateWorkNum(@RequestBody UserWorkNumRequest userWorkNumRequest) {
return userFacade.validateWorkNum(userWorkNumRequest);
}
@ApiOperation(value="删除用户信息",notes="")
- @GetMapping(value = "/deleteUser")
+ @PostMapping(value = "/deleteUser")
public ElectromagneticResult> deleteUser(@RequestBody UserDeleteRequest userDeleteRequest) {
return userFacade.deleteUser(userDeleteRequest);
}
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/params/UserDeleteKeyWords.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/params/UserDeleteKeyWords.java
new file mode 100644
index 0000000..5e29e2d
--- /dev/null
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/params/UserDeleteKeyWords.java
@@ -0,0 +1,29 @@
+package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class UserDeleteKeyWords {
+
+ /**
+ * 主键ID
+ */
+ private Long id;
+
+ /**
+ * 用户编码
+ */
+ private String userId;
+
+ /**
+ * 更新人
+ */
+ private String modifier;
+ /**
+ * 更新人姓名
+ */
+ private String modifierName;
+
+}
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/UserRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/UserRepository.java
index 7f61690..54f5ec6 100644
--- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/UserRepository.java
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/UserRepository.java
@@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.us
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
+
import java.util.List;
public interface UserRepository {
@@ -60,6 +62,6 @@ public interface UserRepository {
* @param userId
* @return
*/
- int deleteUser(String userId);
+ int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}
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 bddc728..00cab69 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
@@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.us
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import java.util.List;
@@ -70,5 +71,5 @@ public interface UserService {
* @param userId
* @return
*/
- Boolean deleteUser(String userId);
+ Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}
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 34592ef..c4ba7e6 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
@@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.us
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository.UserRepository;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.UserService;
import electromagnetic.data.framework.share.exception.LoggerConstant;
@@ -102,11 +103,11 @@ public class UserServiceImpl implements UserService {
/**
* 根据userId逻辑删除用户
*
- * @param userId
+ * @param userDeleteKeyWords
* @return
*/
@Override
- public Boolean deleteUser(String userId) {
- return userRepository.deleteUser(userId)>0;
+ public Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords) {
+ return userRepository.deleteUser(userDeleteKeyWords)>0;
}
}
diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserDeleteRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserDeleteRequest.java
index 1685fe4..df6539a 100644
--- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserDeleteRequest.java
+++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserDeleteRequest.java
@@ -17,4 +17,14 @@ public class UserDeleteRequest extends BaseRequest implements Serializable {
* 用户编码
*/
private String userId;
+
+ /**
+ * 更新人姓名
+ */
+ private String modifier;
+
+ /**
+ * 更新人工号
+ */
+ private String modifierName;
}
diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserRequest.java
index 113ed9e..ffdced0 100644
--- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserRequest.java
+++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserRequest.java
@@ -62,4 +62,15 @@ public class UserRequest extends BaseRequest implements Serializable {
* 创建者姓名
*/
private String creatorName;
+
+ /**
+ * 编辑者userId
+ */
+ private String modifier;
+
+ /**
+ * 编辑者姓名
+ */
+ private String modifierName;
+
}
diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserWorkNumRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserWorkNumRequest.java
index 7903a0c..a5e329c 100644
--- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserWorkNumRequest.java
+++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserWorkNumRequest.java
@@ -19,4 +19,9 @@ public class UserWorkNumRequest extends BaseRequest implements Serializable {
*/
private String workNumber;
+ /**
+ * 用户编号
+ */
+ private String userID;
+
}
diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/UserMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/UserMapper.java
index 180d05e..1dc9ea9 100644
--- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/UserMapper.java
+++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/UserMapper.java
@@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.data.manage.repository.dao;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -62,5 +63,5 @@ public interface UserMapper {
* @param userId
* @return
*/
- int deleteUser(String userId);
+ int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}
\ No newline at end of file
diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/UserRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/UserRepositoryImpl.java
index 81d328e..8a2abbd 100644
--- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/UserRepositoryImpl.java
+++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/UserRepositoryImpl.java
@@ -6,6 +6,7 @@ package com.electromagnetic.industry.software.data.manage.repository.impl;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository.UserRepository;
import com.electromagnetic.industry.software.data.manage.repository.dao.UserMapper;
import org.springframework.stereotype.Repository;
@@ -91,12 +92,12 @@ public class UserRepositoryImpl implements UserRepository {
/**
* 删除用户
- * @param userId
+ * @param userDeleteKeyWords
* @return
*/
@Override
- public int deleteUser(String userId) {
- return userMapper.deleteUser(userId);
+ public int deleteUser(UserDeleteKeyWords userDeleteKeyWords) {
+ return userMapper.deleteUser(userDeleteKeyWords);
}
diff --git a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml
index ccac3af..c8c4b57 100644
--- a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml
+++ b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml
@@ -83,7 +83,7 @@
modifier = #{modifier},
modifier_name = #{modifierName},
- where id= #{id}
+ where user_id= #{userId}
@@ -124,6 +124,7 @@
+ and effect_flag=1
@@ -193,9 +194,13 @@
where user_id = #{userId}
-
+
update ed_users
- set effect_flag=0
+
+ effect_flag=0,
+ modifier=#{modifier},
+ modifier_name=#{modifierName}
+
where user_id = #{userId}
\ No newline at end of file
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 9e7efac..b85baeb 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
@@ -4,6 +4,7 @@ import com.electromagnetic.industry.software.data.manage.common.ElectromagneticE
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.TokenService;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.UserService;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.util.UserConstant;
@@ -104,13 +105,41 @@ public class UserFacadeImpl implements UserFacade {
*/
@Override
public ElectromagneticResult> validateWorkNum(UserWorkNumRequest userWorkNumRequest) {
- // 将请求对象转换为模型对象
+ // 将前端请求对象转换为模型对象,包含userId和userWorkNum
User user = UserMappers.INSTANCE.getUserWorkNumRequestToModel(userWorkNumRequest);
- // 尝试根据工号获取用户
- User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
- // 根据是否存在具有相同工号的用户来确定工号的唯一性
- boolean isWorkNumberUnique = (existingUser == null);
- return ElectromagneticResultUtil.success(Boolean.valueOf(isWorkNumberUnique));
+
+ //根据请求对象的userId判断当前处于什么状态
+ if(user.getUserId()==null){
+ //userId为空,表示是新增用户阶段
+ //判断数据库中有无该工号对应的用户
+ User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
+ //如果有该用户就返回false,如果没有(==null)就返回true
+ boolean isWorkNumberUnique = (existingUser == null);
+ return ElectromagneticResultUtil.success(isWorkNumberUnique);
+ }else{
+ //userId不为空,表示是编辑用户阶段
+ //请求对象的userWordNum在数据库中对应的user
+ User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
+ //判断,请求对象的userId对应的user和请求对象的userWordNum在数据库中对应的user是否为用一个
+ if(existingUser!=null){
+ //请求对象的userWordNum在数据库中对应的user与请求对象的userId对应的user是否为同一个
+ if(user.getUserId().equals(existingUser.getUserId())){
+ // 如果获取到的用户ID与当前编辑的用户ID相同,说明工号未改变,直接返回true
+ return ElectromagneticResultUtil.success(true);
+ }else{
+ // 如果获取到的用户ID与当前编辑的用户ID不同,说明工号已改变,需要判断新工号是否唯一
+ // 如果根据新工号获取不到用户,说明新工号唯一
+ boolean isWorkNumberUnique = (userService.getUserByWorkNumber(user.getWorkNumber()) == null);
+ return ElectromagneticResultUtil.success(isWorkNumberUnique);
+ }
+ }else{
+ //请求对象的userWordNum在数据库中不存在对应的user
+ return ElectromagneticResultUtil.success(true);
+ }
+
+ }
+
+
}
/**
@@ -151,15 +180,17 @@ public class UserFacadeImpl implements UserFacade {
@Override
public ElectromagneticResult> deleteUser(UserDeleteRequest userDeleteRequest) {
// 将请求对象转换为模型对象
- User user = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest);
+ UserDeleteKeyWords userDeleteKeyWords = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest);
+
// 检查用户是否已经被逻辑删除
- User existingUser = userService.getSingleUser(user.getUserId());
+ User existingUser = userService.getSingleUser(userDeleteKeyWords.getUserId());
+
if(existingUser != null && existingUser.getEffectFlag()==0){
// 如果用户已经被逻辑删除(在这个假设中,0 表示已删除),则不进行任何操作或返回错误
return ElectromagneticResultUtil.fail(ElectromagneticErrorEnum. FINE_DELETE_USER_ERROR);
}
if(existingUser!=null && existingUser.getEffectFlag()==1){// 在这个假设中,1 表示未删除
- return ElectromagneticResultUtil.success(userService.deleteUser(user.getUserId()));
+ return ElectromagneticResultUtil.success(userService.deleteUser(userDeleteKeyWords));
}else{
// 如果用户不存在(理论上不应该发生,除非数据库状态不一致),则返回错误
return ElectromagneticResultUtil.fail(ElectromagneticErrorEnum. FINE_DELETE_USER_ERROR);
diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappers.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappers.java
index 3393f1c..5fc8c2e 100644
--- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappers.java
+++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappers.java
@@ -5,6 +5,7 @@ package com.electromagnetic.industry.software.data.manage.service.mappers;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest;
import com.electromagnetic.industry.software.data.manage.request.user.*;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
@@ -78,7 +79,7 @@ public interface UserMappers {
* @param userDeleteRequest
* @return
*/
- User getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest);
+ UserDeleteKeyWords getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest);
}
\ No newline at end of file
diff --git a/service/target/generated-sources/annotations/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappersImpl.java b/service/target/generated-sources/annotations/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappersImpl.java
index b2f2e61..e702e3c 100644
--- a/service/target/generated-sources/annotations/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappersImpl.java
+++ b/service/target/generated-sources/annotations/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappersImpl.java
@@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.data.manage.service.mappers;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
+import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.request.user.SearchUserRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserDeleteRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest;
@@ -16,8 +17,8 @@ import javax.annotation.Generated;
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
- date = "2024-11-20T10:52:53+0800",
- comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_271 (Oracle Corporation)"
+ date = "2024-11-21T15:23:57+0800",
+ comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_321 (Oracle Corporation)"
)
public class UserMappersImpl implements UserMappers {
@@ -40,6 +41,8 @@ public class UserMappersImpl implements UserMappers {
user.setInternshipEndDate( userRequest.getInternshipEndDate() );
user.setCreator( userRequest.getCreator() );
user.setCreatorName( userRequest.getCreatorName() );
+ user.setModifier( userRequest.getModifier() );
+ user.setModifierName( userRequest.getModifierName() );
return user;
}
@@ -104,6 +107,8 @@ public class UserMappersImpl implements UserMappers {
searchKeyWords.setGmtCreate( searchUserRequest.getGmtCreate() );
searchKeyWords.setJoinTime( searchUserRequest.getJoinTime() );
searchKeyWords.setInternEndDate( searchUserRequest.getInternEndDate() );
+ searchKeyWords.setPageIndex( searchUserRequest.getPageIndex() );
+ searchKeyWords.setPageSize( searchUserRequest.getPageSize() );
return searchKeyWords;
}
@@ -161,16 +166,17 @@ public class UserMappersImpl implements UserMappers {
}
@Override
- public User getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest) {
+ public UserDeleteKeyWords getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest) {
if ( userDeleteRequest == null ) {
return null;
}
- User user = new User();
+ UserDeleteKeyWords userDeleteKeyWords = new UserDeleteKeyWords();
- user.setUserId( userDeleteRequest.getUserId() );
- user.setUserName( userDeleteRequest.getUserName() );
+ userDeleteKeyWords.setUserId( userDeleteRequest.getUserId() );
+ userDeleteKeyWords.setModifier( userDeleteRequest.getModifier() );
+ userDeleteKeyWords.setModifierName( userDeleteRequest.getModifierName() );
- return user;
+ return userDeleteKeyWords;
}
}