Merge branch 'develop_comac' of https://gitee.com/shuzisaidao/electromagnetic-data into develop_comac

This commit is contained in:
s2042968 2024-11-19 09:31:27 +08:00
commit 796f4a0e1a
14 changed files with 331 additions and 1 deletions

View File

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

View File

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

View File

@ -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<User> search(SearchKeywords searchKeywords);
}

View File

@ -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<User> searchUser(SearchKeywords searchKeywords);
}

View File

@ -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<User> searchUser(SearchKeywords searchKeywords) { return userRepository.search(searchKeywords); }
}

View File

@ -52,4 +52,11 @@ public interface UserFacade {
* @return
*/
ElectromagneticResult<?> getSingleUser(GetSingleUserRequest getSingleUserRequest);
/**
* 查询用户信息
* @param searchUserRequest
* @return
*/
ElectromagneticResult<?> searchUser(SearchUserRequest searchUserRequest);
}

View File

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

View File

@ -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<SingleUserResponse> userList;
//private List<User> userList;
}

View File

@ -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<User> search(SearchKeywords searchKeywords);
}

View File

@ -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<User> search(SearchKeywords searchKeywords) {
return userMapper.search(searchKeywords);
}
}

View File

@ -98,6 +98,55 @@
</foreach>
</update>
<select id="search" parameterType="com.electromagnetic.industry.software.data.manage.request.user.UserSearchRequest" resultType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
SELECT *
FROM ed_users
<where>
<!-- 条件 1按用户名或工号搜索 -->
<if test="keyword != null and keyword != ''">
(user_name LIKE CONCAT('%', #{keyword}, '%') OR work_number LIKE CONCAT('%', #{keyword}, '%'))
</if>
<!-- 条件 2按用户状态搜索 -->
<if test="userStatus != null and userStatus != ''">
<choose>
<when test="userStatus != 'all'">
AND user_status = #{userStatus}
</when>
</choose>
</if>
<!-- 条件 3按发布状态搜索 -->
<if test="isPublished != null and isPublished != ''">
<choose>
<when test="isPublished != 'all'">
AND is_published = #{isPublished}
</when>
</choose>
</if>
</where>
<!-- 动态排序条件 -->
<choose>
<when test="sortBy != null and sortOrder != null">
<if test="sortBy == 'gmtCreate'">
ORDER BY gmt_create ${sortOrder}
</if>
<if test="sortBy == 'joinTime'">
ORDER BY join_time ${sortOrder}
</if>
<if test="sortBy == 'internEndDate'">
ORDER BY internship_end_date ${sortOrder}
</if>
</when>
<!-- 默认按工号的字典序排列 -->
<otherwise>
ORDER BY work_number ASC
</otherwise>
</choose>
</select>
<select id="selectUserByWorkNumber" parameterType="String" resultMap="UserResultMap">
<include refid="selectUserVo" />
where work_number = #{workNumber}

View File

@ -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<UserSearchResponse> searchUser(SearchUserRequest searchUserRequest){
List<User> userList = userService.searchUser(UserMappers.INSTANCE.getSearchKeywordsRequestToModel(searchUserRequest));
UserSearchResponse userSearchResponse = UserMappers.INSTANCE.userListToResponse(userList);
return ElectromagneticResultUtil.success(userSearchResponse);
}
}

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.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<User> users);
/**
* 编辑用户Request转用户模型
* @param userModiRequest

View File

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