作者 王勇

用户信息模块完成增加,删除

@@ -91,10 +91,10 @@ public class CascadeController { @@ -91,10 +91,10 @@ public class CascadeController {
91 */ 91 */
92 @GetMapping("/queue") 92 @GetMapping("/queue")
93 public ResultJson getQueueList(@RequestParam(value = "virtualHostId", required = false) String virtualHostId, 93 public ResultJson getQueueList(@RequestParam(value = "virtualHostId", required = false) String virtualHostId,
94 - @RequestParam(value = "userId", required = false) String userId) 94 + @RequestParam(value = "username", required = false) String username)
95 { 95 {
96 // 获取查询参数 96 // 获取查询参数
97 - BusQueue busQueue = BusQueue.builder().virtualHostId(virtualHostId).userId(userId).build(); 97 + BusQueue busQueue = BusQueue.builder().virtualHostId(virtualHostId).username(username).build();
98 List<BusQueue> busQueues = busQueueService.getQueueList(busQueue); 98 List<BusQueue> busQueues = busQueueService.getQueueList(busQueue);
99 return busQueues.size() > 0 99 return busQueues.size() > 0
100 ? new ResultJson<>("200", "查询队列列表,成功", busQueues) 100 ? new ResultJson<>("200", "查询队列列表,成功", busQueues)
@@ -7,7 +7,6 @@ import org.springframework.web.bind.annotation.*; @@ -7,7 +7,6 @@ import org.springframework.web.bind.annotation.*;
7 7
8 import javax.annotation.Resource; 8 import javax.annotation.Resource;
9 import java.io.IOException; 9 import java.io.IOException;
10 -import java.net.MalformedURLException;  
11 import java.net.URISyntaxException; 10 import java.net.URISyntaxException;
12 import java.util.List; 11 import java.util.List;
13 import java.util.concurrent.TimeoutException; 12 import java.util.concurrent.TimeoutException;
@@ -25,6 +24,20 @@ public class UserInfoController { @@ -25,6 +24,20 @@ public class UserInfoController {
25 @Resource 24 @Resource
26 private UserInfoService userInfoService; 25 private UserInfoService userInfoService;
27 26
  27 + @GetMapping("/list")
  28 + public ResultJson selectUserInfoList(
  29 + @RequestParam(value = "username", required = false) String username,
  30 + @RequestParam(value = "serverName", required = false) String serverName,
  31 + @RequestParam(value = "virtualHostName", required = false) String virtualHostName,
  32 + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  33 + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
  34 + )
  35 + {
  36 + UserInfo userInfo = UserInfo.builder().username(username).serverName(serverName).virtualHostName(virtualHostName).build();
  37 + return userInfoService.selectUserInfoList(userInfo, pageNum, pageSize);
  38 + }
  39 +
  40 +
28 /** 41 /**
29 * 仅,查询用户列表 42 * 仅,查询用户列表
30 */ 43 */
@@ -44,9 +57,14 @@ public class UserInfoController { @@ -44,9 +57,14 @@ public class UserInfoController {
44 * @return {@link ResultJson} 57 * @return {@link ResultJson}
45 */ 58 */
46 @PostMapping("/insert") 59 @PostMapping("/insert")
47 - public ResultJson insertUserByEntity(@RequestBody UserInfo userInfo) throws IOException, URISyntaxException, TimeoutException 60 + public ResultJson insertUserInfo(@RequestBody UserInfo userInfo)
48 { 61 {
  62 + try {
49 return userInfoService.insertSelective(userInfo); 63 return userInfoService.insertSelective(userInfo);
  64 + } catch (IOException | URISyntaxException | TimeoutException e) {
  65 + e.printStackTrace();
  66 + return new ResultJson<>("500", "服务器异常,添加用户信息失败");
  67 + }
50 } 68 }
51 69
52 /** 70 /**
@@ -68,9 +86,34 @@ public class UserInfoController { @@ -68,9 +86,34 @@ public class UserInfoController {
68 * @return 86 * @return
69 */ 87 */
70 @PutMapping("/updatePassword") 88 @PutMapping("/updatePassword")
71 - public ResultJson updatePassword(@RequestBody UserInfo userInfo) throws MalformedURLException, URISyntaxException 89 + public ResultJson updatePassword(@RequestBody UserInfo userInfo) throws IOException, URISyntaxException
72 { 90 {
73 return userInfoService.updatePassword(userInfo); 91 return userInfoService.updatePassword(userInfo);
74 } 92 }
75 93
  94 + /**
  95 + * 删除用户(MQ服务器 and 数据库)
  96 + */
  97 + @DeleteMapping("/delete")
  98 + public ResultJson deleteUser(@RequestBody UserInfo userInfo)
  99 + {
  100 + try {
  101 + return userInfoService.deleteUserInfo(userInfo);
  102 + } catch (IOException | URISyntaxException e) {
  103 + return new ResultJson<>("500", "服务器异常,删除用户失败");
  104 + }
  105 + }
  106 +
  107 + /**
  108 + * 删除数据关系(MQ服务器 and 数据库)
  109 + */
  110 + @DeleteMapping("/deleteRelation")
  111 + public ResultJson deleteUserRelation(@RequestBody UserInfo userInfo)
  112 + {
  113 + try {
  114 + return userInfoService.deleteUserRelation(userInfo);
  115 + } catch (IOException | URISyntaxException e) {
  116 + return new ResultJson<>("500", "服务器异常,删除用户关系失败");
  117 + }
  118 + }
76 } 119 }
1 package com.sunyo.wlpt.message.bus.service.mapper; 1 package com.sunyo.wlpt.message.bus.service.mapper;
2 2
3 import com.sunyo.wlpt.message.bus.service.domain.BusQueue; 3 import com.sunyo.wlpt.message.bus.service.domain.BusQueue;
4 -import org.apache.ibatis.annotations.Mapper;import java.util.List; 4 +import org.apache.ibatis.annotations.Mapper;
  5 +
  6 +import java.util.List;
5 7
6 /** 8 /**
7 * @author 子诚 9 * @author 子诚
@@ -97,4 +99,12 @@ public interface BusQueueMapper { @@ -97,4 +99,12 @@ public interface BusQueueMapper {
97 * @return 99 * @return
98 */ 100 */
99 List<BusQueue> getQueueList(BusQueue busQueue); 101 List<BusQueue> getQueueList(BusQueue busQueue);
  102 +
  103 + /**
  104 + * 根据用户名称查询队列信息
  105 + *
  106 + * @param username 用户名称
  107 + * @return
  108 + */
  109 + List<BusQueue> selectByUsername(String username);
100 } 110 }
@@ -69,7 +69,7 @@ public interface UserInfoMapper { @@ -69,7 +69,7 @@ public interface UserInfoMapper {
69 * @param username 用户登录名称 69 * @param username 用户登录名称
70 * @return {@link UserInfo} 70 * @return {@link UserInfo}
71 */ 71 */
72 - UserInfo selectByUsername(String username); 72 + List<UserInfo> selectByUsername(String username);
73 73
74 /** 74 /**
75 * 仅,查询用户列表 75 * 仅,查询用户列表
@@ -109,4 +109,12 @@ public interface UserInfoMapper { @@ -109,4 +109,12 @@ public interface UserInfoMapper {
109 * @return 109 * @return
110 */ 110 */
111 List<UserInfo> selectByBusQueue(BusQueue busQueue); 111 List<UserInfo> selectByBusQueue(BusQueue busQueue);
  112 +
  113 + /**
  114 + * 根据用户名称删除用户信息
  115 + *
  116 + * @param username
  117 + * @return
  118 + */
  119 + int deleteByUsername(String username);
112 } 120 }
1 package com.sunyo.wlpt.message.bus.service.rabbit.utils; 1 package com.sunyo.wlpt.message.bus.service.rabbit.utils;
2 2
3 import com.rabbitmq.http.client.Client; 3 import com.rabbitmq.http.client.Client;
4 -import com.rabbitmq.http.client.domain.TopicPermissions;  
5 import com.rabbitmq.http.client.domain.UserPermissions; 4 import com.rabbitmq.http.client.domain.UserPermissions;
6 import com.sunyo.wlpt.message.bus.service.domain.BusServer; 5 import com.sunyo.wlpt.message.bus.service.domain.BusServer;
7 import com.sunyo.wlpt.message.bus.service.domain.UserInfo; 6 import com.sunyo.wlpt.message.bus.service.domain.UserInfo;
@@ -49,28 +48,40 @@ public class ClientUtils { @@ -49,28 +48,40 @@ public class ClientUtils {
49 { 48 {
50 // 新增用户的用户名称 49 // 新增用户的用户名称
51 String username = userInfo.getUsername(); 50 String username = userInfo.getUsername();
52 - // 虚拟主机名称  
53 - String virtualHostName = userInfo.getVirtualHostName();  
54 51
55 // 与客户端建立连接 52 // 与客户端建立连接
56 Client client = connectClient(busServer); 53 Client client = connectClient(busServer);
57 ArrayList<String> list = new ArrayList<>(); 54 ArrayList<String> list = new ArrayList<>();
58 // 创建用户,权限为none 55 // 创建用户,权限为none
59 client.createUser(username, password.toCharArray(), list); 56 client.createUser(username, password.toCharArray(), list);
  57 + }
  58 +
  59 + /**
  60 + * 用户与虚拟主机建立联系
  61 + *
  62 + * @param userInfo 用户信息
  63 + * @param busServer 服务器信息
  64 + * @throws IOException
  65 + * @throws URISyntaxException
  66 + */
  67 + public static void userRelation(UserInfo userInfo, BusServer busServer) throws IOException, URISyntaxException
  68 + {
  69 + String username = userInfo.getUsername();
  70 + String virtualHostName = userInfo.getVirtualHostName();
  71 + Client client = connectClient(busServer);
60 72
61 - // 用户与虚拟主机建立联系  
62 UserPermissions p = new UserPermissions(); 73 UserPermissions p = new UserPermissions();
63 p.setConfigure(username + ".*"); 74 p.setConfigure(username + ".*");
64 p.setRead(username + ".*"); 75 p.setRead(username + ".*");
65 p.setWrite(username + ".*"); 76 p.setWrite(username + ".*");
66 client.updatePermissions(virtualHostName, username, p); 77 client.updatePermissions(virtualHostName, username, p);
67 78
68 - TopicPermissions topicPermissions = new TopicPermissions();  
69 - topicPermissions.setVhost(virtualHostName);  
70 - topicPermissions.setExchange("");  
71 - topicPermissions.setRead(".*");  
72 - topicPermissions.setWrite(".*");  
73 - client.updateTopicPermissions(virtualHostName, username, topicPermissions); 79 +// TopicPermissions topicPermissions = new TopicPermissions();
  80 +// topicPermissions.setVhost(virtualHostName);
  81 +// topicPermissions.setExchange("");
  82 +// topicPermissions.setRead(".*");
  83 +// topicPermissions.setWrite(".*");
  84 +// client.updateTopicPermissions(virtualHostName, username, topicPermissions);
74 } 85 }
75 86
76 /** 87 /**
@@ -84,6 +95,15 @@ public class ClientUtils { @@ -84,6 +95,15 @@ public class ClientUtils {
84 } 95 }
85 96
86 /** 97 /**
  98 + * 删除用户
  99 + */
  100 + public static void deleteMQUser(String username, BusServer busServer) throws IOException, URISyntaxException
  101 + {
  102 + Client client = connectClient(busServer);
  103 + client.deleteUser(username);
  104 + }
  105 +
  106 + /**
87 * 修改MQ的用户密码 107 * 修改MQ的用户密码
88 */ 108 */
89 public static void updatePassword(BusServer busServer, String username, String password) throws IOException, URISyntaxException 109 public static void updatePassword(BusServer busServer, String username, String password) throws IOException, URISyntaxException
@@ -102,13 +122,14 @@ public class ClientUtils { @@ -102,13 +122,14 @@ public class ClientUtils {
102 Client client = connectClient(busServer); 122 Client client = connectClient(busServer);
103 client.createVhost(vHost); 123 client.createVhost(vHost);
104 } 124 }
  125 +
105 /** 126 /**
106 * 创建虚拟主机 127 * 创建虚拟主机
107 */ 128 */
108 public static void createVirtualHost(BusServer busServer, VirtualHost vHost) throws IOException, URISyntaxException 129 public static void createVirtualHost(BusServer busServer, VirtualHost vHost) throws IOException, URISyntaxException
109 { 130 {
110 Client client = connectClient(busServer); 131 Client client = connectClient(busServer);
111 - client.createVhost(vHost.getVirtualHostName(),vHost.getDescription()); 132 + client.createVhost(vHost.getVirtualHostName(), vHost.getDescription());
112 } 133 }
113 134
114 /** 135 /**
@@ -104,5 +104,13 @@ public interface BusQueueService { @@ -104,5 +104,13 @@ public interface BusQueueService {
104 * @return 104 * @return
105 */ 105 */
106 List<BusQueue> selectByVirtualHostId(String virtualHostId); 106 List<BusQueue> selectByVirtualHostId(String virtualHostId);
  107 +
  108 + /**
  109 + * 根据用户名查询队列信息
  110 + *
  111 + * @param username 用户名称
  112 + * @return
  113 + */
  114 + List<BusQueue> selectByUsername(String username);
107 } 115 }
108 116
@@ -4,7 +4,6 @@ import com.sunyo.wlpt.message.bus.service.domain.UserInfo; @@ -4,7 +4,6 @@ import com.sunyo.wlpt.message.bus.service.domain.UserInfo;
4 import com.sunyo.wlpt.message.bus.service.response.ResultJson; 4 import com.sunyo.wlpt.message.bus.service.response.ResultJson;
5 5
6 import java.io.IOException; 6 import java.io.IOException;
7 -import java.net.MalformedURLException;  
8 import java.net.URISyntaxException; 7 import java.net.URISyntaxException;
9 import java.util.List; 8 import java.util.List;
10 import java.util.concurrent.TimeoutException; 9 import java.util.concurrent.TimeoutException;
@@ -49,14 +48,6 @@ public interface UserInfoService { @@ -49,14 +48,6 @@ public interface UserInfoService {
49 UserInfo selectByPrimaryKey(String id); 48 UserInfo selectByPrimaryKey(String id);
50 49
51 /** 50 /**
52 - * 查询,根据用户名称  
53 - *  
54 - * @param username 用户登录名称  
55 - * @return {@link UserInfo}  
56 - */  
57 - UserInfo selectByUsername(String username);  
58 -  
59 - /**  
60 * 更新,选择性,根据主键 51 * 更新,选择性,根据主键
61 * 52 *
62 * @param record the updated record 53 * @param record the updated record
@@ -93,7 +84,33 @@ public interface UserInfoService { @@ -93,7 +84,33 @@ public interface UserInfoService {
93 * @param userInfo {@link UserInfo} 84 * @param userInfo {@link UserInfo}
94 * @return 85 * @return
95 */ 86 */
96 - ResultJson updatePassword(UserInfo userInfo) throws MalformedURLException, URISyntaxException; 87 + ResultJson updatePassword(UserInfo userInfo) throws IOException, URISyntaxException;
  88 +
  89 + /**
  90 + * 分页查询,用户信息,用户关系
  91 + *
  92 + * @param userInfo 用户信息
  93 + * @param pageNum 当前页数
  94 + * @param pageSize 每页大小
  95 + * @return
  96 + */
  97 + ResultJson selectUserInfoList(UserInfo userInfo, Integer pageNum, Integer pageSize);
  98 +
  99 + /**
  100 + * 删除MQ用户
  101 + *
  102 + * @param userInfo {@link UserInfo}
  103 + * @return 返回结果
  104 + */
  105 + ResultJson deleteUserInfo(UserInfo userInfo) throws IOException, URISyntaxException;
  106 +
  107 + /**
  108 + * 删除用户关系
  109 + *
  110 + * @param userInfo {@link UserInfo}
  111 + * @return 返回结果
  112 + */
  113 + ResultJson deleteUserRelation(UserInfo userInfo) throws IOException, URISyntaxException;
97 } 114 }
98 115
99 116
@@ -162,13 +162,13 @@ public class BusQueueServiceImpl implements BusQueueService { @@ -162,13 +162,13 @@ public class BusQueueServiceImpl implements BusQueueService {
162 public List<BusQueue> getQueueList(BusQueue busQueue) 162 public List<BusQueue> getQueueList(BusQueue busQueue)
163 { 163 {
164 List<BusQueue> list = new ArrayList<>(); 164 List<BusQueue> list = new ArrayList<>();
165 - String userIds = busQueue.getUserId(); 165 + String usernames = busQueue.getUsername();
166 String splitItem = ","; 166 String splitItem = ",";
167 - if (!StringUtil.isNullOrEmpty(userIds)) {  
168 - if (userIds.contains(splitItem)) {  
169 - String[] split = userIds.split(splitItem);  
170 - for (String userId : split) {  
171 - busQueue.setUserId(userId); 167 + if (!StringUtil.isNullOrEmpty(usernames)) {
  168 + if (usernames.contains(splitItem)) {
  169 + String[] split = usernames.split(splitItem);
  170 + for (String username : split) {
  171 + busQueue.setUsername(username);
172 List<BusQueue> queueList = busQueueMapper.getQueueList(busQueue); 172 List<BusQueue> queueList = busQueueMapper.getQueueList(busQueue);
173 if (queueList.size() > 0) { 173 if (queueList.size() > 0) {
174 list.addAll(queueList); 174 list.addAll(queueList);
@@ -185,5 +185,11 @@ public class BusQueueServiceImpl implements BusQueueService { @@ -185,5 +185,11 @@ public class BusQueueServiceImpl implements BusQueueService {
185 { 185 {
186 return busQueueMapper.selectByVirtualHostId(virtualHostId); 186 return busQueueMapper.selectByVirtualHostId(virtualHostId);
187 } 187 }
  188 +
  189 + @Override
  190 + public List<BusQueue> selectByUsername(String username)
  191 + {
  192 + return busQueueMapper.selectByUsername(username);
  193 + }
188 } 194 }
189 195
@@ -175,9 +175,6 @@ public class MessageNoteServiceImpl implements MessageNoteService { @@ -175,9 +175,6 @@ public class MessageNoteServiceImpl implements MessageNoteService {
175 */ 175 */
176 public MessageNote note_fillId(MessageNote messageNote) 176 public MessageNote note_fillId(MessageNote messageNote)
177 { 177 {
178 - UserInfo userInfo = userInfoService.selectByUsername(messageNote.getUsername());  
179 - messageNote.setUserId(userInfo.getId());  
180 -  
181 BusServer busServer = busServerService.selectByServerName(messageNote.getServerName()); 178 BusServer busServer = busServerService.selectByServerName(messageNote.getServerName());
182 messageNote.setServerId(busServer.getId()); 179 messageNote.setServerId(busServer.getId());
183 180
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.rabbitmq.http.client.Client;  
4 -import com.rabbitmq.http.client.domain.TopicPermissions;  
5 -import com.rabbitmq.http.client.domain.UserPermissions; 3 +import com.github.pagehelper.PageHelper;
  4 +import com.github.pagehelper.PageInfo;
6 import com.sunyo.wlpt.message.bus.service.domain.BusQueue; 5 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.UserInfo; 7 import com.sunyo.wlpt.message.bus.service.domain.UserInfo;
9 import com.sunyo.wlpt.message.bus.service.domain.VirtualHost; 8 import com.sunyo.wlpt.message.bus.service.domain.VirtualHost;
10 import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper; 9 import com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper;
  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;
12 import com.sunyo.wlpt.message.bus.service.response.ResultJson; 12 import com.sunyo.wlpt.message.bus.service.response.ResultJson;
13 import com.sunyo.wlpt.message.bus.service.service.BusQueueService; 13 import com.sunyo.wlpt.message.bus.service.service.BusQueueService;
@@ -16,16 +16,16 @@ import com.sunyo.wlpt.message.bus.service.service.UserInfoService; @@ -16,16 +16,16 @@ import com.sunyo.wlpt.message.bus.service.service.UserInfoService;
16 import com.sunyo.wlpt.message.bus.service.service.VirtualHostService; 16 import com.sunyo.wlpt.message.bus.service.service.VirtualHostService;
17 import com.sunyo.wlpt.message.bus.service.utils.IdUtils; 17 import com.sunyo.wlpt.message.bus.service.utils.IdUtils;
18 import io.netty.util.internal.StringUtil; 18 import io.netty.util.internal.StringUtil;
  19 +import lombok.extern.slf4j.Slf4j;
19 import org.springframework.beans.factory.annotation.Value; 20 import org.springframework.beans.factory.annotation.Value;
20 import org.springframework.boot.autoconfigure.amqp.RabbitProperties; 21 import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
21 import org.springframework.stereotype.Service; 22 import org.springframework.stereotype.Service;
22 -import org.springframework.util.DigestUtils; 23 +import org.springframework.transaction.annotation.Propagation;
  24 +import org.springframework.transaction.annotation.Transactional;
23 25
24 import javax.annotation.Resource; 26 import javax.annotation.Resource;
25 import java.io.IOException; 27 import java.io.IOException;
26 -import java.net.MalformedURLException;  
27 import java.net.URISyntaxException; 28 import java.net.URISyntaxException;
28 -import java.util.ArrayList;  
29 import java.util.List; 29 import java.util.List;
30 import java.util.concurrent.TimeoutException; 30 import java.util.concurrent.TimeoutException;
31 31
@@ -34,6 +34,7 @@ import java.util.concurrent.TimeoutException; @@ -34,6 +34,7 @@ import java.util.concurrent.TimeoutException;
34 * Description: 34 * Description:
35 * 时间:2020/6/29 17:15 35 * 时间:2020/6/29 17:15
36 */ 36 */
  37 +@Slf4j
37 @Service 38 @Service
38 public class UserInfoServiceImpl implements UserInfoService { 39 public class UserInfoServiceImpl implements UserInfoService {
39 40
@@ -82,33 +83,82 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -82,33 +83,82 @@ public class UserInfoServiceImpl implements UserInfoService {
82 return userInfoMapper.insert(record); 83 return userInfoMapper.insert(record);
83 } 84 }
84 85
  86 + /**
  87 + * 在MQ服务器上,添加用户信息,并根据一个or多个虚拟主机id(由于其中包含着服务器id,故不做个数判断),设置用户与虚拟主机关系
  88 + * <p>
  89 + * 并创建用户对应的队列
  90 + * <p>
  91 + * 并存储于数据库
  92 + *
  93 + * @param userInfo {@link UserInfo}
  94 + * @return {@link ResultJson}
  95 + * @throws IOException
  96 + * @throws URISyntaxException
  97 + * @throws TimeoutException
  98 + */
85 @Override 99 @Override
  100 + @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
86 public ResultJson insertSelective(UserInfo userInfo) throws IOException, URISyntaxException, TimeoutException 101 public ResultJson insertSelective(UserInfo userInfo) throws IOException, URISyntaxException, TimeoutException
87 { 102 {
88 String password = userInfo.getPassword(); 103 String password = userInfo.getPassword();
  104 + String virtualHostId = userInfo.getVirtualHostId();
  105 + String splitItem = ",";
  106 + if (virtualHostId.contains(splitItem)) {
  107 + int index = 0;
  108 + String[] split_hostId = virtualHostId.split(splitItem);
  109 + for (int i = 0; i < split_hostId.length; i++) {
  110 + VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(split_hostId[i]);
  111 + if (virtualHost != null) {
  112 + userInfo.setVirtualHostId(virtualHost.getId());
  113 + userInfo.setVirtualHostName(virtualHost.getVirtualHostName());
89 114
90 - VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(userInfo.getVirtualHostId());  
91 userInfo.setVirtualHostName(virtualHost.getVirtualHostName()); 115 userInfo.setVirtualHostName(virtualHost.getVirtualHostName());
92 - BusServer busServer = busServerService.selectByPrimaryKey(userInfo.getServerId()); 116 + BusServer busServer = busServerService.selectByPrimaryKey(virtualHost.getServerId());
  117 +
  118 + userInfo.setServerId(busServer.getId());
93 userInfo.setServerName(busServer.getServerName()); 119 userInfo.setServerName(busServer.getServerName());
94 120
95 - ResultJson validateResult = validateUser(userInfo);  
96 - if (!"200".equals(validateUser(userInfo).getCode())) {  
97 - return validateResult;  
98 - }  
99 userInfo.setId(IdUtils.generateId()); 121 userInfo.setId(IdUtils.generateId());
100 - userInfo.setPassword(DigestUtils.md5DigestAsHex(userInfo.getPassword().getBytes()));  
101 122
102 int num = userInfoMapper.insertSelective(userInfo); 123 int num = userInfoMapper.insertSelective(userInfo);
103 - // 1.根据用户信息,在MQ创建用户  
104 - addMQUser(userInfo, password);  
105 - // 3.在对应虚拟机下创建队列 124 + ClientUtils.addRabbitUser(userInfo, busServer, password);
  125 + ClientUtils.userRelation(userInfo, busServer);
106 createQueue(userInfo); 126 createQueue(userInfo);
  127 + index = index + num;
  128 + } else {
  129 + log.warn(split_hostId[i] + "->是服务器id");
  130 + }
  131 + }
  132 + return index > 0
  133 + ? new ResultJson<>("200", "添加用户信息,成功")
  134 + : new ResultJson<>("500", "添加用户信息,失败");
  135 + } else {
  136 + VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(userInfo.getVirtualHostId());
  137 + int num = 0;
  138 + if (virtualHost != null) {
  139 + userInfo.setVirtualHostId(virtualHost.getId());
  140 + userInfo.setVirtualHostName(virtualHost.getVirtualHostName());
  141 +
  142 + userInfo.setVirtualHostName(virtualHost.getVirtualHostName());
  143 + BusServer busServer = busServerService.selectByPrimaryKey(virtualHost.getServerId());
  144 +
  145 + userInfo.setServerId(busServer.getId());
  146 + userInfo.setServerName(busServer.getServerName());
  147 +
  148 + userInfo.setId(IdUtils.generateId());
107 149
  150 + num = userInfoMapper.insertSelective(userInfo);
  151 + ClientUtils.addRabbitUser(userInfo, busServer, password);
  152 + ClientUtils.userRelation(userInfo, busServer);
  153 + createQueue(userInfo);
  154 + } else {
  155 + log.error(userInfo.getVirtualHostId() + "->并不是虚拟主机id;故添加失败");
  156 + }
108 return num > 0 157 return num > 0
109 ? new ResultJson<>("200", "添加用户信息,成功") 158 ? new ResultJson<>("200", "添加用户信息,成功")
110 : new ResultJson<>("500", "添加用户信息,失败"); 159 : new ResultJson<>("500", "添加用户信息,失败");
111 } 160 }
  161 + }
112 162
113 /** 163 /**
114 * 根据用户信息,添加队列 164 * 根据用户信息,添加队列
@@ -121,9 +171,8 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -121,9 +171,8 @@ public class UserInfoServiceImpl implements UserInfoService {
121 { 171 {
122 BusQueue busQueue = BusQueue.builder() 172 BusQueue busQueue = BusQueue.builder()
123 .id(IdUtils.generateId()) 173 .id(IdUtils.generateId())
124 - .userId(userInfo.getId())  
125 .username(userInfo.getUsername()) 174 .username(userInfo.getUsername())
126 - .queueName(userInfo.getUsername() + "_R") 175 + .queueName(userInfo.getVirtualHostName() + "_" + userInfo.getUsername() + "_R")
127 .virtualHostId(userInfo.getVirtualHostId()) 176 .virtualHostId(userInfo.getVirtualHostId())
128 .durability(true) 177 .durability(true)
129 .autoDelete(false) 178 .autoDelete(false)
@@ -132,36 +181,6 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -132,36 +181,6 @@ public class UserInfoServiceImpl implements UserInfoService {
132 busQueueService.insertSelective(busQueue); 181 busQueueService.insertSelective(busQueue);
133 } 182 }
134 183
135 -  
136 - /**  
137 - * 添加MQ用户信息,并配置MQ用户与虚拟主机的关系  
138 - *  
139 - * @param userInfo {@link UserInfo}  
140 - */  
141 - public void addMQUser(UserInfo userInfo, String password) throws MalformedURLException, URISyntaxException  
142 - {  
143 - String username = userInfo.getUsername();  
144 - String virtualHostName = userInfo.getVirtualHostName();  
145 -  
146 - String url = "http://" + host + ":15672/api";  
147 - Client client = new Client(url, rabbitUsername, rabbitPassword);  
148 - ArrayList<String> list = new ArrayList<>();  
149 - client.createUser(username, password.toCharArray(), list);  
150 -  
151 - UserPermissions p = new UserPermissions();  
152 - p.setConfigure(username + ".*");  
153 - p.setRead(username + ".*");  
154 - p.setWrite(username + ".*");  
155 - client.updatePermissions(virtualHostName, username, p);  
156 -  
157 - TopicPermissions topicPermissions = new TopicPermissions();  
158 - topicPermissions.setVhost(virtualHostName);  
159 - topicPermissions.setExchange("");  
160 - topicPermissions.setRead(".*");  
161 - topicPermissions.setWrite(".*");  
162 - client.updateTopicPermissions(virtualHostName, username, topicPermissions);  
163 - }  
164 -  
165 @Override 184 @Override
166 public UserInfo selectByPrimaryKey(String id) 185 public UserInfo selectByPrimaryKey(String id)
167 { 186 {
@@ -169,12 +188,6 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -169,12 +188,6 @@ public class UserInfoServiceImpl implements UserInfoService {
169 } 188 }
170 189
171 @Override 190 @Override
172 - public UserInfo selectByUsername(String username)  
173 - {  
174 - return userInfoMapper.selectByUsername(username);  
175 - }  
176 -  
177 - @Override  
178 public ResultJson updateByPrimaryKeySelective(UserInfo userInfo) 191 public ResultJson updateByPrimaryKeySelective(UserInfo userInfo)
179 { 192 {
180 if (StringUtil.isNullOrEmpty(userInfo.getId())) { 193 if (StringUtil.isNullOrEmpty(userInfo.getId())) {
@@ -189,7 +202,7 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -189,7 +202,7 @@ public class UserInfoServiceImpl implements UserInfoService {
189 } 202 }
190 203
191 /** 204 /**
192 - * 校验用户名称是否已经存在 205 + * 校验用户信息
193 */ 206 */
194 public ResultJson validateUser(UserInfo userInfo) 207 public ResultJson validateUser(UserInfo userInfo)
195 { 208 {
@@ -199,6 +212,7 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -199,6 +212,7 @@ public class UserInfoServiceImpl implements UserInfoService {
199 if (StringUtil.isNullOrEmpty(userInfo.getServerName()) || StringUtil.isNullOrEmpty(userInfo.getVirtualHostName())) { 212 if (StringUtil.isNullOrEmpty(userInfo.getServerName()) || StringUtil.isNullOrEmpty(userInfo.getVirtualHostName())) {
200 return new ResultJson<>("400", "服务器和虚拟主机,不能为空"); 213 return new ResultJson<>("400", "服务器和虚拟主机,不能为空");
201 } 214 }
  215 +
202 String userId = userInfo.getId(); 216 String userId = userInfo.getId();
203 if (!StringUtil.isNullOrEmpty(userId)) { 217 if (!StringUtil.isNullOrEmpty(userId)) {
204 UserInfo oldUserInfo = userInfoMapper.selectByPrimaryKey(userId); 218 UserInfo oldUserInfo = userInfoMapper.selectByPrimaryKey(userId);
@@ -207,9 +221,9 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -207,9 +221,9 @@ public class UserInfoServiceImpl implements UserInfoService {
207 } 221 }
208 return ResultJson.success("通过校验"); 222 return ResultJson.success("通过校验");
209 } else { 223 } else {
210 - List<UserInfo> userInfos = userInfoMapper.selectUserExist(userInfo.getUsername()); 224 + List<UserInfo> userInfos = userInfoMapper.validateUserInfo(userInfo);
211 return userInfos.size() > 0 225 return userInfos.size() > 0
212 - ? new ResultJson<>("400", "该用户,已存在") 226 + ? new ResultJson<>("400", "该用户信息,已存在")
213 : ResultJson.success("通过校验"); 227 : ResultJson.success("通过校验");
214 } 228 }
215 } 229 }
@@ -233,7 +247,7 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -233,7 +247,7 @@ public class UserInfoServiceImpl implements UserInfoService {
233 } 247 }
234 248
235 @Override 249 @Override
236 - public ResultJson updatePassword(UserInfo userInfo) throws MalformedURLException, URISyntaxException 250 + public ResultJson updatePassword(UserInfo userInfo) throws IOException, URISyntaxException
237 { 251 {
238 if (StringUtil.isNullOrEmpty(userInfo.getUsername()) || StringUtil.isNullOrEmpty(userInfo.getPassword())) { 252 if (StringUtil.isNullOrEmpty(userInfo.getUsername()) || StringUtil.isNullOrEmpty(userInfo.getPassword())) {
239 return new ResultJson<>("400", "用户名和密码,不能为空"); 253 return new ResultJson<>("400", "用户名和密码,不能为空");
@@ -241,25 +255,70 @@ public class UserInfoServiceImpl implements UserInfoService { @@ -241,25 +255,70 @@ public class UserInfoServiceImpl implements UserInfoService {
241 if (userInfoMapper.selectUserExist(userInfo.getUsername()).size() == 0) { 255 if (userInfoMapper.selectUserExist(userInfo.getUsername()).size() == 0) {
242 return new ResultJson<>("400", "该用户不存在"); 256 return new ResultJson<>("400", "该用户不存在");
243 } 257 }
244 - UserInfo oldUserInfo = userInfoMapper.selectByUsername(userInfo.getUsername());  
245 - oldUserInfo.setPassword(DigestUtils.md5DigestAsHex(userInfo.getPassword().getBytes()));  
246 - int num = userInfoMapper.updateByPrimaryKeySelective(oldUserInfo);  
247 - // 在这里修改MQ用户密码  
248 - Client client = connectClient();  
249 - ArrayList<String> tags = new ArrayList<>();  
250 - client.updateUser(userInfo.getUsername(), userInfo.getPassword().toCharArray(), tags);  
251 - return num > 0  
252 - ? new ResultJson<>("200", userInfo.getUsername() + "用户:修改密码成功!")  
253 - : new ResultJson<>("500", userInfo.getUsername() + "用户:修改密码失败!"); 258 + BusServer busServer = busServerService.selectByPrimaryKey(userInfo.getServerId());
  259 + String newPassword = userInfo.getPassword();
  260 + ClientUtils.updatePassword(busServer, userInfo.getUsername(), newPassword);
  261 + return new ResultJson<>("200", "修改密码成功");
  262 + }
  263 +
  264 + @Override
  265 + public ResultJson selectUserInfoList(UserInfo userInfo, Integer pageNum, Integer pageSize)
  266 + {
  267 + PageHelper.startPage(pageNum, pageSize);
  268 + List<UserInfo> userInfoList = userInfoMapper.selectUserInfoList(userInfo);
  269 + PageInfo<UserInfo> pageInfo = new PageInfo<>(userInfoList);
  270 + return pageInfo.getTotal() > 0
  271 + ? new ResultJson<>("200", "查询用户信息列表,成功!", pageInfo)
  272 + : new ResultJson<>("500", "查询用户信息列表,失败!");
254 } 273 }
255 274
256 - public Client connectClient() throws MalformedURLException, URISyntaxException 275 + /**
  276 + * 删除根据用户名删除该用户的所有关系
  277 + * <p>
  278 + * QM服务器上删除该用户(会自动删除该用户关系)
  279 + * <p>
  280 + * MQ服务器(以及数据库)删除该用户对应队列(日后需要时,打开注释,即可)
  281 + */
  282 + @Override
  283 + public ResultJson deleteUserInfo(UserInfo userInfo) throws IOException, URISyntaxException
257 { 284 {
258 - String url = "http://" + host + ":15672/api";  
259 - Client client = new Client(url, rabbitUsername, rabbitPassword);  
260 - return client; 285 + String username = userInfo.getUsername();
  286 + List<UserInfo> userInfoList = userInfoMapper.selectByUsername(userInfo.getUsername());
  287 + int num = userInfoMapper.deleteByUsername(username);
  288 + for (UserInfo item : userInfoList) {
  289 + BusServer busServer = busServerService.selectByPrimaryKey(item.getServerId());
  290 + ClientUtils.deleteMQUser(username, busServer);
261 } 291 }
262 292
  293 +
  294 +// List<BusQueue> queueList = busQueueService.selectByUsername(username);
  295 +// for (BusQueue queue : queueList) {
  296 +// busQueueService.deleteByPrimaryKey(queue.getId());
  297 +// }
  298 +
  299 + return num > 0
  300 + ? new ResultJson<>("200", "删除用户信息,成功!")
  301 + : new ResultJson<>("500", "删除用户信息,失败!");
  302 + }
  303 +
  304 + /**
  305 + * 删除用户关系(数据库 and MQ服务器)
  306 + *
  307 + * @param userInfo {@link UserInfo}
  308 + * @return 返回结果
  309 + * @throws IOException 输入输出异常
  310 + * @throws URISyntaxException URI语法异常
  311 + */
  312 + @Override
  313 + public ResultJson deleteUserRelation(UserInfo userInfo) throws IOException, URISyntaxException
  314 + {
  315 + int num = userInfoMapper.deleteByPrimaryKey(userInfo.getId());
  316 + BusServer busServer = busServerService.selectByPrimaryKey(userInfo.getServerId());
  317 + ClientUtils.clearPermissions(busServer, userInfo.getVirtualHostName(), userInfo.getUsername());
  318 + return num > 0
  319 + ? new ResultJson<>("200", "删除用户关系,成功!")
  320 + : new ResultJson<>("500", "删除用户关系,失败!");
  321 + }
263 } 322 }
264 323
265 324
@@ -110,13 +110,13 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -110,13 +110,13 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
110 String queueId = userMessageBinding.getQueueId(); 110 String queueId = userMessageBinding.getQueueId();
111 String exchangeId = userMessageBinding.getExchangeId(); 111 String exchangeId = userMessageBinding.getExchangeId();
112 String routingKeyId = userMessageBinding.getRoutingKeyId(); 112 String routingKeyId = userMessageBinding.getRoutingKeyId();
113 - String userId = userMessageBinding.getUserId(); 113 + String username = userMessageBinding.getUsername();
114 String splitItem = ","; 114 String splitItem = ",";
115 115
116 - // 循环最外层,userId  
117 - if (userId.contains(splitItem)) {  
118 - String[] split_userId = userId.split(splitItem);  
119 - for (int i = 0; i < split_userId.length; i++) { 116 + // 循环最外层,username
  117 + if (username.contains(splitItem)) {
  118 + String[] split_username = username.split(splitItem);
  119 + for (int i = 0; i < split_username.length; i++) {
120 // 循环第二层,exchangeId 120 // 循环第二层,exchangeId
121 if (exchangeId.contains(splitItem)) { 121 if (exchangeId.contains(splitItem)) {
122 String[] split_exchangeId = exchangeId.split(splitItem); 122 String[] split_exchangeId = exchangeId.split(splitItem);
@@ -129,7 +129,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -129,7 +129,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
129 if (queueId.contains(splitItem)) { 129 if (queueId.contains(splitItem)) {
130 String[] split_queueId = queueId.split(splitItem); 130 String[] split_queueId = queueId.split(splitItem);
131 for (int l = 0; l < split_queueId.length; l++) { 131 for (int l = 0; l < split_queueId.length; l++) {
132 - userMessageBinding.setUserId(split_userId[i]); 132 + userMessageBinding.setUsername(split_username[i]);
133 userMessageBinding.setExchangeId(split_exchangeId[j]); 133 userMessageBinding.setExchangeId(split_exchangeId[j]);
134 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]); 134 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]);
135 userMessageBinding.setQueueId(split_queueId[l]); 135 userMessageBinding.setQueueId(split_queueId[l]);
@@ -139,7 +139,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -139,7 +139,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
139 } 139 }
140 } 140 }
141 } else { 141 } else {
142 - userMessageBinding.setUserId(split_userId[i]); 142 + userMessageBinding.setUsername(split_username[i]);
143 userMessageBinding.setExchangeId(split_exchangeId[j]); 143 userMessageBinding.setExchangeId(split_exchangeId[j]);
144 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]); 144 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]);
145 int num = nextValidateAndFill(userMessageBinding); 145 int num = nextValidateAndFill(userMessageBinding);
@@ -153,7 +153,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -153,7 +153,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
153 if (queueId.contains(splitItem)) { 153 if (queueId.contains(splitItem)) {
154 String[] split_queueId = queueId.split(splitItem); 154 String[] split_queueId = queueId.split(splitItem);
155 for (int l = 0; l < split_queueId.length; l++) { 155 for (int l = 0; l < split_queueId.length; l++) {
156 - userMessageBinding.setUserId(split_userId[i]); 156 + userMessageBinding.setUsername(split_username[i]);
157 userMessageBinding.setExchangeId(split_exchangeId[j]); 157 userMessageBinding.setExchangeId(split_exchangeId[j]);
158 userMessageBinding.setQueueId(split_queueId[l]); 158 userMessageBinding.setQueueId(split_queueId[l]);
159 int num = nextValidateAndFill(userMessageBinding); 159 int num = nextValidateAndFill(userMessageBinding);
@@ -162,7 +162,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -162,7 +162,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
162 } 162 }
163 } 163 }
164 } else { 164 } else {
165 - userMessageBinding.setUserId(split_userId[i]); 165 + userMessageBinding.setUsername(split_username[i]);
166 userMessageBinding.setExchangeId(split_exchangeId[j]); 166 userMessageBinding.setExchangeId(split_exchangeId[j]);
167 int num = nextValidateAndFill(userMessageBinding); 167 int num = nextValidateAndFill(userMessageBinding);
168 if (num > 0) { 168 if (num > 0) {
@@ -181,7 +181,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -181,7 +181,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
181 if (queueId.contains(splitItem)) { 181 if (queueId.contains(splitItem)) {
182 String[] split_queueId = queueId.split(splitItem); 182 String[] split_queueId = queueId.split(splitItem);
183 for (int l = 0; l < split_queueId.length; l++) { 183 for (int l = 0; l < split_queueId.length; l++) {
184 - userMessageBinding.setUserId(split_userId[i]); 184 + userMessageBinding.setUsername(split_username[i]);
185 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]); 185 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]);
186 userMessageBinding.setQueueId(split_queueId[l]); 186 userMessageBinding.setQueueId(split_queueId[l]);
187 int num = nextValidateAndFill(userMessageBinding); 187 int num = nextValidateAndFill(userMessageBinding);
@@ -190,7 +190,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -190,7 +190,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
190 } 190 }
191 } 191 }
192 } else { 192 } else {
193 - userMessageBinding.setUserId(split_userId[i]); 193 + userMessageBinding.setUsername(split_username[i]);
194 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]); 194 userMessageBinding.setRoutingKeyId(split_routingKeyId[k]);
195 int num = nextValidateAndFill(userMessageBinding); 195 int num = nextValidateAndFill(userMessageBinding);
196 if (num > 0) { 196 if (num > 0) {
@@ -203,7 +203,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -203,7 +203,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
203 if (queueId.contains(splitItem)) { 203 if (queueId.contains(splitItem)) {
204 String[] split_queueId = queueId.split(splitItem); 204 String[] split_queueId = queueId.split(splitItem);
205 for (int l = 0; l < split_queueId.length; l++) { 205 for (int l = 0; l < split_queueId.length; l++) {
206 - userMessageBinding.setUserId(split_userId[i]); 206 + userMessageBinding.setUsername(split_username[i]);
207 userMessageBinding.setQueueId(split_queueId[l]); 207 userMessageBinding.setQueueId(split_queueId[l]);
208 int num = nextValidateAndFill(userMessageBinding); 208 int num = nextValidateAndFill(userMessageBinding);
209 if (num > 0) { 209 if (num > 0) {
@@ -211,7 +211,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -211,7 +211,7 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
211 } 211 }
212 } 212 }
213 } else { 213 } else {
214 - userMessageBinding.setUserId(split_userId[i]); 214 + userMessageBinding.setUsername(split_username[i]);
215 int num = nextValidateAndFill(userMessageBinding); 215 int num = nextValidateAndFill(userMessageBinding);
216 if (num > 0) { 216 if (num > 0) {
217 index = index + num; 217 index = index + num;
@@ -352,30 +352,20 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -352,30 +352,20 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
352 */ 352 */
353 public UserMessageBinding umb_fillName(UserMessageBinding userMessageBinding) 353 public UserMessageBinding umb_fillName(UserMessageBinding userMessageBinding)
354 { 354 {
355 - // 增加之设置id  
356 userMessageBinding.setId(IdUtils.generateId()); 355 userMessageBinding.setId(IdUtils.generateId());
357 356
358 - // 填充,用户名称  
359 - UserInfo userInfo = userInfoService.selectByPrimaryKey(userMessageBinding.getUserId());  
360 - userMessageBinding.setUsername(userInfo.getUsername());  
361 -  
362 - // 填充,服务器名称  
363 BusServer busServer = busServerService.selectByPrimaryKey(userMessageBinding.getServerId()); 357 BusServer busServer = busServerService.selectByPrimaryKey(userMessageBinding.getServerId());
364 userMessageBinding.setServerName(busServer.getServerName()); 358 userMessageBinding.setServerName(busServer.getServerName());
365 359
366 - // 填充,虚拟主机名称  
367 VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(userMessageBinding.getVirtualHostId()); 360 VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(userMessageBinding.getVirtualHostId());
368 userMessageBinding.setVirtualHostName(virtualHost.getVirtualHostName()); 361 userMessageBinding.setVirtualHostName(virtualHost.getVirtualHostName());
369 362
370 - // 填充,交换机名称  
371 BusExchange busExchange = busExchangeService.selectByPrimaryKey(userMessageBinding.getExchangeId()); 363 BusExchange busExchange = busExchangeService.selectByPrimaryKey(userMessageBinding.getExchangeId());
372 userMessageBinding.setExchangeName(busExchange.getExchangeName()); 364 userMessageBinding.setExchangeName(busExchange.getExchangeName());
373 365
374 - // 填充,队列名称  
375 BusQueue busQueue = busQueueService.selectByPrimaryKey(userMessageBinding.getQueueId()); 366 BusQueue busQueue = busQueueService.selectByPrimaryKey(userMessageBinding.getQueueId());
376 userMessageBinding.setQueueName(busQueue.getQueueName()); 367 userMessageBinding.setQueueName(busQueue.getQueueName());
377 368
378 - // 填充,路由键名称  
379 RoutingKey routingKey = routingKeyService.selectByPrimaryKey(userMessageBinding.getRoutingKeyId()); 369 RoutingKey routingKey = routingKeyService.selectByPrimaryKey(userMessageBinding.getRoutingKeyId());
380 userMessageBinding.setRoutingKeyName(routingKey.getRoutingKeyName()); 370 userMessageBinding.setRoutingKeyName(routingKey.getRoutingKeyName());
381 371
@@ -408,8 +398,8 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService @@ -408,8 +398,8 @@ public class UserMessageBindingServiceImpl implements UserMessageBindingService
408 log.error(userMessageBinding + "--> 该绑定关系已存在"); 398 log.error(userMessageBinding + "--> 该绑定关系已存在");
409 return 0; 399 return 0;
410 } else if (validate == null) { 400 } else if (validate == null) {
411 - // 此处添加MQ服务器上的绑定关系  
412 UserMessageBinding completeBinding = umb_fillName(userMessageBinding); 401 UserMessageBinding completeBinding = umb_fillName(userMessageBinding);
  402 + // MQ服务器上进行绑定关系
413 rabbitUtils.toCreateBinding(completeBinding); 403 rabbitUtils.toCreateBinding(completeBinding);
414 return userMessageBindingMapper.insertSelective(completeBinding); 404 return userMessageBindingMapper.insertSelective(completeBinding);
415 } else { 405 } else {
@@ -254,9 +254,16 @@ @@ -254,9 +254,16 @@
254 <if test="virtualHostId != null and virtualHostId != ''"> 254 <if test="virtualHostId != null and virtualHostId != ''">
255 virtual_host_id = #{virtualHostId,jdbcType=VARCHAR} 255 virtual_host_id = #{virtualHostId,jdbcType=VARCHAR}
256 </if> 256 </if>
257 - <if test="userId != null and userId != ''">  
258 - and user_id = #{userId,jdbcType=VARCHAR} 257 + <if test="username != null and username != ''">
  258 + and username = #{username,jdbcType=VARCHAR}
259 </if> 259 </if>
260 </where> 260 </where>
261 </select> 261 </select>
  262 +
  263 + <select id="selectByUsername" parameterType="java.lang.String" resultMap="BaseResultMap">
  264 + select
  265 + <include refid="Base_Column_List"/>
  266 + from bus_queue
  267 + where username = #{username,jdbcType=VARCHAR}
  268 + </select>
262 </mapper> 269 </mapper>
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper"> 3 <mapper namespace="com.sunyo.wlpt.message.bus.service.mapper.UserInfoMapper">
4 - <cache type="com.sunyo.wlpt.message.bus.service.cache.RedisCache"/> 4 + <cache-ref namespace="com.sunyo.wlpt.message.bus.service.mapper.VirtualHostMapper"/>
5 <resultMap id="BaseResultMap" type="com.sunyo.wlpt.message.bus.service.domain.UserInfo"> 5 <resultMap id="BaseResultMap" type="com.sunyo.wlpt.message.bus.service.domain.UserInfo">
6 <!--@mbg.generated--> 6 <!--@mbg.generated-->
7 <!--@Table user_info--> 7 <!--@Table user_info-->
@@ -35,6 +35,11 @@ @@ -35,6 +35,11 @@
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 + <delete id="deleteByUsername" parameterType="java.lang.String">
  39 + delete
  40 + from user_info
  41 + where username = #{username,jdbcType=VARCHAR}
  42 + </delete>
38 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserInfo"> 43 <insert id="insert" parameterType="com.sunyo.wlpt.message.bus.service.domain.UserInfo">
39 <!--@mbg.generated--> 44 <!--@mbg.generated-->
40 insert into user_info (id, username, `password`, 45 insert into user_info (id, username, `password`,
@@ -204,4 +209,45 @@ @@ -204,4 +209,45 @@
204 from user_info 209 from user_info
205 where username = #{username,jdbcType=VARCHAR} 210 where username = #{username,jdbcType=VARCHAR}
206 </select> 211 </select>
  212 +
  213 + <select id="selectUserInfoList" resultMap="BaseResultMap">
  214 + select
  215 + <include refid="Base_Column_List"/>
  216 + from user_info
  217 + <where>
  218 + <if test="username != null and username != ''">
  219 + username = #{username,jdbcType=VARCHAR}
  220 + </if>
  221 + <if test="serverName != null and serverName != ''">
  222 + and server_name = #{serverName,jdbcType=VARCHAR}
  223 + </if>
  224 + <if test="virtualHostName != null and virtualHostName != ''">
  225 + and virtual_host_name = #{virtualHostName,jdbcType=VARCHAR}
  226 + </if>
  227 + </where>
  228 + </select>
  229 + <select id="validateUserInfo" resultType="com.sunyo.wlpt.message.bus.service.domain.UserInfo">
  230 + select
  231 + <include refid="Base_Column_List"/>
  232 + from user_info
  233 + <where>
  234 + username = #{username,jdbcType=VARCHAR}
  235 + and server_name = #{serverName,jdbcType=VARCHAR}
  236 + and virtual_host_name = #{virtualHostName,jdbcType=VARCHAR}
  237 + </where>
  238 + </select>
  239 +
  240 + <select id="selectByBusQueue" parameterType="com.sunyo.wlpt.message.bus.service.domain.BusQueue"
  241 + resultMap="BaseResultMap">
  242 + select
  243 + <include refid="Base_Column_List"/>
  244 + from user_info
  245 + <where>
  246 + <!-- username必须得存在 -->
  247 + username = #{username,jdbcType=VARCHAR}
  248 + <if test="virtualHostId != null and virtualHostId != ''">
  249 + and virtual_host_id = #{virtualHostId,jdbcType=VARCHAR}
  250 + </if>
  251 + </where>
  252 + </select>
207 </mapper> 253 </mapper>