作者 王勇

级联删除,删除路由键时,级联删除数据库中绑定关系,MQ中的绑定关系

@@ -8,7 +8,9 @@ import com.sunyo.wlpt.message.bus.service.utils.IdUtils; @@ -8,7 +8,9 @@ import com.sunyo.wlpt.message.bus.service.utils.IdUtils;
8 import org.springframework.web.bind.annotation.*; 8 import org.springframework.web.bind.annotation.*;
9 9
10 import javax.annotation.Resource; 10 import javax.annotation.Resource;
  11 +import java.io.IOException;
11 import java.util.List; 12 import java.util.List;
  13 +import java.util.concurrent.TimeoutException;
12 14
13 import static com.sunyo.wlpt.message.bus.service.common.Constant.EXIST_ROUTINGKEY_INFO; 15 import static com.sunyo.wlpt.message.bus.service.common.Constant.EXIST_ROUTINGKEY_INFO;
14 16
@@ -39,7 +41,8 @@ public class RoutingKeyController { @@ -39,7 +41,8 @@ public class RoutingKeyController {
39 @RequestParam(value = "routingKeyName", required = false) String routingKeyName, 41 @RequestParam(value = "routingKeyName", required = false) String routingKeyName,
40 @RequestParam(value = "exchangeId", required = false) String exchangeId, 42 @RequestParam(value = "exchangeId", required = false) String exchangeId,
41 @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, 43 @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
42 - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { 44 + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize)
  45 + {
43 // 获取查询参数 46 // 获取查询参数
44 RoutingKey routingKey = RoutingKey.builder().routingKeyName(routingKeyName).exchangeId(exchangeId).build(); 47 RoutingKey routingKey = RoutingKey.builder().routingKeyName(routingKeyName).exchangeId(exchangeId).build();
45 // 分页查询 48 // 分页查询
@@ -56,8 +59,8 @@ public class RoutingKeyController { @@ -56,8 +59,8 @@ public class RoutingKeyController {
56 * @return {@link ResultJson} 59 * @return {@link ResultJson}
57 */ 60 */
58 @DeleteMapping("/delete") 61 @DeleteMapping("/delete")
59 - public ResultJson deleteRoutingKey(@RequestBody RoutingKey routingKey) {  
60 - 62 + public ResultJson deleteRoutingKey(@RequestBody RoutingKey routingKey) throws IOException, TimeoutException
  63 + {
61 return routingKeyService.deleteByPrimaryKey(routingKey.getId()) > 0 64 return routingKeyService.deleteByPrimaryKey(routingKey.getId()) > 0
62 ? new ResultJson<>("200", "删除路由键,成功") 65 ? new ResultJson<>("200", "删除路由键,成功")
63 : new ResultJson<>("500", "删除路由键,失败"); 66 : new ResultJson<>("500", "删除路由键,失败");
@@ -70,8 +73,8 @@ public class RoutingKeyController { @@ -70,8 +73,8 @@ public class RoutingKeyController {
70 * @return {@link ResultJson} 73 * @return {@link ResultJson}
71 */ 74 */
72 @GetMapping("/batchRemove") 75 @GetMapping("/batchRemove")
73 - public ResultJson batchRemoveRoutingKey(String ids) {  
74 - 76 + public ResultJson batchRemoveRoutingKey(String ids) throws IOException, TimeoutException
  77 + {
75 return routingKeyService.deleteByPrimaryKey(ids) > 0 78 return routingKeyService.deleteByPrimaryKey(ids) > 0
76 ? new ResultJson<>("200", "删除路由键,成功") 79 ? new ResultJson<>("200", "删除路由键,成功")
77 : new ResultJson<>("500", "删除路由键,失败"); 80 : new ResultJson<>("500", "删除路由键,失败");
@@ -84,7 +87,8 @@ public class RoutingKeyController { @@ -84,7 +87,8 @@ public class RoutingKeyController {
84 * @return {@link ResultJson} 87 * @return {@link ResultJson}
85 */ 88 */
86 @PutMapping("/update") 89 @PutMapping("/update")
87 - public ResultJson updateRoutingKey(@RequestBody RoutingKey routingKey) { 90 + public ResultJson updateRoutingKey(@RequestBody RoutingKey routingKey)
  91 + {
88 92
89 //先验证,修改好的核心信息(路由键名称)是否已存在 93 //先验证,修改好的核心信息(路由键名称)是否已存在
90 String message = validateRoutingKey(routingKey); 94 String message = validateRoutingKey(routingKey);
@@ -102,7 +106,8 @@ public class RoutingKeyController { @@ -102,7 +106,8 @@ public class RoutingKeyController {
102 * @return {@link ResultJson} 106 * @return {@link ResultJson}
103 */ 107 */
104 @PostMapping("/insert") 108 @PostMapping("/insert")
105 - public ResultJson insertRoutingKey(@RequestBody RoutingKey routingKey) { 109 + public ResultJson insertRoutingKey(@RequestBody RoutingKey routingKey)
  110 + {
106 111
107 //先验证,增加的服务器的核心信息(ip和port,同时存在)是否已存在 112 //先验证,增加的服务器的核心信息(ip和port,同时存在)是否已存在
108 String message = validateRoutingKey(routingKey); 113 String message = validateRoutingKey(routingKey);
@@ -122,7 +127,8 @@ public class RoutingKeyController { @@ -122,7 +127,8 @@ public class RoutingKeyController {
122 * @param routingKey {@link RoutingKey} 127 * @param routingKey {@link RoutingKey}
123 * @return 通过,无返回消息 128 * @return 通过,无返回消息
124 */ 129 */
125 - private String validateRoutingKey(RoutingKey routingKey) { 130 + private String validateRoutingKey(RoutingKey routingKey)
  131 + {
126 if ("".equals(routingKey.getRoutingKeyName()) || routingKey.getRoutingKeyName() == null) { 132 if ("".equals(routingKey.getRoutingKeyName()) || routingKey.getRoutingKeyName() == null) {
127 return "该路由键信息中,没有路由键名称"; 133 return "该路由键信息中,没有路由键名称";
128 } 134 }
@@ -2,6 +2,7 @@ package com.sunyo.wlpt.message.bus.service.mapper; @@ -2,6 +2,7 @@ package com.sunyo.wlpt.message.bus.service.mapper;
2 2
3 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey; 3 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey;
4 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
  5 +import org.apache.ibatis.annotations.Param;
5 6
6 import java.util.List; 7 import java.util.List;
7 8
@@ -86,6 +87,14 @@ public interface RoutingKeyMapper { @@ -86,6 +87,14 @@ public interface RoutingKeyMapper {
86 List<RoutingKey> getRoutingKeyList(RoutingKey routingKey); 87 List<RoutingKey> getRoutingKeyList(RoutingKey routingKey);
87 88
88 /** 89 /**
  90 + * 根据exchangeID查询路由键
  91 + *
  92 + * @param exchangeId 交换机id
  93 + * @return
  94 + */
  95 + List<RoutingKey> selectByExchangeId(@Param("exchangeId") String exchangeId);
  96 +
  97 + /**
89 * 检验路由键是否存在,根据交换机id和路由键名称 98 * 检验路由键是否存在,根据交换机id和路由键名称
90 * 99 *
91 * @param routingKey 路由键 100 * @param routingKey 路由键
@@ -39,6 +39,14 @@ public interface UserMessageBindingMapper { @@ -39,6 +39,14 @@ public interface UserMessageBindingMapper {
39 int deleteByQueueId(String queueId); 39 int deleteByQueueId(String queueId);
40 40
41 /** 41 /**
  42 + * 根据路由键id删除配置关系
  43 + *
  44 + * @param routingKeyId 路由键id
  45 + * @return 删除成功
  46 + */
  47 + int deleteByRoutingKeyId(String routingKeyId);
  48 +
  49 + /**
42 * insert record to table 50 * insert record to table
43 * 51 *
44 * @param record the record 52 * @param record the record
@@ -63,6 +71,14 @@ public interface UserMessageBindingMapper { @@ -63,6 +71,14 @@ public interface UserMessageBindingMapper {
63 UserMessageBinding selectByPrimaryKey(String id); 71 UserMessageBinding selectByPrimaryKey(String id);
64 72
65 /** 73 /**
  74 + * 根据路由键id
  75 + *
  76 + * @param routingKeyId 路由键id
  77 + * @return
  78 + */
  79 + List<UserMessageBinding> selectByRoutingKeyId(String routingKeyId);
  80 +
  81 + /**
66 * update record selective 82 * update record selective
67 * 83 *
68 * @param record the updated record 84 * @param record the updated record
@@ -2,8 +2,11 @@ package com.sunyo.wlpt.message.bus.service.service; @@ -2,8 +2,11 @@ package com.sunyo.wlpt.message.bus.service.service;
2 2
3 import com.github.pagehelper.PageInfo; 3 import com.github.pagehelper.PageInfo;
4 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey; 4 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey;
  5 +import org.apache.ibatis.annotations.Param;
5 6
  7 +import java.io.IOException;
6 import java.util.List; 8 import java.util.List;
  9 +import java.util.concurrent.TimeoutException;
7 10
8 /** 11 /**
9 * @author 子诚 12 * @author 子诚
@@ -18,7 +21,7 @@ public interface RoutingKeyService { @@ -18,7 +21,7 @@ public interface RoutingKeyService {
18 * @param id primaryKey 21 * @param id primaryKey
19 * @return deleteCount 22 * @return deleteCount
20 */ 23 */
21 - int deleteByPrimaryKey(String id); 24 + int deleteByPrimaryKey(String id) throws IOException, TimeoutException;
22 25
23 /** 26 /**
24 * 根据交换机id,删除路由键信息 27 * 根据交换机id,删除路由键信息
@@ -53,6 +56,14 @@ public interface RoutingKeyService { @@ -53,6 +56,14 @@ public interface RoutingKeyService {
53 RoutingKey selectByPrimaryKey(String id); 56 RoutingKey selectByPrimaryKey(String id);
54 57
55 /** 58 /**
  59 + * 根据exchangeID查询路由键
  60 + *
  61 + * @param exchangeId 交换机id
  62 + * @return
  63 + */
  64 + List<RoutingKey> selectByExchangeId(@Param("exchangeId") String exchangeId);
  65 +
  66 + /**
56 * 更新,选择性,根据主键 67 * 更新,选择性,根据主键
57 * 68 *
58 * @param record the updated record 69 * @param record the updated record
@@ -5,6 +5,7 @@ import com.sunyo.wlpt.message.bus.service.domain.UserMessageBinding; @@ -5,6 +5,7 @@ import com.sunyo.wlpt.message.bus.service.domain.UserMessageBinding;
5 import com.sunyo.wlpt.message.bus.service.domain.XmlData; 5 import com.sunyo.wlpt.message.bus.service.domain.XmlData;
6 6
7 import java.io.IOException; 7 import java.io.IOException;
  8 +import java.util.List;
8 import java.util.concurrent.TimeoutException; 9 import java.util.concurrent.TimeoutException;
9 10
10 /** 11 /**
@@ -30,6 +31,14 @@ public interface UserMessageBindingService { @@ -30,6 +31,14 @@ public interface UserMessageBindingService {
30 int deleteByExchangeId(String exchangeId); 31 int deleteByExchangeId(String exchangeId);
31 32
32 /** 33 /**
  34 + * 根据路由键id删除配置关系
  35 + *
  36 + * @param routingKeyId 路由键id
  37 + * @return 删除成功
  38 + */
  39 + int deleteByRoutingKeyId(String routingKeyId);
  40 +
  41 + /**
33 * 根据队列Id,删除绑定关系 42 * 根据队列Id,删除绑定关系
34 * 43 *
35 * @param queueId 队列id 44 * @param queueId 队列id
@@ -94,6 +103,14 @@ public interface UserMessageBindingService { @@ -94,6 +103,14 @@ public interface UserMessageBindingService {
94 * @return true or false 103 * @return true or false
95 */ 104 */
96 Boolean validateXmlBinding(XmlData xmlData); 105 Boolean validateXmlBinding(XmlData xmlData);
  106 +
  107 + /**
  108 + * 根据路由键id
  109 + *
  110 + * @param routingKeyId 路由键id
  111 + * @return
  112 + */
  113 + List<UserMessageBinding> selectByRoutingKeyId(String routingKeyId);
97 } 114 }
98 115
99 116
1 package com.sunyo.wlpt.message.bus.service.service.impl; 1 package com.sunyo.wlpt.message.bus.service.service.impl;
2 2
3 -import com.sunyo.wlpt.message.bus.service.domain.BusExchange;  
4 -import com.sunyo.wlpt.message.bus.service.domain.BusQueue;  
5 -import com.sunyo.wlpt.message.bus.service.domain.XmlData; 3 +import com.sunyo.wlpt.message.bus.service.domain.*;
  4 +import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
6 import com.sunyo.wlpt.message.bus.service.service.MessageNoteService; 5 import com.sunyo.wlpt.message.bus.service.service.MessageNoteService;
7 import com.sunyo.wlpt.message.bus.service.service.RoutingKeyService; 6 import com.sunyo.wlpt.message.bus.service.service.RoutingKeyService;
8 import com.sunyo.wlpt.message.bus.service.service.UserMessageBindingService; 7 import com.sunyo.wlpt.message.bus.service.service.UserMessageBindingService;
9 import org.springframework.scheduling.annotation.Async; 8 import org.springframework.scheduling.annotation.Async;
10 -import org.springframework.stereotype.Component; 9 +import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Propagation;
  11 +import org.springframework.transaction.annotation.Transactional;
11 12
12 import javax.annotation.Resource; 13 import javax.annotation.Resource;
  14 +import java.io.IOException;
  15 +import java.util.List;
  16 +import java.util.concurrent.TimeoutException;
13 17
14 /** 18 /**
15 * @author 子诚 19 * @author 子诚
@@ -17,10 +21,13 @@ import javax.annotation.Resource; @@ -17,10 +21,13 @@ import javax.annotation.Resource;
17 * 注意点:异步任务需要单独放在一个类中 21 * 注意点:异步任务需要单独放在一个类中
18 * 时间:2020/7/30 15:59 22 * 时间:2020/7/30 15:59
19 */ 23 */
20 -@Component 24 +@Service
21 public class AsyncTaskService { 25 public class AsyncTaskService {
22 26
23 @Resource 27 @Resource
  28 + private RabbitUtils rabbitUtils;
  29 +
  30 + @Resource
24 private MessageNoteService messageNoteService; 31 private MessageNoteService messageNoteService;
25 32
26 @Resource 33 @Resource
@@ -53,15 +60,42 @@ public class AsyncTaskService { @@ -53,15 +60,42 @@ public class AsyncTaskService {
53 60
54 /** 61 /**
55 * 当删除交换机的时候, 62 * 当删除交换机的时候,
  63 + * <p>
56 * 同时,删除对应的路由键,删除包含交换机的绑定关系 64 * 同时,删除对应的路由键,删除包含交换机的绑定关系
  65 + * <p>
  66 + * 同时,删除包含该路由键的绑定关系
57 */ 67 */
58 @Async 68 @Async
  69 + @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
59 void exchangeCascadeDelete(BusExchange busExchange) 70 void exchangeCascadeDelete(BusExchange busExchange)
60 { 71 {
  72 + String exchangeId = busExchange.getId();
  73 + List<RoutingKey> routingKeyList = routingKeyService.selectByExchangeId(exchangeId);
61 // 删除相关路由键 74 // 删除相关路由键
62 - routingKeyService.deleteByExchangeId(busExchange.getId());  
63 - // 删除相关配置关系  
64 - userMessageBindingService.deleteByExchangeId(busExchange.getId()); 75 + routingKeyService.deleteByExchangeId(exchangeId);
  76 + // 删除交换机相关配置关系
  77 + userMessageBindingService.deleteByExchangeId(exchangeId);
  78 + // 删除路由键相关配置关系
  79 + for (int i = 0; i < routingKeyList.size(); i++) {
  80 + userMessageBindingService.deleteByRoutingKeyId(routingKeyList.get(0).getId());
  81 + }
  82 + }
  83 +
  84 + /**
  85 + * 当删除路由键的时候,删除包含该路由键的配置关系
  86 + */
  87 + @Async
  88 + void routingKeyCascadeDelete(RoutingKey routingKey) throws IOException, TimeoutException
  89 + {
  90 + String routingKeyId = routingKey.getId();
  91 + // 根据路由键id查询出所有的包含该路由键的配置关系
  92 + List<UserMessageBinding> bindings = userMessageBindingService.selectByRoutingKeyId(routingKeyId);
  93 + for (UserMessageBinding userMessageBinding : bindings) {
  94 + // 解除MQ服务器上的配置关系
  95 + rabbitUtils.toRemoveBinding(userMessageBinding);
  96 + }
  97 + // 删除数据库中的包含该路由键相关配置关系
  98 + userMessageBindingService.deleteByRoutingKeyId(routingKey.getId());
65 } 99 }
66 100
67 /** 101 /**
@@ -7,6 +7,7 @@ import com.sunyo.wlpt.message.bus.service.mapper.BusQueueMapper; @@ -7,6 +7,7 @@ import com.sunyo.wlpt.message.bus.service.mapper.BusQueueMapper;
7 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils; 7 import com.sunyo.wlpt.message.bus.service.rabbit.utils.RabbitUtils;
8 import com.sunyo.wlpt.message.bus.service.service.BusQueueService; 8 import com.sunyo.wlpt.message.bus.service.service.BusQueueService;
9 import io.netty.util.internal.StringUtil; 9 import io.netty.util.internal.StringUtil;
  10 +import org.springframework.context.annotation.Lazy;
10 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
11 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
12 import org.springframework.transaction.annotation.Transactional; 13 import org.springframework.transaction.annotation.Transactional;
@@ -31,6 +32,7 @@ public class BusQueueServiceImpl implements BusQueueService { @@ -31,6 +32,7 @@ public class BusQueueServiceImpl implements BusQueueService {
31 @Resource 32 @Resource
32 private RabbitUtils rabbitUtils; 33 private RabbitUtils rabbitUtils;
33 34
  35 + @Lazy
34 @Resource 36 @Resource
35 private AsyncTaskService asyncTaskService; 37 private AsyncTaskService asyncTaskService;
36 38
@@ -5,13 +5,16 @@ import com.github.pagehelper.PageInfo; @@ -5,13 +5,16 @@ import com.github.pagehelper.PageInfo;
5 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey; 5 import com.sunyo.wlpt.message.bus.service.domain.RoutingKey;
6 import com.sunyo.wlpt.message.bus.service.mapper.RoutingKeyMapper; 6 import com.sunyo.wlpt.message.bus.service.mapper.RoutingKeyMapper;
7 import com.sunyo.wlpt.message.bus.service.service.RoutingKeyService; 7 import com.sunyo.wlpt.message.bus.service.service.RoutingKeyService;
  8 +import org.springframework.context.annotation.Lazy;
8 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
9 import org.springframework.transaction.annotation.Propagation; 10 import org.springframework.transaction.annotation.Propagation;
10 import org.springframework.transaction.annotation.Transactional; 11 import org.springframework.transaction.annotation.Transactional;
11 12
12 import javax.annotation.Resource; 13 import javax.annotation.Resource;
  14 +import java.io.IOException;
13 import java.util.ArrayList; 15 import java.util.ArrayList;
14 import java.util.List; 16 import java.util.List;
  17 +import java.util.concurrent.TimeoutException;
15 18
16 /** 19 /**
17 * @author 子诚 20 * @author 子诚
@@ -21,12 +24,16 @@ import java.util.List; @@ -21,12 +24,16 @@ import java.util.List;
21 @Service 24 @Service
22 public class RoutingKeyServiceImpl implements RoutingKeyService { 25 public class RoutingKeyServiceImpl implements RoutingKeyService {
23 26
  27 + @Lazy
  28 + @Resource
  29 + private AsyncTaskService asyncTaskService;
  30 +
24 @Resource 31 @Resource
25 private RoutingKeyMapper routingKeyMapper; 32 private RoutingKeyMapper routingKeyMapper;
26 33
27 @Override 34 @Override
28 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) 35 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
29 - public int deleteByPrimaryKey(String id) 36 + public int deleteByPrimaryKey(String id) throws IOException, TimeoutException
30 { 37 {
31 // 判断删除的个数,需被删除的个数是否一致 38 // 判断删除的个数,需被删除的个数是否一致
32 int index = 0; 39 int index = 0;
@@ -35,6 +42,9 @@ public class RoutingKeyServiceImpl implements RoutingKeyService { @@ -35,6 +42,9 @@ public class RoutingKeyServiceImpl implements RoutingKeyService {
35 if (id.contains(splitItem)) { 42 if (id.contains(splitItem)) {
36 String[] split = id.split(splitItem); 43 String[] split = id.split(splitItem);
37 for (int i = 0; i < split.length; i++) { 44 for (int i = 0; i < split.length; i++) {
  45 + RoutingKey routingKey = routingKeyMapper.selectByPrimaryKey(split[i]);
  46 + // 异步,级联删除包含该路由键的配置关系
  47 + asyncTaskService.routingKeyCascadeDelete(routingKey);
38 int num = routingKeyMapper.deleteByPrimaryKey(split[i]); 48 int num = routingKeyMapper.deleteByPrimaryKey(split[i]);
39 if (num > 0) { 49 if (num > 0) {
40 index = index + num; 50 index = index + num;
@@ -46,6 +56,9 @@ public class RoutingKeyServiceImpl implements RoutingKeyService { @@ -46,6 +56,9 @@ public class RoutingKeyServiceImpl implements RoutingKeyService {
46 return 0; 56 return 0;
47 } 57 }
48 } else { 58 } else {
  59 + RoutingKey routingKey = routingKeyMapper.selectByPrimaryKey(id);
  60 + // 异步,级联删除包含该路由键的配置关系
  61 + asyncTaskService.routingKeyCascadeDelete(routingKey);
49 return routingKeyMapper.deleteByPrimaryKey(id); 62 return routingKeyMapper.deleteByPrimaryKey(id);
50 } 63 }
51 } 64 }
@@ -75,6 +88,12 @@ public class RoutingKeyServiceImpl implements RoutingKeyService { @@ -75,6 +88,12 @@ public class RoutingKeyServiceImpl implements RoutingKeyService {
75 } 88 }
76 89
77 @Override 90 @Override
  91 + public List<RoutingKey> selectByExchangeId(String exchangeId)
  92 + {
  93 + return routingKeyMapper.selectByExchangeId(exchangeId);
  94 + }
  95 +
  96 + @Override
78 public int updateByPrimaryKeySelective(RoutingKey record) 97 public int updateByPrimaryKeySelective(RoutingKey record)
79 { 98 {
80 return routingKeyMapper.updateByPrimaryKeySelective(record); 99 return routingKeyMapper.updateByPrimaryKeySelective(record);
@@ -435,6 +435,18 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -435,6 +435,18 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
435 { 435 {
436 return userMessageBindingMapper.deleteByQueueId(queueId); 436 return userMessageBindingMapper.deleteByQueueId(queueId);
437 } 437 }
  438 +
  439 + @Override
  440 + public int deleteByRoutingKeyId(String routingKeyId)
  441 + {
  442 + return userMessageBindingMapper.deleteByRoutingKeyId(routingKeyId);
  443 + }
  444 +
  445 + @Override
  446 + public List<UserMessageBinding> selectByRoutingKeyId(String routingKeyId)
  447 + {
  448 + return userMessageBindingMapper.selectByRoutingKeyId(routingKeyId);
  449 + }
438 } 450 }
439 451
440 452
@@ -85,6 +85,18 @@ @@ -85,6 +85,18 @@
85 </where> 85 </where>
86 </select> 86 </select>
87 87
  88 + <select id="selectByExchangeId" parameterType="java.lang.String" resultMap="BaseResultMap">
  89 + select
  90 + <include refid="Base_Column_List"/>
  91 + from routing_key
  92 + <where>
  93 + <!-- 所属交换机ID -->
  94 + <if test="exchangeId != null and exchangeId != ''">
  95 + exchange_id = #{exchangeId,jdbcType=VARCHAR}
  96 + </if>
  97 + </where>
  98 + </select>
  99 +
88 <select id="selectRoutingKeyExist" parameterType="com.sunyo.wlpt.message.bus.service.domain.RoutingKey" 100 <select id="selectRoutingKeyExist" parameterType="com.sunyo.wlpt.message.bus.service.domain.RoutingKey"
89 resultMap="BaseResultMap"> 101 resultMap="BaseResultMap">
90 select 102 select
@@ -34,6 +34,14 @@ @@ -34,6 +34,14 @@
34 where id = #{id,jdbcType=VARCHAR} 34 where id = #{id,jdbcType=VARCHAR}
35 </select> 35 </select>
36 36
  37 + <select id="selectByRoutingKeyId" parameterType="java.lang.String" resultMap="BaseResultMap">
  38 + <!--@mbg.generated-->
  39 + select
  40 + <include refid="Base_Column_List"/>
  41 + from user_message_binding
  42 + where routing_key_id = #{routingKeyId,jdbcType=VARCHAR}
  43 + </select>
  44 +
37 <delete id="deleteByPrimaryKey" parameterType="java.lang.String"> 45 <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
38 <!--@mbg.generated--> 46 <!--@mbg.generated-->
39 delete 47 delete
@@ -56,6 +64,15 @@ @@ -56,6 +64,15 @@
56 from user_message_binding 64 from user_message_binding
57 where queue_id = #{queueId,jdbcType=VARCHAR} 65 where queue_id = #{queueId,jdbcType=VARCHAR}
58 </delete> 66 </delete>
  67 +
  68 + <!-- 根据路由键id,删除配置关系-->
  69 + <delete id="deleteByRoutingKeyId" parameterType="java.lang.String">
  70 + <!--@mbg.generated-->
  71 + delete
  72 + from user_message_binding
  73 + where routing_key_id = #{routingKeyId,jdbcType=VARCHAR}
  74 + </delete>
  75 +
59 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserMessageBinding"> 76 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserMessageBinding">
60 <!--@mbg.generated--> 77 <!--@mbg.generated-->
61 insert into user_message_binding (id, user_id, username, 78 insert into user_message_binding (id, user_id, username,