!129 feat(sysuser): 新增按角色查询用户接口并使用优化版JOIN查询
* feat(sysuser): 新增按角色查询用户接口并使用优化版JOIN查询 * fix(bgpartymatter): 移除后端自动生成业务序号逻辑
This commit is contained in:
-16
@@ -49,7 +49,6 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -155,7 +154,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
|||||||
bgPartymatter.setBpmStatus("1");
|
bgPartymatter.setBpmStatus("1");
|
||||||
}
|
}
|
||||||
fillDefaultMeetingTypeForCreate(bgPartymatter);
|
fillDefaultMeetingTypeForCreate(bgPartymatter);
|
||||||
fillGeneratedNumber(bgPartymatter);
|
|
||||||
bgPartymatterService.save(bgPartymatter);
|
bgPartymatterService.save(bgPartymatter);
|
||||||
return Result.OK("添加成功!");
|
return Result.OK("添加成功!");
|
||||||
}
|
}
|
||||||
@@ -172,7 +170,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
|||||||
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
|
||||||
public Result<String> edit(@RequestBody BgPartymatter bgPartymatter) {
|
public Result<String> edit(@RequestBody BgPartymatter bgPartymatter) {
|
||||||
fillMeetingTypeForUpdate(bgPartymatter);
|
fillMeetingTypeForUpdate(bgPartymatter);
|
||||||
fillGeneratedNumber(bgPartymatter);
|
|
||||||
bgPartymatterService.updateById(bgPartymatter);
|
bgPartymatterService.updateById(bgPartymatter);
|
||||||
return Result.OK("编辑成功!");
|
return Result.OK("编辑成功!");
|
||||||
}
|
}
|
||||||
@@ -195,7 +192,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
|||||||
}
|
}
|
||||||
String varField = oConvertUtils.isEmpty(dto.getVarField()) ? "json_data" : dto.getVarField();
|
String varField = oConvertUtils.isEmpty(dto.getVarField()) ? "json_data" : dto.getVarField();
|
||||||
fillMeetingTypeForUpdate(dto.getFormData());
|
fillMeetingTypeForUpdate(dto.getFormData());
|
||||||
fillGeneratedNumber(dto.getFormData());
|
|
||||||
bgPartymatterService.saveBpmFormAndSyncVariable(dto.getFormData(), dto.getProcessInstanceId(), varField,
|
bgPartymatterService.saveBpmFormAndSyncVariable(dto.getFormData(), dto.getProcessInstanceId(), varField,
|
||||||
JSONObject.toJSONString(dto.getFormData()));
|
JSONObject.toJSONString(dto.getFormData()));
|
||||||
return Result.OK("保存成功");
|
return Result.OK("保存成功");
|
||||||
@@ -227,18 +223,6 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
|
|||||||
bgPartymatter.setMeetingType(BgPartymatterConstant.MeetingType.PARTY);
|
bgPartymatter.setMeetingType(BgPartymatterConstant.MeetingType.PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据会议时间和议题序号生成业务序号,规则:yyyyMMdd-议题序号。
|
|
||||||
* 前端会即时回显,后端保存前再次生成,保证接口调用和流程保存数据一致。
|
|
||||||
*/
|
|
||||||
private void fillGeneratedNumber(BgPartymatter bgPartymatter) {
|
|
||||||
if (bgPartymatter == null || bgPartymatter.getMatterTime() == null || bgPartymatter.getItemNumber() == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String dateText = new SimpleDateFormat("yyyyMMdd").format(bgPartymatter.getMatterTime());
|
|
||||||
bgPartymatter.setNumber(dateText + "-" + bgPartymatter.getItemNumber());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
*
|
*
|
||||||
|
|||||||
+25
@@ -538,6 +538,31 @@ public class SysUserController {
|
|||||||
return Result.OK(pageList);
|
return Result.OK(pageList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户选择组件 专用 根据角色ID查询用户列表
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param roleId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/queryUserByRoleId", method = RequestMethod.GET)
|
||||||
|
@Operation(summary = "根据角色ID查询用户列表", description = "根据输入的roleId返回该角色下的所有用户(分页)")
|
||||||
|
public Result<IPage<SysUser>> queryUserByRoleId(
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
@RequestParam(name = "departId", required = false) String departId,
|
||||||
|
@RequestParam(name = "roleId", required = false) String roleId,
|
||||||
|
@RequestParam(name="realname",required=false) String realname,
|
||||||
|
@RequestParam(name="username",required=false) String username,
|
||||||
|
@RequestParam(name="isMultiTranslate",required=false) String isMultiTranslate,
|
||||||
|
@RequestParam(name="id",required = false) String id,
|
||||||
|
@RequestParam(name="searchSecurityLevel",required = false) Integer searchSecurityLevel
|
||||||
|
) {
|
||||||
|
Page<SysUser> page = new Page<>(pageNo, pageSize);
|
||||||
|
IPage<SysUser> pageList = sysUserService.getUserByRoleIdOptimized(page, roleId, username);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户选择组件 专用 根据用户账号或部门,角色分页查询
|
* 用户选择组件 专用 根据用户账号或部门,角色分页查询
|
||||||
* @param deptRoleVO
|
* @param deptRoleVO
|
||||||
|
|||||||
+9
@@ -81,6 +81,15 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
|||||||
*/
|
*/
|
||||||
IPage<SysUser> getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username);
|
IPage<SysUser> getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据角色Id查询用户信息(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||||
|
* @param page
|
||||||
|
* @param roleId 角色id
|
||||||
|
* @param username 用户登录账户
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
IPage<SysUser> getUserByRoleIdOptimized(Page page, @Param("roleId") String roleId, @Param("username") String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据角色Id查询带部门的用户信息
|
* 根据角色Id查询带部门的用户信息
|
||||||
* @param page
|
* @param page
|
||||||
|
|||||||
+10
@@ -59,6 +59,16 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用) -->
|
||||||
|
<select id="getUserByRoleIdOptimized" resultType="org.jeecg.modules.system.entity.SysUser">
|
||||||
|
select distinct u.* from sys_user u
|
||||||
|
inner join sys_user_role ur on ur.user_id = u.id
|
||||||
|
where u.del_flag = 0 and ur.role_id = #{roleId}
|
||||||
|
<if test="username!=null and username!=''">
|
||||||
|
and u.username = #{username}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- Multi-instance flow task query. Keep it separate from the overloaded getUserByRoleId statement. -->
|
<!-- Multi-instance flow task query. Keep it separate from the overloaded getUserByRoleId statement. -->
|
||||||
<select id="getUsernamesByRoleId" resultType="java.lang.String">
|
<select id="getUsernamesByRoleId" resultType="java.lang.String">
|
||||||
select distinct u.username
|
select distinct u.username
|
||||||
|
|||||||
+9
@@ -184,6 +184,15 @@ public interface ISysUserService extends IService<SysUser> {
|
|||||||
*/
|
*/
|
||||||
public IPage<SysUser> getUserByRoleId(Page<SysUser> page,String roleId, String username);
|
public IPage<SysUser> getUserByRoleId(Page<SysUser> page,String roleId, String username);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||||
|
* @param page
|
||||||
|
* @param roleId 角色id
|
||||||
|
* @param username 用户账户名称
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public IPage<SysUser> getUserByRoleIdOptimized(Page<SysUser> page,String roleId, String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据角色Id查询
|
* 根据角色Id查询
|
||||||
* @param page
|
* @param page
|
||||||
|
|||||||
+24
@@ -584,6 +584,30 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
//update-end---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能 职位表加租户id 加职位-用户关联表------------
|
//update-end---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能 职位表加租户id 加职位-用户关联表------------
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据角色Id查询(优化版:INNER JOIN + DISTINCT,供专用接口使用)
|
||||||
|
* @param page
|
||||||
|
* @param roleId 角色id
|
||||||
|
* @param username 用户账户名称
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public IPage<SysUser> getUserByRoleIdOptimized(Page<SysUser> page, String roleId, String username) {
|
||||||
|
IPage<SysUser> userRoleList = userMapper.getUserByRoleIdOptimized(page, roleId, username);
|
||||||
|
List<SysUser> records = userRoleList.getRecords();
|
||||||
|
if (null != records && records.size() > 0) {
|
||||||
|
List<String> userIds = records.stream().map(SysUser::getId).collect(Collectors.toList());
|
||||||
|
Map<String, String> useDepNames = this.getDepNamesByUserIds(userIds);
|
||||||
|
for (SysUser sysUser : userRoleList.getRecords()) {
|
||||||
|
//设置部门
|
||||||
|
sysUser.setOrgCodeTxt(useDepNames.get(sysUser.getId()));
|
||||||
|
//设置用户职位id
|
||||||
|
this.userPositionId(sysUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return userRoleList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据角色Id查询
|
* 根据角色Id查询
|
||||||
* @param page
|
* @param page
|
||||||
|
|||||||
Reference in New Issue
Block a user