Browse Source

根据角色、发起人部门sidPath获取用户列表算法

master
dimengzhe 3 years ago
parent
commit
ab91ee7564
  1. 6
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java
  2. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java
  3. 1
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java
  4. 20
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/UserQuery.java
  5. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleMapper.java
  6. 109
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleMapper.xml
  7. 222
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleService.java
  8. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java
  9. 109
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml
  10. 8
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java
  11. 27
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

6
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java

@ -10,6 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@ -129,6 +130,7 @@ public interface SysUserFeign {
@ApiOperation(value = "3、登录")
@ApiOperationSupport(order = 30)
public ResultBean<SysUserVo> login(@RequestBody SysUserQuery sysUserQuery);
@PostMapping("/loginByNoVeriCode")
@ResponseBody
@ApiOperation(value = "3、登录无验证码")
@ -181,4 +183,8 @@ public interface SysUserFeign {
@ApiOperation("根据角色sid查询用户")
@GetMapping("/getUsersByRoleSid/{roleSid}")
ResultBean getUsersByRoleSid(@PathVariable("roleSid") String roleSid);
@ApiOperation(value = "根据角色、发起人部门sidPath获取用户列表算法")
@GetMapping(value = "getUserByRole")
ResultBean<List<SysUserVo>> getUserByRole(@SpringQueryMap UserQuery query);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java

@ -168,4 +168,9 @@ public class SysUserFeignFallback implements SysUserFeign {
public ResultBean getUsersByRoleSid(String roleSid) {
return null;
}
@Override
public ResultBean<List<SysUserVo>> getUserByRole(UserQuery query) {
return null;
}
}

1
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserVo.java

@ -28,6 +28,7 @@ import java.util.List;
@Data
@NoArgsConstructor
public class SysUserVo implements Vo {
private static final long serialVersionUID = 2415131854581950721L;
@ApiModelProperty("部门sid")
private String departmentSid;
@ApiModelProperty("部门名称")

20
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/UserQuery.java

@ -0,0 +1,20 @@
package com.yxt.anrui.portal.api.sysuser;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/6/21 8:47
* @Description
*/
@Data
public class UserQuery implements Query {
private static final long serialVersionUID = -3979717077029562761L;
@ApiModelProperty(value = "角色sid必传项")
private String roleSid;
@ApiModelProperty(value = "用户部门sid路径是必传项")
private String orgSidPath;
}

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleMapper.java

@ -51,4 +51,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
SysRoleVo fetchBySid(String sid);
int updateIsEnable(@Param("sid") String sid, @Param("isEnable") String isEnable);
String getLevelType(String roleSid);
}

109
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleMapper.xml

@ -1,50 +1,71 @@
<?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.yxt.anrui.portal.biz.sysrole.SysRoleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT sr.*,sp.sid as postSid,sp.name as postName FROM sys_role sr
LEFT JOIN sys_post sp ON sr.postSid=sp.sid
<where>${ew.sqlSegment} </where>
ORDER BY sr.sort
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT * FROM sys_role <where> ${ew.sqlSegment} </where>
</select>
<select id="listAllByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.name,role.sid, ISNULL(userRole.sid) AS checked FROM sys_role role
LEFT JOIN sys_user_role userRole ON role.sid=userRole.`roleSid`
AND userRole.userSid=#{param1}
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT sr.*, sp.sid as postSid, sp.name as postName
FROM sys_role sr
LEFT JOIN sys_post sp ON sr.postSid = sp.sid
<where>
${ew.sqlSegment}
</where>
ORDER BY sr.sort
</select>
<select id="fetchByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.name,role.remarks,role.sid FROM sys_role role
left join sys_user_role userrole on userrole.roleSid= role.sid
where userrole.userSid=#{param1}
</select>
<select id="fetchByName" resultType="com.yxt.anrui.portal.api.sysrole.SysRole">
SELECT * FROM sys_role role where role.name=#{param1}
</select>
<select id="fetchBySid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.*,post.sid as postSid,post.name as postName FROM sys_role role
LEFT JOIN sys_post post ON role.postSid=post.sid
WHERE role.sid=#{param1}
</select>
<delete id="deleteBatchSids" parameterType="String">
DELETE FROM sys_role WHERE sid IN
<foreach collection="list" item="sid" open="(" separator="," close=")">
#{sid}
</foreach>
</delete>
<delete id="deleteBySid">
DELETE FROM sys_role WHERE sid =#{sid}
</delete>
<select id="selectListAllVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT *
FROM sys_role
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAllByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.name, role.sid, ISNULL(userRole.sid) AS checked
FROM sys_role role
LEFT JOIN sys_user_role userRole ON role.sid = userRole.`roleSid`
AND userRole.userSid = #{param1}
</select>
<update id="updateIsEnable">
UPDATE sys_role
SET isEnable = #{isEnable}
WHERE sid = #{sid}
</update>
<select id="fetchByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.name, role.remarks, role.sid
FROM sys_role role
left join sys_user_role userrole on userrole.roleSid = role.sid
where userrole.userSid = #{param1}
</select>
<select id="fetchByName" resultType="com.yxt.anrui.portal.api.sysrole.SysRole">
SELECT *
FROM sys_role role
where role.name = #{param1}
</select>
<select id="fetchBySid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.*, post.sid as postSid, post.name as postName
FROM sys_role role
LEFT JOIN sys_post post ON role.postSid = post.sid
WHERE role.sid = #{param1}
</select>
<delete id="deleteBatchSids" parameterType="String">
DELETE
FROM sys_role WHERE sid IN
<foreach collection="list" item="sid" open="(" separator="," close=")">
#{sid}
</foreach>
</delete>
<delete id="deleteBySid">
DELETE
FROM sys_role
WHERE sid = #{sid}
</delete>
<update id="updateIsEnable">
UPDATE sys_role
SET isEnable = #{isEnable}
WHERE sid = #{sid}
</update>
<select id="getLevelType" resultType="java.lang.String">
select roleType
from sys_role
where sid = #{roleSid}
</select>
</mapper>

222
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysrole/SysRoleService.java

@ -35,116 +35,122 @@ import java.util.List;
*/
@Service
public class SysRoleService extends MybatisBaseService<SysRoleMapper, SysRole> {
public PagerVo<SysRole> listPage(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRole> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysRole> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRole> listAll(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysRole> createQueryWrapper(SysRoleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysRole> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.like("sr.name", query.getName());
}
if (query.getSort() != null) {
qw.eq("sr.sort", query.getSort());
}
if (StringUtils.isNotBlank(query.getCode())) {
qw.eq("sr.code", query.getCode());
}
if (query.getType() != null) {
qw.eq("sr.type", query.getType());
}
return qw;
}
public PagerVo<SysRoleVo> listPageVo(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRoleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysRoleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRoleVo> listAllVo(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysRoleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysRoleDto dto){
SysRole entity = new SysRole();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysRoleVo fetchByIdVo(String id){
SysRole entity = this.fetchById(id);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysRoleVo> fetchByUserSid(String userSid) {
return baseMapper.fetchByUserSid(userSid);
}
public List<SysRoleVo> listAllByUserSid(String userSid) {
return baseMapper.listAllByUserSid(userSid);
}
public PagerVo<SysRole> listPage(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRole> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysRole> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRole> listAll(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SysRole> createQueryWrapper(SysRoleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SysRole> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getName())) {
qw.like("sr.name", query.getName());
}
if (query.getSort() != null) {
qw.eq("sr.sort", query.getSort());
}
if (StringUtils.isNotBlank(query.getCode())) {
qw.eq("sr.code", query.getCode());
}
if (query.getType() != null) {
qw.eq("sr.type", query.getType());
}
return qw;
}
public PagerVo<SysRoleVo> listPageVo(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRoleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysRoleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SysRoleVo> listAllVo(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SysRoleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SysRoleDto dto) {
SysRole entity = new SysRole();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SysRoleVo fetchByIdVo(String id) {
SysRole entity = this.fetchById(id);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<SysRoleVo> fetchByUserSid(String userSid) {
return baseMapper.fetchByUserSid(userSid);
}
public List<SysRoleVo> listAllByUserSid(String userSid) {
return baseMapper.listAllByUserSid(userSid);
}
public SysRoleVo fetchByName(String name) {
SysRole entity = baseMapper.fetchByName(name);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
SysRole entity = baseMapper.fetchByName(name);
SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* 描述 : <描述函数实现的功能>. <br/>
* <p>
*
* @param sids
* @return
*/
public int delBySids(String sids) {
String[] split = sids.split(",");
if (split.length < 1) {
return 0;
} else if (split.length == 1) {
return baseMapper.deleteBySid(sids);
} else {
List<String> list = new ArrayList<>();
for (String sid : split) {
list.add(sid);
}
return baseMapper.deleteBatchSids(list);
}
}
public SysRoleVo fetchBySidVo(String sid) {
SysRoleVo vo = baseMapper.fetchBySid(sid);
return vo;
}
public int updateIsEnable(String sid, String isEnable) {
return baseMapper.updateIsEnable(sid, isEnable);
}
/**
* 描述 : <描述函数实现的功能>. <br/>
* <p>
*
* @param sids
* @return
*/
public int delBySids(String sids) {
String[] split = sids.split(",");
if (split.length < 1) {
return 0;
} else if (split.length == 1) {
return baseMapper.deleteBySid(sids);
} else {
List<String> list = new ArrayList<>();
for (String sid : split) {
list.add(sid);
}
return baseMapper.deleteBatchSids(list);
}
}
public SysRoleVo fetchBySidVo(String sid) {
SysRoleVo vo = baseMapper.fetchBySid(sid);
return vo;
}
public int updateIsEnable(String sid, String isEnable) {
return baseMapper.updateIsEnable(sid, isEnable);
}
public String getLevelType(String roleSid) {
return baseMapper.getLevelType(roleSid);
}
}

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java

@ -12,7 +12,6 @@ import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxHomePageVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxMySysUserInfoVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxSysUserVo;
import com.yxt.common.core.result.ResultBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -39,7 +38,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
//@Update("update sys_user set name=#{msg} where id=#{id}")
//IPage<SysUserVo> voPage(IPage<SysUser> page, @Param(Constants.WRAPPER) QueryWrapper<SysUser> qw);
IPage<SysUserVo> selectPageVo(IPage<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> ew,@Param("orgName") String orgName);
IPage<SysUserVo> selectPageVo(IPage<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> ew, @Param("orgName") String orgName);
List<SysUserVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysUser> qw);
@ -157,5 +156,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
int updateIsEnable(@Param("sid") String sid, @Param("isEnable") String isEnable);
List<SysUserVo> getUsersByRoleSid(@Param("roleSid")String roleSid);
List<SysUserVo> getUsersByRoleSid(@Param("roleSid") String roleSid);
List<SysUserVo> getUserByRole(@Param("roleSid") String roleSid, @Param("levelOrgSid") String levelOrgSid);
}

109
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml

@ -7,52 +7,57 @@
SELECT DISTINCT user.staffSid,
user.isEnable,
(
SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid
) departmentName,
SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid
) departmentName,
(
SELECT GROUP_CONCAT(org.sid)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid
) departmentSid,
SELECT GROUP_CONCAT(org.sid)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid
) departmentSid,
(
SELECT GROUP_CONCAT(post.name)
FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid
) postName,
SELECT GROUP_CONCAT(post.name)
FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid
) postName,
(
SELECT GROUP_CONCAT(post.sid)
FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid
) postSid,
SELECT GROUP_CONCAT(post.sid)
FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid
) postSid,
user.userName,
user.sid sid,
staff.name,
(
SELECT GROUP_CONCAT(role.name)
FROM sys_user_role user_role
LEFT JOIN sys_role role ON role.sid = user_role.roleSid
WHERE user_role.userSid = USER.sid
) roleName,
SELECT GROUP_CONCAT(role.name)
FROM sys_user_role user_role
LEFT JOIN sys_role role ON role.sid = user_role.roleSid
WHERE user_role.userSid = USER.sid
) roleName,
dict.dictValue userType,
user.userType userTypeKey
FROM sys_user USER
LEFT JOIN sys_user_role user_role ON user_role.userSid = USER.sid
LEFT JOIN sys_role role ON role.sid = user_role.roleSid
LEFT JOIN dict_common dict ON dict.dictKey = user.userType AND dict.dictType = 'userType'
LEFT JOIN sys_staffinfo staff ON staff.sid = user.staffSid
LEFT JOIN sys_user_role user_role ON user_role.userSid = USER.sid
LEFT JOIN sys_role role ON role.sid = user_role.roleSid
LEFT JOIN dict_common dict ON dict.dictKey = user.userType AND dict.dictType = 'userType'
LEFT JOIN sys_staffinfo staff ON staff.sid = user.staffSid
<where>
${ew.sqlSegment}
<if test="orgName != null and orgName != ''">
AND (SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid) LIKE concat('%',#{orgName},'%')
AND (SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid)
LIKE concat('%',
#{orgName}
,
'%'
)
</if>
</where>
</select>
@ -141,17 +146,17 @@
<select id="selectByStaffsid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
SELECT *
FROM sys_user su
LEFT JOIN sys_staffinfo ss ON su.staffSid = ss.sid
LEFT JOIN sys_staffinfo ss ON su.staffSid = ss.sid
WHERE su.staffSid = #{staffSid}
AND su.isDelete = 0
</select>
<!--根据用户sid获取员工sid-->
<select id="getUserOrgInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo">
SELECT su.staffSid, ss.name staffName, sso.orgSid, sso.orgName, sso.orgSidPath,so.orgCode
SELECT su.staffSid, ss.name staffName, sso.orgSid, sso.orgName, sso.orgSidPath, so.orgCode
FROM sys_user su
LEFT JOIN sys_staffinfo ss ON su.staffSid = ss.sid
LEFT JOIN sys_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid
LEFT JOIN sys_staffinfo ss ON su.staffSid = ss.sid
LEFT JOIN sys_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid
WHERE su.sid = #{userSid}
ORDER BY sso.id
LIMIT 1
@ -160,9 +165,9 @@
<select id="selectUserInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserInfoVo">
SELECT su.staffSid, si.name staffName, sso.orgSid, sso.orgName, so.orgCode
FROM sys_user su
LEFT JOIN sys_staffinfo si ON su.staffSid = si.sid
LEFT JOIN sys_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid
LEFT JOIN sys_staffinfo si ON su.staffSid = si.sid
LEFT JOIN sys_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid
WHERE su.sid = #{userSid}
ORDER BY sso.id
LIMIT 1
@ -196,12 +201,22 @@
</update>
<select id="getUsersByRoleSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
SELECT su.sid,ss.name,sso.orgNamePath departmentName
SELECT su.sid, ss.name, sso.orgNamePath departmentName
FROM `sys_user` su
LEFT JOIN `sys_staffinfo` ss ON su.staffSid=ss.sid
LEFT JOIN `sys_staff_org` sso ON sso.staffSid=ss.sid
LEFT JOIN `sys_user_role` sur ON sur.userSid=su.sid
LEFT JOIN `sys_role` sr ON sr.sid = sur.roleSid
WHERE sr.sid=#{roleSid}
LEFT JOIN `sys_staffinfo` ss ON su.staffSid = ss.sid
LEFT JOIN `sys_staff_org` sso ON sso.staffSid = ss.sid
LEFT JOIN `sys_user_role` sur ON sur.userSid = su.sid
LEFT JOIN `sys_role` sr ON sr.sid = sur.roleSid
WHERE sr.sid = #{roleSid}
</select>
<select id="getUserByRole" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
select si.name, su.sid, su.staffSid
from sys_user_role sr
left join sys_user su on sr.userSid = su.sid
left join sys_staffinfo si on si.sid = su.staffSid
left join sys_staff_org so on so.staffSid = si.sid
where sr.roleSid = #{roleSid}
and find_in_set(#{levelOrgSid}, replace(so.orgSidPath, '/', ','))
</select>
</mapper>

8
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java

@ -312,8 +312,6 @@ public class SysUserRest implements SysUserFeign {
@Override
public ResultBean<SysUserVo> login(SysUserQuery userQuery) {
String userName = userQuery.getUserName();
String password = userQuery.getPassword();
String verifyCode = userQuery.getVerifyCode();
@ -387,7 +385,6 @@ public class SysUserRest implements SysUserFeign {
} else {
return new ResultBean<SysUserVo>().fail().setMsg("验证码错误");
}
if (StringUtils.isBlank(userName)) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空");
}
@ -575,4 +572,9 @@ public class SysUserRest implements SysUserFeign {
public ResultBean getUsersByRoleSid(String roleSid) {
return sysUserService.getUsersByRoleSid(roleSid);
}
@Override
public ResultBean<List<SysUserVo>> getUserByRole(UserQuery query) {
return sysUserService.getUserByRole(query);
}
}

27
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

@ -13,7 +13,6 @@ import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostDetailsVo;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostVo;
import com.yxt.anrui.portal.api.sysuser.*;
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxHomePageVo;
@ -24,7 +23,6 @@ import com.yxt.anrui.portal.biz.sysrole.SysRoleService;
import com.yxt.anrui.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.anrui.portal.biz.sysstaffpost.SysStaffPostService;
import com.yxt.anrui.portal.biz.sysuserrole.SysUserRoleService;
import com.yxt.anrui.portal.config.DictCommonType;
import com.yxt.anrui.portal.utils.MsgWs;
import com.yxt.common.base.config.RedisUtil;
@ -35,7 +33,6 @@ import com.yxt.common.base.utils.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.collections.map.HashedMap;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -99,6 +96,8 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
@Autowired
private ImageUploadUtil imageUploadUtil;
@Autowired
private SysRoleService sysRoleService;
public PagerVo<SysUser> listPage(PagerQuery<SysUserQuery> pq) {
@ -133,7 +132,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
SysUserQuery query = pq.getParams();
QueryWrapper<SysUser> qw = createQueryWrapper(query);
IPage<SysUser> page = PagerUtil.queryToPage(pq);
IPage<SysUserVo> pagging = baseMapper.selectPageVo(page, qw,query.getOrgName());
IPage<SysUserVo> pagging = baseMapper.selectPageVo(page, qw, query.getOrgName());
List<SysUserVo> records = pagging.getRecords();
for (SysUserVo record : records) {
String departmentSid = record.getDepartmentSid();
@ -325,7 +324,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid());
String psid = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid()).getPsid();
String name = sysOrganizationService.fetchBySid(psid).getName();
userInfoOneVo.setPNameAndDepartmentNameAndPostName(name + "-" +sysStaffOrgVo.getOrgName() + " " + userInfoOneVo.getPostName());
userInfoOneVo.setPNameAndDepartmentNameAndPostName(name + "-" + sysStaffOrgVo.getOrgName() + " " + userInfoOneVo.getPostName());
userInfoOneVo.setOrganizationSid(sysStaffOrgVo.getOrgSid());
userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName());
userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath());
@ -884,4 +883,22 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
ResultBean<Object> objectResultBean = ResultBean.fireSuccess().setData(r);
return objectResultBean;
}
public ResultBean<List<SysUserVo>> getUserByRole(UserQuery query) {
ResultBean<List<SysUserVo>> rb = ResultBean.fireFail();
List<SysUserVo> sysUserVoList = new ArrayList<>();
//根据角色sid获取角色的层级
String levelTypeKey = sysRoleService.getLevelType(query.getRoleSid());
if (StringUtils.isNotBlank(levelTypeKey)) {
String orgSidPath = query.getOrgSidPath();
if(query.getOrgSidPath().split("/").length>=Integer.parseInt(levelTypeKey)-1){
String levelOrgSid = query.getOrgSidPath().split("/")[Integer.parseInt(levelTypeKey) - 1];
sysUserVoList = baseMapper.getUserByRole(query.getRoleSid(), levelOrgSid);
sysUserVoList.removeAll(Collections.singleton(null));
}
}
return rb.success().setData(sysUserVoList);
}
}
Loading…
Cancel
Save