创建租户,创建应用
这个提交包含在:
父节点
9331387b37
当前提交
96da12992b
@ -0,0 +1,34 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.common;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
public class RabbitMQHelper {
|
||||||
|
public static void requestByGetAndParams(String requestUrl, String param) throws Exception {
|
||||||
|
System.out.println(requestUrl + ":\n" + param);
|
||||||
|
URL url = new URL(requestUrl);
|
||||||
|
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
|
||||||
|
//设置请求方式,请求参数类型
|
||||||
|
httpURLConnection.setRequestMethod("PUT");
|
||||||
|
httpURLConnection.setRequestProperty("content-type", "application/json;charset=UTF-8");
|
||||||
|
httpURLConnection.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
|
||||||
|
httpURLConnection.setDoOutput(true);
|
||||||
|
OutputStream outputStream = httpURLConnection.getOutputStream();
|
||||||
|
//将参数写入输出流,param必须是JSON格式
|
||||||
|
outputStream.write(param.getBytes());
|
||||||
|
outputStream.flush();
|
||||||
|
InputStream inputStream = httpURLConnection.getInputStream();
|
||||||
|
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||||
|
byte[] bytes = new byte[1024];
|
||||||
|
int len = 0;
|
||||||
|
while ((len = inputStream.read(bytes)) >= 0) {
|
||||||
|
bout.write(bytes, 0, len);
|
||||||
|
}
|
||||||
|
inputStream.close();
|
||||||
|
bout.close();
|
||||||
|
bout.toByteArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.common;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
public class TimeHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间戳
|
||||||
|
*
|
||||||
|
* @return 时间戳
|
||||||
|
*/
|
||||||
|
public static long getTimeMillis() {
|
||||||
|
return System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间,指定返回样式
|
||||||
|
*
|
||||||
|
* @param formats 指定样式
|
||||||
|
* @return 时间字符串
|
||||||
|
*/
|
||||||
|
public static String getTimeString(String formats) {
|
||||||
|
return getStringFormMillis(System.currentTimeMillis(), formats);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据给定时间戳和样式,返回字符串
|
||||||
|
*
|
||||||
|
* @param millis 时间戳
|
||||||
|
* @param formats 指定字符串格式
|
||||||
|
* @return 时间字符串
|
||||||
|
*/
|
||||||
|
public static String getStringFormMillis(long millis, String formats) {
|
||||||
|
Date date = new Date(millis);
|
||||||
|
return new SimpleDateFormat(formats, Locale.getDefault()).format(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据Date 返回指定格式的时字符串
|
||||||
|
*
|
||||||
|
* @param date 数据
|
||||||
|
* @param formats 格式
|
||||||
|
* @return 指定格式的字符串
|
||||||
|
*/
|
||||||
|
public static String getStringFromDate(Date date, String formats) {
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat(formats, Locale.getDefault());
|
||||||
|
return formatter.format(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据给定字符串和格式,获取时间戳
|
||||||
|
*
|
||||||
|
* @param dateString 时间字符串
|
||||||
|
* @param formats 时间格式
|
||||||
|
* @return 时间戳
|
||||||
|
*/
|
||||||
|
public static long getTimeMillisForType(String dateString, String formats) {
|
||||||
|
SimpleDateFormat format = new SimpleDateFormat(formats, Locale.getDefault());
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = format.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return date != null ? date.getTime() : 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取以秒为单位的时间戳
|
||||||
|
*
|
||||||
|
* @return 秒
|
||||||
|
*/
|
||||||
|
public static long getTimeFromSecond() {
|
||||||
|
return getTimeMillis() / 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,11 +1,5 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.controller;
|
package cn.org.bjca.trust.java.imserver.controller;
|
||||||
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.Message;
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.UserInfo;
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.message.TextMessage;
|
|
||||||
import cn.org.bjca.trust.java.imserver.repository.MessageRepository;
|
|
||||||
import cn.org.bjca.trust.java.imserver.repository.UserRepository;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -14,18 +8,10 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("hello")
|
@RequestMapping("hello")
|
||||||
public class HelloController {
|
public class HelloController {
|
||||||
@Autowired
|
|
||||||
private MessageRepository messageRepository;
|
|
||||||
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public String getById(@PathVariable String id) throws Exception {
|
public String getById(@PathVariable String id) throws Exception {
|
||||||
System.out.println("id ==> " + id);
|
System.out.println("id ==> " + id);
|
||||||
Message message = new Message();
|
|
||||||
message.setType("111");
|
|
||||||
TextMessage textMessage = new TextMessage();
|
|
||||||
textMessage.setText("ssss");
|
|
||||||
message.setTextMessage(textMessage);
|
|
||||||
messageRepository.save(message);
|
|
||||||
return "{\"msg\":\"qdxorigin\",\"code\":200,\"data\":\"Sbfuiaefhaikufhcsauik\"}";
|
return "{\"msg\":\"qdxorigin\",\"code\":200,\"data\":\"Sbfuiaefhaikufhcsauik\"}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,71 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.controller.sys.v1;
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.HttpResult;
|
||||||
|
import cn.org.bjca.trust.java.imserver.common.RabbitMQHelper;
|
||||||
|
import cn.org.bjca.trust.java.imserver.common.TimeHelper;
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.sys.ApplicationEntity;
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.sys.TenantEntity;
|
||||||
|
import cn.org.bjca.trust.java.imserver.repository.tenant.ApplicationRepository;
|
||||||
|
import cn.org.bjca.trust.java.imserver.repository.tenant.TenantRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("tenant/v1")
|
||||||
|
public class TenantV1Controller {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TenantRepository tenantRepository;
|
||||||
|
@Autowired
|
||||||
|
private ApplicationRepository applicationRepository;
|
||||||
|
|
||||||
|
@PostMapping("/tenant/create")
|
||||||
|
public HttpResult<String> tenantCreate(@RequestBody TenantEntity tenant) throws Exception {
|
||||||
|
if (null == tenant.getTenantName() ||
|
||||||
|
null == tenant.getUserPhone() ||
|
||||||
|
null == tenant.getUserEmail() ||
|
||||||
|
null == tenant.getUserName()) {
|
||||||
|
return new HttpResult<>(201, "参数错误", "");
|
||||||
|
} else {
|
||||||
|
TenantEntity t = tenantRepository.findFirstByUserEmailOrUserPhone(tenant.getUserEmail(), tenant.getUserPhone());
|
||||||
|
if (null != t) return new HttpResult<>(201, "当前联系人已注册", "");
|
||||||
|
t = new TenantEntity();
|
||||||
|
t.setTenantName(tenant.getTenantName());
|
||||||
|
t.setUserEmail(tenant.getUserEmail());
|
||||||
|
t.setUserName(tenant.getUserName());
|
||||||
|
t.setUserPhone(tenant.getUserPhone());
|
||||||
|
t.setTenantNo(TimeHelper.getTimeString("yyyyMMddHHmm") + (new Random().nextInt(899999999) + 100000000));
|
||||||
|
tenantRepository.save(t);
|
||||||
|
|
||||||
|
// RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/vhosts/" + appid, "");
|
||||||
|
return new HttpResult<>(200, "创建成功", "创建成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/app/create")
|
||||||
|
public HttpResult<String> appCreate(@RequestBody ApplicationEntity application) throws Exception {
|
||||||
|
if (null == application.getAppName() ||
|
||||||
|
null == application.getTenantNo()) {
|
||||||
|
return new HttpResult<>(201, "参数错误", "");
|
||||||
|
} else {
|
||||||
|
ApplicationEntity app = applicationRepository.findFirstByAppNameAndTenantNo(application.getAppName(), application.getTenantNo());
|
||||||
|
if (null != app) return new HttpResult<>(201, "已创建相关类型的同名应用", "");
|
||||||
|
app = new ApplicationEntity();
|
||||||
|
app.setTenantNo(application.getTenantNo());
|
||||||
|
app.setAppName(application.getAppName());
|
||||||
|
app.setAppId(TimeHelper.getTimeString("yyyyMMddHHmm") + (new Random().nextInt(899999999) + 100000000));
|
||||||
|
applicationRepository.save(app);
|
||||||
|
|
||||||
|
RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/vhosts/" + app.getAppId(), "");
|
||||||
|
return new HttpResult<>(200, "创建成功", "创建成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,18 +1,16 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.controller.user.v1;
|
package cn.org.bjca.trust.java.imserver.controller.user.v1;
|
||||||
|
|
||||||
import cn.org.bjca.trust.java.imserver.HttpResult;
|
import cn.org.bjca.trust.java.imserver.HttpResult;
|
||||||
|
import cn.org.bjca.trust.java.imserver.common.RabbitMQHelper;
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.UserInfo;
|
import cn.org.bjca.trust.java.imserver.entitys.UserInfo;
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.sys.ApplicationEntity;
|
||||||
import cn.org.bjca.trust.java.imserver.repository.UserRepository;
|
import cn.org.bjca.trust.java.imserver.repository.UserRepository;
|
||||||
|
import cn.org.bjca.trust.java.imserver.repository.tenant.ApplicationRepository;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -23,14 +21,19 @@ public class UserV1Controller {
|
|||||||
private HttpServletRequest request;
|
private HttpServletRequest request;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
@Autowired
|
||||||
|
private ApplicationRepository applicationRepository;
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public HttpResult<LoginData> getById(@RequestBody LoginBean user, @RequestHeader HttpHeaders headers) throws Exception {
|
public HttpResult<LoginData> login(@RequestBody LoginBean user, @RequestHeader HttpHeaders headers) throws Exception {
|
||||||
String appid = headers.getFirst("appid");
|
String appid = headers.getFirst("appid");
|
||||||
String userid = headers.getFirst("userid");
|
String userid = headers.getFirst("userid");
|
||||||
String ostype = headers.getFirst("ostype");
|
String ostype = headers.getFirst("ostype");
|
||||||
requestByGetAndParams("http://114.115.203.60:15672/api/vhosts/"+appid, "");
|
|
||||||
if (null != appid && null != userid && null != ostype) {
|
if (null != appid && null != userid && null != ostype) {
|
||||||
|
|
||||||
|
ApplicationEntity app = applicationRepository.findFirstByAppId(appid);
|
||||||
|
if (null == app) return new HttpResult<>(201, "appId不存在", new LoginData());
|
||||||
|
|
||||||
UserInfo userInfo = userRepository.findUserInfoByUserIdAndOsTypeAndAppId(userid, ostype, appid);
|
UserInfo userInfo = userRepository.findUserInfoByUserIdAndOsTypeAndAppId(userid, ostype, appid);
|
||||||
if (null == userInfo) {
|
if (null == userInfo) {
|
||||||
System.out.println("-----------------用户不存在------------------");
|
System.out.println("-----------------用户不存在------------------");
|
||||||
@ -42,10 +45,10 @@ public class UserV1Controller {
|
|||||||
userInfo.setPassword(UUID.randomUUID().toString());
|
userInfo.setPassword(UUID.randomUUID().toString());
|
||||||
userRepository.save(userInfo);
|
userRepository.save(userInfo);
|
||||||
|
|
||||||
requestByGetAndParams("http://114.115.203.60:15672/api/users/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"password\":\"" + userInfo.getPassword() + "\",\"tags\":\"\"}");
|
RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/users/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"password\":\"" + userInfo.getPassword() + "\",\"tags\":\"\"}");
|
||||||
requestByGetAndParams("http://114.115.203.60:15672/api/permissions/%2F/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"configure\":\".*\",\"write\":\".*\",\"read\":\".*\"}");
|
RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/permissions/%2F/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"configure\":\".*\",\"write\":\".*\",\"read\":\".*\"}");
|
||||||
requestByGetAndParams("http://114.115.203.60:15672/api/permissions/" + appid + "/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"configure\":\".*\",\"write\":\".*\",\"read\":\".*\"}");
|
RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/permissions/" + appid + "/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"configure\":\".*\",\"write\":\".*\",\"read\":\".*\"}");
|
||||||
requestByGetAndParams("http://114.115.203.60:15672/api/topic-permissions/" + appid + "/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"exchange\":\"\",\"write\":\".*\",\"read\":\".*\"}");
|
RabbitMQHelper.requestByGetAndParams("http://114.115.203.60:15672/api/topic-permissions/" + appid + "/" + userInfo.getUserName(), "{\"username\":\"" + userInfo.getUserName() + "\",\"vhost\":\"" + appid + "\",\"exchange\":\"\",\"write\":\".*\",\"read\":\".*\"}");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,28 +59,4 @@ public class UserV1Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void requestByGetAndParams(String requestUrl, String param) throws Exception {
|
|
||||||
System.out.println(requestUrl + ":\n" + param);
|
|
||||||
URL url = new URL(requestUrl);
|
|
||||||
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
|
|
||||||
//设置请求方式,请求参数类型
|
|
||||||
httpURLConnection.setRequestMethod("PUT");
|
|
||||||
httpURLConnection.setRequestProperty("content-type", "application/json;charset=UTF-8");
|
|
||||||
httpURLConnection.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
|
|
||||||
httpURLConnection.setDoOutput(true);
|
|
||||||
OutputStream outputStream = httpURLConnection.getOutputStream();
|
|
||||||
//将参数写入输出流,param必须是JSON格式
|
|
||||||
outputStream.write(param.getBytes());
|
|
||||||
outputStream.flush();
|
|
||||||
InputStream inputStream = httpURLConnection.getInputStream();
|
|
||||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
|
||||||
byte[] bytes = new byte[1024];
|
|
||||||
int len = 0;
|
|
||||||
while ((len = inputStream.read(bytes)) >= 0) {
|
|
||||||
bout.write(bytes, 0, len);
|
|
||||||
}
|
|
||||||
inputStream.close();
|
|
||||||
bout.close();
|
|
||||||
bout.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,16 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.entitys.sys;
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.AbstractBaseTimeEntity;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "applications")
|
||||||
|
@Data
|
||||||
|
public class ApplicationEntity extends AbstractBaseTimeEntity {
|
||||||
|
private String appId;
|
||||||
|
private String appName;
|
||||||
|
private String tenantNo;
|
||||||
|
private String userId;
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.entitys.sys;
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.AbstractBaseTimeEntity;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "tenant")
|
||||||
|
@Data
|
||||||
|
public class TenantEntity extends AbstractBaseTimeEntity {
|
||||||
|
private String tenantNo;
|
||||||
|
private String tenantName;
|
||||||
|
private String userId;
|
||||||
|
private String userName;
|
||||||
|
private String userPhone;
|
||||||
|
private String userEmail;
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.repository.tenant;
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.sys.ApplicationEntity;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface ApplicationRepository extends JpaRepository<ApplicationEntity, Long> {
|
||||||
|
ApplicationEntity findFirstByAppNameAndTenantNo(String appName, String tenantNo);
|
||||||
|
ApplicationEntity findFirstByAppId(String appId);
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.repository.tenant;
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.sys.TenantEntity;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface TenantRepository extends JpaRepository<TenantEntity, Long> {
|
||||||
|
TenantEntity findFirstByUserEmailOrUserPhone(String userEmail, String userPhone);
|
||||||
|
|
||||||
|
}
|
||||||
2
src/main/java/lombok.config
普通文件
2
src/main/java/lombok.config
普通文件
@ -0,0 +1,2 @@
|
|||||||
|
config.stopBubbling=true
|
||||||
|
lombok.equalsAndHashCode.callSuper=call
|
||||||
正在加载...
在新工单中引用
屏蔽一个用户