1、修新增获取所有用户接口

main
shenzhidan 2026-03-06 15:21:46 +08:00
parent 8a4523e604
commit 4286ad9889
12 changed files with 401 additions and 0 deletions

View File

@ -0,0 +1,28 @@
package com.zcloud.certificate.web;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.certificate.api.UserServiceI;
import com.zcloud.certificate.dto.UserQryCmd;
import com.zcloud.certificate.dto.clientobject.UserCO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "user")
@RequestMapping("/${application.gateway}/user")
@RestController
@AllArgsConstructor
public class UserController {
private final UserServiceI userService;
@ApiOperation("查询所有用户")
@GetMapping("/listAll")
@PreAuthorize("@pms.hasAnyPermission('gfd-tzzyrugl', 'gfd-tzsbczrygl', 'gfd-qyzyfzrgl','gfd-qyaqscglrygl', 'qyd-tzzyrugl', 'qyd-tzsbczrygl', 'qyd-zyfzrgl','qyd-aqscglrygl', 'xgfd-zyfzrgl', 'xgfd-tzzzsbczrygl', 'xgfd-aqscglrygl','xgfd-tzzyrugl')")
public MultiResponse<UserCO> listAll(UserQryCmd userQryCmd) {
return userService.listAll(userQryCmd);
}
}

View File

@ -0,0 +1,13 @@
package com.zcloud.certificate.command.convertor;
import com.zcloud.certificate.dto.clientobject.UserCO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring")
public interface UserCoConvertor {
List<UserCO> converDOsToCOs(List<UserDO> userDOs);
}

View File

@ -0,0 +1,28 @@
package com.zcloud.certificate.command.query;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.certificate.command.convertor.UserCoConvertor;
import com.zcloud.certificate.dto.UserQryCmd;
import com.zcloud.certificate.dto.clientobject.UserCO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import com.zcloud.certificate.persistence.repository.UserRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
@AllArgsConstructor
public class UserQueryExe {
private final UserRepository userRepository;
private final UserCoConvertor userCoConvertor;
public MultiResponse<UserCO> executeListAll(UserQryCmd userQryCmd) {
Map<String, Object> params = PageQueryHelper.toHashMap(userQryCmd);
List<UserDO> userDOList = userRepository.listAll(params);
List<UserCO> userCOList = userCoConvertor.converDOsToCOs(userDOList);
return MultiResponse.of(userCOList);
}
}

View File

@ -0,0 +1,20 @@
package com.zcloud.certificate.service;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.certificate.api.UserServiceI;
import com.zcloud.certificate.command.query.UserQueryExe;
import com.zcloud.certificate.dto.UserQryCmd;
import com.zcloud.certificate.dto.clientobject.UserCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class UserServiceImpl implements UserServiceI {
private final UserQueryExe userQueryExe;
@Override
public MultiResponse<UserCO> listAll(UserQryCmd userQryCmd) {
return userQueryExe.executeListAll(userQryCmd);
}
}

View File

@ -0,0 +1,10 @@
package com.zcloud.certificate.api;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.certificate.dto.UserQryCmd;
import com.zcloud.certificate.dto.clientobject.UserCO;
public interface UserServiceI {
MultiResponse<UserCO> listAll(UserQryCmd userQryCmd);
}

View File

@ -0,0 +1,47 @@
package com.zcloud.certificate.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class UserQryCmd extends PageQuery {
@ApiModelProperty(value = "企业ID")
private String eqCorpinfoId;
@ApiModelProperty(value = "部门ID")
private String eqDepartmentId;
@ApiModelProperty(value = "岗位ID")
private String eqPostId;
@ApiModelProperty(value = "在职状态")
private String eqEmploymentFlag;
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
@ApiModelProperty(value = "部门ID")
private Long departmentId;
@ApiModelProperty(value = "岗位ID")
private Long postId;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "是否排除主账号")
private Integer noMain;
@ApiModelProperty(value = "是否查询当前企业")
private String isMyCorp;
@ApiModelProperty(value = "用户ID集合")
private List<Long> userIdList;
@ApiModelProperty(value = "菜单路径")
private String menuPath;
}

View File

@ -0,0 +1,53 @@
package com.zcloud.certificate.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserCO extends ClientObject {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "用户业务ID")
private String userId;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
@ApiModelProperty(value = "部门ID")
private Long departmentId;
@ApiModelProperty(value = "岗位ID")
private Long postId;
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "在职状态")
private Integer employmentFlag;
@ApiModelProperty(value = "流程状态")
private Integer flowFlag;
@ApiModelProperty(value = "年龄")
private Integer age;
@ApiModelProperty(value = "生日")
private String birthday;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "部门名称")
private String departmentName;
@ApiModelProperty(value = "岗位名称")
private String postName;
}

View File

@ -0,0 +1,57 @@
package com.zcloud.certificate.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Data
@TableName("user")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class UserDO extends BaseDO {
@ApiModelProperty(value = "user id")
private String userId;
@ApiModelProperty(value = "username")
private String username;
@ApiModelProperty(value = "name")
private String name;
@ApiModelProperty(value = "corpinfo id")
private Long corpinfoId;
@ApiModelProperty(value = "department id")
private Long departmentId;
@ApiModelProperty(value = "post id")
private Long postId;
@ApiModelProperty(value = "phone")
private String phone;
@ApiModelProperty(value = "employment flag")
private Integer employmentFlag;
@ApiModelProperty(value = "flow flag")
private Integer flowFlag;
@ApiModelProperty(value = "age")
private Integer age;
@ApiModelProperty(value = "birthday")
private String birthday;
@ApiModelProperty(value = "sex")
private String sex;
@ApiModelProperty(value = "department name")
private String departmentName;
@ApiModelProperty(value = "post name")
private String postName;
}

View File

@ -0,0 +1,20 @@
package com.zcloud.certificate.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
@DataScopes({
@DataScope(method = "selectListAll", menuPerms = "")
})
public interface UserMapper extends BaseMapper<UserDO> {
List<UserDO> selectListAll(@Param("params") Map<String, Object> params, @Param("menuPerms") String menuPerms);
}

View File

@ -0,0 +1,12 @@
package com.zcloud.certificate.persistence.repository;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import java.util.List;
import java.util.Map;
public interface UserRepository extends BaseRepository<UserDO> {
List<UserDO> listAll(Map<String, Object> params);
}

View File

@ -0,0 +1,40 @@
package com.zcloud.certificate.persistence.repository.impl;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.certificate.domain.enums.MenuEnum;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import com.zcloud.certificate.persistence.mapper.UserMapper;
import com.zcloud.certificate.persistence.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> implements UserRepository {
private final UserMapper userMapper;
@Override
public List<UserDO> listAll(Map<String, Object> params) {
if (params.containsKey("eqEmploymentFlag")) {
params.put("employmentFlag", params.get("eqEmploymentFlag"));
}
if (params.containsKey("isMyCorp")) {
SSOUser currentUser = AuthContext.getCurrentUser();
if (currentUser != null) {
params.put("corpinfoId", currentUser.getTenantId());
}
}
String menuPerms = "";
if (!ObjectUtils.isEmpty(params.get("menuPath"))) {
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
return userMapper.selectListAll(params, menuPerms);
}
}

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.certificate.persistence.mapper.UserMapper">
<select id="selectListAll" resultType="com.zcloud.certificate.persistence.dataobject.UserDO">
SELECT
uc.id,
uc.user_id,
uc.username,
uc.name,
uc.corpinfo_id,
uc.department_id,
uc.post_id,
uc.phone,
d.name AS department_name,
p.post_name,
uc.employment_flag,
uc.flow_flag,
CASE
WHEN MOD(CAST(SUBSTRING(FROM_BASE64(uc.user_id_card), 17, 1) AS UNSIGNED), 2) = 1 THEN 'M'
ELSE 'F'
END AS sex,
YEAR(CURDATE()) - CAST(SUBSTRING(FROM_BASE64(uc.user_id_card), 7, 4) AS UNSIGNED) AS age,
CAST(SUBSTRING(FROM_BASE64(uc.user_id_card), 7, 8) AS DATE) AS birthday
FROM (
SELECT
id,
id AS create_id,
user_id,
username,
name,
corpinfo_id,
department_id,
post_id,
phone,
employment_flag,
flow_flag,
user_id_card,
delete_enum,
sort,
create_time
FROM user
) uc
LEFT JOIN user u ON u.id = uc.id
LEFT JOIN department d ON d.id = uc.department_id
LEFT JOIN post p ON p.id = uc.post_id
WHERE uc.delete_enum = 'FALSE'
<if test="params.noMain != null">
AND uc.id != uc.corpinfo_id
</if>
<if test="params.corpinfoId != null">
AND uc.corpinfo_id = #{params.corpinfoId}
</if>
<if test="params.departmentId != null">
AND uc.department_id = #{params.departmentId}
</if>
<if test="params.employmentFlag != null">
AND uc.employment_flag = #{params.employmentFlag}
</if>
<if test="params.postId != null">
AND uc.post_id = #{params.postId}
</if>
<if test="params.userIdList != null and params.userIdList.size() > 0">
AND uc.id IN
<foreach collection="params.userIdList" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</if>
ORDER BY uc.sort, uc.create_time DESC
</select>
</mapper>