角色管理

This commit is contained in:
zhaoyz 2024-04-26 18:54:32 +08:00
parent b923213fb2
commit 70f8041d47
5 changed files with 57 additions and 34 deletions

View File

@ -27,6 +27,8 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
*/ */
List<SysRole> listRolesByUserId(Long userId); List<SysRole> listRolesByUserId(Long userId);
List<SysRole> getRoleTree(@Param("page") Page page, @Param("roleName") String roleName); List<Map> getRoleTree(@Param("page") Page page, @Param("roleName") String roleName);
Integer getTotal(@Param("roleName") String roleName);
} }

View File

@ -115,8 +115,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
} }
public R getRoleTree(Page page, String roleName) { public R getRoleTree(Page page, String roleName) {
baseMapper.getRoleTree(page, roleName); List roleTree = baseMapper.getRoleTree(page, roleName);
return null; Integer total = baseMapper.getTotal(roleName);
page.setRecords(roleTree);
page.setTotal(total);
return R.ok(page);
} }
/** /**

View File

@ -18,7 +18,7 @@
<if test="name != null and name != ''"> <if test="name != null and name != ''">
<bind name="bindName" value="'%' + name + '%'"/> <bind name="bindName" value="'%' + name + '%'"/>
AND name LIKE '#{bindName}' AND name LIKE #{bindName}
</if> </if>
</sql> </sql>

View File

@ -28,14 +28,14 @@
and sys_user_role.user_id = #{userId} and sys_user_role.user_id = #{userId}
</select> </select>
<select id="getRoleTree" resultMap="BaseResultMap"> <select id="getRoleTree" resultType="map">
select r.role_id, select r.role_id "roleId",
r.role_name, r.role_name "roleName",
r.role_code, r.role_code "roleCode",
r.role.desc, r.role_desc "roleDesc",
r.create_time, r.create_time "createTime",
r.update_time, r.update_time "updateTime",
GROUP_CONCAT(m.`name`) as menu GROUP_CONCAT(m.`name`) "menu"
from sys_role r from sys_role r
left join left join
sys_role_menu rm on r.role_id = rm.role_id sys_role_menu rm on r.role_id = rm.role_id
@ -44,9 +44,25 @@
where r.del_flag = 0 where r.del_flag = 0
<if test="roleName != null and roleName != ''"> <if test="roleName != null and roleName != ''">
<bind name="bindName" value="'%' + roleName + '%'"/> <bind name="bindName" value="'%' + roleName + '%'"/>
and r.role_name like '#{bindName}' and r.role_name like #{bindName}
</if> </if>
GROUP BY r.role_id GROUP BY r.role_id
ORDER BY r.create_time desc limit #{page.current}, #{page.size} ORDER BY r.create_time desc
</select>
<select id="getTotal" resultType="integer">
select count(*)
from (select GROUP_CONCAT(m.`name`) as menu
from sys_role r
left join
sys_role_menu rm on r.role_id = rm.role_id
left join
sys_menu m on m.menu_id = rm.menu_id
where r.del_flag = 0
<if test="roleName != null and roleName != ''">
<bind name="bindName" value="'%' + roleName + '%'"/>
and r.role_name like #{bindName}
</if>
GROUP BY r.role_id) a
</select> </select>
</mapper> </mapper>

View File

@ -17,6 +17,7 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.WebSocketSession;
@ -116,27 +117,28 @@ public class ChatServiceImpl implements ChatService {
R<UserInfo> info = remoteUserService.info(userDTO, SecurityConstants.FROM_IN); R<UserInfo> info = remoteUserService.info(userDTO, SecurityConstants.FROM_IN);
UserInfo userInfo = info.getData(); UserInfo userInfo = info.getData();
JSONObject param = new JSONObject(); if (StringUtils.hasText(msg)) {
JSONObject param = new JSONObject();
MongoTemplate template = mongoDBSource.getTemplate();
Document document = new Document();
document.put("content", msg);
param.put("content", msg);
String now = DateUtil.now();
document.put("create_time", now);
param.put("createTime", now);
document.put("create_user", username);
String name = userInfo.getSysUser().getName();
document.put("create_name", name);
param.put("createName", name);
document.put("deleted", 0);
document.put("revoked", 0);
template.insert(document, "t_chat");
MongoTemplate template = mongoDBSource.getTemplate(); Map<String, WebSocketSession> sessionMap = databaseSessionMap.get(databaseName);
Document document = new Document(); for (Map.Entry<String, WebSocketSession> entry : sessionMap.entrySet()) {
document.put("content", msg); WebSocketSession value = entry.getValue();
param.put("content", msg); value.sendMessage(new TextMessage(param.toJSONString().getBytes()));
String now = DateUtil.now(); }
document.put("create_time", now);
param.put("createTime", now);
document.put("create_user", username);
String name = userInfo.getSysUser().getName();
document.put("create_name", name);
param.put("createName", name);
document.put("deleted", 0);
document.put("revoked", 0);
template.insert(document, "t_chat");
Map<String, WebSocketSession> sessionMap = databaseSessionMap.get(databaseName);
for (Map.Entry<String, WebSocketSession> entry : sessionMap.entrySet()) {
WebSocketSession value = entry.getValue();
value.sendMessage(new TextMessage(param.toJSONString().getBytes()));
} }
} }