diff --git a/.gitignore b/.gitignore
index 3a8cabc..4174613 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
/target
.idea
+/docker/logs
+/docker/.env
diff --git a/docker/.env.example b/docker/.env.example
new file mode 100644
index 0000000..4b332b3
--- /dev/null
+++ b/docker/.env.example
@@ -0,0 +1,21 @@
+# nacos
+NACOS_CONTAINER_NAME=
+NACOS_IP=
+NACOS_PORT=
+NACOS_USERNAME=
+NACOS_PASSWORD=
+
+# mysql
+MYSQL_CONTAINER_NAME=
+MYSQL_IP=
+MYSQL_PORT=
+MYSQL_DATABASE=
+MYSQL_USERNAME=
+MYSQL_PASSWORD=
+
+# local port
+SOFTBOT_LOCAL_PORT=
+
+# microservice network name
+MICROSERVICES_NETWORK_NAME=
+
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 5f11a8b..6da2965 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,4 +1,4 @@
FROM openjdk:8-jdk
ADD target/softbot.jar /data/softbot.jar
WORKDIR /data
-ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS softbot.jar --spring.config.location=/data/config/softbot_application.yml"]
\ No newline at end of file
+ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS softbot.jar $NACOS_OPTS $MYSQL_OPTS --spring.profiles.active=prod"]
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 611f3dc..5f0edd2 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -7,13 +7,23 @@ services:
context: ../
dockerfile: docker/Dockerfile
volumes:
- - ./config/softbot_application.yml:/data/config/softbot_application.yml
+ - ./logs:/data/logs
+ external_links:
+ - ${NACOS_CONTAINER_NAME}
+ - ${MYSQL_CONTAINER_NAME}
ports:
- - "8069:8081"
+ - "${SOFTBOT_LOCAL_PORT}:8081"
environment:
- TZ=Asia/Shanghai
+ - NACOS_OPTS=--nacos_ip=${NACOS_IP} --nacos_port=${NACOS_PORT} --nacos_username=${NACOS_USERNAME} --nacos_password=${NACOS_PASSWORD}
+ - MYSQL_OPTS=--mysql_ip=${MYSQL_IP} --mysql_port=${MYSQL_PORT} --mysql_username=${MYSQL_USERNAME} --mysql_password=${MYSQL_PASSWORD} --mysql_database=${MYSQL_DATABASE}
deploy:
resources:
limits:
memory: 800M
- restart: always
\ No newline at end of file
+ restart: always
+
+networks:
+ microservices_network:
+ external:
+ name: ${MICROSERVICES_NETWORK_NAME}
\ No newline at end of file
diff --git a/docker/start_docker_compose.sh b/docker/start_docker_compose.sh
index bb69fb5..497c0fd 100644
--- a/docker/start_docker_compose.sh
+++ b/docker/start_docker_compose.sh
@@ -1 +1,5 @@
-mvn -f ../pom.xml clean package -DskipTests && cp ../src/main/resources/application.yml ./config/softbot_application.yml && docker-compose -f docker-compose.yml up -d --build --force-recreate
\ No newline at end of file
+#!/bin/bash
+# 编译项目
+mvn -f ../pom.xml clean package -DskipTests
+# 启动docker-compose
+docker-compose -f docker-compose.yml up -d --build --force-recreate
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index feb6132..8282610 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,12 @@
1.8
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+ 2021.1
+
+
javax.validation
validation-api
diff --git a/src/main/java/com/gitlink/softbot/SoftBotApplication.java b/src/main/java/com/gitlink/softbot/SoftBotApplication.java
index ee4854e..c3e4202 100644
--- a/src/main/java/com/gitlink/softbot/SoftBotApplication.java
+++ b/src/main/java/com/gitlink/softbot/SoftBotApplication.java
@@ -3,6 +3,7 @@ package com.gitlink.softbot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableAsync;
@@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@MapperScan("com.gitlink.softbot.dao")
@EnableAsync
@EnableRetry
+@EnableDiscoveryClient
public class SoftBotApplication {
public static void main(String[] args) {
diff --git a/docker/config/softbot_application.yml b/src/main/resources/application-dev.yml
similarity index 86%
rename from docker/config/softbot_application.yml
rename to src/main/resources/application-dev.yml
index bcb1fc6..6243d56 100644
--- a/docker/config/softbot_application.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,8 +1,25 @@
server:
- port: 8080
+ port: 8081
es-url:
127.0.0.1:9200
spring:
+
+ config:
+ activate:
+ on-profile: dev
+
+ application:
+ # 应用名称
+ name: softbot
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 127.0.0.1:8848
+ username: nacos
+ password: nacos
+
+
datasource:
username: root
password: 123456 #tonglin0711
@@ -45,6 +62,7 @@ spring:
timeout: 10000
password: 123456
+
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..9732d6e
--- /dev/null
+++ b/src/main/resources/application-prod.yml
@@ -0,0 +1,81 @@
+server:
+ port: 8081
+es-url:
+ 127.0.0.1:9200
+
+spring:
+
+ config:
+ activate:
+ on-profile: dev
+
+ application:
+ # 应用名称
+ name: softbot
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: ${nacos_ip}:${nacos_port}
+ username: ${nacos_username}
+ password: ${nacos_password}
+
+ datasource:
+ username: ${mysql_username}
+ password: ${mysql_password}
+ url: jdbc:mysql://${mysql_ip}:${mysql_port}/${mysql_database}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ dbcp2:
+ test-on-borrow: false
+ test-while-idle: true
+ time-between-eviction-runs-millis: 3600000
+
+ elasticsearch:
+ rest:
+ uris: http://127.0.0.1:9200
+
+ jackson:
+ time-zone: GMT+8
+ date-format: yyyy-MM-dd HH:mm:ss
+ mvc:
+ view:
+ prefix: /WEB-INF/jsp/
+ suffix: .jsp
+ thymeleaf:
+ prefix: classpath:/templates/
+ suffix: .html
+ encoding: UTF-8
+ redis:
+ database: 0
+ host: 101.35.140.79
+ port: 6379
+ # password:
+ # 连接超时时间
+ timeout: 10000
+ password: 123456
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ mapper-locations: classpath:mapper/*.xml
+
+
+mybatis:
+ mapper-locations: classpath:mapper/*.xml
+ type-aliases-package: com.gitlink.softbot.entity
+ configuration:
+ map-underscore-to-camel-case: true
+
+#showSql
+logging:
+ level:
+ com:
+ example:
+ mapper : debug
+elasticsearch:
+ url: localhost:9200
+
+gitlink:
+ url: https://testforgeplus.trustie.net
+ token: eyJraWQiOiJUaEVSLVl3Ukg4TWYwOHM0UnJLUDYzXzZLWmVET2NZckZXcmdzN2VUVWdrIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJHaXRMaW5rIiwiaWF0IjoxNjc1NzYyMDkwLCJqdGkiOiI0MzA1ZDUwZC01ZGRkLTQ0MzUtODMyNS1iZDczYmVhMWMxYjciLCJ1c2VyIjp7ImlkIjpudWxsLCJsb2dpbiI6bnVsbCwibWFpbCI6bnVsbH19.hpHCJeU4Jyz-DM2NBUdB-tQW_E0-tu9H3LoGhsJ7kPHkSsdXJCII0jxhyPb9gwDsgd8SnlRZF8tZDDjnZSoztQ
+
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 7f7611f..b971831 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,72 +1,10 @@
server:
port: 8081
-es-url:
- 127.0.0.1:9200
+
spring:
- datasource:
- username: root
- password: 123456 #tonglin0711
- url: jdbc:mysql://localhost:3306/testforgeplus?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
- driver-class-name: com.mysql.cj.jdbc.Driver
- dbcp2:
- test-on-borrow: false
- test-while-idle: true
- time-between-eviction-runs-millis: 3600000
-
- elasticsearch:
- rest:
- uris: http://127.0.0.1:9200
- devtools:
- restart:
-
- enabled: true
-
- additional-paths: src/main/java
-
- poll-interval: 3000
- quiet-period: 1000
- jackson:
- time-zone: GMT+8
- date-format: yyyy-MM-dd HH:mm:ss
- mvc:
- view:
- prefix: /WEB-INF/jsp/
- suffix: .jsp
- thymeleaf:
- prefix: classpath:/templates/
- suffix: .html
- encoding: UTF-8
- redis:
- database: 0
- host: 101.35.140.79
- port: 6379
- # password:
- # 连接超时时间
- timeout: 10000
- password: 123456
-
-mybatis-plus:
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- mapper-locations: classpath:mapper/*.xml
-
-
-mybatis:
- mapper-locations: classpath:mapper/*.xml
- type-aliases-package: com.gitlink.softbot.entity
- configuration:
- map-underscore-to-camel-case: true
-
-#showSql
-logging:
- level:
- com:
- example:
- mapper : debug
-elasticsearch:
- url: localhost:9200
-
-gitlink:
- url: https://testforgeplus.trustie.net
- token: eyJraWQiOiJUaEVSLVl3Ukg4TWYwOHM0UnJLUDYzXzZLWmVET2NZckZXcmdzN2VUVWdrIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJHaXRMaW5rIiwiaWF0IjoxNjc1NzYyMDkwLCJqdGkiOiI0MzA1ZDUwZC01ZGRkLTQ0MzUtODMyNS1iZDczYmVhMWMxYjciLCJ1c2VyIjp7ImlkIjpudWxsLCJsb2dpbiI6bnVsbCwibWFpbCI6bnVsbH19.hpHCJeU4Jyz-DM2NBUdB-tQW_E0-tu9H3LoGhsJ7kPHkSsdXJCII0jxhyPb9gwDsgd8SnlRZF8tZDDjnZSoztQ
-
+ application:
+ # 应用名称
+ name: softbot
+ profiles:
+ # 环境配置
+ active: dev
diff --git a/src/main/resources/sql/soft_bot.sql b/src/main/resources/sql/soft_bot.sql
index fc94439..e5db904 100644
--- a/src/main/resources/sql/soft_bot.sql
+++ b/src/main/resources/sql/soft_bot.sql
@@ -39,7 +39,7 @@ CREATE TABLE `bot` (
`private_key` text,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `name` (`bot_name`) USING BTREE
-) ENGINE=InnoDB AUTO_INCREMENT=802 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of bot
@@ -195,3 +195,156 @@ CREATE TABLE `transfer_bot` (
-- ----------------------------
-- Records of transfer_bot
-- ----------------------------
+
+
+DROP TABLE IF EXISTS `bot`;
+CREATE TABLE `bot` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_name` varchar(255) NOT NULL COMMENT 'bot名称',
+ `bot_des` longtext COMMENT 'bot描述',
+ `webhook` varchar(255) NOT NULL COMMENT 'bot回调url',
+ `is_public` tinyint DEFAULT NULL COMMENT '0:私有1:公开',
+ `logo` varchar(255) DEFAULT NULL COMMENT 'logo',
+ `state` tinyint DEFAULT NULL COMMENT '0:挂起1:工作',
+ `client_id` varchar(255) DEFAULT NULL COMMENT '客户端id(后台生成)',
+ `client_secret` varchar(255) DEFAULT NULL COMMENT '客户端密钥(后台生成)',
+ `web_url` varchar(255) DEFAULT NULL COMMENT '主页网址',
+ `category` varchar(255) DEFAULT NULL COMMENT '类型',
+ `install_num` int DEFAULT '0' COMMENT '下载数量',
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `uid` int DEFAULT NULL,
+ `owner_id` int DEFAULT NULL,
+ `private_key` text,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`bot_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
+
+-- Records of bot
+INSERT INTO `bot` VALUES
+ ('783', 'botnameegdret', 'miaoshusd', 'http://localhost:10000', '1', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdret', '疑修管理', '6', '2023-03-07 17:42:13', '2023-03-07 17:42:13', NULL, '84993', NULL),
+ ('791', 'botnameegdretui', 'miaoshusd', 'www.hauhahasd.com', '1', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdretui', '疑修管理', '1', '2023-03-07 17:23:28', '2023-03-06 23:05:28', NULL, '84993', NULL),
+ ('792', 'botnameegdretop', 'miaoshusd', 'www.hauhahasd.com', '0', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdretop', NULL, '0', '2023-03-06 23:05:29', '2023-03-06 23:05:29', NULL, '84993', NULL);
+
+-- Table structure for bot_category
+DROP TABLE IF EXISTS `bot_category`;
+CREATE TABLE `bot_category` (
+ `id` int NOT NULL,
+ `category` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- Records of bot_category
+INSERT INTO `bot_category` VALUES
+ ('1', '疑修管理'),
+ ('2', '合并请求管理'),
+ ('3', '代码审阅'),
+ ('4', '代码质量'),
+ ('5', '依赖管理'),
+ ('6', '构建'),
+ ('7', '测试'),
+ ('8', '部署'),
+ ('9', '文档管理'),
+ ('10', '其他');
+
+-- Table structure for bot_limit_event
+DROP TABLE IF EXISTS `bot_limit_event`;
+CREATE TABLE `bot_limit_event` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_id` int NOT NULL COMMENT 'bot的唯一标识',
+ `read_write_code` tinyint NOT NULL COMMENT '0:只读1:读写2:无权限',
+ `read_write_pr` tinyint NOT NULL COMMENT '0:只读1:读写2:无权限',
+ `auth_category` tinyint NOT NULL COMMENT '0:代码仓库权限1:合并请求权限2:无权限',
+ `event` tinyint NOT NULL COMMENT '0:git推送到存储库1:创建分支或标签2:删除分支或标签3:合并请求被打开或重新打开4:合并请求被分配5:无权限',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;
+
+-- Records of bot_limit_event
+INSERT INTO `bot_limit_event` VALUES
+ ('18', '783', '0', '1', '0', '1', '2022-10-05 19:21:53', '2022-10-05 19:21:53'),
+ ('19', '791', '0', '1', '0', '1', '2022-10-07 20:19:22', '2022-10-07 20:19:22'),
+ ('20', '792', '1', '2', '0', '2', '2022-12-29 18:34:26', '2022-12-29 18:34:26'),
+ ('21', '793', '1', '2', '0', '1', '2022-12-29 18:42:26', '2022-12-29 18:42:26'),
+ ('23', '794', '1', '2', '0', '1', '2022-12-29 18:45:54', '2022-12-29 18:45:54'),
+ ('27', '799', '1', '2', '0', '1', '2022-12-29 19:30:05', '2022-12-29 19:30:05'),
+ ('28', '799', '2', '1', '1', '2', '2022-12-29 19:30:05', '2022-12-29 19:30:05');
+
+-- Table structure for install_bot
+DROP TABLE IF EXISTS `install_bot`;
+CREATE TABLE `install_bot` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_id` int NOT NULL COMMENT 'bot唯一标识',
+ `installer_id` int NOT NULL COMMENT '安装者唯一标识',
+ `store_id` int NOT NULL COMMENT '仓库唯一标识',
+ `state` tinyint NOT NULL COMMENT '0:挂起1:工作2:卸载',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `installer_login` varchar(255) NOT NULL,
+ `store_repo` varchar(255) NOT NULL,
+ `webhook_id` int DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;
+
+-- Table structure for market_bot
+DROP TABLE IF EXISTS `market_bot`;
+CREATE TABLE `market_bot` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_id` int NOT NULL COMMENT 'bot唯一 标识',
+ `market_name` varchar(255) DEFAULT NULL COMMENT '上市名称',
+ `market_desc` varchar(255) DEFAULT NULL COMMENT '上市简介',
+ `market_intro` longtext COMMENT '详细介绍',
+ `first_func` varchar(255) NOT NULL COMMENT '主要功能',
+ `second_func` varchar(255) DEFAULT NULL COMMENT '次要功能',
+ `webhook` varchar(255) DEFAULT NULL COMMENT '回调url',
+ `is_receive_ag1` tinyint DEFAULT '0' COMMENT '0:接收协议1:不接受收开发者协议',
+ `is_receive_ag2` tinyint DEFAULT '0' COMMENT '0:接收协议1:不接受平台协议',
+ `market_time` datetime DEFAULT NULL COMMENT '上市时间',
+ `logo` varchar(255) DEFAULT NULL COMMENT '头像',
+ `install_num` int DEFAULT '0' COMMENT '安装次数',
+ `category` varchar(255) DEFAULT NULL COMMENT '类型',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `唯一` (`bot_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8;
+
+-- Records of market_bot
+INSERT INTO `market_bot` VALUES ('49', '783', 'qwe', 'asd', null, '代码审阅', '疑修管理', 'sad', '1', '1', '2023-03-06 21:07:01', 'sd', '6', 'asd', '2023-03-06 21:07:01', '2023-03-07 17:40:57');
+INSERT INTO `market_bot` VALUES ('54', '791', 'asder', 'asd', 'asdasd', '其他', '', 'www.asd.com', '0', '0', '2023-03-06 21:06:58', 'asd', '1', 'xcv', '2023-03-06 21:06:58', '2023-03-07 17:23:28');
+
+
+DROP TABLE IF EXISTS `register_bot`;
+CREATE TABLE `register_bot` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_id` int NOT NULL COMMENT 'bot唯一标识',
+ `developer_id` int NOT NULL COMMENT 'bot开发者唯一标识',
+ `create_time` datetime NOT NULL COMMENT '创建时间',
+ `update_time` datetime NOT NULL COMMENT '更新时间',
+ `developer_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `bot_id` (`bot_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
+
+-- Records of register_bot
+INSERT INTO `register_bot` (id, bot_id, developer_id, create_time, update_time, developer_login) VALUES
+ (3, 783, 84993, '2023-03-07 09:46:37', '2023-03-07 09:46:37', 'durian'),
+ (4, 791, 84993, '2023-03-07 09:46:37', '2023-03-07 09:46:37', 'durian'),
+ (5, 792, 84993, '2023-03-07 09:46:35', '2023-03-07 09:46:35', 'durian');
+
+-- Table structure for `transfer_bot`
+DROP TABLE IF EXISTS `transfer_bot`;
+CREATE TABLE `transfer_bot` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `bot_id` int NOT NULL COMMENT 'bot唯一标识',
+ `transfer_from_id` int NOT NULL COMMENT '转让者唯一标识',
+ `transfer_to_id` int NOT NULL COMMENT '接收者唯一标识',
+ `is_success` tinyint NOT NULL COMMENT '0:转让失败,1:转让成功 2:待接收',
+ `transfer_time` datetime NOT NULL COMMENT '转让时间',
+ `create_time` datetime NOT NULL COMMENT '创建时间',
+ `update_time` datetime NOT NULL COMMENT '更新时间',
+ `from_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `to_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;