作者 王勇

完善删除服务器以及虚拟主机时候的删除用户

... ... @@ -117,4 +117,21 @@ public interface UserInfoMapper {
* @return
*/
int deleteByUsername(String username);
/**
* 根据服务器名称,删除用户关系
*
* @param serverName 服务器名称
* @return
*/
int deleteByServerName(String serverName);
/**
* 根据虚拟主机名称,删除用户关系
*
* @param hostName 虚拟主机名称
* @return
*/
int deleteByHostName(String hostName);
}
\ No newline at end of file
... ...
... ... @@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sunyo.wlpt.message.bus.service.domain.*;
import com.sunyo.wlpt.message.bus.service.mapper.BusServerMapper;
import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper;
import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
import com.sunyo.wlpt.message.bus.service.service.*;
import com.sunyo.wlpt.message.bus.service.utils.EncryptionUtils;
... ... @@ -31,6 +32,9 @@ public class BusServerServiceImpl implements BusServerService {
private RoutingKeyService routingKeyService;
@Resource
private UserInfoMapper userInfoMapper;
@Resource
private UserMessageBindingService userMessageBindingService;
@Resource
... ... @@ -166,8 +170,12 @@ public class BusServerServiceImpl implements BusServerService {
public void serverCascadeDelete(BusServer busServer) throws IOException, TimeoutException
{
String serverId = busServer.getId();
List<UserMessageBinding> bindings = userMessageBindingService.selectByServerId(serverId);
String serverName = busServer.getServerName();
//0、删除用户关系
userInfoMapper.deleteByServerName(serverName);
// 1.1 删除数据库中的绑定关系
List<UserMessageBinding> bindings = userMessageBindingService.selectByServerId(serverId);
userMessageBindingService.deleteByServerId(serverId);
for (UserMessageBinding userMessageBinding : bindings) {
// 1.2、解除MQ服务器上的绑定关系
... ...
... ... @@ -3,9 +3,9 @@ package com.sunyo.wlpt.message.bus.service.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sunyo.wlpt.message.bus.service.domain.BusExchange;
import com.sunyo.wlpt.message.bus.service.domain.BusQueue;
import com.sunyo.wlpt.message.bus.service.domain.BusServer;
import com.sunyo.wlpt.message.bus.service.domain.VirtualHost;
import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper;
import com.sunyo.wlpt.message.bus.service.mapper.VirtualHostMapper;
import com.sunyo.wlpt.message.bus.service.rabbit.utils.ClientUtils;
import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
... ... @@ -31,6 +31,9 @@ public class VirtualHostServiceImpl implements VirtualHostService {
private VirtualHostMapper virtualHostMapper;
@Resource
private UserInfoMapper userInfoMapper;
@Resource
private BusServerService busServerService;
@Resource
... ... @@ -173,13 +176,18 @@ public class VirtualHostServiceImpl implements VirtualHostService {
ClientUtils.deleteVirtualHost(busServer, virtualHost.getVirtualHostName());
String virtualHostId = virtualHost.getId();
String virtualHostName = virtualHost.getVirtualHostName();
// 0.1、根据虚拟主机名称,删除用户关系
userInfoMapper.deleteByHostName(virtualHostName);
// 1.1、删除数据库中的绑定关系
userMessageBindingService.deleteByVirtualHostId(virtualHostId);
List<BusQueue> queues = busQueueService.selectByVirtualHostId(virtualHostId);
// 2.1、删除数据库中对应的队列
busQueueService.deleteByVirtualHostId(virtualHostId);
List<BusExchange> exchanges = busExchangeService.selectByVirtualHostId(virtualHostId);
// 3.1 根据虚拟主机id,删除交换机
List<BusExchange> exchanges = busExchangeService.selectByVirtualHostId(virtualHostId);
busExchangeService.deleteByVirtualHostId(virtualHostId);
for (BusExchange busExchange : exchanges) {
String exchangeId = busExchange.getId();
... ...
... ... @@ -35,11 +35,26 @@
from user_info
where id = #{id,jdbcType=VARCHAR}
</delete>
<delete id="deleteByUsername" parameterType="java.lang.String">
delete
from user_info
where username = #{username,jdbcType=VARCHAR}
</delete>
<delete id="deleteByServerName" parameterType="java.lang.String">
delete
from user_info
where server_name = #{serverName,jdbcType=VARCHAR}
</delete>
<delete id="deleteByHostName" parameterType="java.lang.String">
delete
from user_info
where virtual_host_name = #{virtualHostName,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserInfo">
<!--@mbg.generated-->
insert into user_info (id, username, `password`,
... ...