Commit ce0cc2ae authored by Kunkka王辉's avatar Kunkka王辉 😲

新增文档

parent 6ed1ba4c
## galaxy-开发/测试环境 docker-compose ## galaxy-开发/测试环境 docker-compose
## services ## services
1. php 1. php7
2. nginx 2. nginx
3. supervisor 3. java-notice
4. java-biz-platform
### 文件目录 5. java-flowengine
6. java-intelligentwriting
| 目录 | 占用内网端口 | 类型 | 7. java-client
|:------------------------|:-------------------------------------|:----|
| common-server | $GALAXY_COMMON_SERVER_API_HTTP_PORT | php | ### hostfile服务地址处理
| crm-admin | $OLD_CRM_ADMIN_HTTP_PORT | php | - vendor/galaxy/handle/src/HostFile/test.php
| entry | $GALAXY_ENTRY_API_HTTP_PORT | php | ```php
| flow-micros | $GALAXY_FLOW_MICROS_API_HTTP_PORT | php | <?php
| galaxy-crm | $GALAXY_CRM_API_HTTP_PORT | php |
| galaxy-workflow | $GALAXY_WORKFLOW_API_HTTP_PORT | php | return [
| micros-gateway | $GALAXY_MICROS_GATEWAY_API_HTTP_PORT | php | 'BaseMicros' => ['host' => '192.168.11.175', 'port' => '9301'],
| CRM | $OLD_CRM_HTTP_PORT | vue | 'MarketMicros' => ['host' => '192.168.11.175', 'port' => '9302'],
| presale-micros | $GALAXY_PRESALE_MICROS_API_HTTP_PORT | php | 'FlowMicros' => ['host' => '192.168.11.175', 'port' => '9303'],
| server-site | $GALAXY_SERVER_SITE_API_HTTP_PORT | php | 'UserMicros' => ['host' => '192.168.11.175', 'port' => '9304'],
| user-micros | $GALAXY_USER_MICROS_API_HTTP_PORT | php | 'FlowEngineMicros' => ['host' => '192.168.11.175', 'port' => '9305'],
| dwp/subapp/userInfo | $VUE_USERINFO_PORT | vue | 'ServerSiteMicros' => ['host' => '192.168.11.175', 'port' => '9310'],
| crm-client | $OLD_CRM_CLIENT_HTTP_PORT | vue | 'NoticeMicros' => ['host' => '192.168.11.175', 'port' => '9307'],
| user-information-system | $OLD_CRM_USER_HTTP_PORT | vue | 'PromotionMicros' => ['host' => '192.168.11.175', 'port' => '9312'],
| dwp/main | $DWP_HTTP_PORT | vue | 'MemberMicros' => ['host' => '192.168.11.175', 'port' => '9313'],
| dwp/subapp | $DWP_HTTP_PORT | vue | 'PresaleMicros' => ['host' => '192.168.11.175', 'port' => '9316'],
'BizPlatform' => ['host' => 'http://test.bizplatform.galaxy-immi.com', 'port' => '80'],
### php扩展 'CrmClient' => ['host' => 'http://test.crm-client.galaxy-immi.com', 'port' => '80'],
'common-server' => ['host' => 'test.common-server.galaxy-immi.com', 'port' => '9321'],
'workflow-server' => ['host' => 'http://test.workflow-server.galaxy-immi.com', 'port' => '9324'],
# 数据仓库
'data-center' => ['host' => 'https://dw-admin.galaxy-immi.com', 'port' => '443'],
'node' => ['host' => 'http://172.18.18.3', 'port' => '3007'],
];
```
### 服务目录汇总
| 服务名 | 描述 | 仓库地址 | 目录名称 | 状态 | 技术栈 | 端口 | 备注 |
|:------------------------|:-----------------------------|:---------------------------------------------------------------------------------|:--------------------------------|:-------|:------|:-------------------------------------|:--------------------|
| BaseMicros | 无 | - | - | 疑似弃用 | - | - | |
| MarketMicros | 无 | - | - | 疑似弃用 | - | - | |
| FlowMicros | Crm重构-流程管理相关的微服务 | http://gitlab.galaxy-immi.com/colnet/bp/FlowMicros.git | flowmicros | 正常 | php | $GALAXY_FLOW_MICROS_API_HTTP_PORT | |
| UserMicros | Crm重构-用户管理相关的微服务 | http://gitlab.galaxy-immi.com/colnet/bp/UserMicros.git | user-micros | 正常 | php | $GALAXY_USER_MICROS_API_HTTP_PORT | |
| FlowEngineMicros | 工作流引擎 | http://gitlab.galaxy-immi.com/colnet/engine.git | flowengine | 正常 | java | 80 (单独容器服务,内部端口) | |
| ServerSiteMicros | 服务端相关的微服务 | http://gitlab.galaxy-immi.com/colnet/mp/ServerSiteMirocs.git | server-site | 正常 | php | $GALAXY_SERVER_SITE_API_HTTP_PORT | |
| NoticeMicros | 通用通知服务 | http://gitlab.galaxy-immi.com/colnet/notice.git | notice | 正常 | java | 80 | |
| PromotionMicros | 无 | - | - | 疑似弃用 | - | - | |
| MemberMicros | MemberMicros | http://gitlab.galaxy-immi.com/colnet/bp/MemberMicros.git | member-micros | 正常 | php | $GALAXY_MEMBER_API_HTTP_PORT | |
| PresaleMicros | PresaleMicros | http://gitlab.galaxy-immi.com/colnet/fp/PresaleMicros.git | presale-micros | 正常 | php | $GALAXY_PRESALE_MICROS_API_HTTP_PORT | |
| BizPlatform | BizPlatform | http://gitlab.galaxy-immi.com/colnet/biz-platform.git | biz-platform | 正常 | java | 80 | |
| CrmClient | 客户端微服务 | http://gitlab.galaxy-immi.com/colnet/bp/ClientMicros.git | client | 正常 | java | java:80 | hostfile配置前端地址 |
| CrmClient | crm文案部客户端前端 | http://gitlab.galaxy-immi.com/Front-end-group/CrmClientHtml.git | crm-client | 正常 | vue | vue:$OLD_CRM_CLIENT_HTTP_PORT | hostfile配置前端地址 |
| common-server | 银河公共服务 | http://gitlab.galaxy-immi.com/colnet/common-server.git | common-server | 正常 | php | $GALAXY_COMMON_SERVER_API_HTTP_PORT | |
| workflow-server | 工作流引擎 | http://gitlab.galaxy-immi.com/colnet/bp/galaxy-workflow.git | galaxy-workflow | 正常 | php | $GALAXY_WORKFLOW_API_HTTP_PORT | |
| data-center | - | - | - | 正常 | - | - | 待后续补充 |
| node | - | - | - | 正常 | - | - | 待后续补充 |
| CRM | 新CRM系统服务端 | http://gitlab.galaxy-immi.com/colnet/fp/CRM.git | crm | 正常 | vue | $OLD_CRM_HTTP_PORT | |
| CRM-ADMIN | 新CRM系统管理端 | http://gitlab.galaxy-immi.com/colnet/fp/CRM-Admin.git | crm-admin | 正常 | vue | $OLD_CRM_ADMIN_HTTP_PORT | |
| DWP/MAIN | 文案系统 | http://gitlab.galaxy-immi.com/Front-end-group/Service-Front/Document-System.git | dwp/main | 正常 | vue | $DWP_HTTP_PORT | |
| DWP/SUBAPP/Chatbot | Chatbot智能机器人配置端 | http://gitlab.galaxy-immi.com/Front-end-group/Manage-Frame/Chatbot.git | dwp/subapp/chatbot_admin | 正常 | vue | $DWP_HTTP_PORT | |
| DWP/SUBAPP/earlyWarning | 智能预警/代办 | http://gitlab.galaxy-immi.com/Front-end-group/Manage-Frame/Early-Warning.git | dwp/sub/app/earlyWarning | 正常 | vue | $DWP_HTTP_PORT | |
| DWP/SUBAPP/userInfo | dwp项目管理-客户详情 | http://gitlab.galaxy-immi.com/Front-end-group/Service-Front/User-Information.git | dwp/sub/app/userInfo | 正常 | vue | $DWP_HTTP_PORT | |
| Entry | 香港入境处身份证预约抢号 | http://gitlab.galaxy-immi.com/colnet/mp/Entry.git | entry | 正常 | vue | $GALAXY_ENTRY_API_HTTP_PORT | |
| galaxy-crm | - | http://gitlab.galaxy-immi.com/micro/galaxy-crm.git | galaxy-crm | 正常 | php | $GALAXY_CRM_API_HTTP_PORT | |
| intelligentwriting | 智能写作后台 | http://gitlab.galaxy-immi.com/colnet/smart-writing/Intelligentwriting.git | intelligentwriting | 正常 | java | $OLD_CRM_ADMIN_HTTP_PORT | old crm代理到java服务 |
| MicroserviceGateway | micros-gateway | http://gitlab.galaxy-immi.com/colnet/gateway/MicroserviceGateway.git | micros-gateway | 正常 | php | $GALAXY_MICROS_GATEWAY_API_HTTP_PORT | 代理转发 |
| user-information-system | 用户基础信息平台(981/997) | http://gitlab.galaxy-immi.com/colnet/fp/User-Information-System.git | user-information-system | 正常 | vue | $OLD_CRM_USER_HTTP_PORT | |
| Notice-Center | Notice-Center | http://gitlab.galaxy-immi.com/colnet/noticeCenter.git | notice-center | 正常 | php | $NOTICE_CENTER_HTTP_PORT | |
| Notice-FRONT | Notice-Center前端-智能预警/代办 | http://gitlab.galaxy-immi.com/Front-end-group/Manage-Frame/Early-Warning.git | smartwhale/subapp/early_warning | 正常 | vue | $VUE_NOTICE_CENTER_HTTP_PORT | |
| domain-module | 领域服务 | http://gitlab.galaxy-immi.com/colnet/domain-module.git | domain-module | 待定 | php | - | php8 |
### php7.4扩展
| 名称 | | 名称 |
|:----------------| |:----------------|
| bcmath | | bcmath |
...@@ -97,7 +144,8 @@ cp .env.example .env ...@@ -97,7 +144,8 @@ cp .env.example .env
# ENV = 环境 # ENV = 环境
# PORT = 服务端口 # PORT = 服务端口
# CODE_DIR = 挂载目录 # CODE_DIR = 挂载目录
# 启动容器环境 # 部署代码
# 启动容器环境 docker-compose/docker compose
docker compose up -d # 或 docker-compose up -d docker compose up -d # 或 docker-compose up -d
# 销毁环境环境 # 销毁环境环境
docker compose down --rmi all # 销毁并删除镜像 docker compose down --rmi all # 销毁并删除镜像
...@@ -109,11 +157,13 @@ docker compose down --rmi all # 销毁并删除镜像 ...@@ -109,11 +157,13 @@ docker compose down --rmi all # 销毁并删除镜像
## 代码更新 ## 代码更新
1. 更新后端代码
2. 更新前端代码
## 执行脚本 ## 执行脚本
## 执行计划任务 ## 执行计划任务
## 常驻进程管理 ## 常驻进程管理
## 备注
...@@ -34,7 +34,11 @@ services: ...@@ -34,7 +34,11 @@ services:
- GALAXY_ENTRY_API_HTTP_PORT=9107 - GALAXY_ENTRY_API_HTTP_PORT=9107
- GALAXY_WORKFLOW_API_HTTP_PORT=9108 - GALAXY_WORKFLOW_API_HTTP_PORT=9108
- GALAXY_COMMON_SERVER_API_HTTP_PORT=9109 - GALAXY_COMMON_SERVER_API_HTTP_PORT=9109
- GALAXY_MEMBER_API_HTTP_PORT=9110
- NOTICE_CENTER_HTTP_PORT=9111
- VUE_NOTICE_CENTER_HTTP_PORT=9112
- VUE_USERINFO_PORT=9169 - VUE_USERINFO_PORT=9169
- VUE_SMARTWALE_PORT=9170
- JAVA_CLIENT_URI=java-client-${ENV:-dev} - JAVA_CLIENT_URI=java-client-${ENV:-dev}
- JAVA_NOTICE_URI=java-notice-${ENV:-dev} - JAVA_NOTICE_URI=java-notice-${ENV:-dev}
- JAVA_FLOWENGINE_URI=java-flowengine-${ENV:-dev} - JAVA_FLOWENGINE_URI=java-flowengine-${ENV:-dev}
......
...@@ -16,7 +16,11 @@ ARG GALAXY_MICROS_GATEWAY_API_HTTP_PORT ...@@ -16,7 +16,11 @@ ARG GALAXY_MICROS_GATEWAY_API_HTTP_PORT
ARG GALAXY_ENTRY_API_HTTP_PORT ARG GALAXY_ENTRY_API_HTTP_PORT
ARG GALAXY_WORKFLOW_API_HTTP_PORT ARG GALAXY_WORKFLOW_API_HTTP_PORT
ARG GALAXY_COMMON_SERVER_API_HTTP_PORT ARG GALAXY_COMMON_SERVER_API_HTTP_PORT
ARG GALAXY_MEMBER_API_HTTP_PORT
ARG NOTICE_CENTER_HTTP_PORT
ARG VUE_NOTICE_CENTER_HTTP_PORT
ARG VUE_USERINFO_PORT ARG VUE_USERINFO_PORT
ARG VUE_SMARTWALE_PORT
ARG JAVA_CLIENT_URI ARG JAVA_CLIENT_URI
ARG JAVA_NOTICE_URI ARG JAVA_NOTICE_URI
ARG JAVA_FLOWENGINE_URI ARG JAVA_FLOWENGINE_URI
......
...@@ -208,8 +208,8 @@ server { ...@@ -208,8 +208,8 @@ server {
} }
location ^~ /smarterApi/ { location ^~ /smarterApi/ {
# 待部署 #test.smartwhale.galaxy-immi.com 最终还是转发到galaxy_crm
proxy_pass https://test.smartwhale.galaxy-immi.com/api/; proxy_pass $HOST:$GALAXY_CRM_API_HTTP_PORT;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip \$remote_addr; proxy_set_header X-Real-Ip \$remote_addr;
proxy_set_header X-Ngnix-Proxy true; proxy_set_header X-Ngnix-Proxy true;
...@@ -224,8 +224,9 @@ server { ...@@ -224,8 +224,9 @@ server {
} }
location ^~ /earlyWarning/ { location ^~ /earlyWarning/ {
#待部署 #优化,一次转发即可
proxy_pass https://test.earlywarning.galaxy-immi.com/api/; proxy_pass http://$HOST:$VUE_NOTICE_CENTER_HTTP_PORT/api/;
# proxy_pass http://$HOST:$NOTICE_CENTER_HTTP_PORT/api; #是否可以直接到后端服务
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip \$remote_addr; proxy_set_header X-Real-Ip \$remote_addr;
proxy_set_header X-Ngnix-Proxy true; proxy_set_header X-Ngnix-Proxy true;
...@@ -368,6 +369,18 @@ server { ...@@ -368,6 +369,18 @@ server {
include /etc/nginx/php/$PHP_HOST.conf; include /etc/nginx/php/$PHP_HOST.conf;
} }
EOF EOF
# member-micros
cat <<EOF >/etc/nginx/conf.d/member-micros.conf
server {
listen $GALAXY_MEMBER_API_HTTP_PORT;
server_name localhost;
root /app/www/member-micros/public;
index index.php index.html;
include /etc/nginx/php/$PHP_HOST.conf;
}
EOF
# vue-userinfo # vue-userinfo
cat <<EOF >/etc/nginx/conf.d/vue-userinfo.conf cat <<EOF >/etc/nginx/conf.d/vue-userinfo.conf
server { server {
...@@ -383,6 +396,156 @@ server { ...@@ -383,6 +396,156 @@ server {
proxy_set_header X-Ngnix-Proxy true; proxy_set_header X-Ngnix-Proxy true;
} }
} }
EOF
# smartwhale
cat <<EOF >/etc/nginx/conf.d/smartwale.conf
server
{
listen $VUE_SMARTWALE_PORT;
server_name localhost;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Methods '*';
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#REWRITE-END
location / {
#暂未部署
root /app/www/smartwhale/main;
index index.html;
try_files $uri $uri/ /index.html @redirectToMain;
}
location @redirectToMain {
rewrite ^(.+)$ /index.html break;
}
location /subapp {
alias /app/www/smartwhale/subapp;
try_files $uri $uri/ /index.html;
#try_files $uri $uri/ /dist/index.html; # 0406 原先是 /index.html;
#try_files $uri $uri/ /dist/index.html; # 0406 原先是 /index.html;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Allow-Headers *;
}
# 后端 登录服务 galaxy-crm/public
location ^~ /api/ {
proxy_pass http://$HOST:$GALAXY_CRM_API_HTTP_PORT/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Ngnix-Proxy true;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
}
EOF
# earlywarning
cat <<EOF >/etc/nginx/conf.d/earlywarning.conf
server
{
listen $VUE_NOTICE_CENTER_HTTP_PORT;
server_name localhost;
index index.php index.html index.htm default.php default.htm default.html;
root /app/www/smartwhale/subapp/early_warning;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
# 暂时注释
# location /{
# add_header Access-Control-Allow-Origin *;
# add_header Access-Control-Allow-Headers *;
# add_header Access-Control-Allow-Methods *;
# proxy_pass http://localhost:9005/;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-Ip $remote_addr;
# proxy_set_header X-Ngnix-Proxy true;
# }
#
#
#
# location ^~ /api/ws/ {
# proxy_pass http://127.0.0.1:9005;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "Upgrade";
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }
location /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://$HOST:$NOTICE_CENTER_HTTP_PORT;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Ngnix-Proxy true;
}
location /horizon {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://$HOST:$NOTICE_CENTER_HTTP_PORT;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Ngnix-Proxy true;
}
location /vendor {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://$HOST:$NOTICE_CENTER_HTTP_PORT;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Ngnix-Proxy true;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
}
# 后端 php
server {
listen $NOTICE_CENTER_HTTP_PORT;
server_name localhost;
root /app/www/notice-center/public;
index index.php;
include /etc/nginx/php/$PHP_HOST.conf;
}
EOF EOF
mkdir -p /app/env/ mkdir -p /app/env/
cat <<EOF >/app/env/.env-for-add cat <<EOF >/app/env/.env-for-add
...@@ -392,15 +555,26 @@ SERVICE_BaseMicros=$HOST:1234 #缺省 ...@@ -392,15 +555,26 @@ SERVICE_BaseMicros=$HOST:1234 #缺省
SERVICE_MarketMicros=$HOST:1234 #缺省 SERVICE_MarketMicros=$HOST:1234 #缺省
SERVICE_FlowMicros=$HOST:$GALAXY_FLOW_MICROS_API_HTTP_PORT SERVICE_FlowMicros=$HOST:$GALAXY_FLOW_MICROS_API_HTTP_PORT
SERVICE_UserMicros=$HOST:$GALAXY_USER_MICROS_API_HTTP_PORT SERVICE_UserMicros=$HOST:$GALAXY_USER_MICROS_API_HTTP_PORT
SERVICE_FlowEngineMicros=$JAVA_FLOWENGINE_URI SERVICE_FlowEngineMicros=$JAVA_FLOWENGINE_URI:80
SERVICE_ServerSiteMicros=$HOST:$GALAXY_SERVER_SITE_API_HTTP_PORT SERVICE_ServerSiteMicros=$HOST:$GALAXY_SERVER_SITE_API_HTTP_PORT
SERVICE_NoticeMicros=$JAVA_NOTICE_URI SERVICE_NoticeMicros=$JAVA_NOTICE_URI:80
SERVICE_PromotionMicros=$HOST:1234#缺省 SERVICE_PromotionMicros=$HOST:1234#缺省
SERVICE_MemberMicros=$HOST:1234#缺省 SERVICE_MemberMicros=$HOST:$GALAXY_MEMBER_API_HTTP_PORT#缺省
SERVICE_PresaleMicros=$HOST:$GALAXY_PRESALE_MICROS_API_HTTP_PORT SERVICE_PresaleMicros=$HOST:$GALAXY_PRESALE_MICROS_API_HTTP_PORT
SERVICE_BizPlatform=$JAVA_BIZ_PLATFORM_URI SERVICE_BizPlatform=$JAVA_BIZ_PLATFORM_URI:80
SERVICE_CrmClient=$JAVA_CLIENT_URI SERVICE_CrmClient=$JAVA_CLIENT_URI:80
SERVICE_COMMON_SERVER=$HOST:$GALAXY_COMMON_SERVER_API_HTTP_PORT SERVICE_COMMON_SERVER=$HOST:$GALAXY_COMMON_SERVER_API_HTTP_PORT
SERVICE_WORKFLOW_SERVER=$HOST:$GALAXY_WORKFLOW_API_HTTP_PORT SERVICE_WORKFLOW_SERVER=$HOST:$GALAXY_WORKFLOW_API_HTTP_PORT
SERVICE_DATA_CENTER=$HOST:1234 #缺省 SERVICE_DATA_CENTER=$HOST:1234 #缺省
EOF EOF
\ No newline at end of file # 针对micros-gateway生成指定的ip
cat <<EOL >/app/env/.env-gateway
USER_MODULE_URL=$HOST:$GALAXY_USER_MICROS_API_HTTP_PORT
BACKEND_MODULE_URL=$HOST:$GALAXY_FLOW_MICROS_API_HTTP_PORT
BUSINESS_MODULE_URL=$HOST:$GALAXY_SERVER_SITE_API_HTTP_PORT
ADMINISTRATOR_MODULE_URL=$HOST:$GALAXY_USER_MICROS_API_HTTP_PORT
CONSULTANT_MODULE_URL=$HOST:1234#缺省
MEMBER_MODULE_URL=$HOST:$GALAXY_MEMBER_API_HTTP_PORT
PRESALE_MODULE_URL=$HOST:$GALAXY_PRESALE_MICROS_API_HTTP_PORT
WORKFLOW_MODULE_URL=$HOST:$GALAXY_FLOW_MICROS_API_HTTP_PORT
EOL
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment