更新字典项目模块,支持通过DictProject对象查询,新增英文名称字段,优化用户服务,增加根据用户ID查询本单位下所有用户的分页数据功能。

This commit is contained in:
刘倡
2025-07-24 08:59:17 +08:00
parent c322af6e9e
commit ea9d1b1333
9 changed files with 182 additions and 101 deletions

View File

@ -59,17 +59,14 @@ public class DictProjectController{
/**
* 查询字典数据
* @param parentCode 字典父类code
* @param toParentCode 字典父类对应的父类code
* 查询字典数据支持通过dictProject对象的code和parentType属性查询详情或列表
* @param dictProject 查询条件
* @return 返回结果
*/
@ApiOperation("查询数据集合")
@ApiOperation("查询数据集合(支持详情查询)")
@GetMapping("/getDictList")
public BaseResponse<List<DictProject>> getDictList(@ApiParam(value = "字典父类code", required = true)String parentCode,
@ApiParam(value = "字典父类对应的父类code", required = true)String toParentCode){
return BaseResponse.success(dictProjectService.getDictList(parentCode,toParentCode));
public BaseResponse<List<DictProject>> getDictList(DictProject dictProject) {
return BaseResponse.success(dictProjectService.selectDictList(dictProject));
}
/**

View File

@ -13,6 +13,7 @@
<result column="default_flag" jdbcType="VARCHAR" property="defaultFlag"/>
<result column="order_flag" jdbcType="INTEGER" property="orderFlag"/>
<result column="description" jdbcType="VARCHAR" property="description"/>
<result column="en_name" jdbcType="VARCHAR" property="enName"/>
</resultMap>
<select id="selectMaxId">
select max(id) from dict_project

View File

@ -83,6 +83,12 @@ public class DictProject implements Serializable {
@ApiModelProperty(value = "描述")
private String description;
/**
* 英文名称
*/
@ApiModelProperty(value = "英文名称")
private String enName;
/**
* 字典子项
*/

View File

@ -51,4 +51,16 @@ public class DictRegion implements Serializable {
@ApiModelProperty(value = "缩写")
private String ab;
/**
* ID路径逗号分隔
*/
@ApiModelProperty(value = "ID路径逗号分隔")
private String path;
/**
* 名称路径,逗号分隔
*/
@ApiModelProperty(value = "名称路径,逗号分隔")
private String pathName;
}

View File

@ -30,7 +30,7 @@ public interface IDictProjectService extends IBaseService<DictProject>{
List<DictProject> getDictList(String parentCode, String toParentCode);
/**
* 查询所有字典
* 查询所有字典支持传code和parentType时返回详情否则返回列表
* @param dictProject
* @return
*/

View File

@ -1,9 +1,10 @@
package com.coscoshipping.ebtp.system.dict.service.impl;
import cn.hutool.core.collection.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.coscoshipping.ebtp.system.dict.dao.DictProjectMapper;
import com.coscoshipping.ebtp.system.dict.entity.DictProject;
import com.coscoshipping.ebtp.system.dict.service.IDictProjectService;
@ -74,7 +75,14 @@ public class DictProjectServiceImpl extends BaseServiceImpl<DictProjectMapper, D
*/
@Override
public List<DictProject> selectDictList(DictProject dictProject) {
return this.list(mapper.getCustomQueryWrapper(dictProject).orderByAsc(DictProject::getOrderFlag));
if (dictProject != null && dictProject.getCode() != null && dictProject.getParentType() != null) {
return this.list(Wrappers.<DictProject>lambdaQuery()
.eq(DictProject::getCode, dictProject.getCode())
.eq(DictProject::getParentType, dictProject.getParentType())
.last("limit 1"));
}
return ListUtil.empty();
}
@Override

View File

@ -13,9 +13,11 @@ import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import com.coscoshipping.ebtp.system.user.entity.SysUser;
import com.coscoshipping.ebtp.system.user.service.SysUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -33,7 +35,6 @@ public class SysUserController{
* 插入新数据
*
* @param sysUser
*
* @return
*/
@ApiOperation("插入新数据")
@ -49,7 +50,6 @@ public class SysUserController{
* 修改数据
*
* @param sysUser
*
* @return
*/
@ApiOperation("修改数据")
@ -65,7 +65,6 @@ public class SysUserController{
* 查询数据
*
* @param id
*
* @return
*/
@ApiOperation("根据id查询数据")
@ -79,6 +78,7 @@ public class SysUserController{
/**
* 删除数据
*
* @param id 主键id
* @return BaseResponse<Boolean>
* @author dino
@ -112,7 +112,6 @@ public class SysUserController{
* 查询分页数据
*
* @param sysUserVO 分页信息
*
* @return 返回结果
*/
@ApiOperation("查询分页数据")
@ -132,6 +131,7 @@ public class SysUserController{
/**
* 根据用户ID集合查询所有用户信息
*
* @param ids 用户ID集合
* @return 用户信息列表
*/
@ -141,4 +141,16 @@ public class SysUserController{
List<SysUser> users = iSysUserService.getUsersByIds(ids);
return BaseResponse.success(users);
}
/**
* 根据用户ID查询本单位下所有用户分页数据
*
* @param sysUserVO 分页及查询条件
* @return 分页用户数据
*/
@ApiOperation("根据用户ID查询本单位下所有用户分页数据")
@PostMapping("/getPageByUserCompany")
public BaseResponse<IPage<SysUser>> getPageByUserCompany(@ApiParam(value = "分页及查询条件", required = true) @RequestBody SysUserVO sysUserVO) {
return BaseResponse.success(iSysUserService.getPageByUserCompany(sysUserVO));
}
}

View File

@ -11,13 +11,14 @@ import java.util.List;
/**
* 对数据表 sys_user 操作的 service
* @author yss
*
* @author yss
*/
public interface SysUserService extends IBaseService<SysUser> {
/**
* 角色分页
*
* @param sysUserVO 标段信息
* @return 返回结果
*/
@ -28,6 +29,7 @@ public interface SysUserService extends IBaseService<SysUser>{
Boolean updateByVo(SysUserVO vo);
/**
* 通过角色ID删除角色
*
@ -40,8 +42,17 @@ public interface SysUserService extends IBaseService<SysUser>{
/**
* 根据用户ID集合查询所有用户信息
*
* @param ids 用户ID集合
* @return 用户信息列表
*/
List<SysUser> getUsersByIds(List<String> ids);
/**
* 根据用户ID查询本单位下所有用户分页数据
*
* @param sysUserVO 分页及查询条件
* @return 分页用户数据
*/
IPage<SysUser> getPageByUserCompany(SysUserVO sysUserVO);
}

View File

@ -25,6 +25,7 @@ import com.coscoshipping.ebtp.system.user.service.SysUserService;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
/**
* 对数据表 sys_user 操作的 serviceImpl
@ -88,6 +89,39 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
return userList;
}
@Override
public IPage<SysUser> getPageByUserCompany( SysUserVO sysUserVO) {
String userId = sysUserVO.getUserId();
// 1. 通过userId查找用户
SysUser user = this.getById(userId);
if (user == null) {
return new Page<>();
}
// 2. 查找用户所在公司
SysOrg company = sysOrgService.getCompanyByOrgId(user.getOrgId());
if (company == null || company.getOrgId() == null) {
return new Page<>();
}
// 3. 查找所有下级部门(含自身)
SysOrg queryOrg = new SysOrg();
queryOrg.setOrgId(company.getOrgId());
List<SysOrg> orgList = sysOrgService.queryOrgWithChildren(queryOrg);
if (orgList == null || orgList.isEmpty()) {
return new Page<>();
}
List<String> orgIds = orgList.stream().map(SysOrg::getOrgId).collect(Collectors.toList());
// 4. 分页查所有这些orgId下的用户
LambdaQueryWrapper<SysUser> userQuery = buildQueryWrapper(sysUserVO);
userQuery.in(SysUser::getOrgId, orgIds);
if (null == sysUserVO.getBasePageRequest()) {
sysUserVO.setBasePageRequest(new BasePageRequest());
}
IPage<SysUser> result = new Page<>(sysUserVO.getBasePageRequest().getPageNo(), sysUserVO.getBasePageRequest().getPageSize());
result = this.page(result, userQuery);
result.getRecords().forEach(u -> u.setPassword(null));
return result;
}
/**
* 保存前的数据校验
*/