#!/bin/bash 
# 
# 常规方式安装雷鸣云客服系统,比如可以在阿里云、腾讯云、等别的云服务上进行安装本系统。
# 安装完成后,会将一些账号密码信息,如数据库的,保存到 /root/account.txt 中
# 注意socket使用8081端口,您的云上防火墙(或安全组)要打开8081、80两个端口
#


# 当前服务器的ip
read -p "请输入您当前服务器的ip,输入格式如 123.123.123.123 请严格按照此格式输入,输入完成后按回车键继续向下进行安装。如果输入错误,您可重置系统后再次进行安装。请输入:" ecsip
echo $ecsip



# ecsip=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.ip`
# mysql安装后赋予root的密码。默认自动生成,你也可以自己设置,密码需要大写+小写+数字+特殊字符,这四种同时存在。
export mysql_pwd=`openssl rand -base64 12`@wm
# mysql 安装的云客服系统在数据库的名字,一般默认即可
export db_name=kefu
# 附件访问所使用的域名,如果是不使用云存储,这个可直接用服务器本身的ip
#export cdndomain=`java -cp ~/properties.jar Properties -path=/root/install.properties -get cdndomain`
export cdndomain=$ecsip



# 加载资源文件下载路径
cd ~
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/file.sh -O file.sh
chmod -R 777 file.sh
source ./file.sh
echo "加载资源文件下载路径完毕"


##### JDK、Tomcat等安装开始####
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-wangmarketcms/raw/master/shell/tomcat.sh -O tomcat.sh
chmod -R 777 file.sh
source ./tomcat.sh
echo "加载tomcat.sh完毕"
##### JDK、Tomcat安装结束####


####### Redis #####
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/redis.sh -O redis.sh
chmod -R 777 redis.sh
source ./redis.sh
echo "加载 redis.sh 完毕"
##### redis end #########


######elasticsearch########
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/elasticsearch.sh -O elasticsearch.sh
chmod -R 777 elasticsearch.sh
source ./elasticsearch.sh
echo "加载elasticsearch.sh完毕"
######elasticsearch end############

#### Mysql ####
# 安装mysql
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-wangmarketcms/raw/master/shell/mysql.sh -O mysql.sh
chmod -R 777 mysql.sh
source ./mysql.sh
echo "加载mysql.sh完毕"
####### Mysql end #######


#### 开始云客服应用包安装 ####
# 进入tomcat运行安装目录
cd /mnt/tomcat8/webapps/ROOT/
# 清空掉ROOT下的文件
rm -rf ../ROOT/*
# 下载最新客服应用
wget $kefuDownUrl -O kefu.zip
# 解压
unzip kefu.zip
rm -rf kefu.zip
#放开8081端口(默认websocket)访问权限
firewall-cmd --zone=public --add-port=8081/tcp --permanent
#重新载入防火强
firewall-cmd --reload
echo "kefu应用部署完毕"
#########end###########


##### 客服应用的插件 #####
cd /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/

# phoneCreateKefu
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/yunkefu.plugin.phoneCreateKefu-*.jar
wget $plugin_phoneCreateKefu

# plugin_api
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/yunkefu.plugin.api-*.jar
wget $plugin_api

# plugin_kefujsCopyright
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/yunkefu.plugin.kefujsCopyright-*.jar
wget $plugin_kefujsCopyright

# plugin_offlineWeixinNotification
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/yunkefu.plugin.offlineWeixinNotification-*.jar
wget $plugin_offlineWeixinNotification
# 微信通知相关的支持包
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/xnx3-weixin-1.*.jar
wget http://down.zvo.cn/yunkefu/plugin/offlineWeixinNotification/xnx3-weixin-1.7.3.jar
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/bcprov-jdk15on-*.jar
wget http://down.zvo.cn/yunkefu/plugin/offlineWeixinNotification/bcprov-jdk15on-1.65.jar
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/xml-apis-*.jar
wget http://down.zvo.cn/yunkefu/plugin/offlineWeixinNotification/xml-apis-1.0.b2.jar
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/commons-logging-*.jar
wget http://down.zvo.cn/yunkefu/plugin/offlineWeixinNotification/commons-logging-1.0.3.jar
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/http-1.*.jar
wget http://down.zvo.cn/yunkefu/plugin/offlineWeixinNotification/http-1.1.jar

# 在线升级
rm -rf /mnt/tomcat8/webapps/ROOT/WEB-INF/lib/wangmarket.plugin.upgrade-*.jar
wget $plugin_upgrade

##### end #####

############# 创建yunkefu数据库并导入sql文件开始 #################
# Mysql安装的一些变量设置等。wangmarket数据库是特定的,只有mysql安装在本身服务器才有的
# 创建 kefu 数据库
mysql -uroot -p$mysql_pwd -e "create database IF NOT EXISTS ${db_name}"
# 导入sql
cd /root
wget $kefuSqlDownUrl -O kefu.sql
mysql -uroot -p$mysql_pwd $db_name -e "source /root/kefu.sql"
sleep 3
############# 导入sql文件结束 #################


################ 注意,下面这些是当前特有的 ##################
#
# 自动修改wangmarket中的system数据表中的数据
#
# 配置安装域名相关-cdn附件域名,获取的格式如 kefu0001.xxxxxx.com
# cdndomain=`java -cp ~/properties.jar Properties -path=/root/install.properties -get cdndomain`
mysql -uroot -p$mysql_pwd $db_name -e "UPDATE system SET value='http://$cdndomain/' WHERE name = 'ATTACHMENT_FILE_URL'"
# 禁止通过 /install/index.do 在安装系统
mysql -uroot -p$mysql_pwd $db_name -e "UPDATE system SET value='false' WHERE name = 'IW_AUTO_INSTALL_USE'"


#
# 修改配置文件中的一些配置
#
# 开启elasticsearch
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set wm.elasticsearch.hostname=127.0.0.1
# 开启redis
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.redis.host=127.0.0.1
# 连接的账密
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set database.name=kefu
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set database.ip=127.0.0.1
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.datasource.username=root
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.datasource.password=$mysql_pwd
# 修改数据库连接为mysql方式,而非默认的sqlite
sed -i "s#^spring.jpa.database-platform=.*# #g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
sed -i "s#^spring.datasource.driver-class-name=.*#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
sed -i "s#^spring.datasource.url=.*#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/kefu\?useUnicode=true\&characterEncoding=utf-8#g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
# 修改文件存储方式,配置文件保存路径
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set fileupload.storage.local.path=/mnt/tomcat8/webapps/ROOT/
# 修改文件存储的domain
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set fileupload.domain=http://$ecsip/

# 修改kefu.properties
# ecsip=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.ip`
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/kefu.properties -set kefu.api=http://$ecsip
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/kefu.properties -set kefu.socket=ws://$ecsip:8081

# 输出mysql配置信息到/root/account.txt
ecspassword=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.password`
# 配置将文件地址
txt_path=/root/account.txt
touch $txt_path
echo '======= mysql5.7 ======' >> $txt_path
echo '数据库名称:'$db_name >> $txt_path
echo '登录用户名:root' >> $txt_path
echo '登录的密码:'$mysql_pwd >> $txt_path


# 删除 file.sh 、mysql.sh 等通用模块
rm -rf /root/file.sh
rm -rf /root/mysql.sh
rm -rf /root/tomcat.sh


# 设置shutdown.sh
# 将原本tomcat的 shutdown.sh改名
cd /mnt/tomcat8/bin/
mv shutdown.sh tomcatShutdown.sh
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/createShutdown.sh -O /mnt/tomcat8/bin/shutdown.sh
chmod -R 777 /mnt/tomcat8/bin/shutdown.sh


systemctl stop firewalld.service
# 启动tomcat
echo "启动tomcat"
/mnt/tomcat8/bin/startup.sh
#看启动日志
echo '系统已安装完成,mysql的账号密码已自动保存到 /root/account.txt 文件中'
echo '您可访问 http://'$ecsip'/demo.html 进行测试'
echo '更多使用,可参考: https://gitee.com/leimingyun/dashboard/wikis/leimingyun/kefuxitongshiyongshuoming/preview?sort_id=8019971&doc_id=1542820'