修改删除用户功能

This commit is contained in:
lizhanhao 2024-11-21 15:34:15 +08:00
parent 00103fdff5
commit 798a15d570
14 changed files with 135 additions and 31 deletions

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -17,4 +17,14 @@ public class UserDeleteRequest extends BaseRequest implements Serializable {
* 用户编码
*/
private String userId;
/**
* 更新人姓名
*/
private String modifier;
/**
* 更新人工号
*/
private String modifierName;
}

View File

@ -62,4 +62,15 @@ public class UserRequest extends BaseRequest implements Serializable {
* 创建者姓名
*/
private String creatorName;
/**
* 编辑者userId
*/
private String modifier;
/**
* 编辑者姓名
*/
private String modifierName;
}

View File

@ -19,4 +19,9 @@ public class UserWorkNumRequest extends BaseRequest implements Serializable {
*/
private String workNumber;
/**
* 用户编号
*/
private String userID;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -83,7 +83,7 @@
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
</set>
where id= #{id}
where user_id= #{userId}
</update>
@ -124,6 +124,7 @@
</when>
</choose>
</if>
and effect_flag=1
</where>
<!-- 动态排序条件 -->
@ -193,9 +194,13 @@
where user_id = #{userId}
</select>
<update id="deleteUser" parameterType="String">
<update id="deleteUser" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords">
update ed_users
set effect_flag=0
<set>
effect_flag=0,
modifier=#{modifier},
modifier_name=#{modifierName}
</set>
where user_id = #{userId}
</update>
</mapper>

View File

@ -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);
// 尝试根据工号获取用户
//根据请求对象的userId判断当前处于什么状态
if(user.getUserId()==null){
//userId为空表示是新增用户阶段
//判断数据库中有无该工号对应的用户
User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
// 根据是否存在具有相同工号的用户来确定工号的唯一性
//如果有该用户就返回false,如果没有(==null)就返回true
boolean isWorkNumberUnique = (existingUser == null);
return ElectromagneticResultUtil.success(Boolean.valueOf(isWorkNumberUnique));
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);

View File

@ -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);
}

View File

@ -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;
}
}