Initial commit

This commit is contained in:
2025-06-26 11:28:55 +08:00
commit e11c59cdc2
167 changed files with 6029 additions and 0 deletions

192
bqw.sh Normal file
View File

@@ -0,0 +1,192 @@
#!/bin/bash
# 设置工作目录
# 龙岗环境
WORK_DIR="/data_ai/ai-application/docker"
# 公司环境
# WORK_DIR="/data/docker/images/bqw-ai"
# 检查参数是否提供
if [ "$#" -lt 1 ]; then
echo "Error: No arguments provided."
echo "Supported commands:"
echo " bqw up - Start services"
echo " bqw down - Stop services"
echo " bqw restart - Restart all services"
echo " bqw restart <name> - Restart a specific container (e.g., bqw-ai-<name>)"
echo " bqw logs <name> - logs -f a specific container (e.g., bqw-ai-<name>)"
echo " bqw clear cache - Clear Redis cache and restart services"
echo " bqw bak system - Backup system jar file"
echo " bqw oa data - Get OA org data"
exit 1
fi
# 切换到工作目录
cd "$WORK_DIR" || { echo "Failed to enter work directory: $WORK_DIR"; exit 1; }
# 根据参数执行不同的命令
case "$1" in
up)
echo "Starting services with docker compose..."
sudo docker compose -p bqw up -d
;;
down)
echo "Stopping services with docker compose..."
sudo docker compose -p bqw down
;;
bak)
if [ "$2" == "system" ]; then
# 获取当前时间作为备份文件名的一部分
BACKUP_TIME=$(date +"%Y-%m-%d-%H%M%S")
SOURCE_FILE="${WORK_DIR}/system/target/bqw-ai.jar"
BACKUP_FILE="${WORK_DIR}/system/target/bqw-ai.jar-${BACKUP_TIME}"
# 检查源文件是否存在
if [ ! -f "$SOURCE_FILE" ]; then
echo "Error: Source file $SOURCE_FILE does not exist."
exit 1
fi
# 执行备份
echo "Backing up system jar file..."
cp "$SOURCE_FILE" "$BACKUP_FILE"
if [ $? -eq 0 ]; then
echo "Backup completed successfully: $BACKUP_FILE"
else
echo "Error: Backup failed."
exit 1
fi
else
echo "Invalid argument. Usage: bqw bak system"
exit 1
fi
;;
restart)
if [ "$2" == "" ]; then
# 如果没有提供名称,则重启整个服务
echo "Restarting bqw services..."
echo "Stopping services..."
sudo docker compose -p bqw down
echo "Starting services..."
sudo docker compose -p bqw up -d
else
# 如果提供了名称,则重启指定的容器
CONTAINER_NAME="bqw-ai-$2"
echo "Restarting container: $CONTAINER_NAME"
if sudo docker ps -a --format '{{.Names}}' | grep -q "^$CONTAINER_NAME\$"; then
sudo docker restart "$CONTAINER_NAME"
echo "Container $CONTAINER_NAME restarted successfully."
else
echo "Error: Container $CONTAINER_NAME not found."
exit 1
fi
fi
;;
logs)
# 如果提供了名称,则重启指定的容器
CONTAINER_NAME="bqw-ai-$2"
echo "logs container: $CONTAINER_NAME"
if sudo docker ps -a --format '{{.Names}}' | grep -q "^$CONTAINER_NAME\$"; then
sudo docker logs --tail 500 -f "$CONTAINER_NAME"
echo "Container $CONTAINER_NAME logs successfully."
else
echo "Error: Container $CONTAINER_NAME not found."
exit 1
fi
;;
clear)
if [ "$2" == "cache" ]; then
echo "Stopping bqw services before clearing cache..."
sudo docker compose -p bqw down
# 删除 Redis 缓存文件
REDIS_CACHE_DIR="${WORK_DIR}/redis/data"
if [ -d "$REDIS_CACHE_DIR" ]; then
echo "Deleting Redis cache files in $REDIS_CACHE_DIR..."
sudo rm -rf "$REDIS_CACHE_DIR"/*
echo "Cache cleared successfully."
else
echo "Redis cache directory not found: $REDIS_CACHE_DIR"
fi
echo "Restarting bqw services..."
sudo docker compose -p bqw up -d
else
echo "Invalid argument. Usage: bqw clear cache"
echo "Supported commands:"
echo " bqw up - Start services"
echo " bqw down - Stop services"
echo " bqw restart - Restart all services"
echo " bqw restart <name> - Restart a specific container (e.g., bqw-ai-<name>)"
echo " bqw logs <name> - logs a specific container (e.g., bqw-ai-<name>)"
echo " bqw clear cache - Clear Redis cache and restart services"
echo " bqw bak system - Backup system jar file"
echo " bqw oa token - Get OA token"
echo " bqw oa data <token> <output_path> - Get OA data and save to specified path"
exit 1
fi
;;
oa)
if [ "$2" == "data" ]; then
echo "Getting OA token..."
# 获取token并保存到临时变量
TOKEN_RESPONSE=$(curl -X POST https://xtbg.lg.gov.cn/LGOA/restservices/LgoaAPINew/lgoaToken/query \
-H "Content-Type: application/json" \
-d '{
"authaccount": "LGOA_ZNTPTDJ",
"authid": "20250328_073714dcf19814d6dd9e"
}')
# 使用grep和cut提取token值
TOKEN=$(echo "$TOKEN_RESPONSE" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
if [ -z "$TOKEN" ]; then
echo "Error: Failed to get token"
exit 1
fi
echo "Token obtained successfully: $TOKEN"
# 处理相对路径
if [[ "$3" == "./" ]]; then
OUTPUT_PATH="${WORK_DIR}/output.json"
else
# 构建完整的输出文件路径
OUTPUT_PATH="${WORK_DIR}/${3}/output.json"
fi
echo "Getting OA data with token: $TOKEN"
echo "Saving output to: $OUTPUT_PATH"
echo "Please Waiting..."
curl -X POST https://xtbg.lg.gov.cn/LGOA/restservices/LgoaAPINew/getOrgPosUserInfo/query \
-H "Content-Type: application/json" \
-d "{\"token\":\"$TOKEN\"}" \
-o "$OUTPUT_PATH"
if [ $? -eq 0 ]; then
echo "Data successfully saved to $OUTPUT_PATH"
else
echo "Error: Failed to get data"
exit 1
fi
else
echo "Invalid argument. Usage: bqw oa data"
exit 1
fi
;;
*)
echo "Error: Invalid command '$1'."
echo "Supported commands:"
echo " bqw up - Start services"
echo " bqw down - Stop services"
echo " bqw restart - Restart all services"
echo " bqw restart <name> - Restart a specific container (e.g., bqw-ai-<name>)"
echo " bqw logs <name> - logs a specific container (e.g., bqw-ai-<name>)"
echo " bqw clear cache - Clear Redis cache and restart services"
echo " bqw bak system - Backup system jar file"
echo " bqw oa data - Get OA org data"
exit 1
;;
esac