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.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -129,6 +130,7 @@ public interface SysUserFeign {
@ApiOperation(value = "3、登录") @ApiOperation(value = "3、登录")
@ApiOperationSupport(order = 30) @ApiOperationSupport(order = 30)
public ResultBean<SysUserVo> login(@RequestBody SysUserQuery sysUserQuery); public ResultBean<SysUserVo> login(@RequestBody SysUserQuery sysUserQuery);
@PostMapping("/loginByNoVeriCode") @PostMapping("/loginByNoVeriCode")
@ResponseBody @ResponseBody
@ApiOperation(value = "3、登录无验证码") @ApiOperation(value = "3、登录无验证码")
@ -181,4 +183,8 @@ public interface SysUserFeign {
@ApiOperation("根据角色sid查询用户") @ApiOperation("根据角色sid查询用户")
@GetMapping("/getUsersByRoleSid/{roleSid}") @GetMapping("/getUsersByRoleSid/{roleSid}")
ResultBean getUsersByRoleSid(@PathVariable("roleSid") String 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) { public ResultBean getUsersByRoleSid(String roleSid) {
return null; 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 @Data
@NoArgsConstructor @NoArgsConstructor
public class SysUserVo implements Vo { public class SysUserVo implements Vo {
private static final long serialVersionUID = 2415131854581950721L;
@ApiModelProperty("部门sid") @ApiModelProperty("部门sid")
private String departmentSid; private String departmentSid;
@ApiModelProperty("部门名称") @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); SysRoleVo fetchBySid(String sid);
int updateIsEnable(@Param("sid") String sid, @Param("isEnable") String isEnable); 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" ?> <?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"> <!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"> <mapper namespace="com.yxt.anrui.portal.biz.sysrole.SysRoleMapper">
<!-- <where> ${ew.sqlSegment} </where>--> <!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} --> <!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo"> <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 SELECT sr.*, sp.sid as postSid, sp.name as postName
LEFT JOIN sys_post sp ON sr.postSid=sp.sid FROM sys_role sr
<where>${ew.sqlSegment} </where> LEFT JOIN sys_post sp ON sr.postSid = sp.sid
ORDER BY sr.sort <where>
</select> ${ew.sqlSegment}
</where>
<select id="selectListAllVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo"> ORDER BY sr.sort
SELECT * FROM sys_role <where> ${ew.sqlSegment} </where> </select>
</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>
<select id="fetchByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo"> <select id="selectListAllVo" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
SELECT role.name,role.remarks,role.sid FROM sys_role role SELECT *
left join sys_user_role userrole on userrole.roleSid= role.sid FROM sys_role
where userrole.userSid=#{param1} <where>
</select> ${ew.sqlSegment}
<select id="fetchByName" resultType="com.yxt.anrui.portal.api.sysrole.SysRole"> </where>
SELECT * FROM sys_role role where role.name=#{param1} </select>
</select> <select id="listAllByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
<select id="fetchBySid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo"> SELECT role.name, role.sid, ISNULL(userRole.sid) AS checked
SELECT role.*,post.sid as postSid,post.name as postName FROM sys_role role FROM sys_role role
LEFT JOIN sys_post post ON role.postSid=post.sid LEFT JOIN sys_user_role userRole ON role.sid = userRole.`roleSid`
WHERE role.sid=#{param1} AND userRole.userSid = #{param1}
</select> </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"> <select id="fetchByUserSid" resultType="com.yxt.anrui.portal.api.sysrole.SysRoleVo">
UPDATE sys_role SELECT role.name, role.remarks, role.sid
SET isEnable = #{isEnable} FROM sys_role role
WHERE sid = #{sid} left join sys_user_role userrole on userrole.roleSid = role.sid
</update> 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> </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 @Service
public class SysRoleService extends MybatisBaseService<SysRoleMapper, SysRole> { public class SysRoleService extends MybatisBaseService<SysRoleMapper, SysRole> {
public PagerVo<SysRole> listPage(PagerQuery<SysRoleQuery> pq) { public PagerVo<SysRole> listPage(PagerQuery<SysRoleQuery> pq) {
SysRoleQuery query = pq.getParams(); SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query); QueryWrapper<SysRole> qw = createQueryWrapper(query);
IPage<SysRole> page = PagerUtil.queryToPage(pq); IPage<SysRole> page = PagerUtil.queryToPage(pq);
IPage<SysRole> pagging = baseMapper.selectPage(page, qw); IPage<SysRole> pagging = baseMapper.selectPage(page, qw);
PagerVo<SysRole> p = PagerUtil.pageToVo(pagging, null); PagerVo<SysRole> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
} }
public List<SysRole> listAll(SysRoleQuery query) {
QueryWrapper<SysRole> qw = createQueryWrapper(query); public List<SysRole> listAll(SysRoleQuery query) {
return baseMapper.selectList(qw); 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())); private QueryWrapper<SysRole> createQueryWrapper(SysRoleQuery query) {
QueryWrapper<SysRole> qw = new QueryWrapper<>(); // 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 (StringUtils.isNotBlank(query.getName())) {
qw.like("sr.name", query.getName());
if (query.getSort() != null) { }
qw.eq("sr.sort", query.getSort());
} if (query.getSort() != null) {
qw.eq("sr.sort", query.getSort());
if (StringUtils.isNotBlank(query.getCode())) { }
qw.eq("sr.code", query.getCode());
} if (StringUtils.isNotBlank(query.getCode())) {
qw.eq("sr.code", query.getCode());
if (query.getType() != null) { }
qw.eq("sr.type", query.getType());
} if (query.getType() != null) {
return qw; qw.eq("sr.type", query.getType());
} }
return qw;
public PagerVo<SysRoleVo> listPageVo(PagerQuery<SysRoleQuery> pq) { }
SysRoleQuery query = pq.getParams();
QueryWrapper<SysRole> qw = createQueryWrapper(query); public PagerVo<SysRoleVo> listPageVo(PagerQuery<SysRoleQuery> pq) {
IPage<SysRole> page = PagerUtil.queryToPage(pq); SysRoleQuery query = pq.getParams();
IPage<SysRoleVo> pagging = baseMapper.selectPageVo(page, qw); QueryWrapper<SysRole> qw = createQueryWrapper(query);
PagerVo<SysRoleVo> p = PagerUtil.pageToVo(pagging, null); IPage<SysRole> page = PagerUtil.queryToPage(pq);
return p; 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> listAllVo(SysRoleQuery query) {
} QueryWrapper<SysRole> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
public List<SysRoleVo> listVo() { }
return baseMapper.selectListVo();
} public List<SysRoleVo> listVo() {
return baseMapper.selectListVo();
public void saveOrUpdateDto(SysRoleDto dto){ }
SysRole entity = new SysRole();
dto.fillEntity(entity); public void saveOrUpdateDto(SysRoleDto dto) {
this.saveOrUpdate(entity); SysRole entity = new SysRole();
} dto.fillEntity(entity);
this.saveOrUpdate(entity);
public SysRoleVo fetchByIdVo(String id){ }
SysRole entity = this.fetchById(id);
SysRoleVo vo = new SysRoleVo(); public SysRoleVo fetchByIdVo(String id) {
BeanUtil.copyProperties(entity, vo); SysRole entity = this.fetchById(id);
return vo; SysRoleVo vo = new SysRoleVo();
} BeanUtil.copyProperties(entity, vo);
return vo;
public List<SysRoleVo> fetchByUserSid(String userSid) { }
return baseMapper.fetchByUserSid(userSid);
} public List<SysRoleVo> fetchByUserSid(String userSid) {
return baseMapper.fetchByUserSid(userSid);
public List<SysRoleVo> listAllByUserSid(String userSid) { }
return baseMapper.listAllByUserSid(userSid);
} public List<SysRoleVo> listAllByUserSid(String userSid) {
return baseMapper.listAllByUserSid(userSid);
}
public SysRoleVo fetchByName(String name) { public SysRoleVo fetchByName(String name) {
SysRole entity = baseMapper.fetchByName(name); SysRole entity = baseMapper.fetchByName(name);
SysRoleVo vo = new SysRoleVo(); SysRoleVo vo = new SysRoleVo();
BeanUtil.copyProperties(entity, vo); BeanUtil.copyProperties(entity, vo);
return vo; return vo;
} }
/** /**
* 描述 : <描述函数实现的功能>. <br/> * 描述 : <描述函数实现的功能>. <br/>
* <p> * <p>
* *
* @param sids * @param sids
* @return * @return
*/ */
public int delBySids(String sids) { public int delBySids(String sids) {
String[] split = sids.split(","); String[] split = sids.split(",");
if (split.length < 1) { if (split.length < 1) {
return 0; return 0;
} else if (split.length == 1) { } else if (split.length == 1) {
return baseMapper.deleteBySid(sids); return baseMapper.deleteBySid(sids);
} else { } else {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (String sid : split) { for (String sid : split) {
list.add(sid); list.add(sid);
} }
return baseMapper.deleteBatchSids(list); return baseMapper.deleteBatchSids(list);
} }
} }
public SysRoleVo fetchBySidVo(String sid) { public SysRoleVo fetchBySidVo(String sid) {
SysRoleVo vo = baseMapper.fetchBySid(sid); SysRoleVo vo = baseMapper.fetchBySid(sid);
return vo; return vo;
} }
public int updateIsEnable(String sid, String isEnable) { public int updateIsEnable(String sid, String isEnable) {
return baseMapper.updateIsEnable(sid, 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.WxHomePageVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxMySysUserInfoVo; import com.yxt.anrui.portal.api.sysuser.wx.WxMySysUserInfoVo;
import com.yxt.anrui.portal.api.sysuser.wx.WxSysUserVo; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; 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}") //@Update("update sys_user set name=#{msg} where id=#{id}")
//IPage<SysUserVo> voPage(IPage<SysUser> page, @Param(Constants.WRAPPER) QueryWrapper<SysUser> qw); //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); 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); 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, SELECT DISTINCT user.staffSid,
user.isEnable, user.isEnable,
( (
SELECT GROUP_CONCAT(org.name) SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid WHERE staffOrg.staffSid = user.staffSid
) departmentName, ) departmentName,
( (
SELECT GROUP_CONCAT(org.sid) SELECT GROUP_CONCAT(org.sid)
FROM sys_staff_org staffOrg FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid WHERE staffOrg.staffSid = user.staffSid
) departmentSid, ) departmentSid,
( (
SELECT GROUP_CONCAT(post.name) SELECT GROUP_CONCAT(post.name)
FROM sys_staff_post staffPost FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid WHERE staffPost.staffSid = user.staffSid
) postName, ) postName,
( (
SELECT GROUP_CONCAT(post.sid) SELECT GROUP_CONCAT(post.sid)
FROM sys_staff_post staffPost FROM sys_staff_post staffPost
LEFT JOIN sys_post post ON post.sid = staffPost.postSid LEFT JOIN sys_post post ON post.sid = staffPost.postSid
WHERE staffPost.staffSid = user.staffSid WHERE staffPost.staffSid = user.staffSid
) postSid, ) postSid,
user.userName, user.userName,
user.sid sid, user.sid sid,
staff.name, staff.name,
( (
SELECT GROUP_CONCAT(role.name) SELECT GROUP_CONCAT(role.name)
FROM sys_user_role user_role FROM sys_user_role user_role
LEFT JOIN sys_role role ON role.sid = user_role.roleSid LEFT JOIN sys_role role ON role.sid = user_role.roleSid
WHERE user_role.userSid = USER.sid WHERE user_role.userSid = USER.sid
) roleName, ) roleName,
dict.dictValue userType, dict.dictValue userType,
user.userType userTypeKey user.userType userTypeKey
FROM sys_user USER FROM sys_user USER
LEFT JOIN sys_user_role user_role ON user_role.userSid = USER.sid 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 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 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_staffinfo staff ON staff.sid = user.staffSid
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
<if test="orgName != null and orgName != ''"> <if test="orgName != null and orgName != ''">
AND (SELECT GROUP_CONCAT(org.name) AND (SELECT GROUP_CONCAT(org.name)
FROM sys_staff_org staffOrg FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid) LIKE concat('%',#{orgName},'%') WHERE staffOrg.staffSid = user.staffSid)
LIKE concat('%',
#{orgName}
,
'%'
)
</if> </if>
</where> </where>
</select> </select>
@ -141,17 +146,17 @@
<select id="selectByStaffsid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo"> <select id="selectByStaffsid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
SELECT * SELECT *
FROM sys_user su 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} WHERE su.staffSid = #{staffSid}
AND su.isDelete = 0 AND su.isDelete = 0
</select> </select>
<!--根据用户sid获取员工sid--> <!--根据用户sid获取员工sid-->
<select id="getUserOrgInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo"> <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 FROM sys_user su
LEFT JOIN sys_staffinfo ss ON su.staffSid = ss.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_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid LEFT JOIN sys_organization so ON sso.orgSid = so.sid
WHERE su.sid = #{userSid} WHERE su.sid = #{userSid}
ORDER BY sso.id ORDER BY sso.id
LIMIT 1 LIMIT 1
@ -160,9 +165,9 @@
<select id="selectUserInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserInfoVo"> <select id="selectUserInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserInfoVo">
SELECT su.staffSid, si.name staffName, sso.orgSid, sso.orgName, so.orgCode SELECT su.staffSid, si.name staffName, sso.orgSid, sso.orgName, so.orgCode
FROM sys_user su FROM sys_user su
LEFT JOIN sys_staffinfo si ON su.staffSid = si.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_staff_org sso ON su.staffSid = sso.staffSid
LEFT JOIN sys_organization so ON sso.orgSid = so.sid LEFT JOIN sys_organization so ON sso.orgSid = so.sid
WHERE su.sid = #{userSid} WHERE su.sid = #{userSid}
ORDER BY sso.id ORDER BY sso.id
LIMIT 1 LIMIT 1
@ -196,12 +201,22 @@
</update> </update>
<select id="getUsersByRoleSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo"> <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 FROM `sys_user` su
LEFT JOIN `sys_staffinfo` ss ON su.staffSid=ss.sid LEFT JOIN `sys_staffinfo` ss ON su.staffSid = ss.sid
LEFT JOIN `sys_staff_org` sso ON sso.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_user_role` sur ON sur.userSid = su.sid
LEFT JOIN `sys_role` sr ON sr.sid = sur.roleSid LEFT JOIN `sys_role` sr ON sr.sid = sur.roleSid
WHERE sr.sid=#{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> </select>
</mapper> </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 @Override
public ResultBean<SysUserVo> login(SysUserQuery userQuery) { public ResultBean<SysUserVo> login(SysUserQuery userQuery) {
String userName = userQuery.getUserName(); String userName = userQuery.getUserName();
String password = userQuery.getPassword(); String password = userQuery.getPassword();
String verifyCode = userQuery.getVerifyCode(); String verifyCode = userQuery.getVerifyCode();
@ -387,7 +385,6 @@ public class SysUserRest implements SysUserFeign {
} else { } else {
return new ResultBean<SysUserVo>().fail().setMsg("验证码错误"); return new ResultBean<SysUserVo>().fail().setMsg("验证码错误");
} }
if (StringUtils.isBlank(userName)) { if (StringUtils.isBlank(userName)) {
return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空"); return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空");
} }
@ -575,4 +572,9 @@ public class SysUserRest implements SysUserFeign {
public ResultBean getUsersByRoleSid(String roleSid) { public ResultBean getUsersByRoleSid(String roleSid) {
return sysUserService.getUsersByRoleSid(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.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostDetailsVo; 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.*;
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; 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.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.sysstaffinfo.SysStaffinfoService;
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService; import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.anrui.portal.biz.sysstaffpost.SysStaffPostService; 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.config.DictCommonType;
import com.yxt.anrui.portal.utils.MsgWs; import com.yxt.anrui.portal.utils.MsgWs;
import com.yxt.common.base.config.RedisUtil; 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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.collections.map.HashedMap;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -99,6 +96,8 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
@Autowired @Autowired
private ImageUploadUtil imageUploadUtil; private ImageUploadUtil imageUploadUtil;
@Autowired
private SysRoleService sysRoleService;
public PagerVo<SysUser> listPage(PagerQuery<SysUserQuery> pq) { public PagerVo<SysUser> listPage(PagerQuery<SysUserQuery> pq) {
@ -133,7 +132,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
SysUserQuery query = pq.getParams(); SysUserQuery query = pq.getParams();
QueryWrapper<SysUser> qw = createQueryWrapper(query); QueryWrapper<SysUser> qw = createQueryWrapper(query);
IPage<SysUser> page = PagerUtil.queryToPage(pq); 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(); List<SysUserVo> records = pagging.getRecords();
for (SysUserVo record : records) { for (SysUserVo record : records) {
String departmentSid = record.getDepartmentSid(); String departmentSid = record.getDepartmentSid();
@ -325,7 +324,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid()); userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid());
String psid = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid()).getPsid(); String psid = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid()).getPsid();
String name = sysOrganizationService.fetchBySid(psid).getName(); 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.setOrganizationSid(sysStaffOrgVo.getOrgSid());
userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName()); userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName());
userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath());
@ -884,4 +883,22 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
ResultBean<Object> objectResultBean = ResultBean.fireSuccess().setData(r); ResultBean<Object> objectResultBean = ResultBean.fireSuccess().setData(r);
return objectResultBean; 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