Compare commits

..

No commits in common. "main" and "old" have entirely different histories.
main ... old

41 changed files with 343 additions and 3591 deletions

View File

@ -1,231 +0,0 @@
name: Build docker and publish
run-name: 简化的Docker构建和部署流程
on:
push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
env:
# Docker镜像仓库
REPO: ${{ vars.REPO || 'registry.kxsw.us/ppanel-server' }}
# SSH连接信息
SSH_HOST: ${{ vars.SSH_HOST }}
SSH_PORT: ${{ vars.SSH_PORT }}
SSH_USER: ${{ vars.SSH_USER }}
SSH_PASSWORD: ${{ vars.SSH_PASSWORD }}
# TG通知
TG_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0
TG_CHAT_ID: "-4940243803"
# Go构建变量
SERVICE: ppanel
SERVICE_STYLE: ppanel
VERSION: ${{ github.sha }}
BUILDTIME: ${{ github.event.head_commit.timestamp }}
GOARCH: amd64
jobs:
build:
runs-on: ppanel-server
container:
image: node:20
strategy:
matrix:
# 只有node支持版本号别名
node: ['20.15.1']
steps:
# 步骤1: 下载代码
- name: 📥 下载代码
uses: actions/checkout@v4
# 步骤2: 设置动态环境变量
- name: ⚙️ 设置动态环境变量
run: |
if [ "${{ github.ref_name }}" = "main" ]; then
echo "DOCKER_TAG_SUFFIX=latest" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server" >> $GITHUB_ENV
echo "DEPLOY_PATH=/root/vpn_server" >> $GITHUB_ENV
echo "为 main 分支设置生产环境变量"
elif [ "${{ github.ref_name }}" = "dev" ]; then
echo "DOCKER_TAG_SUFFIX=dev" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server-dev" >> $GITHUB_ENV
echo "DEPLOY_PATH=/root/vpn_server_dev" >> $GITHUB_ENV
echo "为 dev 分支设置开发环境变量"
else
echo "DOCKER_TAG_SUFFIX=${{ github.ref_name }}" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server-${{ github.ref_name }}" >> $GITHUB_ENV
echo "DEPLOY_PATH=/root/vpn_server_other" >> $GITHUB_ENV
echo "为其他分支 (${{ github.ref_name }}) 设置环境变量"
fi
# 步骤3: 安装系统工具 (Docker, curl, jq)
- name: 🔧 安装系统工具 (Docker, curl, jq)
run: |
set -e
export DEBIAN_FRONTEND=noninteractive
echo "等待 apt/dpkg 锁释放 (unattended-upgrades)..."
# 等待最多 300 秒让 unattended-upgrades/apt/dpkg 锁释放
end=$((SECONDS+300))
while true; do
LOCKS_BUSY=0
# 如果 unattended-upgrades 正在运行,标记为忙碌
if pgrep -x unattended-upgrades >/dev/null 2>&1; then LOCKS_BUSY=1; fi
# 如果 fuser 存在,检查常见的锁文件
if command -v fuser >/dev/null 2>&1; then
if fuser /var/lib/dpkg/lock >/dev/null 2>&1 \
|| fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1 \
|| fuser /var/lib/apt/lists/lock >/dev/null 2>&1; then
LOCKS_BUSY=1
fi
fi
# 如果不忙碌则跳出循环
if [ "$LOCKS_BUSY" -eq 0 ]; then break; fi
# 超时后约 5 分钟
if [ $SECONDS -ge $end ]; then
echo "等待 apt/dpkg 锁超时,使用 Dpkg::Lock::Timeout 继续..."
break
fi
echo "仍在等待锁释放..."; sleep 5
done
apt-get update -y -o Dpkg::Lock::Timeout=600
apt-get install -y -o Dpkg::Lock::Timeout=600 jq curl ca-certificates docker.io
docker --version
jq --version
curl --version
# 步骤4: 构建并发布到镜像仓库
- name: 📤 构建并发布到镜像仓库
run: |
echo "开始构建并推送镜像..."
echo "仓库: ${{ env.REPO }}"
echo "版本标签: ${{ env.VERSION }}"
echo "分支标签: ${{ env.DOCKER_TAG_SUFFIX }}"
# 构建镜像,同时打上版本和分支两个标签
docker build -f Dockerfile \
--platform linux/amd64 \
--build-arg TARGETARCH=amd64 \
--build-arg VERSION=${{ env.VERSION }} \
--build-arg BUILDTIME=${{ env.BUILDTIME }} \
-t ${{ env.REPO }}:${{ env.VERSION }} \
-t ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }} \
.
echo "推送版本标签镜像: ${{ env.REPO }}:${{ env.VERSION }}"
docker push ${{ env.REPO }}:${{ env.VERSION }}
echo "推送分支标签镜像: ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}"
docker push ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}
echo "镜像推送完成"
# 步骤5: 连接服务器拉镜像启动
- name: 🚀 连接服务器拉镜像启动
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.SSH_HOST }}
username: ${{ env.SSH_USER }}
password: ${{ env.SSH_PASSWORD }}
port: ${{ env.SSH_PORT }}
timeout: 300s
command_timeout: 600s
script: |
echo "连接服务器成功,开始部署..."
echo "部署容器名: ${{ env.CONTAINER_NAME }}"
echo "部署路径: ${{ env.DEPLOY_PATH }}"
echo "部署镜像: ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}"
# 确保部署目录存在
mkdir -p ${{ env.DEPLOY_PATH }}/config
mkdir -p ${{ env.DEPLOY_PATH }}/logs
# 停止并删除旧容器(忽略所有错误)
if docker ps -a | grep -q ${{ env.CONTAINER_NAME }} 2>/dev/null; then
echo "停止旧容器..."
docker stop ${{ env.CONTAINER_NAME }} >/dev/null 2>&1 || true
echo "等待容器完全停止..."
sleep 5
echo "删除旧容器..."
# 静默删除,完全忽略错误输出
docker rm ${{ env.CONTAINER_NAME }} >/dev/null 2>&1 || true
sleep 2
# 如果仍然存在,尝试强制删除(静默)
if docker ps -a | grep -q ${{ env.CONTAINER_NAME }} 2>/dev/null; then
echo "尝试强制删除..."
docker rm -f ${{ env.CONTAINER_NAME }} >/dev/null 2>&1 || true
sleep 3
fi
echo "容器清理完成,继续部署..."
fi
# 拉取最新分支镜像
echo "拉取镜像: ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}..."
docker pull ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}
# 启动新容器
echo "启动新容器..."
cd ${{ env.DEPLOY_PATH }}
docker run -d \
--name ${{ env.CONTAINER_NAME }} \
--restart unless-stopped \
--network host \
-v ./config/ppanel.yaml:/app/etc/ppanel.yaml \
-v ./logs:/app/logs \
${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}
# 检查容器状态
sleep 5
if docker ps | grep -q ${{ env.CONTAINER_NAME }}; then
echo "✅ 容器启动成功"
else
echo "❌ 容器启动失败"
docker logs ${{ env.CONTAINER_NAME }}
exit 1
fi
# 步骤6: TG通知 (成功)
- name: 📱 发送成功通知到Telegram
if: success()
uses: appleboy/telegram-action@master
with:
token: ${{ env.TG_BOT_TOKEN }}
to: ${{ env.TG_CHAT_ID }}
message: |
✅ 部署成功!
📦 项目: ${{ github.repository }}
🌿 分支: ${{ github.ref_name }}
📝 提交: ${{ github.sha }}
👤 提交者: ${{ github.actor }}
🕐 时间: ${{ github.event.head_commit.timestamp }}
🚀 服务已成功部署到生产环境
parse_mode: Markdown
# 步骤5: TG通知 (失败)
- name: 📱 发送失败通知到Telegram
if: failure()
uses: appleboy/telegram-action@master
with:
token: ${{ env.TG_BOT_TOKEN }}
to: ${{ env.TG_CHAT_ID }}
message: |
❌ 部署失败!
📦 项目: ${{ github.repository }}
🌿 分支: ${{ github.ref_name }}
📝 提交: ${{ github.sha }}
👤 提交者: ${{ github.actor }}
🕐 时间: ${{ github.event.head_commit.timestamp }}
⚠️ 请检查构建日志获取详细信息
parse_mode: Markdown

131
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,131 @@
name: Release
on:
push:
tags:
- 'v*'
jobs:
build-docker:
runs-on: ubuntu-latest
env:
IMAGE_NAME: ppanel-server
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract version from git tag
id: version
run: echo "VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_ENV
- name: Get short SHA
id: sha
run: echo "GIT_SHA=${GITHUB_SHA::8}" >> $GITHUB_ENV
- name: Set BUILD_TIME env
run: echo BUILD_TIME=$(date --iso-8601=seconds) >> ${GITHUB_ENV}
- name: Build and push Docker image for main release
if: "!contains(github.ref_name, 'beta')"
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
build-args: |
VERSION=${{ env.VERSION }}
tags: |
${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:latest
${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}-${{ env.GIT_SHA }}
- name: Build and push Docker image for beta release
if: contains(github.ref_name, 'beta')
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
build-args: |
VERSION=${{ env.VERSION }}
tags: |
${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:beta
${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}-${{ env.GIT_SHA }}
release-notes:
runs-on: ubuntu-latest
needs: build-docker
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Install GoReleaser
run: |
go install github.com/goreleaser/goreleaser/v2@latest
- name: Run GoReleaser
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
goreleaser check
goreleaser release --clean
releases-matrix:
name: Release ppanel-server binary
runs-on: ubuntu-latest
needs: release-notes # wait for release-notes job to finish
strategy:
matrix:
# build and publish in parallel: linux/386, linux/amd64, linux/arm64,
# windows/386, windows/amd64, windows/arm64, darwin/amd64, darwin/arm64
goos: [ linux, windows, darwin ]
goarch: [ '386', amd64, arm64 ]
exclude:
- goarch: '386'
goos: darwin
steps:
- uses: actions/checkout@v2
- name: Extract version from git tag
id: version
run: echo "VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_ENV
- name: Set BUILD_TIME env
run: echo BUILD_TIME=$(date --iso-8601=seconds) >> ${GITHUB_ENV}
- uses: actions/checkout@v4
- uses: wangyoucao577/go-release-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
goos: ${{ matrix.goos }}
goarch: ${{ matrix.goarch }}
asset_name: "ppanel-server-${{ matrix.goos }}-${{ matrix.goarch }}"
goversion: "https://dl.google.com/go/go1.23.3.linux-amd64.tar.gz"
project_path: "."
binary_name: "ppanel-server"
extra_files: LICENSE etc
ldflags: -X "github.com/perfect-panel/server/pkg/constant.Version=${{env.VERSION}}" -X "github.com/perfect-panel/server/pkg/constant.BuildTime=${{env.BUILD_TIME}}"

2
.gitignore vendored
View File

@ -3,8 +3,10 @@
*-dev.yaml *-dev.yaml
*.local.yaml *.local.yaml
/test/ /test/
*.log
.DS_Store .DS_Store
*_test_config.go *_test_config.go
*.log*
/build/ /build/
*.p8 *.p8
*.crt *.crt

View File

@ -24,13 +24,12 @@ RUN BUILD_TIME=$(date -u +"%Y-%m-%d %H:%M:%S") && \
go build -ldflags="-s -w -X 'github.com/perfect-panel/server/pkg/constant.Version=${VERSION}' -X 'github.com/perfect-panel/server/pkg/constant.BuildTime=${BUILD_TIME}'" -o /app/ppanel ppanel.go go build -ldflags="-s -w -X 'github.com/perfect-panel/server/pkg/constant.Version=${VERSION}' -X 'github.com/perfect-panel/server/pkg/constant.BuildTime=${BUILD_TIME}'" -o /app/ppanel ppanel.go
# Final minimal image # Final minimal image
FROM alpine:latest FROM scratch
# Copy CA certificates and timezone data # Copy CA certificates and timezone data
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
# Set Shanghai timezone
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
# Set working directory and copy binary # Set working directory and copy binary
@ -38,7 +37,6 @@ WORKDIR /app
COPY --from=builder /app/ppanel /app/ppanel COPY --from=builder /app/ppanel /app/ppanel
COPY --from=builder /build/etc /app/etc COPY --from=builder /build/etc /app/etc
COPY --from=builder /build/logs /app/logs
# Expose the port (optional) # Expose the port (optional)
EXPOSE 8080 EXPOSE 8080

143
Makefile
View File

@ -1,73 +1,84 @@
# Custom configuration | 独立配置 NAME="ppanel-server"
# Service name | 项目名称 BINDIR=bin
SERVICE=ppanel VERSION=$(shell git describe --tags || echo "unknown version")
# Service name in specific style | 项目经过style格式化的名称 BUILDTIME=$(shell date -u)
SERVICE_STYLE=ppanel
# Service name in lowercase | 项目名称全小写格式
SERVICE_LOWER=ppanel
# Service name in snake format | 项目名称下划线格式
SERVICE_SNAKE=ppanel
# Service name in snake format | 项目名称短杠格式
SERVICE_DASH=ppanel
# The project version, if you don't use git, you should set it manually | 项目版本如果不使用git请手动设置
VERSION=$(shell git describe --tags --always)
# Build time | 构建时间
BUILDTIME=$(shell date '+%Y-%m-%d %H:%M:%S')
# The project file name style | 项目文件命名风格
PROJECT_STYLE=go_zero
# Whether to use i18n | 是否启用 i18n
PROJECT_I18N=true
# The suffix after build or compile | 构建后缀
PROJECT_BUILD_SUFFIX=api
# The arch of the build | 构建的架构
GOARCH=amd64
# The repository of docker | Docker 仓库地址
DOCKER_REPO=docker.i.on ticcheck
# ---- You may not need to modify the codes below | 下面的代码大概率不需要更改 ----
GO ?= go
GOFMT ?= gofmt "-s"
GOFILES := $(shell find . -name "*.go")
LDFLAGS := -s -w
# Build command with version injection | 带版本信息注入的构建命令
GOBUILD=CGO_ENABLED=0 go build -trimpath -ldflags '-X "github.com/perfect-panel/server/pkg/constant.Version=$(VERSION)" \ GOBUILD=CGO_ENABLED=0 go build -trimpath -ldflags '-X "github.com/perfect-panel/server/pkg/constant.Version=$(VERSION)" \
-X "github.com/perfect-panel/server/pkg/constant.BuildTime=$(BUILDTIME)" \ -X "github.com/perfect-panel/server/pkg/constant.BuildTime=$(BUILDTIME)" \
-w -s -buildid=' -w -s -buildid='
.PHONY: docker PLATFORM_LIST = \
docker: # Build the docker image | 构建 docker 镜像 darwin-amd64 \
docker build -f Dockerfile -t ${API_IMAGE_NAME}:${VERSION} . darwin-amd64-v3 \
@echo "Build docker successfully" darwin-arm64 \
linux-386 \
linux-amd64 \
linux-amd64-v3 \
linux-armv5 \
linux-armv6 \
linux-armv7 \
linux-arm64 \
.PHONY: publish-docker WINDOWS_ARCH_LIST = \
publish-docker: # Publish docker image | 发布 docker 镜像 windows-386 \
docker tag ${API_IMAGE_NAME}:${VERSION} ${API_IMAGE_NAME}:latest windows-amd64 \
docker push ${API_IMAGE_NAME}:latest windows-amd64-v3 \
@echo "Publish docker successfully" windows-arm64 \
windows-armv7
.PHONY: docker-run all: linux-amd64 darwin-amd64 windows-amd64 # Most used
docker-run: # Publish docker image | 发布 docker 镜像
docker rm -f ${API_CONTAINER_NAME} darwin-amd64:
@echo "pwd: $(pwd)" GOARCH=amd64 GOOS=darwin $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
docker compose -p ${DOCKER_PROJECT_NAME} -f ${DOCKER_COMPOSE_FILE} up -d
@echo "docker run successfully" darwin-amd64-v3:
GOARCH=amd64 GOOS=darwin GOAMD64=v3 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
darwin-arm64:
GOARCH=arm64 GOOS=darwin $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-386:
GOARCH=386 GOOS=linux $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-amd64:
GOARCH=amd64 GOOS=linux $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-amd64-v3:
GOARCH=amd64 GOOS=linux GOAMD64=v3 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-armv5:
GOARCH=arm GOOS=linux GOARM=5 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-armv6:
GOARCH=arm GOOS=linux GOARM=6 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-armv7:
GOARCH=arm GOOS=linux GOARM=7 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
linux-arm64:
GOARCH=arm64 GOOS=linux $(GOBUILD) -o $(BINDIR)/$(NAME)-$@
windows-386:
GOARCH=386 GOOS=windows $(GOBUILD) -o $(BINDIR)/$(NAME)-$@.exe
windows-amd64:
GOARCH=amd64 GOOS=windows $(GOBUILD) -o $(BINDIR)/$(NAME)-$@.exe
windows-amd64-v3:
GOARCH=amd64 GOOS=windows GOAMD64=v3 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@.exe
windows-arm64:
GOARCH=arm64 GOOS=windows $(GOBUILD) -o $(BINDIR)/$(NAME)-$@.exe
windows-armv7:
GOARCH=arm GOOS=windows GOARM=7 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@.exe
.PHONY: build-linux gz_releases=$(addsuffix .gz, $(PLATFORM_LIST))
build-linux: # Build project for Linux | 构建Linux下的可执行文件 zip_releases=$(addsuffix .zip, $(WINDOWS_ARCH_LIST))
GOOS=linux GOARCH=$(GOARCH) $(GOBUILD) -o /app/ppanel $(SERVICE_STYLE).go
@echo "Build project for Linux successfully"
.PHONY: help $(gz_releases): %.gz : %
help: # Show help | 显示帮助 chmod +x $(BINDIR)/$(NAME)-$(basename $@)
@grep kfile | sort | while read-r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done gzip -f -S -$(VERSION).gz $(BINDIR)/$(NAME)-$(basename $@)
$(zip_releases): %.zip : %
zip -m -j $(BINDIR)/$(NAME)-$(basename $@)-$(VERSION).zip $(BINDIR)/$(NAME)-$(basename $@).exe

View File

@ -113,9 +113,9 @@ proxy services. Built with Go, it emphasizes performance, security, and scalabil
``` ```
4. **Pull from Docker Hub** (after CI/CD publishes): 4. **Pull from Docker Hub** (after CI/CD publishes):
```bashw ```bash
docker pull yourusername/ppanel-server:latest docker pull ppanel/ppanel-server:latest
docker run --rm -p 8080:8080 yourusername/ppanel-server:latest docker run --rm -p 8080:8080 ppanel/ppanel-server:latest
``` ```
## 📖 API Documentation ## 📖 API Documentation

View File

@ -16,12 +16,11 @@ type (
Status *uint8 `json:"status" validate:"required"` Status *uint8 `json:"status" validate:"required"`
} }
GetTicketListRequest { GetTicketListRequest {
Page int64 `form:"page"` Page int64 `form:"page"`
Size int64 `form:"size"` Size int64 `form:"size"`
UserId int64 `form:"user_id,omitempty"` UserId int64 `form:"user_id,omitempty"`
Status *uint8 `form:"status,omitempty"` Status *uint8 `form:"status,omitempty"`
IssueType *uint8 `form:"issue_type,omitempty"` Search string `form:"search,omitempty"`
Search string `form:"search,omitempty"`
} }
GetTicketListResponse { GetTicketListResponse {
Total int64 `json:"total"` Total int64 `json:"total"`

View File

@ -18,14 +18,12 @@ type (
CreateUserTicketRequest { CreateUserTicketRequest {
Title string `json:"title"` Title string `json:"title"`
Description string `json:"description"` Description string `json:"description"`
IssueType uint8 `json:"issue_type"`
} }
GetUserTicketListRequest { GetUserTicketListRequest {
Page int `form:"page"` Page int `form:"page"`
Size int `form:"size"` Size int `form:"size"`
Status *uint8 `form:"status,omitempty"` Status *uint8 `form:"status,omitempty"`
IssueType *uint8 `form:"issue_type,omitempty"` Search string `form:"search,omitempty"`
Search string `form:"search,omitempty"`
} }
GetUserTicketDetailRequest { GetUserTicketDetailRequest {
Id int64 `form:"id" validate:"required"` Id int64 `form:"id" validate:"required"`

View File

@ -2,11 +2,11 @@ Host: 0.0.0.0
Port: 8080 Port: 8080
Debug: false Debug: false
JwtAuth: JwtAuth:
AccessSecret: e4bbdb8ca57179374c0e8a7a85038da21341aee4bdff98c0e612751d7c362cac AccessSecret: 1234567890
AccessExpire: 604800 AccessExpire: 604800
Logger: Logger:
ServiceName: PPanel ServiceName: PPanel
Mode: file Mode: console
Encoding: plain Encoding: plain
TimeFormat: '2025-01-01 00:00:00.000' TimeFormat: '2025-01-01 00:00:00.000'
Path: logs Path: logs
@ -21,30 +21,18 @@ Logger:
Rotation: daily Rotation: daily
FileTimeFormat: 2025-01-01T00:00:00.000Z00:00 FileTimeFormat: 2025-01-01T00:00:00.000Z00:00
MySQL: MySQL:
Addr: 127.0.0.1:3306 Addr: 172.245.180.199:3306
Dbname: dev_ppanel Dbname: ppanel
Username: root Username: ppanel
Password: rootpassword Password: ppanelpassword
Config: charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai Config: charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai
MaxIdleConns: 10 MaxIdleConns: 10
MaxOpenConns: 10 MaxOpenConns: 10
SlowThreshold: 1000 SlowThreshold: 1000
Redis: Redis:
Host: 127.0.0.1:6379 Host: ppanel-cache:6379
Pass: Pass:
DB: 0 DB: 0
Administrator: Administrator:
Password: password Password: password
Email: admin@ppanel.dev Email: admin@ppanel.dev
Email:
Enable: true
Platform: smtp
PlatformConfig: '{"host":"smtp.gmail.com","port":465,"user":"devneeds52@gmail.com","pass":"bqxn hurw ckxt ookj","from":"devneeds52@gmail.com","ssl":true}'
EnableVerify: true
EnableNotify: true
EnableDomainSuffix: false
DomainSuffixList: ""
VerifyEmailTemplate: ""
ExpirationEmailTemplate: ""
MaintenanceEmailTemplate: ""
TrafficExceedEmailTemplate: ""

BIN
generate/gopure-amd64.exe Executable file

Binary file not shown.

BIN
generate/gopure-arm64.exe Executable file

Binary file not shown.

BIN
cache/GeoLite2-City.mmdb → generate/gopure-darwin-amd64 Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 MiB

After

Width:  |  Height:  |  Size: 45 MiB

BIN
generate/gopure-darwin-arm64 Executable file

Binary file not shown.

BIN
generate/gopure-linux-amd64 Executable file

Binary file not shown.

BIN
generate/gopure-linux-arm64 Executable file

Binary file not shown.

View File

@ -379,7 +379,6 @@ CREATE TABLE IF NOT EXISTS `user`
`referer_id` bigint DEFAULT NULL COMMENT 'Referrer ID', `referer_id` bigint DEFAULT NULL COMMENT 'Referrer ID',
`commission` bigint DEFAULT '0' COMMENT 'Commission', `commission` bigint DEFAULT '0' COMMENT 'Commission',
`gift_amount` bigint DEFAULT '0' COMMENT 'User Gift Amount', `gift_amount` bigint DEFAULT '0' COMMENT 'User Gift Amount',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'User Remark',
`enable` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Is Account Enabled', `enable` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Is Account Enabled',
`is_admin` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Is Admin', `is_admin` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Is Admin',
`valid_email` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Is Email Verified', `valid_email` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Is Email Verified',

View File

@ -1,2 +0,0 @@
-- Irreversible data migration for safety, or we could delete what we inserted.
-- For now, leaving empty to avoid accidental data loss on down.

View File

@ -1,5 +0,0 @@
INSERT INTO servers (id, name, country, city, address, sort, created_at, updated_at)
SELECT id, name, country, city, server_addr, sort, created_at, updated_at FROM server;
INSERT INTO nodes (name, tags, address, server_id, protocol, enabled, sort, created_at, updated_at)
SELECT name, tags, server_addr, id, protocol, enable, sort, created_at, updated_at FROM server;

View File

@ -19,15 +19,15 @@ func Migrate(ctx *svc.ServiceContext) {
} }
now := time.Now() now := time.Now()
if err := migrate.Migrate(mc.Dsn()).Up(); err != nil { if err := migrate.Migrate(mc.Dsn()).Up(); err != nil {
if !errors.Is(err, migrate.NoChange) { if errors.Is(err, migrate.NoChange) {
logger.Errorf("[Migrate] Up error: %v", err.Error()) logger.Info("[Migrate] database not change")
panic(err) return
} }
logger.Info("[Migrate] database not change") logger.Errorf("[Migrate] Up error: %v", err.Error())
panic(err)
} else { } else {
logger.Info("[Migrate] Database change, took " + time.Since(now).String()) logger.Info("[Migrate] Database change, took " + time.Since(now).String())
} }
// if not found admin user // if not found admin user
err := ctx.DB.Transaction(func(tx *gorm.DB) error { err := ctx.DB.Transaction(func(tx *gorm.DB) error {
var count int64 var count int64

View File

@ -4,7 +4,6 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/perfect-panel/server/internal/logic/public/user" "github.com/perfect-panel/server/internal/logic/public/user"
"github.com/perfect-panel/server/internal/svc" "github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
"github.com/perfect-panel/server/pkg/result" "github.com/perfect-panel/server/pkg/result"
) )
@ -12,15 +11,8 @@ import (
func QueryUserBalanceLogHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) { func QueryUserBalanceLogHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) { return func(c *gin.Context) {
var req types.QueryUserBalanceLogListRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := user.NewQueryUserBalanceLogLogic(c.Request.Context(), svcCtx) l := user.NewQueryUserBalanceLogLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserBalanceLog(&req) resp, err := l.QueryUserBalanceLog()
result.HttpResult(c, resp, err) result.HttpResult(c, resp, err)
} }
} }

View File

@ -27,7 +27,7 @@ func NewGetTicketListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Get
} }
func (l *GetTicketListLogic) GetTicketList(req *types.GetTicketListRequest) (resp *types.GetTicketListResponse, err error) { func (l *GetTicketListLogic) GetTicketList(req *types.GetTicketListRequest) (resp *types.GetTicketListResponse, err error) {
total, list, err := l.svcCtx.TicketModel.QueryTicketList(l.ctx, int(req.Page), int(req.Size), req.UserId, req.Status, req.IssueType, req.Search) total, list, err := l.svcCtx.TicketModel.QueryTicketList(l.ctx, int(req.Page), int(req.Size), req.UserId, req.Status, req.Search)
if err != nil { if err != nil {
l.Errorw("[GetTicketList] Query Database Error: ", logger.Field("error", err.Error())) l.Errorw("[GetTicketList] Query Database Error: ", logger.Field("error", err.Error()))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "QueryTicketList error: %v", err) return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "QueryTicketList error: %v", err)

View File

@ -3,6 +3,11 @@ package common
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"io"
"net"
"net/http"
"slices"
"strings"
"time" "time"
"github.com/perfect-panel/server/internal/config" "github.com/perfect-panel/server/internal/config"
@ -63,14 +68,52 @@ func (l *GetStatLogic) GetStat() (resp *types.GetStatResponse, err error) {
l.Logger.Error("[GetStatLogic] get server_addr failed: ", logger.Field("error", err.Error())) l.Logger.Error("[GetStatLogic] get server_addr failed: ", logger.Field("error", err.Error()))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "get server_addr failed: %v", err.Error()) return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "get server_addr failed: %v", err.Error())
} }
type apireq struct {
country := 0 query string
fields string
protocolDict := make(map[string]struct{}) }
type apiret struct {
CountryCode string `json:"countryCode"`
}
//map as dict
type void struct{}
var v void
country := make(map[string]void)
for c := range slices.Chunk(nodeaddr, 100) {
var batchreq []apireq
for _, addr := range c {
isAddr := net.ParseIP(addr)
if isAddr == nil {
ip, err := net.LookupIP(addr)
if err == nil && len(ip) > 0 {
batchreq = append(batchreq, apireq{query: ip[0].String(), fields: "countryCode"})
}
} else {
batchreq = append(batchreq, apireq{query: addr, fields: "countryCode"})
}
}
req, _ := json.Marshal(batchreq)
ret, err := http.Post("http://ip-api.com/batch", "application/json", strings.NewReader(string(req)))
if err == nil {
retBytes, err := io.ReadAll(ret.Body)
if err == nil {
var retStruct []apiret
err := json.Unmarshal(retBytes, &retStruct)
if err == nil {
for _, dat := range retStruct {
if dat.CountryCode != "" {
country[dat.CountryCode] = v
}
}
}
}
}
}
protocolDict := make(map[string]void)
var protocol []string var protocol []string
l.svcCtx.DB.Model(&server.Server{}).Where("enable = true").Pluck("protocol", &protocol) l.svcCtx.DB.Model(&server.Server{}).Where("enable = true").Pluck("protocol", &protocol)
for _, p := range protocol { for _, p := range protocol {
protocolDict[p] = struct{}{} protocolDict[p] = v
} }
protocol = nil protocol = nil
for p := range protocolDict { for p := range protocolDict {
@ -79,7 +122,7 @@ func (l *GetStatLogic) GetStat() (resp *types.GetStatResponse, err error) {
resp = &types.GetStatResponse{ resp = &types.GetStatResponse{
User: u, User: u,
Node: n, Node: n,
Country: int64(country), Country: int64(len(country)),
Protocol: protocol, Protocol: protocol,
OnlineDevice: l.svcCtx.DeviceManager.GetOnlineDeviceCount(), OnlineDevice: l.svcCtx.DeviceManager.GetOnlineDeviceCount(),
} }

View File

@ -58,16 +58,12 @@ func (l *QuerySubscribeListLogic) QuerySubscribeList(req *types.QuerySubscribeLi
} }
list[i] = sub list[i] = sub
// 通过服务组查询关联的节点数量 // 通过服务组查询关联的节点数量
if item.ServerGroup != "" { servers, err := l.svcCtx.ServerModel.FindServerListByGroupIds(l.ctx, tool.StringToInt64Slice(sub.ServerGroup))
servers, err := l.svcCtx.ServerModel.FindServerListByGroupIds(l.ctx, tool.StringToInt64Slice(item.ServerGroup)) if err != nil {
if err != nil { l.Errorw("[QuerySubscribeListLogic] FindServerListByGroupIds error", logger.Field("error", err.Error()))
l.Errorw("[QuerySubscribeListLogic] FindServerListByGroupIds error", logger.Field("error", err.Error()))
sub.ServerCount = 0
} else {
sub.ServerCount = int64(len(servers))
}
} else {
sub.ServerCount = 0 sub.ServerCount = 0
} else {
sub.ServerCount = int64(len(servers))
} }
list[i] = sub list[i] = sub
} }

View File

@ -41,7 +41,6 @@ func (l *CreateUserTicketLogic) CreateUserTicket(req *types.CreateUserTicketRequ
Description: req.Description, Description: req.Description,
UserId: u.Id, UserId: u.Id,
Status: ticket.Pending, Status: ticket.Pending,
IssueType: req.IssueType,
}) })
if err != nil { if err != nil {
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseInsertError), "insert ticket error: %v", err.Error()) return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseInsertError), "insert ticket error: %v", err.Error())

View File

@ -36,7 +36,7 @@ func (l *GetUserTicketListLogic) GetUserTicketList(req *types.GetUserTicketListR
return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access") return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access")
} }
l.Logger.Debugf("Current user: %v", u.Id) l.Logger.Debugf("Current user: %v", u.Id)
total, list, err := l.svcCtx.TicketModel.QueryTicketList(l.ctx, req.Page, req.Size, u.Id, req.Status, req.IssueType, req.Search) total, list, err := l.svcCtx.TicketModel.QueryTicketList(l.ctx, req.Page, req.Size, u.Id, req.Status, req.Search)
if err != nil { if err != nil {
l.Errorw("[GetUserTicketListLogic] Database Error", logger.Field("error", err.Error())) l.Errorw("[GetUserTicketListLogic] Database Error", logger.Field("error", err.Error()))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "QueryTicketList error: %v", err) return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "QueryTicketList error: %v", err)

View File

@ -29,7 +29,7 @@ func NewQueryUserBalanceLogLogic(ctx context.Context, svcCtx *svc.ServiceContext
} }
} }
func (l *QueryUserBalanceLogLogic) QueryUserBalanceLog(req *types.QueryUserBalanceLogListRequest) (resp *types.QueryUserBalanceLogListResponse, err error) { func (l *QueryUserBalanceLogLogic) QueryUserBalanceLog() (resp *types.QueryUserBalanceLogListResponse, err error) {
u, ok := l.ctx.Value(constant.CtxKeyUser).(*user.User) u, ok := l.ctx.Value(constant.CtxKeyUser).(*user.User)
if !ok { if !ok {
logger.Error("current user is not found in context") logger.Error("current user is not found in context")

View File

@ -9,15 +9,12 @@ import (
) )
const ( const (
RelayModeNone = "none" RelayModeNone = "none"
RelayModeAll = "all" RelayModeAll = "all"
RelayModeRandom = "random" RelayModeRandom = "random"
RelayModeMixed = "mixed" RuleGroupTypeReject = "reject"
RelayModeAllDirect = "all_direct" RuleGroupTypeDefault = "default"
RelayModeRandomDirect = "random_direct" RuleGroupTypeDirect = "direct"
RuleGroupTypeReject = "reject"
RuleGroupTypeDefault = "default"
RuleGroupTypeDirect = "direct"
) )
type ServerFilter struct { type ServerFilter struct {

View File

@ -17,7 +17,6 @@ type Details struct {
Description string `gorm:"type:text;comment:Description"` Description string `gorm:"type:text;comment:Description"`
UserId int64 `gorm:"type:bigint;not null;default:0;comment:UserId"` UserId int64 `gorm:"type:bigint;not null;default:0;comment:UserId"`
Status uint8 `gorm:"type:tinyint(1);not null;default:1;comment:Status"` Status uint8 `gorm:"type:tinyint(1);not null;default:1;comment:Status"`
IssueType uint8 `gorm:"type:tinyint(1);not null;default:0;comment:Issue Type: 0 ticket, 1 withdraw"`
Follows []Follow `gorm:"foreignKey:TicketId;references:Id"` Follows []Follow `gorm:"foreignKey:TicketId;references:Id"`
CreatedAt time.Time `gorm:"<-:create;comment:Create Time"` CreatedAt time.Time `gorm:"<-:create;comment:Create Time"`
UpdatedAt time.Time `gorm:"comment:Update Time"` UpdatedAt time.Time `gorm:"comment:Update Time"`
@ -25,7 +24,7 @@ type Details struct {
type customTicketLogicModel interface { type customTicketLogicModel interface {
QueryTicketDetail(ctx context.Context, id int64) (*Details, error) QueryTicketDetail(ctx context.Context, id int64) (*Details, error)
InsertTicketFollow(ctx context.Context, data *Follow) error InsertTicketFollow(ctx context.Context, data *Follow) error
QueryTicketList(ctx context.Context, page, size int, userId int64, status *uint8, issueType *uint8, search string) (int64, []*Ticket, error) QueryTicketList(ctx context.Context, page, size int, userId int64, status *uint8, search string) (int64, []*Ticket, error)
UpdateTicketStatus(ctx context.Context, id, userId int64, status uint8) error UpdateTicketStatus(ctx context.Context, id, userId int64, status uint8) error
QueryWaitReplyTotal(ctx context.Context) (int64, error) QueryWaitReplyTotal(ctx context.Context) (int64, error)
} }
@ -56,7 +55,7 @@ func (m *customTicketModel) InsertTicketFollow(ctx context.Context, data *Follow
} }
// QueryTicketList returns the ticket list. // QueryTicketList returns the ticket list.
func (m *customTicketModel) QueryTicketList(ctx context.Context, page, size int, userId int64, status *uint8, issueType *uint8, search string) (int64, []*Ticket, error) { func (m *customTicketModel) QueryTicketList(ctx context.Context, page, size int, userId int64, status *uint8, search string) (int64, []*Ticket, error) {
var data []*Ticket var data []*Ticket
var total int64 var total int64
err := m.QueryNoCacheCtx(ctx, &data, func(conn *gorm.DB, v interface{}) error { err := m.QueryNoCacheCtx(ctx, &data, func(conn *gorm.DB, v interface{}) error {
@ -66,9 +65,8 @@ func (m *customTicketModel) QueryTicketList(ctx context.Context, page, size int,
} }
if status != nil { if status != nil {
query = query.Where("status = ?", status) query = query.Where("status = ?", status)
} } else {
if issueType != nil { query = query.Where("status != ?", 4)
query = query.Where("issue_type = ?", issueType)
} }
if search != "" { if search != "" {
query = query.Where("title like ? or description like ?", "%"+search+"%", "%"+search+"%") query = query.Where("title like ? or description like ?", "%"+search+"%", "%"+search+"%")

View File

@ -12,10 +12,9 @@ const (
type Ticket struct { type Ticket struct {
Id int64 `gorm:"primaryKey"` Id int64 `gorm:"primaryKey"`
Title string `gorm:"type:varchar(255);not null;default:'';comment:Title"` Title string `gorm:"type:varchar(255);not null;default:'';comment:Title"`
Description string `gorm:"type:longtext;comment:Description"` Description string `gorm:"type:text;comment:Description"`
UserId int64 `gorm:"type:bigint;not null;default:0;comment:UserId"` UserId int64 `gorm:"type:bigint;not null;default:0;comment:UserId"`
Status uint8 `gorm:"type:tinyint(1);not null;default:1;comment:Status"` Status uint8 `gorm:"type:tinyint(1);not null;default:1;comment:Status"`
IssueType uint8 `gorm:"type:tinyint(1);not null;default:0;comment:Issue Type: 0 ticket, 1 withdraw"`
CreatedAt time.Time `gorm:"<-:create;comment:Create Time"` CreatedAt time.Time `gorm:"<-:create;comment:Create Time"`
UpdatedAt time.Time `gorm:"comment:Update Time"` UpdatedAt time.Time `gorm:"comment:Update Time"`
} }

View File

@ -118,6 +118,6 @@ func (m *customTrafficModel) TopUsersTrafficByMonthly(ctx context.Context, date
func (m *customTrafficModel) QueryTrafficLogPageList(ctx context.Context, userId, subscribeId int64, page, size int) ([]*TrafficLog, int64, error) { func (m *customTrafficModel) QueryTrafficLogPageList(ctx context.Context, userId, subscribeId int64, page, size int) ([]*TrafficLog, int64, error) {
var list []*TrafficLog var list []*TrafficLog
var total int64 var total int64
err := m.Conn.WithContext(ctx).Model(&TrafficLog{}).Where("user_id = ? and subscribe_id= ?", userId, subscribeId).Count(&total).Order("timestamp DESC").Limit(size).Offset((page - 1) * size).Find(&list).Error err := m.Conn.WithContext(ctx).Model(&TrafficLog{}).Where("user_id = ? and subscribe_id= ?", userId, subscribeId).Count(&total).Limit(size).Offset((page - 1) * size).Find(&list).Error
return list, total, err return list, total, err
} }

View File

@ -17,7 +17,6 @@ type User struct {
ReferralPercentage uint8 `gorm:"default:0;comment:Referral"` // Referral Percentage ReferralPercentage uint8 `gorm:"default:0;comment:Referral"` // Referral Percentage
OnlyFirstPurchase *bool `gorm:"default:true;not null;comment:Only First Purchase"` // Only First Purchase Referral OnlyFirstPurchase *bool `gorm:"default:true;not null;comment:Only First Purchase"` // Only First Purchase Referral
GiftAmount int64 `gorm:"default:0;comment:User Gift Amount"` GiftAmount int64 `gorm:"default:0;comment:User Gift Amount"`
Remark string `gorm:"type:varchar(255);default:'';comment:User Remark"`
Enable *bool `gorm:"default:true;not null;comment:Is Account Enabled"` Enable *bool `gorm:"default:true;not null;comment:Is Account Enabled"`
IsAdmin *bool `gorm:"default:false;not null;comment:Is Admin"` IsAdmin *bool `gorm:"default:false;not null;comment:Is Admin"`
EnableBalanceNotify *bool `gorm:"default:false;not null;comment:Enable Balance Change Notifications"` EnableBalanceNotify *bool `gorm:"default:false;not null;comment:Enable Balance Change Notifications"`

View File

@ -2,11 +2,9 @@ package svc
import ( import (
"context" "context"
"fmt"
"github.com/perfect-panel/server/internal/model/client" "github.com/perfect-panel/server/internal/model/client"
"github.com/perfect-panel/server/internal/model/node" "github.com/perfect-panel/server/internal/model/node"
"github.com/perfect-panel/server/internal/model/server"
"github.com/perfect-panel/server/pkg/device" "github.com/perfect-panel/server/pkg/device"
"github.com/perfect-panel/server/internal/config" "github.com/perfect-panel/server/internal/config"
@ -19,6 +17,7 @@ import (
"github.com/perfect-panel/server/internal/model/order" "github.com/perfect-panel/server/internal/model/order"
"github.com/perfect-panel/server/internal/model/payment" "github.com/perfect-panel/server/internal/model/payment"
"github.com/perfect-panel/server/internal/model/subscribe" "github.com/perfect-panel/server/internal/model/subscribe"
"github.com/perfect-panel/server/internal/model/server"
"github.com/perfect-panel/server/internal/model/system" "github.com/perfect-panel/server/internal/model/system"
"github.com/perfect-panel/server/internal/model/ticket" "github.com/perfect-panel/server/internal/model/ticket"
"github.com/perfect-panel/server/internal/model/traffic" "github.com/perfect-panel/server/internal/model/traffic"
@ -42,18 +41,18 @@ type ServiceContext struct {
GeoIP *IPLocation GeoIP *IPLocation
//NodeCache *cache.NodeCacheClient //NodeCache *cache.NodeCacheClient
AuthModel auth.Model AuthModel auth.Model
AdsModel ads.Model AdsModel ads.Model
LogModel log.Model LogModel log.Model
NodeModel node.Model NodeModel node.Model
UserModel user.Model UserModel user.Model
OrderModel order.Model OrderModel order.Model
ClientModel client.Model ClientModel client.Model
TicketModel ticket.Model TicketModel ticket.Model
ServerModel server.Model ServerModel server.Model
SystemModel system.Model SystemModel system.Model
CouponModel coupon.Model CouponModel coupon.Model
PaymentModel payment.Model PaymentModel payment.Model
DocumentModel document.Model DocumentModel document.Model
SubscribeModel subscribe.Model SubscribeModel subscribe.Model
TrafficLogModel traffic.Model TrafficLogModel traffic.Model
@ -79,8 +78,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
// IP location initialize // IP location initialize
geoIP, err := NewIPLocation("./cache/GeoLite2-City.mmdb") geoIP, err := NewIPLocation("./cache/GeoLite2-City.mmdb")
if err != nil { if err != nil {
// panic(err.Error()) panic(err.Error())
fmt.Printf("GeoIP load failed: %v\n", err)
} }
rds := redis.NewClient(&redis.Options{ rds := redis.NewClient(&redis.Options{
@ -103,15 +101,15 @@ func NewServiceContext(c config.Config) *ServiceContext {
ExchangeRate: 1.0, ExchangeRate: 1.0,
GeoIP: geoIP, GeoIP: geoIP,
//NodeCache: cache.NewNodeCacheClient(rds), //NodeCache: cache.NewNodeCacheClient(rds),
AuthLimiter: authLimiter, AuthLimiter: authLimiter,
AdsModel: ads.NewModel(db, rds), AdsModel: ads.NewModel(db, rds),
LogModel: log.NewModel(db), LogModel: log.NewModel(db),
NodeModel: node.NewModel(db, rds), NodeModel: node.NewModel(db, rds),
AuthModel: auth.NewModel(db, rds), AuthModel: auth.NewModel(db, rds),
UserModel: user.NewModel(db, rds), UserModel: user.NewModel(db, rds),
OrderModel: order.NewModel(db, rds), OrderModel: order.NewModel(db, rds),
ClientModel: client.NewSubscribeApplicationModel(db), ClientModel: client.NewSubscribeApplicationModel(db),
TicketModel: ticket.NewModel(db, rds), TicketModel: ticket.NewModel(db, rds),
ServerModel: server.NewModel(db, rds), ServerModel: server.NewModel(db, rds),
SystemModel: system.NewModel(db, rds), SystemModel: system.NewModel(db, rds),
CouponModel: coupon.NewModel(db, rds), CouponModel: coupon.NewModel(db, rds),

View File

@ -457,7 +457,6 @@ type CreateUserTicketFollowRequest struct {
type CreateUserTicketRequest struct { type CreateUserTicketRequest struct {
Title string `json:"title"` Title string `json:"title"`
Description string `json:"description"` Description string `json:"description"`
IssueType uint8 `json:"issue_type"`
} }
type Currency struct { type Currency struct {
@ -950,8 +949,8 @@ type GetServerUserListResponse struct {
} }
type GetStatResponse struct { type GetStatResponse struct {
User int64 `json:"user"` User int64 `json:"user"`
Node int64 `json:"node"` Node int64 `json:"node"`
Country int64 `json:"country"` Country int64 `json:"country"`
Protocol []string `json:"protocol"` Protocol []string `json:"protocol"`
OnlineDevice int64 `json:"online_devices"` OnlineDevice int64 `json:"online_devices"`
@ -1012,12 +1011,11 @@ type GetSubscriptionResponse struct {
} }
type GetTicketListRequest struct { type GetTicketListRequest struct {
Page int64 `form:"page"` Page int64 `form:"page"`
Size int64 `form:"size"` Size int64 `form:"size"`
UserId int64 `form:"user_id,omitempty"` UserId int64 `form:"user_id,omitempty"`
Status *uint8 `form:"status,omitempty"` Status *uint8 `form:"status,omitempty"`
IssueType *uint8 `form:"issue_type,omitempty"` Search string `form:"search,omitempty"`
Search string `form:"search,omitempty"`
} }
type GetTicketListResponse struct { type GetTicketListResponse struct {
@ -1135,11 +1133,10 @@ type GetUserTicketDetailRequest struct {
} }
type GetUserTicketListRequest struct { type GetUserTicketListRequest struct {
Page int `form:"page"` Page int `form:"page"`
Size int `form:"size"` Size int `form:"size"`
Status *uint8 `form:"status,omitempty"` Status *uint8 `form:"status,omitempty"`
IssueType *uint8 `form:"issue_type,omitempty"` Search string `form:"search,omitempty"`
Search string `form:"search,omitempty"`
} }
type GetUserTicketListResponse struct { type GetUserTicketListResponse struct {
@ -1703,11 +1700,6 @@ type QueryUserAffiliateListRequest struct {
Size int `form:"size"` Size int `form:"size"`
} }
type QueryUserBalanceLogListRequest struct {
Page int `form:"page"`
Size int `form:"size"`
}
type QueryUserAffiliateListResponse struct { type QueryUserAffiliateListResponse struct {
List []UserAffiliate `json:"list"` List []UserAffiliate `json:"list"`
Total int64 `json:"total"` Total int64 `json:"total"`
@ -2220,7 +2212,6 @@ type Ticket struct {
UserId int64 `json:"user_id"` UserId int64 `json:"user_id"`
Follows []Follow `json:"follow,omitempty"` Follows []Follow `json:"follow,omitempty"`
Status uint8 `json:"status"` Status uint8 `json:"status"`
IssueType uint8 `json:"issue_type"`
CreatedAt int64 `json:"created_at"` CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"` UpdatedAt int64 `json:"updated_at"`
} }
@ -2540,7 +2531,6 @@ type User struct {
Telegram int64 `json:"telegram"` Telegram int64 `json:"telegram"`
ReferCode string `json:"refer_code"` ReferCode string `json:"refer_code"`
RefererId int64 `json:"referer_id"` RefererId int64 `json:"referer_id"`
Remark string `json:"remark"`
Enable bool `json:"enable"` Enable bool `json:"enable"`
IsAdmin bool `json:"is_admin,omitempty"` IsAdmin bool `json:"is_admin,omitempty"`
EnableBalanceNotify bool `json:"enable_balance_notify"` EnableBalanceNotify bool `json:"enable_balance_notify"`

File diff suppressed because it is too large Load Diff

View File

@ -1,373 +0,0 @@
282844-12-12 00:00:00.565  error  [GORM] Error: failed to initialize database, got error %v%!(EXTRA []interface {}=[Error 1044 (42000): Access denied for user 'ppanel'@'%' to database 'dev_ppanel']) caller=cmd/run.go:45
282846-12-12 00:00:00.884  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282853-12-12 00:00:00.082  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282838-12-12 00:00:00.834  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282823-12-12 00:00:00.159  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282846-12-12 00:00:00.833  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282846-12-12 00:00:00.607  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=a9cb25de71e65b28 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.741  error  [GORM] duration=1.2ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 3 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=a9cb25de71e65b28 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.741  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=3 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.741  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `servers` WHERE id = 33 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=a9cb25de71e65b28 rows=0
282846-12-12 00:00:00.741  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=33 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.742  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 17 ORDER BY `servers`.`id` LIMIT 1 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc error=record not found span=a9cb25de71e65b28
282846-12-12 00:00:00.742  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=17 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.743  error  [GORM] duration=0.5ms caller=gin@v1.10.0/context.go:185 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 sql=SELECT * FROM `servers` WHERE id = 14 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found
282846-12-12 00:00:00.743  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 error=record not found server_id=14
282846-12-12 00:00:00.743  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 2 ORDER BY `servers`.`id` LIMIT 1 rows=0 span=a9cb25de71e65b28 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.743  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=2 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.743  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 span=a9cb25de71e65b28 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.743  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 error=record not found server_id=34
282846-12-12 00:00:00.744  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 32 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found span=a9cb25de71e65b28 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.744  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=32 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.744  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 23 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.744  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=23 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.744  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 error=record not found span=a9cb25de71e65b28 sql=SELECT * FROM `servers` WHERE id = 28 ORDER BY `servers`.`id` LIMIT 1 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.744  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=28 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.745  error  [GORM] duration=0.7ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 30 ORDER BY `servers`.`id` LIMIT 1 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc rows=0 error=record not found span=a9cb25de71e65b28
282846-12-12 00:00:00.745  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=30 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.746  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 error=record not found
282846-12-12 00:00:00.852  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:83 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=a9cb25de71e65b28
282846-12-12 00:00:00.852  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=a9cb25de71e65b28 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.853  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=a9cb25de71e65b28
282846-12-12 00:00:00.853  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.853  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282846-12-12 00:00:00.854  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=a9cb25de71e65b28 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.854  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.854  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.855  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282846-12-12 00:00:00.855  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=a9cb25de71e65b28
282846-12-12 00:00:00.855  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=a9cb25de71e65b28
282846-12-12 00:00:00.855  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 error=record not found span=a9cb25de71e65b28 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc rows=0
282846-12-12 00:00:00.856  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=a9cb25de71e65b28
282846-12-12 00:00:00.856  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=a9cb25de71e65b28
282846-12-12 00:00:00.856  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 rows=0
282846-12-12 00:00:00.856  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282846-12-12 00:00:00.857  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282846-12-12 00:00:00.857  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 error=record not found span=a9cb25de71e65b28 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.857  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=a9cb25de71e65b28 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.858  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 rows=0 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282846-12-12 00:00:00.858  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282846-12-12 00:00:00.858  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc rows=0 error=record not found span=a9cb25de71e65b28
282846-12-12 00:00:00.859  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=a9cb25de71e65b28
282846-12-12 00:00:00.859  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=a9cb25de71e65b28 rows=0 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc
282846-12-12 00:00:00.859  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=a9cb25de71e65b28 trace=f0b57ce4a5f49a0909eb9884b8f9a8bc sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
282846-12-12 00:00:00.859  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28 rows=0
282846-12-12 00:00:00.860  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=f0b57ce4a5f49a0909eb9884b8f9a8bc span=a9cb25de71e65b28
282857-12-12 00:00:00.430  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:83 error=record not found span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 trace=7020c167bf1a087382d7f1d7c57a3e60 rows=0
282857-12-12 00:00:00.563  error  [GORM] duration=2.0ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 3 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=4aa98859fe771447 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.563  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 server_id=3 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found
282857-12-12 00:00:00.563  error  [GORM] duration=0.6ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 33 ORDER BY `servers`.`id` LIMIT 1 error=record not found rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.563  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=33 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.564  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found sql=SELECT * FROM `servers` WHERE id = 17 ORDER BY `servers`.`id` LIMIT 1
282857-12-12 00:00:00.564  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found server_id=17
282857-12-12 00:00:00.564  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 rows=0 span=4aa98859fe771447 sql=SELECT * FROM `servers` WHERE id = 14 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.564  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=14 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.564  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 span=4aa98859fe771447 sql=SELECT * FROM `servers` WHERE id = 2 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.564  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=2 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.565  error  [GORM] duration=0.2ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.565  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 server_id=34 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found
282857-12-12 00:00:00.565  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 32 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.565  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=32 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.565  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 rows=0 span=4aa98859fe771447 sql=SELECT * FROM `servers` WHERE id = 23 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.565  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 span=4aa98859fe771447 error=record not found server_id=23 trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.566  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 span=4aa98859fe771447 sql=SELECT * FROM `servers` WHERE id = 28 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.566  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 server_id=28 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found
282857-12-12 00:00:00.566  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 sql=SELECT * FROM `servers` WHERE id = 30 ORDER BY `servers`.`id` LIMIT 1
282857-12-12 00:00:00.566  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 error=record not found server_id=30
282857-12-12 00:00:00.566  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 rows=0 span=4aa98859fe771447
282857-12-12 00:00:00.668  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:83 span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.669  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=4aa98859fe771447 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.669  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 error=record not found span=4aa98859fe771447
282857-12-12 00:00:00.670  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.670  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.670  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4aa98859fe771447 error=record not found
282857-12-12 00:00:00.670  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=4aa98859fe771447
282857-12-12 00:00:00.671  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4aa98859fe771447 error=record not found
282857-12-12 00:00:00.671  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4aa98859fe771447
282857-12-12 00:00:00.671  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 rows=0 span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found
282857-12-12 00:00:00.672  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
282857-12-12 00:00:00.672  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.672  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.673  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=4aa98859fe771447 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.673  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.673  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.674  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282857-12-12 00:00:00.674  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4aa98859fe771447
282857-12-12 00:00:00.674  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.675  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4aa98859fe771447 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60
282857-12-12 00:00:00.675  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4aa98859fe771447
282857-12-12 00:00:00.675  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 rows=0
282857-12-12 00:00:00.676  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282857-12-12 00:00:00.676  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447 rows=0 error=record not found
282857-12-12 00:00:00.676  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 rows=0 span=4aa98859fe771447
282857-12-12 00:00:00.676  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=7020c167bf1a087382d7f1d7c57a3e60 span=4aa98859fe771447
282857-12-12 00:00:00.677  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=7020c167bf1a087382d7f1d7c57a3e60 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4aa98859fe771447 rows=0
28282-12-12 00:00:00.009  error  [GORM] duration=1.4ms caller=auth/userLoginLogic.go:68 sql=SELECT * FROM `user_auth_methods` WHERE `auth_type` = 'email' AND `auth_identifier` = 'admin@ppanel.dev' ORDER BY `user_auth_methods`.`id` LIMIT 1 rows=0 error=record not found trace=172c0620b3c03f0d71c12f88084612b5 span=10bedc5c56545d24
28289-12-12 00:00:00.004  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:83 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 error=record not found
28289-12-12 00:00:00.138  error  [GORM] duration=0.7ms caller=gin@v1.10.0/context.go:185 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `servers` WHERE id = 3 ORDER BY `servers`.`id` LIMIT 1 error=record not found
28289-12-12 00:00:00.138  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 error=record not found server_id=3
28289-12-12 00:00:00.138  error  [GORM] duration=0.5ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `servers` WHERE id = 33 ORDER BY `servers`.`id` LIMIT 1
28289-12-12 00:00:00.138  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=33 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.139  error  [GORM] duration=0.5ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 17 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=707b3c756227e7d7 rows=0 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.139  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 span=707b3c756227e7d7 error=record not found server_id=17 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.139  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 span=707b3c756227e7d7 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `servers` WHERE id = 14 ORDER BY `servers`.`id` LIMIT 1 rows=0
28289-12-12 00:00:00.139  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=14 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.140  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 2 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found span=707b3c756227e7d7 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.140  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 error=record not found server_id=2
28289-12-12 00:00:00.140  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 span=707b3c756227e7d7 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 error=record not found
28289-12-12 00:00:00.140  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 error=record not found server_id=34
28289-12-12 00:00:00.140  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 32 ORDER BY `servers`.`id` LIMIT 1 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 rows=0 error=record not found
28289-12-12 00:00:00.140  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=32 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.141  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 23 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 rows=0
28289-12-12 00:00:00.141  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 error=record not found server_id=23
28289-12-12 00:00:00.141  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 28 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 rows=0
28289-12-12 00:00:00.141  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=28 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.141  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 30 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.141  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=30 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.142  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 rows=0 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1
28289-12-12 00:00:00.243  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:83 rows=0 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.244  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=707b3c756227e7d7
28289-12-12 00:00:00.244  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.245  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.245  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 rows=0
28289-12-12 00:00:00.246  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.246  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=707b3c756227e7d7
28289-12-12 00:00:00.247  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found
28289-12-12 00:00:00.247  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.247  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.247  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
28289-12-12 00:00:00.248  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=707b3c756227e7d7
28289-12-12 00:00:00.248  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
28289-12-12 00:00:00.248  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.249  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=707b3c756227e7d7 rows=0 trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.249  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=707b3c756227e7d7
28289-12-12 00:00:00.249  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.250  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.250  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 error=record not found span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
28289-12-12 00:00:00.250  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.251  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
28289-12-12 00:00:00.251  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=01f9372b374e7fffb135a755f5b3d310
28289-12-12 00:00:00.251  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 error=record not found span=707b3c756227e7d7
28289-12-12 00:00:00.251  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=01f9372b374e7fffb135a755f5b3d310 rows=0 error=record not found span=707b3c756227e7d7
28289-12-12 00:00:00.252  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
28289-12-12 00:00:00.252  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310 span=707b3c756227e7d7
28289-12-12 00:00:00.252  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=707b3c756227e7d7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=01f9372b374e7fffb135a755f5b3d310
282819-12-12 00:00:00.980  error  invalid character 'S' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'S' looking for beginning of value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.980  error  invalid character 'F' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'D' looking for beginning of value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.980  error  invalid character 'C' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'I' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'I' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'F' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'D' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'S' looking for beginning of value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.980  error  invalid character 'S' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character 'S' looking for beginning of value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.980  error  invalid character 'F' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.980  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'C' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'C' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'F' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'D' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'C' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'I' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'I' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character 'F' looking for beginning of value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 span=a87aa250a22a5bf7 trace=d79265d8b6fcae31637d961a08fd298c
282819-12-12 00:00:00.981  error  invalid character '-' after top-level value caller=tool/getSystemLogLogic.go:40 trace=d79265d8b6fcae31637d961a08fd298c span=a87aa250a22a5bf7
282845-12-12 00:00:00.147  error  [GORM] duration=3.7ms caller=middleware/authMiddleware.go:83 sql=SELECT count(*) FROM `subscribe_group` rows=0 error=Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist
282845-12-12 00:00:00.147  error  [GetSubscribeGroupListLogic] get subscribe group list failed: {error Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist} caller=subscribe/getSubscribeGroupListLogic.go:35 trace=f7cb04e2815dd33540404ed4531bb745 span=6c9398b325f5fa85
282845-12-12 00:00:00.148  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT count(*) FROM `subscribe_group` rows=0 error=Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist
282845-12-12 00:00:00.148  error  [GetSubscribeGroupListLogic] get subscribe group list failed: {error Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist} caller=subscribe/getSubscribeGroupListLogic.go:35 trace=0e0c1b04e9c81ea02d61ae0933355b0a span=74d81019c9be7b48
282845-12-12 00:00:00.168  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT count(*) FROM `subscribe_group` rows=0 error=Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist
282845-12-12 00:00:00.168  error  [GetSubscribeGroupListLogic] get subscribe group list failed: {error Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist} caller=subscribe/getSubscribeGroupListLogic.go:35 trace=2b0b2644c8c538a646cefc9abf374846 span=1ad06eb3d5c545a1
282845-12-12 00:00:00.188  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT count(*) FROM `subscribe_group` rows=0 error=Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist
282845-12-12 00:00:00.188  error  [GetSubscribeGroupListLogic] get subscribe group list failed: {error Error 1146 (42S02): Table 'dev_ppanel.subscribe_group' doesn't exist} caller=subscribe/getSubscribeGroupListLogic.go:35 trace=fe6f8db1b3fd564f9ad041a5bd5c6951 span=ac65d163cdb07153
282837-12-12 00:00:00.667  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=db2d2f7fd3888c84 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.802  error  [GORM] duration=0.6ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `servers` WHERE id = 3 ORDER BY `servers`.`id` LIMIT 1
282837-12-12 00:00:00.802  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 server_id=3 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 error=record not found
282837-12-12 00:00:00.803  error  [GORM] duration=0.5ms caller=gin@v1.10.0/context.go:185 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `servers` WHERE id = 33 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found
282837-12-12 00:00:00.803  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 error=record not found server_id=33
282837-12-12 00:00:00.803  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 span=db2d2f7fd3888c84 error=record not found sql=SELECT * FROM `servers` WHERE id = 17 ORDER BY `servers`.`id` LIMIT 1 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.803  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=17 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.803  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 error=record not found sql=SELECT * FROM `servers` WHERE id = 14 ORDER BY `servers`.`id` LIMIT 1 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.803  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=14 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.804  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `servers` WHERE id = 2 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=db2d2f7fd3888c84 rows=0
282837-12-12 00:00:00.804  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=2 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.804  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 span=db2d2f7fd3888c84
282837-12-12 00:00:00.804  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 error=record not found server_id=34
282837-12-12 00:00:00.804  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found span=db2d2f7fd3888c84 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `servers` WHERE id = 32 ORDER BY `servers`.`id` LIMIT 1
282837-12-12 00:00:00.805  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 error=record not found server_id=32
282837-12-12 00:00:00.805  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 span=db2d2f7fd3888c84 rows=0 sql=SELECT * FROM `servers` WHERE id = 23 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.805  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=23 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.805  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `servers` WHERE id = 28 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found
282837-12-12 00:00:00.805  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=28 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.805  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 error=record not found span=db2d2f7fd3888c84 sql=SELECT * FROM `servers` WHERE id = 30 ORDER BY `servers`.`id` LIMIT 1 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.805  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=30 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.806  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1
282837-12-12 00:00:00.909  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=32ea5e0fbf79c7c0b33856d3357d363a rows=0 error=record not found span=db2d2f7fd3888c84
282837-12-12 00:00:00.910  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
282837-12-12 00:00:00.912  error  [GORM] duration=1.5ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=db2d2f7fd3888c84 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.912  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 rows=0
282837-12-12 00:00:00.912  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.913  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=db2d2f7fd3888c84 error=record not found
282837-12-12 00:00:00.914  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.914  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=db2d2f7fd3888c84
282837-12-12 00:00:00.914  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=db2d2f7fd3888c84 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282837-12-12 00:00:00.915  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.915  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.915  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282837-12-12 00:00:00.916  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.916  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.916  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.917  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=db2d2f7fd3888c84
282837-12-12 00:00:00.917  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=db2d2f7fd3888c84 trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.917  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=db2d2f7fd3888c84 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282837-12-12 00:00:00.917  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 error=record not found
282837-12-12 00:00:00.918  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.918  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=db2d2f7fd3888c84 trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282837-12-12 00:00:00.918  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84
282837-12-12 00:00:00.919  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 span=db2d2f7fd3888c84 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282837-12-12 00:00:00.919  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=db2d2f7fd3888c84
282837-12-12 00:00:00.919  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282837-12-12 00:00:00.920  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=db2d2f7fd3888c84 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a
282837-12-12 00:00:00.920  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=db2d2f7fd3888c84 error=record not found trace=32ea5e0fbf79c7c0b33856d3357d363a
282844-12-12 00:00:00.082  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.219  error  [GORM] duration=0.6ms caller=gin@v1.10.0/context.go:185 rows=0 span=75f86b505c590213 sql=SELECT * FROM `servers` WHERE id = 3 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.219  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=3 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.220  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 rows=0 span=75f86b505c590213 sql=SELECT * FROM `servers` WHERE id = 33 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.220  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=33 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.220  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 trace=ee530e7347d62a1a4a85223982d992ec sql=SELECT * FROM `servers` WHERE id = 17 ORDER BY `servers`.`id` LIMIT 1 span=75f86b505c590213 rows=0 error=record not found
282844-12-12 00:00:00.220  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 server_id=17 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 error=record not found
282844-12-12 00:00:00.221  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 14 ORDER BY `servers`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 rows=0
282844-12-12 00:00:00.221  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=14 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.221  error  [GORM] duration=0.5ms caller=gin@v1.10.0/context.go:185 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 sql=SELECT * FROM `servers` WHERE id = 2 ORDER BY `servers`.`id` LIMIT 1 rows=0 error=record not found
282844-12-12 00:00:00.221  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 error=record not found server_id=2
282844-12-12 00:00:00.222  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.222  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=34 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.222  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 rows=0 error=record not found sql=SELECT * FROM `servers` WHERE id = 32 ORDER BY `servers`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.222  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 error=record not found server_id=32
282844-12-12 00:00:00.222  error  [GORM] duration=0.4ms caller=gin@v1.10.0/context.go:185 sql=SELECT * FROM `servers` WHERE id = 23 ORDER BY `servers`.`id` LIMIT 1 rows=0 span=75f86b505c590213 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.222  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=23 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.223  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 rows=0 trace=ee530e7347d62a1a4a85223982d992ec sql=SELECT * FROM `servers` WHERE id = 28 ORDER BY `servers`.`id` LIMIT 1 error=record not found span=75f86b505c590213
282844-12-12 00:00:00.223  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=28 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.223  error  [GORM] duration=0.3ms caller=gin@v1.10.0/context.go:185 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 sql=SELECT * FROM `servers` WHERE id = 30 ORDER BY `servers`.`id` LIMIT 1 rows=0
282844-12-12 00:00:00.223  error  [QueryServerTotalDataLogic] FindOneServer error caller=console/queryServerTotalDataLogic.go:111 error=record not found server_id=30 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.223  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.329  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:83 span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec error=record not found
282844-12-12 00:00:00.330  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.330  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.331  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.331  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.331  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.332  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 trace=ee530e7347d62a1a4a85223982d992ec sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=75f86b505c590213
282844-12-12 00:00:00.332  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.332  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 trace=ee530e7347d62a1a4a85223982d992ec sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=75f86b505c590213
282844-12-12 00:00:00.333  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:83 rows=0 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.333  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282844-12-12 00:00:00.333  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.334  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
282844-12-12 00:00:00.334  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 error=record not found
282844-12-12 00:00:00.334  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec rows=0 span=75f86b505c590213
282844-12-12 00:00:00.335  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec rows=0 error=record not found span=75f86b505c590213
282844-12-12 00:00:00.335  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 error=record not found span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.335  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=75f86b505c590213 rows=0 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.336  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
282844-12-12 00:00:00.336  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 span=75f86b505c590213 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.336  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=ee530e7347d62a1a4a85223982d992ec rows=0 error=record not found span=75f86b505c590213
282844-12-12 00:00:00.336  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 rows=0 error=record not found trace=ee530e7347d62a1a4a85223982d992ec sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=75f86b505c590213
282844-12-12 00:00:00.337  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=75f86b505c590213 rows=0 trace=ee530e7347d62a1a4a85223982d992ec
282844-12-12 00:00:00.337  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 error=record not found
282844-12-12 00:00:00.337  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 rows=0
282844-12-12 00:00:00.338  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213 rows=0
282844-12-12 00:00:00.338  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:83 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=ee530e7347d62a1a4a85223982d992ec span=75f86b505c590213
28281-12-12 00:00:00.475  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282820-12-12 00:00:00.048  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282848-12-12 00:00:00.172  error  [Init Telegram Config] New Bot API Error: {error Not Found} caller=initialize/telegram.go:39
282832-12-12 00:00:00.038  error  [GORM] duration=1.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=cfd883a7dc7270b7 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.041  error  [GORM] duration=2.1ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=cfd883a7dc7270b7 rows=0 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.049  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:89 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
282832-12-12 00:00:00.050  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282832-12-12 00:00:00.051  error  [GORM] duration=1.1ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=cfd883a7dc7270b7 error=record not found trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.053  error  [GORM] duration=1.9ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=cfd883a7dc7270b7 error=record not found trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.054  error  [GORM] duration=0.6ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282832-12-12 00:00:00.054  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282832-12-12 00:00:00.054  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 rows=0 error=record not found
282832-12-12 00:00:00.055  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 error=record not found span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.055  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 rows=0 span=cfd883a7dc7270b7
282832-12-12 00:00:00.056  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7
282832-12-12 00:00:00.056  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7
282832-12-12 00:00:00.057  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 rows=0 error=record not found
282832-12-12 00:00:00.057  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 rows=0 error=record not found
282832-12-12 00:00:00.058  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 trace=5a9a567b61b723bdfc6136ec158de571 rows=0 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found
282832-12-12 00:00:00.059  error  [GORM] duration=1.1ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=cfd883a7dc7270b7 rows=0 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.060  error  [GORM] duration=0.8ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7
282832-12-12 00:00:00.060  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 rows=0 error=record not found
282832-12-12 00:00:00.061  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=cfd883a7dc7270b7 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.061  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0
282832-12-12 00:00:00.062  error  [GORM] duration=1.0ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7
282832-12-12 00:00:00.062  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7
282832-12-12 00:00:00.063  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=cfd883a7dc7270b7 error=record not found trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.063  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
282832-12-12 00:00:00.064  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found trace=5a9a567b61b723bdfc6136ec158de571 span=cfd883a7dc7270b7 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
282832-12-12 00:00:00.064  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=cfd883a7dc7270b7 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.064  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found span=cfd883a7dc7270b7 trace=5a9a567b61b723bdfc6136ec158de571
282832-12-12 00:00:00.064  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=5a9a567b61b723bdfc6136ec158de571 rows=0 error=record not found span=cfd883a7dc7270b7
292912-12-12 00:00:00.022  error  [Init Telegram Config] New Bot API Error: {error Post "https://api.telegram.org/bot/getMe": dial tcp 74.86.17.48:443: i/o timeout} caller=initialize/telegram.go:39
29298-12-12 00:00:00.788  error  [GORM] duration=1.2ms caller=middleware/authMiddleware.go:89 span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-28' AND `type` = 40 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.790  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 error=record not found rows=0 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-28' AND `type` = 41 ORDER BY `system_logs`.`id` LIMIT 1
29298-12-12 00:00:00.792  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-28' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 rows=0 span=4a4bcbad732bd00f
29298-12-12 00:00:00.793  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-27' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.793  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-26' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 rows=0 error=record not found span=4a4bcbad732bd00f
29298-12-12 00:00:00.794  error  [GORM] duration=0.8ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-25' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 span=4a4bcbad732bd00f
29298-12-12 00:00:00.795  error  [GORM] duration=0.7ms caller=middleware/authMiddleware.go:89 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-24' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found
29298-12-12 00:00:00.796  error  [GORM] duration=0.8ms caller=middleware/authMiddleware.go:89 rows=0 trace=21179e3acc2b81d32df7625b94cb7031 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-23' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4a4bcbad732bd00f
29298-12-12 00:00:00.796  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 span=4a4bcbad732bd00f rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-22' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1
29298-12-12 00:00:00.797  error  [GORM] duration=1.2ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-21' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 rows=0 error=record not found span=4a4bcbad732bd00f
29298-12-12 00:00:00.798  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-20' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f rows=0
29298-12-12 00:00:00.798  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-19' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.799  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 rows=0 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-18' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found
29298-12-12 00:00:00.799  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-17' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.799  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-16' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.800  error  [GORM] duration=0.2ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-15' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.800  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 rows=0 error=record not found span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-14' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.800  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 trace=21179e3acc2b81d32df7625b94cb7031 error=record not found span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-13' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0
29298-12-12 00:00:00.801  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-12' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f error=record not found
29298-12-12 00:00:00.801  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-11' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4a4bcbad732bd00f
29298-12-12 00:00:00.802  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-10' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.802  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-09' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4a4bcbad732bd00f error=record not found trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.803  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-08' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found span=4a4bcbad732bd00f rows=0 trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.803  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-07' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 span=4a4bcbad732bd00f error=record not found trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.803  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-06' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f rows=0 error=record not found
29298-12-12 00:00:00.804  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-05' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.804  error  [GORM] duration=0.5ms caller=middleware/authMiddleware.go:89 error=record not found span=4a4bcbad732bd00f sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-04' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 trace=21179e3acc2b81d32df7625b94cb7031
29298-12-12 00:00:00.805  error  [GORM] duration=0.4ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-03' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 error=record not found rows=0 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.805  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-02' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 rows=0 error=record not found trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f
29298-12-12 00:00:00.805  error  [GORM] duration=0.3ms caller=middleware/authMiddleware.go:89 sql=SELECT * FROM `system_logs` WHERE `date` = '2025-12-01' AND `type` = 42 ORDER BY `system_logs`.`id` LIMIT 1 trace=21179e3acc2b81d32df7625b94cb7031 span=4a4bcbad732bd00f rows=0 error=record not found

View File

View File

View File

View File

@ -81,10 +81,7 @@ func (l *ActivateOrderLogic) ProcessTask(ctx context.Context, task *asynq.Task)
return nil return nil
} }
if err := l.finalizeCouponAndOrder(ctx, orderInfo); err != nil { l.finalizeCouponAndOrder(ctx, orderInfo)
logger.WithContext(ctx).Error("[ActivateOrderLogic] Finalize order failed", logger.Field("error", err.Error()))
return err
}
return nil return nil
} }
@ -143,7 +140,7 @@ func (l *ActivateOrderLogic) processOrderByType(ctx context.Context, orderInfo *
// finalizeCouponAndOrder handles post-processing tasks including coupon updates // finalizeCouponAndOrder handles post-processing tasks including coupon updates
// and order status finalization // and order status finalization
func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderInfo *order.Order) error { func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderInfo *order.Order) {
// Update coupon if exists // Update coupon if exists
if orderInfo.Coupon != "" { if orderInfo.Coupon != "" {
if err := l.svc.CouponModel.UpdateCount(ctx, orderInfo.Coupon); err != nil { if err := l.svc.CouponModel.UpdateCount(ctx, orderInfo.Coupon); err != nil {
@ -161,9 +158,7 @@ func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderIn
logger.Field("error", err.Error()), logger.Field("error", err.Error()),
logger.Field("order_no", orderInfo.OrderNo), logger.Field("order_no", orderInfo.OrderNo),
) )
return err
} }
return nil
} }
// NewPurchase handles new subscription purchase including user creation, // NewPurchase handles new subscription purchase including user creation,

31
see.sh
View File

@ -1,31 +0,0 @@
#!/bin/bash
# 简洁的代码对比脚本
echo "🔍 代码对比报告"
echo "==========================================="
echo ""
# 检查old远程仓库是否存在
if ! git remote | grep -q "old"; then
echo "❌ 请先添加old远程仓库: git remote add old https://github.com/perfect-panel/server.git && git fetch old"
exit 1
fi
echo "📋 文件变更对比:"
echo "-------------------------------------------"
echo "我们修改的文件:"
git diff --name-status old/master main | grep -E '^[AM]' | sed 's/^A/🆕 新增: /' | sed 's/^M/✏️ 修改: /'
echo ""
echo "他们修改的文件:"
git diff --name-status main old/master | grep -E '^[AM]' | sed 's/^A/🆕 新增: /' | sed 's/^M/✏️ 修改: /'
echo ""
echo "📊 变更统计:"
echo "-------------------------------------------"
echo "我们的变更:"
git diff --stat --color=always old/master main | tail -1
echo "他们的变更:"
git diff --stat --color=always main old/master | tail -1
echo ""
echo "✅ 对比完成!"

View File

@ -1,14 +0,0 @@
# 项目说明文档
## 1. 项目规划
- [ ] 核心业务逻辑维护与Bug修复
- [ ] 确保支付与订单流程闭环
## 2. 实施方案
- **订单状态修复**:针对支付后订单状态未更新问题,完善异步任务的错误处理机制。
## 3. 进度记录
- **2026-01-15 [已完成] 修复订单状态更新 Bug**
- **问题描述**:用户支付成功后,订单状态停留在“已支付”,未流转到“已完成”,导致订阅未下发。
- **原因分析**`finalizeCouponAndOrder` 函数在更新数据库失败时仅打印日志未返回错误,导致 Asynq 消息队列误判任务成功,未触发重试机制。
- **解决方案**:重构该函数及其调用方 `ProcessTask`,确保数据库更新错误能向上抛出,触发 Asynq 的自动重试策略。