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 9eea355..df24a3c 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 @@ -48,6 +48,11 @@ public class UserController { return userFacade.getSingleUser(getSingleUserRequest); } + @ApiOperation(value = "查询用户信息", notes = "") + @RequestMapping(value = "/list", method = RequestMethod.GET) + public ElectromagneticResult searchUser(SearchUserRequest searchUserRequest) { + return userFacade.searchUser(searchUserRequest); + } @ApiOperation(value = "校验工号唯一性", notes = "") @RequestMapping(value = "/validate", method = RequestMethod.POST) diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/model/SearchKeywords.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/model/SearchKeywords.java new file mode 100644 index 0000000..cea6324 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/model/SearchKeywords.java @@ -0,0 +1,18 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model; + +public class SearchKeywords { + /** + * 搜索关键词 + */ + private String keyword; + + /** + * 用户状态 + */ + private String userStatus; + + /** + * 用户发布状态 + */ + private int isPublished; +} 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 cf5ced7..72846a1 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 @@ -1,5 +1,6 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository; +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 java.util.List; @@ -39,4 +40,13 @@ public interface UserRepository { * @return */ User getSingleUser(String userId); + + /** + * 查询用户 + * @param searchKeywords + * @return + */ + List search(SearchKeywords searchKeywords); + + } 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 8cd8245..b815198 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 @@ -1,5 +1,6 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service; +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.domain.boardservice.user.model.UserLoginInfo; @@ -50,4 +51,11 @@ public interface UserService { * @return */ User getSingleUser(String userId); + + /** + * 查询用户信息 + * @param searchKeywords + * @return + */ + List searchUser(SearchKeywords searchKeywords); } 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 36992d4..6df8007 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,5 +1,6 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl; +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.domain.boardservice.user.repository.UserRepository; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.UserService; @@ -80,4 +81,12 @@ public class UserServiceImpl implements UserService { */ @Override public User getSingleUser(String userId) { return userRepository.getSingleUser(userId); } + + /** + * 查询用户信息 + * @param searchKeywords + * @return + */ + @Override + public List searchUser(SearchKeywords searchKeywords) { return userRepository.search(searchKeywords); } } 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 b6aa635..74f43d3 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 @@ -52,4 +52,11 @@ public interface UserFacade { * @return */ ElectromagneticResult getSingleUser(GetSingleUserRequest getSingleUserRequest); + + /** + * 查询用户信息 + * @param searchUserRequest + * @return + */ + ElectromagneticResult searchUser(SearchUserRequest searchUserRequest); } diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/SearchUserRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/SearchUserRequest.java new file mode 100644 index 0000000..bd42529 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/user/SearchUserRequest.java @@ -0,0 +1,38 @@ +package com.electromagnetic.industry.software.data.manage.request.user; + +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SearchUserRequest extends BaseRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 搜索关键词 + */ + private String keyword; + + /** + * 用户状态 + */ + private String userStatus; + + /** + * 用户发布状态 + */ + private int isPublished; + + /** + * 排序字段: "gmtCreate", "joinTime", "internEndDate" + */ + private String sortBy; + + /** + * 排序方式: "asc" 或 "desc" + */ + private String sortOrder; +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/user/UserSearchResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/user/UserSearchResponse.java new file mode 100644 index 0000000..97f5f74 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/user/UserSearchResponse.java @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.user; + +import lombok.Data; +import org.apache.catalina.User; + +import java.io.Serializable; +import java.util.List; + +/** + * 指标卡详情Reponse + * @author + * @version $Id: IndicatorCardDetail.java, v 0.1 2024-08-14 10:37 + */ +@Data +public class UserSearchResponse implements Serializable { + private static final long serialVersionUID = -7475233976453471059L; + + /** + * 用户列表 + */ + private List userList; + //private List userList; +} \ No newline at end of file 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 ed74fed..18a4406 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 @@ -1,5 +1,6 @@ package com.electromagnetic.industry.software.data.manage.repository.dao; +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 org.apache.ibatis.annotations.Mapper; @@ -41,4 +42,11 @@ public interface UserMapper { * @return */ User getSingleUser(String userId); + + /** + * 通过用户编码查询用户 + * @param searchKeywords + * @return + */ + List search(SearchKeywords searchKeywords); } \ 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 0729eb2..1a698ea 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 @@ -4,6 +4,7 @@ package com.electromagnetic.industry.software.data.manage.repository.impl; +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.domain.boardservice.user.repository.UserRepository; import com.electromagnetic.industry.software.data.manage.repository.dao.UserMapper; @@ -69,4 +70,14 @@ public class UserRepositoryImpl implements UserRepository { public User getSingleUser(String userId) { return userMapper.getSingleUser(userId); } + + /** + * 查询用户 + * @param searchKeywords + * @return + */ + @Override + public List search(SearchKeywords searchKeywords) { + return userMapper.search(searchKeywords); + } } \ 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 4b32137..73a99e4 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml @@ -98,7 +98,56 @@ - + SELECT * + FROM ed_users + + + + (user_name LIKE CONCAT('%', #{keyword}, '%') OR work_number LIKE CONCAT('%', #{keyword}, '%')) + + + + + + + AND user_status = #{userStatus} + + + + + + + + + AND is_published = #{isPublished} + + + + + + + + + + ORDER BY gmt_create ${sortOrder} + + + ORDER BY join_time ${sortOrder} + + + ORDER BY internship_end_date ${sortOrder} + + + + + ORDER BY work_number ASC + + + + + + 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 e1bd5a8..9991352 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,17 +1,25 @@ 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.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; @@ -22,6 +30,8 @@ import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; @Service public class UserFacadeImpl implements UserFacade { @@ -116,4 +126,18 @@ public class UserFacadeImpl implements UserFacade { return ElectromagneticResultUtil.success(singleUserResponse); } + /** + * 查询用户信息 + * @param searchUserRequest + * @return + */ + @Override + public ElectromagneticResult searchUser(SearchUserRequest searchUserRequest){ + List userList = userService.searchUser(UserMappers.INSTANCE.getSearchKeywordsRequestToModel(searchUserRequest)); + UserSearchResponse userSearchResponse = UserMappers.INSTANCE.userListToResponse(userList); + return ElectromagneticResultUtil.success(userSearchResponse); + } + + + } 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 966ed76..185e4e6 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 @@ -3,6 +3,7 @@ */ 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; @@ -12,6 +13,7 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.use 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; @@ -45,6 +47,21 @@ public interface UserMappers { * @return */ SingleUserResponse getSingleUserToResponse(User user); + + /** + * 获取单条用户信息Request转用户模型 + * @param searchUserRequest + * @return + */ + SearchKeywords getSearchKeywordsRequestToModel(SearchUserRequest searchUserRequest); + + /** + * 获取单条用户信息Request转用户模型 + * @param users + * @return + */ + UserSearchResponse userListToResponse(List users); + /** * 编辑用户Request转用户模型 * @param userModiRequest 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 new file mode 100644 index 0000000..6228e69 --- /dev/null +++ b/service/target/generated-sources/annotations/com/electromagnetic/industry/software/data/manage/service/mappers/UserMappersImpl.java @@ -0,0 +1,100 @@ +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.request.user.GetSingleUserRequest; +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 javax.annotation.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-11-15T16:08:08+0800", + comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_141 (Oracle Corporation)" +) +public class UserMappersImpl implements UserMappers { + + @Override + public User getUserRequestToModel(UserRequest userRequest) { + if ( userRequest == null ) { + return null; + } + + User user = new User(); + + user.setUserId( userRequest.getUserId() ); + user.setUserName( userRequest.getUserName() ); + user.setWorkNumber( userRequest.getWorkNumber() ); + user.setMobile( userRequest.getMobile() ); + user.setUserDept( userRequest.getUserDept() ); + user.setUserTitle( userRequest.getUserTitle() ); + user.setJoinTime( userRequest.getJoinTime() ); + user.setUserStatus( userRequest.getUserStatus() ); + user.setInternshipEndDate( userRequest.getInternshipEndDate() ); + user.setCreator( userRequest.getCreator() ); + user.setCreatorName( userRequest.getCreatorName() ); + + return user; + } + + @Override + public UserLoginInfo getUserLoginRequestToModel(UserLoginRequest loginRequest) { + if ( loginRequest == null ) { + return null; + } + + UserLoginInfo userLoginInfo = new UserLoginInfo(); + + userLoginInfo.setWorkNumber( loginRequest.getWorkNumber() ); + userLoginInfo.setUserPwd( loginRequest.getUserPwd() ); + + return userLoginInfo; + } + + @Override + public User getSingleUserRequestToModel(GetSingleUserRequest getSingleUserRequest) { + if ( getSingleUserRequest == null ) { + return null; + } + + User user = new User(); + + user.setUserId( getSingleUserRequest.getUserId() ); + user.setUserName( getSingleUserRequest.getUserName() ); + + return user; + } + + @Override + public SingleUserResponse getSingleUserToResponse(User user) { + if ( user == null ) { + return null; + } + + SingleUserResponse singleUserResponse = new SingleUserResponse(); + + singleUserResponse.setId( user.getId() ); + singleUserResponse.setUserId( user.getUserId() ); + singleUserResponse.setUserName( user.getUserName() ); + singleUserResponse.setWorkNumber( user.getWorkNumber() ); + singleUserResponse.setMobile( user.getMobile() ); + singleUserResponse.setUserDept( user.getUserDept() ); + singleUserResponse.setUserTitle( user.getUserTitle() ); + singleUserResponse.setUserPwd( user.getUserPwd() ); + singleUserResponse.setJoinTime( user.getJoinTime() ); + singleUserResponse.setUserStatus( user.getUserStatus() ); + singleUserResponse.setInternshipEndDate( user.getInternshipEndDate() ); + singleUserResponse.setIsPublished( user.getIsPublished() ); + singleUserResponse.setSalt( user.getSalt() ); + singleUserResponse.setCreator( user.getCreator() ); + singleUserResponse.setCreatorName( user.getCreatorName() ); + singleUserResponse.setGmtCreate( user.getGmtCreate() ); + singleUserResponse.setModifier( user.getModifier() ); + singleUserResponse.setModifierName( user.getModifierName() ); + singleUserResponse.setGmtModified( user.getGmtModified() ); + singleUserResponse.setEffectFlag( user.getEffectFlag() ); + + return singleUserResponse; + } +}