作者 王勇

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

@@ -117,4 +117,21 @@ public interface UserInfoMapper { @@ -117,4 +117,21 @@ public interface UserInfoMapper {
117 * @return 117 * @return
118 */ 118 */
119 int deleteByUsername(String username); 119 int deleteByUsername(String username);
  120 +
  121 + /**
  122 + * 根据服务器名称,删除用户关系
  123 + *
  124 + * @param serverName 服务器名称
  125 + * @return
  126 + */
  127 + int deleteByServerName(String serverName);
  128 +
  129 + /**
  130 + * 根据虚拟主机名称,删除用户关系
  131 + *
  132 + * @param hostName 虚拟主机名称
  133 + * @return
  134 + */
  135 + int deleteByHostName(String hostName);
  136 +
120 } 137 }
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper; @@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
4 import com.github.pagehelper.PageInfo; 4 import com.github.pagehelper.PageInfo;
5 import com.sunyo.wlpt.message.bus.service.domain.*; 5 import com.sunyo.wlpt.message.bus.service.domain.*;
6 import com.sunyo.wlpt.message.bus.service.mapper.BusServerMapper; 6 import com.sunyo.wlpt.message.bus.service.mapper.BusServerMapper;
  7 +import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper;
7 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils; 8 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
8 import com.sunyo.wlpt.message.bus.service.service.*; 9 import com.sunyo.wlpt.message.bus.service.service.*;
9 import com.sunyo.wlpt.message.bus.service.utils.EncryptionUtils; 10 import com.sunyo.wlpt.message.bus.service.utils.EncryptionUtils;
@@ -31,6 +32,9 @@ public class BusServerServiceImpl implements BusServerService { @@ -31,6 +32,9 @@ public class BusServerServiceImpl implements BusServerService {
31 private RoutingKeyService routingKeyService; 32 private RoutingKeyService routingKeyService;
32 33
33 @Resource 34 @Resource
  35 + private UserInfoMapper userInfoMapper;
  36 +
  37 + @Resource
34 private UserMessageBindingService userMessageBindingService; 38 private UserMessageBindingService userMessageBindingService;
35 39
36 @Resource 40 @Resource
@@ -166,8 +170,12 @@ public class BusServerServiceImpl implements BusServerService { @@ -166,8 +170,12 @@ public class BusServerServiceImpl implements BusServerService {
166 public void serverCascadeDelete(BusServer busServer) throws IOException, TimeoutException 170 public void serverCascadeDelete(BusServer busServer) throws IOException, TimeoutException
167 { 171 {
168 String serverId = busServer.getId(); 172 String serverId = busServer.getId();
169 - List<UserMessageBinding> bindings = userMessageBindingService.selectByServerId(serverId); 173 + String serverName = busServer.getServerName();
  174 + //0、删除用户关系
  175 + userInfoMapper.deleteByServerName(serverName);
  176 +
170 // 1.1 删除数据库中的绑定关系 177 // 1.1 删除数据库中的绑定关系
  178 + List<UserMessageBinding> bindings = userMessageBindingService.selectByServerId(serverId);
171 userMessageBindingService.deleteByServerId(serverId); 179 userMessageBindingService.deleteByServerId(serverId);
172 for (UserMessageBinding userMessageBinding : bindings) { 180 for (UserMessageBinding userMessageBinding : bindings) {
173 // 1.2、解除MQ服务器上的绑定关系 181 // 1.2、解除MQ服务器上的绑定关系
@@ -3,9 +3,9 @@ package com.sunyo.wlpt.message.bus.service.service.impl; @@ -3,9 +3,9 @@ package com.sunyo.wlpt.message.bus.service.service.impl;
3 import com.github.pagehelper.PageHelper; 3 import com.github.pagehelper.PageHelper;
4 import com.github.pagehelper.PageInfo; 4 import com.github.pagehelper.PageInfo;
5 import com.sunyo.wlpt.message.bus.service.domain.BusExchange; 5 import com.sunyo.wlpt.message.bus.service.domain.BusExchange;
6 -import com.sunyo.wlpt.message.bus.service.domain.BusQueue;  
7 import com.sunyo.wlpt.message.bus.service.domain.BusServer; 6 import com.sunyo.wlpt.message.bus.service.domain.BusServer;
8 import com.sunyo.wlpt.message.bus.service.domain.VirtualHost; 7 import com.sunyo.wlpt.message.bus.service.domain.VirtualHost;
  8 +import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper;
9 import com.sunyo.wlpt.message.bus.service.mapper.VirtualHostMapper; 9 import com.sunyo.wlpt.message.bus.service.mapper.VirtualHostMapper;
10 import com.sunyo.wlpt.message.bus.service.rabbit.utils.ClientUtils; 10 import com.sunyo.wlpt.message.bus.service.rabbit.utils.ClientUtils;
11 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils; 11 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
@@ -31,6 +31,9 @@ public class VirtualHostServiceImpl implements VirtualHostService { @@ -31,6 +31,9 @@ public class VirtualHostServiceImpl implements VirtualHostService {
31 private VirtualHostMapper virtualHostMapper; 31 private VirtualHostMapper virtualHostMapper;
32 32
33 @Resource 33 @Resource
  34 + private UserInfoMapper userInfoMapper;
  35 +
  36 + @Resource
34 private BusServerService busServerService; 37 private BusServerService busServerService;
35 38
36 @Resource 39 @Resource
@@ -173,13 +176,18 @@ public class VirtualHostServiceImpl implements VirtualHostService { @@ -173,13 +176,18 @@ public class VirtualHostServiceImpl implements VirtualHostService {
173 ClientUtils.deleteVirtualHost(busServer, virtualHost.getVirtualHostName()); 176 ClientUtils.deleteVirtualHost(busServer, virtualHost.getVirtualHostName());
174 177
175 String virtualHostId = virtualHost.getId(); 178 String virtualHostId = virtualHost.getId();
  179 + String virtualHostName = virtualHost.getVirtualHostName();
  180 + // 0.1、根据虚拟主机名称,删除用户关系
  181 + userInfoMapper.deleteByHostName(virtualHostName);
  182 +
176 // 1.1、删除数据库中的绑定关系 183 // 1.1、删除数据库中的绑定关系
177 userMessageBindingService.deleteByVirtualHostId(virtualHostId); 184 userMessageBindingService.deleteByVirtualHostId(virtualHostId);
178 - List<BusQueue> queues = busQueueService.selectByVirtualHostId(virtualHostId); 185 +
179 // 2.1、删除数据库中对应的队列 186 // 2.1、删除数据库中对应的队列
180 busQueueService.deleteByVirtualHostId(virtualHostId); 187 busQueueService.deleteByVirtualHostId(virtualHostId);
181 - List<BusExchange> exchanges = busExchangeService.selectByVirtualHostId(virtualHostId); 188 +
182 // 3.1 根据虚拟主机id,删除交换机 189 // 3.1 根据虚拟主机id,删除交换机
  190 + List<BusExchange> exchanges = busExchangeService.selectByVirtualHostId(virtualHostId);
183 busExchangeService.deleteByVirtualHostId(virtualHostId); 191 busExchangeService.deleteByVirtualHostId(virtualHostId);
184 for (BusExchange busExchange : exchanges) { 192 for (BusExchange busExchange : exchanges) {
185 String exchangeId = busExchange.getId(); 193 String exchangeId = busExchange.getId();
@@ -35,11 +35,26 @@ @@ -35,11 +35,26 @@
35 from user_info 35 from user_info
36 where id = #{id,jdbcType=VARCHAR} 36 where id = #{id,jdbcType=VARCHAR}
37 </delete> 37 </delete>
  38 +
38 <delete id="deleteByUsername" parameterType="java.lang.String"> 39 <delete id="deleteByUsername" parameterType="java.lang.String">
39 delete 40 delete
40 from user_info 41 from user_info
41 where username = #{username,jdbcType=VARCHAR} 42 where username = #{username,jdbcType=VARCHAR}
42 </delete> 43 </delete>
  44 +
  45 + <delete id="deleteByServerName" parameterType="java.lang.String">
  46 + delete
  47 + from user_info
  48 + where server_name = #{serverName,jdbcType=VARCHAR}
  49 + </delete>
  50 +
  51 + <delete id="deleteByHostName" parameterType="java.lang.String">
  52 + delete
  53 + from user_info
  54 + where virtual_host_name = #{virtualHostName,jdbcType=VARCHAR}
  55 + </delete>
  56 +
  57 +
43 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserInfo"> 58 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserInfo">
44 <!--@mbg.generated--> 59 <!--@mbg.generated-->
45 insert into user_info (id, username, `password`, 60 insert into user_info (id, username, `password`,