Browse Source

清除所有离职人员的移动端登录token

master
dimengzhe 1 year ago
parent
commit
84a1ec0389
  1. 4
      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. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java
  4. 232
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml
  5. 5
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java
  6. 14
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

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

@ -268,4 +268,8 @@ public interface SysUserFeign {
@PostMapping(value = "/selectPrivilegeLevel")
ResultBean<String> selectPrivilegeLevel(@RequestBody PrivilegeQuery query);
@ApiOperation(value = "清除所有离职人员的移动端登录缓存")
@PostMapping(value = "/removeRedis")
ResultBean removeRedis();
}

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

@ -250,4 +250,9 @@ public class SysUserFeignFallback implements SysUserFeign {
public ResultBean<String> selectPrivilegeLevel(PrivilegeQuery query) {
return null;
}
@Override
public ResultBean removeRedis() {
return null;
}
}

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

@ -198,4 +198,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
String fetchByUserNameAndUserPhone(@Param("userName") String userName, @Param("userPhone") String userPhone);
List<String> selectUserByStaffSid(@Param("list") List<String> staffList);
List<String> selectTokenList();
}

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

@ -5,59 +5,59 @@
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
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.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.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,
dict.dictValue userType,
user.userType userTypeKey
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.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.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,
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}
,
'%'
)
FROM sys_staff_org staffOrg
LEFT JOIN sys_organization org ON org.sid = staffOrg.orgSid
WHERE staffOrg.staffSid = user.staffSid)
LIKE concat('%',
#{orgName}
,
'%'
)
</if>
<if test="userName != null and userName != ''">
and
@ -113,7 +113,7 @@
<select id="selectByUserName" resultType="com.yxt.anrui.portal.api.sysuser.SysUser">
SELECT su.*
FROM sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
left join sys_staffinfo si on si.sid = su.staffSid
where su.userName = #{param1}
and su.isDelete = 0
and su.userType = 1
@ -122,18 +122,20 @@
<select id="selectByUserNameApp" resultType="com.yxt.anrui.portal.api.sysuser.SysUser">
SELECT su.*
FROM sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
left join sys_staffinfo si on si.sid = su.staffSid
where su.userName = #{param1}
and su.isDelete = 0
and su.userType = 1 and si.personTypeKey != '01'
and su.userType = 1
and si.personTypeKey != '01'
</select>
<select id="selectByAppId" resultType="com.yxt.anrui.portal.api.sysuser.SysUser">
SELECT su.*
FROM sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
left join sys_staffinfo si on si.sid = su.staffSid
where su.appId = #{appId}
and su.isDelete = 0
and su.userType = 1 and si.personTypeKey != '01'
and su.userType = 1
and si.personTypeKey != '01'
</select>
<select id="fetchByUserName" resultType="com.yxt.anrui.portal.api.sysuser.SysUser">
SELECT *
@ -191,7 +193,7 @@
<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>
@ -199,32 +201,35 @@
<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
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
ORDER BY sso.id
LIMIT 1
</select>
<!--根据用户的sid查询用户的组织信息:多个时取第一个-->
<select id="selectUserInfoByUserSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserInfoVo">
SELECT su.staffSid, si.name staffName, sso.orgSid, sso.orgName, so.orgCode,su.mobile
SELECT su.staffSid, si.name staffName, sso.orgSid, sso.orgName, so.orgCode, su.mobile
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
ORDER BY sso.id
LIMIT 1
</select>
<select id="selectUserInfoByUserSidOne" 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}
and find_in_set(#{orgSid}, replace(sso.orgSidPath, '/', ','))
ORDER BY sso.id LIMIT 1
ORDER BY sso.id
LIMIT 1
</select>
<!--根据员工sid更新用户表的工号以及手机号-->
<update id="updateByStaffSid">
@ -243,7 +248,7 @@
<select id="selectByMobile" resultType="com.yxt.anrui.portal.api.sysuser.SysUser">
select su.*
from sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
left join sys_staffinfo si on si.sid = su.staffSid
where su.mobile = #{mobile}
and su.isDelete = 0
and su.userType = 1
@ -259,33 +264,33 @@
<select id="getUsersByRoleSid" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
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
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 distinct si.name, su.sid, su.staffSid<!--, so.orgSidPath-->
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
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, '/', ','))
and si.personTypeKey != '01'
and find_in_set(#{levelOrgSid}, replace(so.orgSidPath, '/', ','))
and si.personTypeKey != '01'
</select>
<select id="getUserSidByRole" resultType="java.lang.String">
select distinct su.sid
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
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, '/', ','))
and si.personTypeKey != '01'
and find_in_set(#{levelOrgSid}, replace(so.orgSidPath, '/', ','))
and si.personTypeKey != '01'
</select>
<select id="getUserByOrgSid" resultType="java.util.Map">
@ -294,14 +299,14 @@
sso.orgName,
sp.name as postName
FROM sys_user su
LEFT JOIN sys_staffinfo st
ON su.`staffSid` = st.`sid`
LEFT JOIN sys_staff_org sso
ON st.`sid` = sso.`staffSid`
LEFT JOIN sys_staff_post ssp
ON st.sid = ssp.`staffSid`
LEFT JOIN sys_post sp
ON ssp.`postSid` = sp.`sid`
LEFT JOIN sys_staffinfo st
ON su.`staffSid` = st.`sid`
LEFT JOIN sys_staff_org sso
ON st.`sid` = sso.`staffSid`
LEFT JOIN sys_staff_post ssp
ON st.sid = ssp.`staffSid`
LEFT JOIN sys_post sp
ON ssp.`postSid` = sp.`sid`
WHERE su.sid != #{userSid}
AND sso.`orgSidPath` LIKE concat('%'
, #{orgSid}
@ -311,7 +316,7 @@
<select id="fetchBySids" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
select su.*, ss.name
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.sid in
<foreach collection="sids" index="index" item="item" open="(" separator="," close=")">
#{item}
@ -321,8 +326,8 @@
<select id="getUserByRoleSid" 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_user su on sr.userSid = su.sid
left join sys_staffinfo si on si.sid = su.staffSid
where sr.roleSid = #{roleSid}
and si.personTypeKey != '01'
</select>
@ -347,14 +352,16 @@
</select>
<select id="getUserMessageByRole" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
select distinct si.name, su.sid, su.staffSid,so.orgSidPath
select distinct si.name, su.sid, su.staffSid, so.orgSidPath
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
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, '/', ','))
and si.personTypeKey != '01' AND so.`manageType`=3 and su.sid in
and find_in_set(#{levelOrgSid}, replace(so.orgSidPath, '/', ','))
and si.personTypeKey != '01'
AND so.`manageType` = 3
and su.sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
@ -363,12 +370,14 @@
<select id="getUserSidMessageByRole" resultType="java.lang.String">
select distinct su.sid
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
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, '/', ','))
and si.personTypeKey != '01' AND so.`manageType`=3 and su.sid in
and find_in_set(#{levelOrgSid}, replace(so.orgSidPath, '/', ','))
and si.personTypeKey != '01'
AND so.`manageType` = 3
and su.sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
@ -385,17 +394,26 @@
<select id="fetchByUserNameAndUserPhone" resultType="java.lang.String">
SELECT su.`sid`
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 ss.name = #{userName}
AND su.mobile = #{userPhone}
</select>
<select id="selectUserByStaffSid" resultType="java.lang.String">
select su.sid from sys_user su left join sys_staffinfo si on su.staffSid = si.sid where su.staffSid in
select su.sid
from sys_user su
left join sys_staffinfo si on su.staffSid = si.sid where su.staffSid in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and si.personTypeKey != '01'
</select>
<select id="selectTokenList" resultType="java.lang.String">
select su.token
from sys_staffinfo si
left join sys_user su on su.staffSid = si.sid
where si.personTypeKey = '01'
</select>
</mapper>

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

@ -670,4 +670,9 @@ public class SysUserRest implements SysUserFeign {
public ResultBean<String> selectPrivilegeLevel(PrivilegeQuery query) {
return sysUserService.selectPrivilegeLevel(query);
}
@Override
public ResultBean removeRedis() {
return sysUserService.removeRedis();
}
}

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

@ -74,7 +74,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
* 设置redis的过期时间为4小时
*/
public static final long USERS_REDIS_SESSION_TL_PC = 4 * 3600;
// public static final long USERS_REDIS_SESSION_TL_PC = 60;
// public static final long USERS_REDIS_SESSION_TL_PC = 60;
public static final long USERS_REDIS_SESSION_TL_App = 24 * 15 * 3600;
/**
* 验证码长度
@ -1521,4 +1521,16 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
}
return rb.success().setData(sysUserVoList);
}
public ResultBean removeRedis() {
ResultBean rb = ResultBean.fireFail();
//查询所有离职人员的移动端的token
List<String> tokenList = baseMapper.selectTokenList();
tokenList.removeAll(Collections.singleton(null));
if (!tokenList.isEmpty()) {
String[] tokenss = tokenList.toArray(new String[tokenList.size()]);
redisUtil.remove(tokenss);
}
return rb.success();
}
}
Loading…
Cancel
Save