refactor: rename TraceCD project to Trace
All checks were successful
Java Maven 3.9.9 & JDK 26 CI/CD Pipeline / build-and-deploy (push) Successful in 9m30s

This commit is contained in:
Lee 2026-08-19 19:27:13 +08:00
parent 04c1503d4a
commit 8f5a35395d
48 changed files with 127 additions and 127 deletions

View File

@ -3,7 +3,7 @@ name: Java Maven 3.9.9 & JDK 26 CI/CD Pipeline
on:
push:
branches:
- dev # 只有推送到 main 分支时才触发自动部署
- dev # 只有推送到 dev 分支时才触发自动部署
env:
IMAGE_NAME: trace-img
@ -43,14 +43,14 @@ jobs:
echo "🔄 正在启动全新 JDK 26 容器环境..."
docker run -d \
--name ${CONTAINER_NAME} \
--network tracecd-net \
--network trace-net \
-p 127.0.0.1:${APP_PORT}:${APP_PORT} \
--restart unless-stopped \
--memory 384m \
--memory-swap 768m \
--cpus 0.75 \
--pids-limit 256 \
--env-file /opt/tracecd/app.env \
--env-file /opt/trace/app.env \
-e JAVA_TOOL_OPTIONS="-Xms64m -Xmx256m -XX:+UseSerialGC" \
${IMAGE_NAME}:latest

4
.idea/dataSources.xml generated
View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="tracecd@192.168.2.5" uuid="911f82d8-654e-4293-bc95-e53e9a4e6769">
<data-source source="LOCAL" name="trace@192.168.2.5" uuid="911f82d8-654e-4293-bc95-e53e9a4e6769">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<imported>true</imported>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://192.168.2.5:3306/tracecd?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai&amp;createDatabaseIfNotExist=true</jdbc-url>
<jdbc-url>jdbc:mysql://192.168.2.5:3306/trace?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai&amp;createDatabaseIfNotExist=true</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>

View File

@ -36,4 +36,4 @@ Standard Maven layout:
- `src/main/resources/` — resources bundled with the app
- `src/test/java/` — test source
Group ID: `com.l` | Artifact ID: `tracecd` | Version: `1.0-SNAPSHOT`
Group ID: `com.l` | Artifact ID: `trace` | Version: `1.0-SNAPSHOT`

View File

@ -1,4 +1,4 @@
# TraceCD — 语音智能记账助手
# Trace — 语音智能记账助手
基于语音识别的智能日常记账应用。按住说话即可完成事项录入与查询,由 DeepSeek 大模型理解意图并自动生成 SQL实现"说话即记账"的流畅体验。
@ -41,8 +41,8 @@
## 项目结构
```
src/main/java/com/l/tracecd/
├── TracecdApplication.java # 应用主入口
src/main/java/com/l/trace/
├── TraceApplication.java # 应用主入口
├── config/
│ ├── DatabaseInitializer.java # 启动自动建表
│ ├── DeepSeekConfig.java # DeepSeek API 配置
@ -108,7 +108,7 @@ src/main/java/com/l/tracecd/
创建 MySQL 数据库(应用会自动建表):
```sql
CREATE DATABASE IF NOT EXISTS tracecd DEFAULT CHARSET utf8mb4;
CREATE DATABASE IF NOT EXISTS trace DEFAULT CHARSET utf8mb4;
```
修改 `src/main/resources/application.yml` 中的数据库连接信息:
@ -116,7 +116,7 @@ CREATE DATABASE IF NOT EXISTS tracecd DEFAULT CHARSET utf8mb4;
```yaml
spring:
datasource:
url: jdbc:mysql://your-host:3306/tracecd?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true
url: jdbc:mysql://your-host:3306/trace?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true
username: your-username
password: your-password
```
@ -141,7 +141,7 @@ mvn spring-boot:run
# 或先打包再运行
mvn clean package -DskipTests
java -jar target/tracecd-1.0-SNAPSHOT.jar
java -jar target/trace-1.0-SNAPSHOT.jar
```
### 4. 访问
@ -155,18 +155,18 @@ java -jar target/tracecd-1.0-SNAPSHOT.jar
```bash
# 构建镜像
docker build -t tracecd:latest .
docker build -t trace:latest .
# 运行容器
docker run -d \
-p 8080:8080 \
-e DEEPSEEK_API_KEY=sk-your-key \
-e MIMO_API_KEY=sk-your-key \
-e SPRING_DATASOURCE_URL=jdbc:mysql://your-host:3306/tracecd?... \
-e SPRING_DATASOURCE_URL=jdbc:mysql://your-host:3306/trace?... \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=root \
--name tracecd \
tracecd:latest
--name trace \
trace:latest
```
## API 接口

View File

@ -1,18 +1,18 @@
# TraceCD deployment on HK-1
# Trace deployment on HK-1
The production stack lives at `/opt/tracecd` on `156.238.122.140` and is sized for a 1-core, 1-GiB host.
The production stack lives at `/opt/trace` on `156.238.122.140` and is sized for a 1-core, 1-GiB host.
## Services
- MySQL 8.0.40: Docker-only `tracecd-net`; no host port is published.
- MySQL 8.0.40: Docker-only `trace-net`; no host port is published.
- Gitea 1.22.6: HTTPS at `git.1633292.cn`; host ports 3000 and 2222 remain bound to loopback.
- Gitea Actions runner: capacity 1, label `centos-env`, Docker socket access.
- TraceCD: built by Gitea Actions, bound to `127.0.0.1:8080` and served by host Nginx.
- Trace: built by Gitea Actions, bound to `127.0.0.1:8080` and served by host Nginx.
- Nginx: HTTPS for `t.1633292.cn` and `git.1633292.cn`. Its stream module owns public port 443 and routes these two SNI names to local TLS virtual hosts; all other SNI traffic passes unchanged to Xray on `127.0.0.1:7443`.
## Bootstrap
Copy `compose.yaml`, `runner-config.yaml`, `nginx-tracecd.conf`, `nginx-sni.conf`, and `bootstrap-env.sh` to `/opt/tracecd`. Install `nginx-mod-stream` and `certbot`, issue certificates for both hostnames, move Xray's listener to `127.0.0.1:7443`, and add this top-level block to `/etc/nginx/nginx.conf`:
Copy `compose.yaml`, `runner-config.yaml`, `nginx-trace.conf`, `nginx-sni.conf`, and `bootstrap-env.sh` to `/opt/trace`. Install `nginx-mod-stream` and `certbot`, issue certificates for both hostnames, move Xray's listener to `127.0.0.1:7443`, and add this top-level block to `/etc/nginx/nginx.conf`:
```nginx
stream {
@ -23,10 +23,10 @@ stream {
Then run:
```bash
cd /opt/tracecd
cd /opt/trace
chmod 700 bootstrap-env.sh
./bootstrap-env.sh
install -m 644 nginx-tracecd.conf /etc/nginx/conf.d/tracecd.conf
install -m 644 nginx-trace.conf /etc/nginx/conf.d/trace.conf
install -D -m 644 nginx-sni.conf /etc/nginx/stream.d/sni.conf
nginx -t && systemctl reload nginx
docker compose pull
@ -38,7 +38,7 @@ docker compose up -d
## Operations
```bash
cd /opt/tracecd
cd /opt/trace
docker compose ps
docker compose logs --tail 100 mysql gitea runner
docker stats --no-stream
@ -48,4 +48,4 @@ curl -I https://git.1633292.cn/user/login
Certbot's packaged systemd timer renews the certificates. A successful renewal must be followed by `systemctl reload nginx`; `/etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh` provides that hook on the server.
The workflow in `.gitea/workflows/deploy.yaml` builds on pushes to `dev`, joins the application to `tracecd-net`, loads `/opt/tracecd/app.env`, and replaces only `trace-container`.
The workflow in `.gitea/workflows/deploy.yaml` builds on pushes to `dev`, joins the application to `trace-net`, loads `/opt/trace/app.env`, and replaces only `trace-container`.

View File

@ -1,5 +1,5 @@
SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/tracecd?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true
SPRING_DATASOURCE_USERNAME=tracecd
SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/trace?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true
SPRING_DATASOURCE_USERNAME=trace
SPRING_DATASOURCE_PASSWORD=replace-with-stack-env-mysql-password
DEEPSEEK_API_KEY=replace-with-secret
MIMO_API_KEY=replace-with-secret

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
cd /opt/tracecd
cd /opt/trace
umask 077
if [[ -e stack.env || -e app.env ]]; then
@ -16,12 +16,12 @@ app_default_password="$(openssl rand -hex 16)"
{
printf 'MYSQL_ROOT_PASSWORD=%s\n' "$mysql_root_password"
printf 'MYSQL_PASSWORD=%s\n' "$mysql_app_password"
printf 'GITEA_HOST=156.238.122.140\n'
printf 'GITEA_HOST=git.1633292.cn\n'
} > stack.env
{
printf '%s\n' 'SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/tracecd?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true'
printf 'SPRING_DATASOURCE_USERNAME=tracecd\n'
printf '%s\n' 'SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/trace?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true'
printf 'SPRING_DATASOURCE_USERNAME=trace\n'
printf 'SPRING_DATASOURCE_PASSWORD=%s\n' "$mysql_app_password"
printf 'DEEPSEEK_API_KEY=\n'
printf 'MIMO_API_KEY=\n'

View File

@ -1,12 +1,12 @@
services:
mysql:
image: mysql:8.0.40
container_name: tracecd-mysql
container_name: trace-mysql
restart: unless-stopped
env_file: stack.env
environment:
MYSQL_DATABASE: tracecd
MYSQL_USER: tracecd
MYSQL_DATABASE: trace
MYSQL_USER: trace
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_0900_ai_ci
@ -19,7 +19,7 @@ services:
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- tracecd-net
- trace-net
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"]
interval: 10s
@ -60,7 +60,7 @@ services:
- "127.0.0.1:3000:3000"
- "127.0.0.1:2222:22"
networks:
- tracecd-net
- trace-net
mem_limit: 256m
memswap_limit: 512m
cpus: 0.35
@ -85,12 +85,12 @@ services:
- ./runner-token:/run/secrets/runner_token:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
- tracecd-net
- trace-net
mem_limit: 128m
memswap_limit: 256m
cpus: 0.25
pids_limit: 128
networks:
tracecd-net:
name: tracecd-net
trace-net:
name: trace-net

View File

@ -20,7 +20,7 @@ server {
ssl_certificate /etc/letsencrypt/live/t.1633292.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/t.1633292.cn/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:tracecd_tls:1m;
ssl_session_cache shared:trace_tls:1m;
ssl_session_timeout 10m;
client_max_body_size 10m;

View File

@ -16,11 +16,11 @@ cache:
enabled: false
container:
network: tracecd-net
network: trace-net
privileged: false
options: "-v /opt/tracecd/app.env:/opt/tracecd/app.env:ro"
options: "-v /opt/trace/app.env:/opt/trace/app.env:ro"
valid_volumes:
- /opt/tracecd/app.env
- /opt/trace/app.env
docker_host: ""
force_pull: false
force_rebuild: false

View File

@ -12,7 +12,7 @@
</parent>
<groupId>com.l</groupId>
<artifactId>tracecd</artifactId>
<artifactId>trace</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>

View File

@ -1,4 +1,4 @@
package com.l.tracecd;
package com.l.trace;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -8,9 +8,9 @@ import org.springframework.web.bind.annotation.RestController;
* 应用主入口
*/
@SpringBootApplication
public class TracecdApplication {
public class TraceApplication {
public static void main(String[] args) {
SpringApplication.run(TracecdApplication.class, args);
SpringApplication.run(TraceApplication.class, args);
}
}

View File

@ -1,4 +1,4 @@
package com.l.tracecd.config;
package com.l.trace.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.config;
package com.l.trace.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.config;
package com.l.trace.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;

View File

@ -1,6 +1,6 @@
package com.l.tracecd.config;
package com.l.trace.config;
import com.l.tracecd.interceptor.AuthInterceptor;
import com.l.trace.interceptor.AuthInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.config;
package com.l.trace.config;
import org.springframework.context.annotation.Configuration;

View File

@ -1,6 +1,6 @@
package com.l.tracecd.config;
package com.l.trace.config;
import com.l.tracecd.constant.Constants;
import com.l.trace.constant.Constants;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.MapSession;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.constant;
package com.l.trace.constant;
/**
* 系统常量定义避免魔法值

View File

@ -1,8 +1,8 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.entity.User;
import com.l.tracecd.service.AuthService;
import com.l.trace.constant.Constants;
import com.l.trace.entity.User;
import com.l.trace.service.AuthService;
import jakarta.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,8 +1,8 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import com.l.tracecd.dto.BrowseQuery;
import com.l.tracecd.entity.DailyRecord;
import com.l.tracecd.service.RecordService;
import com.l.trace.dto.BrowseQuery;
import com.l.trace.entity.DailyRecord;
import com.l.trace.service.RecordService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

View File

@ -1,8 +1,8 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.dto.FilterOption;
import com.l.tracecd.service.DistinctValueService;
import com.l.trace.constant.Constants;
import com.l.trace.dto.FilterOption;
import com.l.trace.service.DistinctValueService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

View File

@ -1,7 +1,7 @@
package com.l.tracecd.controller;
package com.l.trace.controller;
import com.l.tracecd.dto.VoiceResponse;
import com.l.tracecd.service.VoiceService;
import com.l.trace.dto.VoiceResponse;
import com.l.trace.service.VoiceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.lang.NonNull;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.dto;
package com.l.trace.dto;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.dto;
package com.l.trace.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.dto;
package com.l.trace.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.dto;
package com.l.trace.dto;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.dto;
package com.l.trace.dto;
import java.util.List;
import java.util.Map;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.entity;
package com.l.trace.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.entity;
package com.l.trace.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.l.tracecd.entity;
package com.l.trace.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,6 +1,6 @@
package com.l.tracecd.interceptor;
package com.l.trace.interceptor;
import com.l.tracecd.constant.Constants;
import com.l.trace.constant.Constants;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

View File

@ -1,7 +1,7 @@
package com.l.tracecd.mapper;
package com.l.trace.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.l.tracecd.entity.DailyRecord;
import com.l.trace.entity.DailyRecord;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,7 +1,7 @@
package com.l.tracecd.mapper;
package com.l.trace.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.l.tracecd.entity.DistinctValue;
import com.l.trace.entity.DistinctValue;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,7 +1,7 @@
package com.l.tracecd.mapper;
package com.l.trace.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.l.tracecd.entity.User;
import com.l.trace.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,8 +1,8 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.l.tracecd.config.MimoAsrConfig;
import com.l.trace.config.MimoAsrConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

View File

@ -1,9 +1,9 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.entity.User;
import com.l.tracecd.mapper.UserMapper;
import com.l.trace.constant.Constants;
import com.l.trace.entity.User;
import com.l.trace.mapper.UserMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

View File

@ -1,10 +1,10 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.entity.DailyRecord;
import com.l.tracecd.entity.DistinctValue;
import com.l.tracecd.mapper.DistinctValueMapper;
import com.l.trace.constant.Constants;
import com.l.trace.entity.DailyRecord;
import com.l.trace.entity.DistinctValue;
import com.l.trace.mapper.DistinctValueMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;

View File

@ -1,11 +1,11 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.l.tracecd.config.DeepSeekConfig;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.dto.DeepSeekRequest;
import com.l.tracecd.dto.DeepSeekResponse;
import com.l.trace.config.DeepSeekConfig;
import com.l.trace.constant.Constants;
import com.l.trace.dto.DeepSeekRequest;
import com.l.trace.dto.DeepSeekResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

View File

@ -1,9 +1,9 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.l.tracecd.dto.BrowseQuery;
import com.l.tracecd.entity.DailyRecord;
import com.l.tracecd.mapper.DailyRecordMapper;
import com.l.trace.dto.BrowseQuery;
import com.l.trace.entity.DailyRecord;
import com.l.trace.mapper.DailyRecordMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

View File

@ -1,6 +1,6 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.l.tracecd.constant.Constants;
import com.l.trace.constant.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

View File

@ -1,12 +1,12 @@
package com.l.tracecd.service;
package com.l.trace.service;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.l.tracecd.constant.Constants;
import com.l.tracecd.dto.DeepSeekRequest;
import com.l.tracecd.dto.DeepSeekResponse;
import com.l.tracecd.dto.VoiceResponse;
import com.l.tracecd.entity.DailyRecord;
import com.l.trace.constant.Constants;
import com.l.trace.dto.DeepSeekRequest;
import com.l.trace.dto.DeepSeekResponse;
import com.l.trace.dto.VoiceResponse;
import com.l.trace.entity.DailyRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

View File

@ -6,7 +6,7 @@ server:
spring:
application:
name: tracecd
name: trace
main:
banner-mode: off # 关闭 Spring Boot banner
@ -24,8 +24,8 @@ spring:
# MySQL 数据源
datasource:
url: ${SPRING_DATASOURCE_URL:jdbc:mysql://mysql:3306/tracecd?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true}
username: ${SPRING_DATASOURCE_USERNAME:tracecd}
url: ${SPRING_DATASOURCE_URL:jdbc:mysql://mysql:3306/trace?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true}
username: ${SPRING_DATASOURCE_USERNAME:trace}
password: ${SPRING_DATASOURCE_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
@ -53,7 +53,7 @@ mybatis-plus:
logging:
level:
root: WARN
com.l.tracecd: DEBUG
com.l.trace: DEBUG
com.baomidou.mybatisplus: WARN
org.apache.ibatis: WARN
pattern:

View File

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<title>浏览事项 - TraceCD</title>
<title>浏览事项 - Trace</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<style>
@ -268,7 +268,7 @@
<body>
<nav class="navbar">
<span class="brand"><span class="brand-dot"></span> TraceCD</span>
<span class="brand"><span class="brand-dot"></span> Trace</span>
<div class="nav-links">
<a href="/"><i class="bi bi-mic"></i> 语音</a>
<a href="/logout">退出</a>

View File

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<title>TraceCD - 日常记录</title>
<title>Trace - 日常记录</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<style>
@ -278,7 +278,7 @@
<body>
<nav class="navbar">
<span class="brand"><span class="brand-dot"></span> TraceCD</span>
<span class="brand"><span class="brand-dot"></span> Trace</span>
<div class="nav-links">
<a href="/browse"><i class="bi bi-grid-3x3-gap"></i> 浏览</a>
<a href="/logout">退出</a>

View File

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<title>登录 - TraceCD</title>
<title>登录 - Trace</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<style>
@ -211,7 +211,7 @@
<div class="login-card">
<div class="login-header">
<div class="app-icon">📝</div>
<h1>TraceCD</h1>
<h1>Trace</h1>
<p class="subtitle">语音智能记账助手</p>
</div>