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 df24a3c..c74e56e 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 @@ -9,6 +9,7 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserReques import electromagnetic.data.framework.share.model.ElectromagneticResult; import com.electromagnetic.industry.software.data.manage.request.user.*; import io.swagger.annotations.ApiOperation; +import jdk.internal.org.objectweb.asm.tree.analysis.Value; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -34,7 +35,7 @@ public class UserController { @ApiOperation(value="编辑用户信息",notes = "") @PutMapping("/updateUser") - public ElectromagneticResult editUser(@RequestBody UserModiRequest userModiRequest){ return userFacade.modifyUser(userModiRequest);} + public ElectromagneticResult updateUser(@RequestBody UserModiRequest userModiRequest){ return userFacade.modifyUser(userModiRequest);} @ApiOperation(value = "发布用户信息", notes = "") @RequestMapping(value = "/publish", method = RequestMethod.POST) @@ -59,4 +60,10 @@ public class UserController { public ElectromagneticResult validateWorkNum(@RequestBody UserWorkNumRequest userWorkNumRequest) { return userFacade.validateWorkNum(userWorkNumRequest); } + + @ApiOperation(value="删除用户信息",notes="") + @GetMapping(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/repository/UserRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/UserRepository.java index 72846a1..06f8b56 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 @@ -48,5 +48,11 @@ public interface UserRepository { */ List search(SearchKeywords searchKeywords); + /** + * 删除用户 + * @param userId + * @return + */ + int deleteUser(String userId); } 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 b815198..518d8bf 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 @@ -58,4 +58,11 @@ public interface UserService { * @return */ List searchUser(SearchKeywords searchKeywords); + + /** + * 根据userId逻辑删除用户 + * @param userId + * @return + */ + Boolean deleteUser(String userId); } 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 6df8007..c4b7df2 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 @@ -89,4 +89,15 @@ public class UserServiceImpl implements UserService { */ @Override public List searchUser(SearchKeywords searchKeywords) { return userRepository.search(searchKeywords); } + + /** + * 根据userId逻辑删除用户 + * + * @param userId + * @return + */ + @Override + public Boolean deleteUser(String userId) { + return userRepository.deleteUser(userId)>0; + } } diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java index 2890365..f805b5e 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java @@ -65,12 +65,12 @@ public enum ElectromagneticErrorEnum implements ErrorEnum { REPORT_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53034", "REPORT_URL_ERROR", "下架原因不能为空"), REPORT_CANCEL_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53035", "REPORT_URL_ERROR", "取消下架原因不能为空"), DEPT_EXIST_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53036", "DEPT_EXIST_REPORT", "部门下已挂在数据"), - FINE_CREATE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53037", "FINE_CREATE_USER_ERROR", "帆软创建用户失败"), + FINE_CREATE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53037", "FINE_CREATE_USER_ERROR", "创建用户失败"), FINE_CONNECT_LIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53038", "FINE_CONNECT_LIST_ERROR", "获取finebi数据库连接列表错误"), FINE_CONNECT_TABLE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53039", "FINE_CONNECT_TABLE_ERROR", "获取finebi数据库对应表列表错误"), FINE_ADD_GROUP_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53040", "FINE_ADD_GROUP_ERROR", "添加分组报错"), FINE_ADD_PACK_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53041", "FINE_ADD_PACK_ERROR", "添加业务包报错"), - FINE_DELETE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53042", "FINE_DELETE_USER_ERROR", "帆软删除用户失败"), + FINE_DELETE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53042", "FINE_DELETE_USER_ERROR", "删除用户失败"), FINE_ADD_DB_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53043", "FINE_ADD_DB_ERROR", "数据集已存在,请不要重复添加"), FINE_GET_TABLE_INFO_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53044", "FINE_GET_TABLE_INFO_ERROR", "数据集表信息错误"), LABEL_OBJNAME_IS_CHINESE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53045", "LABEL_OSS_ANALYSIS_FAIL", "名称不能包含特殊字符(下划线,横杠,加号 除外)"), diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java index 74f43d3..b7af854 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java @@ -59,4 +59,11 @@ public interface UserFacade { * @return */ ElectromagneticResult searchUser(SearchUserRequest searchUserRequest); + + /** + * 刪除用戶(逻辑删除) + * @param userDeleteRequest + * @return + */ + ElectromagneticResult deleteUser(UserDeleteRequest userDeleteRequest); } 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 new file mode 100644 index 0000000..1685fe4 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/UserDeleteRequest.java @@ -0,0 +1,20 @@ +package com.electromagnetic.industry.software.data.manage.request.user; + +import cn.hutool.core.date.DateTime; +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class UserDeleteRequest extends BaseRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户编码 + */ + 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 18a4406..9914c03 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 @@ -49,4 +49,11 @@ public interface UserMapper { * @return */ List search(SearchKeywords searchKeywords); + + /** + * 通过用户ID删除用户 + * @param userId + * @return + */ + int deleteUser(String userId); } \ 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 1a698ea..5d21b75 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 @@ -80,4 +80,16 @@ public class UserRepositoryImpl implements UserRepository { public List search(SearchKeywords searchKeywords) { return userMapper.search(searchKeywords); } + + /** + * 删除用户 + * @param userId + * @return + */ + @Override + public int deleteUser(String userId) { + return userMapper.deleteUser(userId); + } + + } \ No newline at end of file diff --git a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml index cf08d30..6f331a8 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml @@ -156,4 +156,10 @@ where user_id = #{userId} + + + update ed_users + set effect_flag=0 + 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 d4114fb..07e603c 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 @@ -1,25 +1,19 @@ package com.electromagnetic.industry.software.data.manage.service.facade.user; -import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.Indicator; -import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; -import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardDetial; +import com.electromagnetic.industry.software.data.manage.common.ElectromagneticErrorEnum; 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.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; import com.electromagnetic.industry.software.data.manage.facade.user.UserFacade; -import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorCardRequest; import com.electromagnetic.industry.software.data.manage.request.user.*; import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; -import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardDetailReponse; -import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorResponse; import com.electromagnetic.industry.software.data.manage.response.user.SingleUserResponse; import com.electromagnetic.industry.software.data.manage.response.user.UserSearchResponse; -import com.electromagnetic.industry.software.data.manage.service.mappers.IndicatorCardMappers; import com.electromagnetic.industry.software.data.manage.service.mappers.UserMappers; import electromagnetic.data.framework.share.id.IdWorker; import electromagnetic.data.framework.share.model.ElectromagneticResult; @@ -30,7 +24,6 @@ import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; @Service @@ -140,6 +133,30 @@ public class UserFacadeImpl implements UserFacade { return ElectromagneticResultUtil.success(userSearchResponse); } + /** + * 刪除用戶(逻辑删除) + * @param userDeleteRequest + * @return + */ + @Override + public ElectromagneticResult deleteUser(UserDeleteRequest userDeleteRequest) { + // 将请求对象转换为模型对象 + User user = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest); + // 检查用户是否已经被逻辑删除 + User existingUser = userService.getSingleUser(user.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())); + }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 c327309..5684c1d 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,15 +5,12 @@ package com.electromagnetic.industry.software.data.manage.service.mappers; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.SearchKeywords; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User; -import com.electromagnetic.industry.software.data.manage.request.user.GetSingleUserRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest; -import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest; import com.electromagnetic.industry.software.data.manage.request.user.*; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo; import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; import com.electromagnetic.industry.software.data.manage.response.user.SingleUserResponse; -import com.electromagnetic.industry.software.data.manage.response.user.UserSearchResponse; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -76,4 +73,12 @@ public interface UserMappers { */ User getUserWorkNumRequestToModel(UserWorkNumRequest userWorkNumRequest); + /** + * 删除单条用户信息Request转用户模型 + * @param userDeleteRequest + * @return + */ + User 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 070b3b4..0ad222c 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 @@ -4,6 +4,7 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.use 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.request.user.SearchUserRequest; +import com.electromagnetic.industry.software.data.manage.request.user.UserDeleteRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; @@ -15,8 +16,8 @@ import javax.annotation.Generated; @Generated( value = "org.mapstruct.ap.MappingProcessor", - date = "2024-11-19T13:26:03+0800", - comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_141 (Oracle Corporation)" + date = "2024-11-20T10:26:08+0800", + comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_321 (Oracle Corporation)" ) public class UserMappersImpl implements UserMappers { @@ -151,4 +152,18 @@ public class UserMappersImpl implements UserMappers { return user; } + + @Override + public User getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest) { + if ( userDeleteRequest == null ) { + return null; + } + + User user = new User(); + + user.setUserId( userDeleteRequest.getUserId() ); + user.setUserName( userDeleteRequest.getUserName() ); + + return user; + } }