作者 朱兆平

批量新增路由与加载已配置路由适配

@@ -6,10 +6,7 @@ import com.sunyo.wlpt.message.bus.service.response.ResultJson; @@ -6,10 +6,7 @@ import com.sunyo.wlpt.message.bus.service.response.ResultJson;
6 import com.sunyo.wlpt.message.bus.service.service.RouterService; 6 import com.sunyo.wlpt.message.bus.service.service.RouterService;
7 import io.swagger.annotations.ApiOperation; 7 import io.swagger.annotations.ApiOperation;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 -import org.springframework.web.bind.annotation.PostMapping;  
10 -import org.springframework.web.bind.annotation.RequestBody;  
11 -import org.springframework.web.bind.annotation.RequestMapping;  
12 -import org.springframework.web.bind.annotation.RestController; 9 +import org.springframework.web.bind.annotation.*;
13 10
14 import java.util.List; 11 import java.util.List;
15 12
@@ -27,4 +24,11 @@ public class RouterController { @@ -27,4 +24,11 @@ public class RouterController {
27 boolean result = routerService.batchAddRouter(messageRouter); 24 boolean result = routerService.batchAddRouter(messageRouter);
28 return result ? new ResultJson("200","success") :new ResultJson("400","error"); 25 return result ? new ResultJson("200","success") :new ResultJson("400","error");
29 } 26 }
  27 +
  28 + @GetMapping("searchBysndr")
  29 + public ResultJson<List<MessageRouter>> getAllRouter(@RequestParam(value = "sndr",required = true) String sndr){
  30 + List<MessageRouter> all = routerService.searchBySndr(sndr);
  31 + return new ResultJson<>("200","success",all);
  32 + }
  33 +
30 } 34 }
@@ -2,6 +2,8 @@ package com.sunyo.wlpt.message.bus.service.mapper; @@ -2,6 +2,8 @@ package com.sunyo.wlpt.message.bus.service.mapper;
2 2
3 import com.sunyo.wlpt.message.bus.service.model.MessageRouter; 3 import com.sunyo.wlpt.message.bus.service.model.MessageRouter;
4 4
  5 +import java.util.List;
  6 +
5 public interface MessageRouterMapper { 7 public interface MessageRouterMapper {
6 int deleteByPrimaryKey(String id); 8 int deleteByPrimaryKey(String id);
7 9
@@ -11,6 +13,8 @@ public interface MessageRouterMapper { @@ -11,6 +13,8 @@ public interface MessageRouterMapper {
11 13
12 MessageRouter selectByPrimaryKey(String id); 14 MessageRouter selectByPrimaryKey(String id);
13 15
  16 + List<MessageRouter> selectBySndr(String sndr);
  17 +
14 int updateByPrimaryKeySelective(MessageRouter record); 18 int updateByPrimaryKeySelective(MessageRouter record);
15 19
16 int updateByPrimaryKey(MessageRouter record); 20 int updateByPrimaryKey(MessageRouter record);
@@ -13,6 +13,8 @@ public interface MessageTypeMapper { @@ -13,6 +13,8 @@ public interface MessageTypeMapper {
13 13
14 MessageType selectByPrimaryKey(String id); 14 MessageType selectByPrimaryKey(String id);
15 15
  16 + MessageType selectParentByChildName(String id);
  17 +
16 List<MessageType> selectByParentId(String id); 18 List<MessageType> selectByParentId(String id);
17 19
18 List<MessageType> selectAll(MessageType record); 20 List<MessageType> selectAll(MessageType record);
@@ -16,6 +16,8 @@ public class MessageType extends BasePage{ @@ -16,6 +16,8 @@ public class MessageType extends BasePage{
16 16
17 private Integer type; 17 private Integer type;
18 18
  19 + private boolean disabled;
  20 +
19 private List<MessageType> children; 21 private List<MessageType> children;
20 22
21 public String getId() { 23 public String getId() {
@@ -56,6 +58,9 @@ public class MessageType extends BasePage{ @@ -56,6 +58,9 @@ public class MessageType extends BasePage{
56 58
57 public void setType(Integer type) { 59 public void setType(Integer type) {
58 this.type = type; 60 this.type = type;
  61 + if (type ==1 || type ==2 ){
  62 + this.disabled = true;
  63 + }
59 } 64 }
60 65
61 public List<MessageType> getChildren() { 66 public List<MessageType> getChildren() {
@@ -65,4 +70,12 @@ public class MessageType extends BasePage{ @@ -65,4 +70,12 @@ public class MessageType extends BasePage{
65 public void setChildren(List<MessageType> children) { 70 public void setChildren(List<MessageType> children) {
66 this.children = children; 71 this.children = children;
67 } 72 }
  73 +
  74 + public boolean isDisabled() {
  75 + return disabled;
  76 + }
  77 +
  78 + public void setDisabled(boolean disabled) {
  79 + this.disabled = disabled;
  80 + }
68 } 81 }
@@ -2,7 +2,11 @@ package com.sunyo.wlpt.message.bus.service.service; @@ -2,7 +2,11 @@ package com.sunyo.wlpt.message.bus.service.service;
2 2
3 import com.sunyo.wlpt.message.bus.service.model.MessageRouter; 3 import com.sunyo.wlpt.message.bus.service.model.MessageRouter;
4 4
  5 +import java.util.List;
  6 +
5 public interface RouterService { 7 public interface RouterService {
6 8
7 boolean batchAddRouter(MessageRouter messageRouter); 9 boolean batchAddRouter(MessageRouter messageRouter);
  10 +
  11 + List<MessageRouter> searchBySndr(String sndr);
8 } 12 }
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.BusQueue; 3 import com.sunyo.wlpt.message.bus.service.domain.BusQueue;
4 -import com.sunyo.wlpt.message.bus.service.mapper.BusQueueMapper;  
5 -import com.sunyo.wlpt.message.bus.service.mapper.MessageRouterMapper;  
6 -import com.sunyo.wlpt.message.bus.service.mapper.MessageRouterReciverMapper;  
7 -import com.sunyo.wlpt.message.bus.service.mapper.UserTopicMapper; 4 +import com.sunyo.wlpt.message.bus.service.mapper.*;
8 import com.sunyo.wlpt.message.bus.service.model.MessageRouter; 5 import com.sunyo.wlpt.message.bus.service.model.MessageRouter;
9 import com.sunyo.wlpt.message.bus.service.model.MessageRouterReciver; 6 import com.sunyo.wlpt.message.bus.service.model.MessageRouterReciver;
10 import com.sunyo.wlpt.message.bus.service.model.MessageType; 7 import com.sunyo.wlpt.message.bus.service.model.MessageType;
@@ -29,6 +26,9 @@ public class RouterServiceImp implements RouterService { @@ -29,6 +26,9 @@ public class RouterServiceImp implements RouterService {
29 @Resource 26 @Resource
30 BusQueueMapper busQueueMapper; 27 BusQueueMapper busQueueMapper;
31 28
  29 + @Resource
  30 + MessageTypeMapper typeMapper;
  31 +
32 32
33 @Transactional(rollbackFor = Exception.class) 33 @Transactional(rollbackFor = Exception.class)
34 @Override 34 @Override
@@ -41,9 +41,9 @@ public class RouterServiceImp implements RouterService { @@ -41,9 +41,9 @@ public class RouterServiceImp implements RouterService {
41 * 批量增加发送者表 41 * 批量增加发送者表
42 */ 42 */
43 for (String sndr: senders) { 43 for (String sndr: senders) {
44 - String id = IdUtils.generateId(); 44 +
45 MessageRouter router = new MessageRouter(); 45 MessageRouter router = new MessageRouter();
46 - router.setId(id); 46 +
47 router.setSndr(sndr); 47 router.setSndr(sndr);
48 router.setDes(record.getDes()); 48 router.setDes(record.getDes());
49 router.setVer(record.getVer()); 49 router.setVer(record.getVer());
@@ -57,18 +57,20 @@ public class RouterServiceImp implements RouterService { @@ -57,18 +57,20 @@ public class RouterServiceImp implements RouterService {
57 if (messageTypes!=null && !messageTypes.isEmpty()){ 57 if (messageTypes!=null && !messageTypes.isEmpty()){
58 for (MessageType type: messageTypes) { 58 for (MessageType type: messageTypes) {
59 /** 59 /**
60 - * 判断消息类型是 大类 主类还是子 60 + * 只取二级
61 */ 61 */
62 - if (type.getType() == 2){  
63 - //大类处理  
64 - router.setBtype(type.getName());  
65 - }  
66 if (type.getType() == 3){ 62 if (type.getType() == 3){
  63 + String id = IdUtils.generateId();
  64 + router.setId(id);
  65 + /**
  66 + * 查找二级类的上级类
  67 + */
  68 + MessageType bType = typeMapper.selectParentByChildName(type.getName());
  69 +
  70 + router.setBtype(bType.getName());
  71 +
67 //二级类处理 72 //二级类处理
68 router.setStype(type.getName()); 73 router.setStype(type.getName());
69 - }  
70 - }  
71 - }  
72 74
73 /** 75 /**
74 * 路由生产者消息入库 76 * 路由生产者消息入库
@@ -100,7 +102,9 @@ public class RouterServiceImp implements RouterService { @@ -100,7 +102,9 @@ public class RouterServiceImp implements RouterService {
100 102
101 } 103 }
102 } 104 }
103 - 105 + }
  106 + }
  107 + }
104 108
105 } 109 }
106 } 110 }
@@ -109,4 +113,14 @@ public class RouterServiceImp implements RouterService { @@ -109,4 +113,14 @@ public class RouterServiceImp implements RouterService {
109 return false; 113 return false;
110 } 114 }
111 } 115 }
  116 +
  117 + @Override
  118 + public List<MessageRouter> searchBySndr(String sndr) {
  119 + List<MessageRouter> list = messageRouterMapper.selectBySndr(sndr);
  120 + for (MessageRouter router:list) {
  121 + List<MessageRouterReciver> routerRecivers = routerReciverMapper.selectByRouterKey(router.getId());
  122 + router.setRcvrList(routerRecivers);
  123 + }
  124 + return list;
  125 + }
112 } 126 }
@@ -179,10 +179,10 @@ @@ -179,10 +179,10 @@
179 #{gmtModified,jdbcType=TIMESTAMP}, 179 #{gmtModified,jdbcType=TIMESTAMP},
180 </if> 180 </if>
181 <if test="partitionCount >0"> 181 <if test="partitionCount >0">
182 - #{partitionCount,jdbcType=TIMESTAMP}, 182 + #{partitionCount,jdbcType=INTEGER},
183 </if> 183 </if>
184 <if test="queueType >0"> 184 <if test="queueType >0">
185 - #{partitionCount,jdbcType=TIMESTAMP}, 185 + #{queueType,jdbcType=INTEGER},
186 </if> 186 </if>
187 </trim> 187 </trim>
188 </insert> 188 </insert>
@@ -15,7 +15,6 @@ @@ -15,7 +15,6 @@
15 <result column="ver" property="ver" jdbcType="VARCHAR" /> 15 <result column="ver" property="ver" jdbcType="VARCHAR" />
16 <result column="creat_time" property="creatTime" jdbcType="TIMESTAMP" /> 16 <result column="creat_time" property="creatTime" jdbcType="TIMESTAMP" />
17 <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> 17 <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
18 - <collection column="id" javaType="java.util.ArrayList" ofType="com.sunyo.wlpt.message.bus.service.model.MessageRouterReciver" property="rcvrList" select="com.sunyo.wlpt.message.bus.service.mapper.selectByRouterKey" />  
19 </resultMap> 18 </resultMap>
20 <sql id="Base_Column_List" > 19 <sql id="Base_Column_List" >
21 id, sndr, btype, stype, optype, msg_limit, `character`, status, `usage`, des, ver, creat_time, 20 id, sndr, btype, stype, optype, msg_limit, `character`, status, `usage`, des, ver, creat_time,
@@ -27,14 +26,22 @@ @@ -27,14 +26,22 @@
27 from message_router 26 from message_router
28 where id = #{id,jdbcType=VARCHAR} 27 where id = #{id,jdbcType=VARCHAR}
29 </select> 28 </select>
  29 +
  30 + <select id="selectBySndr" resultMap="BaseResultMap" parameterType="java.lang.String" >
  31 + select
  32 + <include refid="Base_Column_List" />
  33 + from message_router
  34 + where sndr = #{id,jdbcType=VARCHAR}
  35 + </select>
  36 +
30 <delete id="deleteByPrimaryKey" parameterType="java.lang.String" > 37 <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
31 delete from message_router 38 delete from message_router
32 - where id = #{id,jdbcType=VARCHAR} 39 + where id = #{sndr,jdbcType=VARCHAR}
33 </delete> 40 </delete>
34 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.model.MessageRouter" > 41 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.model.MessageRouter" >
35 insert into message_router (id, sndr, btype, 42 insert into message_router (id, sndr, btype,
36 stype, optype, msg_limit, 43 stype, optype, msg_limit,
37 - `character`, status, `usage`, des, 44 + `character`, `status`, `usage`, des,
38 ver, creat_time, update_time 45 ver, creat_time, update_time
39 ) 46 )
40 values (#{id,jdbcType=VARCHAR}, #{sndr,jdbcType=VARCHAR}, #{btype,jdbcType=VARCHAR}, 47 values (#{id,jdbcType=VARCHAR}, #{sndr,jdbcType=VARCHAR}, #{btype,jdbcType=VARCHAR},
@@ -68,7 +75,7 @@ @@ -68,7 +75,7 @@
68 `character`, 75 `character`,
69 </if> 76 </if>
70 <if test="status != null" > 77 <if test="status != null" >
71 - status, 78 + `status`,
72 </if> 79 </if>
73 <if test="usage != null" > 80 <if test="usage != null" >
74 `usage`, 81 `usage`,
@@ -24,6 +24,15 @@ @@ -24,6 +24,15 @@
24 from message_type 24 from message_type
25 where parent_id = #{parentId,jdbcType=VARCHAR} 25 where parent_id = #{parentId,jdbcType=VARCHAR}
26 </select> 26 </select>
  27 + <select id="selectParentByChildName" resultMap="BaseResultMap" parameterType="java.lang.String" >
  28 + select
  29 + <include refid="Base_Column_List" />
  30 + from message_type
  31 + where id =
  32 + (
  33 + SELECT parent_id from message_type where name = #{name,jdbcType=VARCHAR}
  34 + )
  35 + </select>
27 <select id="selectAll" parameterType="com.sunyo.wlpt.message.bus.service.model.MessageType" resultMap="BaseResultMap"> 36 <select id="selectAll" parameterType="com.sunyo.wlpt.message.bus.service.model.MessageType" resultMap="BaseResultMap">
28 select 37 select
29 <include refid="Base_Column_List" /> 38 <include refid="Base_Column_List" />