From 798a15d57034ff0ca1a095a080b9e19bffe422ba Mon Sep 17 00:00:00 2001 From: lizhanhao Date: Thu, 21 Nov 2024 15:34:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A0=E9=99=A4=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/user/UserController.java | 4 +- .../user/params/UserDeleteKeyWords.java | 29 +++++++++++ .../user/repository/UserRepository.java | 4 +- .../user/service/UserService.java | 3 +- .../user/service/impl/UserServiceImpl.java | 7 +-- .../request/user/UserDeleteRequest.java | 10 ++++ .../data/manage/request/user/UserRequest.java | 11 +++++ .../request/user/UserWorkNumRequest.java | 5 ++ .../manage/repository/dao/UserMapper.java | 3 +- .../repository/impl/UserRepositoryImpl.java | 7 +-- .../main/resources/sqlmapper/UserMapper.xml | 11 +++-- .../service/facade/user/UserFacadeImpl.java | 49 +++++++++++++++---- .../manage/service/mappers/UserMappers.java | 3 +- .../service/mappers/UserMappersImpl.java | 20 +++++--- 14 files changed, 135 insertions(+), 31 deletions(-) create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/params/UserDeleteKeyWords.java 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; } }