mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-22 23:15:07 +08:00
增加 Redis pub sub 机制
This commit is contained in:
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.dashboard.modules.system.mq.consumer;
|
||||
|
||||
import cn.iocoder.dashboard.framework.redis.core.listener.AbstractMessageListener;
|
||||
import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage;
|
||||
import org.springframework.data.redis.connection.Message;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class SysMenuRefreshConsumer extends AbstractMessageListener {
|
||||
|
||||
@Override
|
||||
public void onMessage(Message message, byte[] bytes) {
|
||||
System.out.println(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getChannel() {
|
||||
return SysMenuRefreshMessage.TOPIC;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
package cn.iocoder.dashboard.modules.system.mq.message;
|
@ -0,0 +1,13 @@
|
||||
package cn.iocoder.dashboard.modules.system.mq.message.permission;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 菜单数据刷新 Message
|
||||
*/
|
||||
@Data
|
||||
public class SysMenuRefreshMessage {
|
||||
|
||||
public static final String TOPIC = "system.menu.refresh";
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
package cn.iocoder.dashboard.modules.system.mq.producer;
|
@ -0,0 +1,26 @@
|
||||
package cn.iocoder.dashboard.modules.system.mq.producer.permission;
|
||||
|
||||
import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Menu 菜单相关消息的 Producer
|
||||
*/
|
||||
@Component
|
||||
public class SysMenuProducer {
|
||||
|
||||
@Resource
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
|
||||
/**
|
||||
* 发送 {@link SysMenuRefreshMessage} 消息
|
||||
*/
|
||||
public void sendMenuRefreshMessage() {
|
||||
SysMenuRefreshMessage message = new SysMenuRefreshMessage();
|
||||
redisTemplate.convertAndSend(SysMenuRefreshMessage.TOPIC, message);
|
||||
}
|
||||
|
||||
}
|
@ -11,6 +11,7 @@ import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysMenuMappe
|
||||
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
|
||||
import cn.iocoder.dashboard.modules.system.enums.permission.MenuIdEnum;
|
||||
import cn.iocoder.dashboard.modules.system.enums.permission.MenuTypeEnum;
|
||||
import cn.iocoder.dashboard.modules.system.mq.producer.permission.SysMenuProducer;
|
||||
import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService;
|
||||
import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
|
||||
import cn.iocoder.dashboard.util.collection.CollectionUtils;
|
||||
@ -68,6 +69,9 @@ public class SysMenuServiceImpl implements SysMenuService {
|
||||
@Resource
|
||||
private SysPermissionService permissionService;
|
||||
|
||||
@Resource
|
||||
private SysMenuProducer menuProducer;
|
||||
|
||||
/**
|
||||
* 初始化 {@link #menuCache} 和 {@link #permMenuCache} 缓存
|
||||
*/
|
||||
@ -183,6 +187,8 @@ public class SysMenuServiceImpl implements SysMenuService {
|
||||
SysMenuDO updateObject = SysMenuConvert.INSTANCE.convert(reqVO);
|
||||
initMenuProperty(updateObject);
|
||||
menuMapper.updateById(updateObject);
|
||||
// 发送刷新消息
|
||||
menuProducer.sendMenuRefreshMessage();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user