refactor: 品牌改名为汇账 Ledgerly,包名与工程标识统一为 ledgerly

- Java 包名由 cn.rosercode.finance 改为 cn.rosercode.ledgerly,主类 FinanceApplication 更名为 LedgerlyApplication
- Gradle 项目名、spring.application.name 与日志文件名统一为 ledgerly
- 前端界面文案、页面标题、登录注册标题、README 与 Knife4j 标题更新为汇账 / Ledgerly
- 前端本地存储键前缀由 finance. 改为 ledgerly.,并新增旧键自动迁移避免老用户偏好丢失
- 运行目录系统属性与环境变量改为 ledgerly.home / LEDGERLY_HOME
- 部署编排、启动脚本、容器名、SQLite 默认路径与构建产物名同步改为 ledgerly
This commit is contained in:
2026-09-23 17:33:59 +08:00
parent e0fa1abec5
commit 24074aeea2
322 changed files with 1270 additions and 1254 deletions
@@ -1,4 +1,4 @@
package cn.rosercode.finance;
package cn.rosercode.ledgerly;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -12,7 +12,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
* 应用在未配置数据库时也能正常启动,由动态数据源提供占位连接。</p>
*/
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class FinanceApplication {
public class LedgerlyApplication {
/**
* 应用程序主入口方法。
@@ -21,6 +21,6 @@ public class FinanceApplication {
*/
public static void main(String[] args) {
// 启动 Spring Boot 应用
SpringApplication.run(FinanceApplication.class, args);
SpringApplication.run(LedgerlyApplication.class, args);
}
}
@@ -1,4 +1,4 @@
package cn.rosercode.finance.client;
package cn.rosercode.ledgerly.client;
import java.time.Duration;
import java.util.ArrayList;
@@ -19,7 +19,7 @@ import com.openai.models.completions.CompletionUsage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.ledgerly.common.BusinessException;
/**
* DeepSeek 客户端,基于 OpenAI Java SDK 封装 Chat Completions 调用与响应解析。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.client;
package cn.rosercode.ledgerly.client;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.common;
package cn.rosercode.ledgerly.common;
/**
* 业务异常类。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.common;
package cn.rosercode.ledgerly.common;
/**
* 数据库未配置异常。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.common;
package cn.rosercode.ledgerly.common;
import java.io.IOException;
@@ -13,7 +13,7 @@ import org.springframework.web.context.request.async.AsyncRequestNotUsableExcept
import org.springframework.web.context.request.async.AsyncRequestTimeoutException;
import org.springframework.web.servlet.resource.NoResourceFoundException;
import cn.rosercode.finance.config.SpaRouteSupport;
import cn.rosercode.ledgerly.config.SpaRouteSupport;
/**
* 全局异常处理器。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.common;
package cn.rosercode.ledgerly.common;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.common;
package cn.rosercode.ledgerly.common;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
@@ -15,9 +15,9 @@ public class Knife4jConfig {
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("收支管理系统 API")
.title("汇账 Ledgerly API")
.version("1.0.0")
.description("个人收支管理系统后端接口文档"))
.description("汇账 Ledgerly 个人收支管理后端接口文档"))
.addSecurityItem(new SecurityRequirement().addList("Bearer"))
.components(new Components()
.addSecuritySchemes("Bearer",
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
@@ -12,7 +12,7 @@ import org.springframework.context.annotation.Configuration;
* <p>配置 MyBatis-Plus 的 Mapper 扫描路径和分页插件等。</p>
*/
@Configuration
@MapperScan("cn.rosercode.finance.mapper")
@MapperScan("cn.rosercode.ledgerly.mapper")
public class MybatisPlusConfig {
/**
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import java.io.IOException;
import java.util.LinkedHashMap;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
/**
* SPA 路由判断工具。
@@ -1,12 +1,12 @@
package cn.rosercode.finance.config;
package cn.rosercode.ledgerly.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import cn.rosercode.finance.interceptor.AccessLogInterceptor;
import cn.rosercode.finance.interceptor.JwtInterceptor;
import cn.rosercode.ledgerly.interceptor.AccessLogInterceptor;
import cn.rosercode.ledgerly.interceptor.JwtInterceptor;
/**
* Web MVC 配置类。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.app;
package cn.rosercode.ledgerly.config.app;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.app;
package cn.rosercode.ledgerly.config.app;
import java.io.IOException;
import java.nio.file.Files;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
/**
* 动态数据源上下文,保存当前生效的数据源标识与类型。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
/**
* 数据库类型枚举,标识当前支持的数据库种类。
@@ -1,10 +1,10 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.service.DatabaseService;
import cn.rosercode.ledgerly.service.DatabaseService;
/**
* 数据库启动引导器。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import java.io.IOException;
import java.nio.file.Files;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import java.util.HashMap;
import java.util.Map;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import javax.sql.DataSource;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.config.datasource;
package cn.rosercode.ledgerly.config.datasource;
import java.io.PrintWriter;
import java.sql.Connection;
@@ -6,7 +6,7 @@ import java.sql.SQLException;
import java.util.logging.Logger;
import javax.sql.DataSource;
import cn.rosercode.finance.common.DatabaseNotConfiguredException;
import cn.rosercode.ledgerly.common.DatabaseNotConfiguredException;
/**
* 未配置数据库时使用的占位数据源。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.io.IOException;
import java.util.ArrayList;
@@ -19,52 +19,52 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.AiApplyRequest;
import cn.rosercode.finance.dto.AiCategoryRequest;
import cn.rosercode.finance.dto.AiChannelRequest;
import cn.rosercode.finance.dto.AiConfigRequest;
import cn.rosercode.finance.dto.AiDecorateRequest;
import cn.rosercode.finance.dto.AiQueryRequest;
import cn.rosercode.finance.dto.AiRecordRequest;
import cn.rosercode.finance.dto.AiRelationRequest;
import cn.rosercode.finance.dto.AiRuleApplyRequest;
import cn.rosercode.finance.dto.AiRuleSuggestRequest;
import cn.rosercode.finance.dto.AiSuggestOneRequest;
import cn.rosercode.finance.dto.AiSuggestRequest;
import cn.rosercode.finance.dto.AiTagRequest;
import cn.rosercode.finance.entity.AiImage;
import cn.rosercode.finance.mapper.AiImageMapper;
import cn.rosercode.finance.service.AiCategoryService;
import cn.rosercode.finance.service.AiChannelService;
import cn.rosercode.finance.service.AiConfigService;
import cn.rosercode.finance.service.AiDecorationService;
import cn.rosercode.finance.service.AiImageRecordService;
import cn.rosercode.finance.service.AiImageRecordStreamService;
import cn.rosercode.finance.service.AiImageStorage;
import cn.rosercode.finance.service.AiQueryService;
import cn.rosercode.finance.service.AiRecordService;
import cn.rosercode.finance.service.AiRelationService;
import cn.rosercode.finance.service.AiRuleService;
import cn.rosercode.finance.service.AiStatisticsService;
import cn.rosercode.finance.service.AiSuggestionService;
import cn.rosercode.finance.service.AiTagService;
import cn.rosercode.finance.service.AiUsageService;
import cn.rosercode.finance.util.ImageUtils;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.AiCategoryResultVO;
import cn.rosercode.finance.vo.AiChannelResultVO;
import cn.rosercode.finance.vo.AiConfigVO;
import cn.rosercode.finance.vo.AiQueryResultVO;
import cn.rosercode.finance.vo.AiRecordImageResultVO;
import cn.rosercode.finance.vo.AiRecordResultVO;
import cn.rosercode.finance.vo.AiRelationResultVO;
import cn.rosercode.finance.vo.AiRuleSuggestResultVO;
import cn.rosercode.finance.vo.AiStatisticsResultVO;
import cn.rosercode.finance.vo.AiSuggestionVO;
import cn.rosercode.finance.vo.AiTagResultVO;
import cn.rosercode.finance.vo.AiUsageResultVO;
import cn.rosercode.ledgerly.common.BusinessException;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.AiApplyRequest;
import cn.rosercode.ledgerly.dto.AiCategoryRequest;
import cn.rosercode.ledgerly.dto.AiChannelRequest;
import cn.rosercode.ledgerly.dto.AiConfigRequest;
import cn.rosercode.ledgerly.dto.AiDecorateRequest;
import cn.rosercode.ledgerly.dto.AiQueryRequest;
import cn.rosercode.ledgerly.dto.AiRecordRequest;
import cn.rosercode.ledgerly.dto.AiRelationRequest;
import cn.rosercode.ledgerly.dto.AiRuleApplyRequest;
import cn.rosercode.ledgerly.dto.AiRuleSuggestRequest;
import cn.rosercode.ledgerly.dto.AiSuggestOneRequest;
import cn.rosercode.ledgerly.dto.AiSuggestRequest;
import cn.rosercode.ledgerly.dto.AiTagRequest;
import cn.rosercode.ledgerly.entity.AiImage;
import cn.rosercode.ledgerly.mapper.AiImageMapper;
import cn.rosercode.ledgerly.service.AiCategoryService;
import cn.rosercode.ledgerly.service.AiChannelService;
import cn.rosercode.ledgerly.service.AiConfigService;
import cn.rosercode.ledgerly.service.AiDecorationService;
import cn.rosercode.ledgerly.service.AiImageRecordService;
import cn.rosercode.ledgerly.service.AiImageRecordStreamService;
import cn.rosercode.ledgerly.service.AiImageStorage;
import cn.rosercode.ledgerly.service.AiQueryService;
import cn.rosercode.ledgerly.service.AiRecordService;
import cn.rosercode.ledgerly.service.AiRelationService;
import cn.rosercode.ledgerly.service.AiRuleService;
import cn.rosercode.ledgerly.service.AiStatisticsService;
import cn.rosercode.ledgerly.service.AiSuggestionService;
import cn.rosercode.ledgerly.service.AiTagService;
import cn.rosercode.ledgerly.service.AiUsageService;
import cn.rosercode.ledgerly.util.ImageUtils;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.AiCategoryResultVO;
import cn.rosercode.ledgerly.vo.AiChannelResultVO;
import cn.rosercode.ledgerly.vo.AiConfigVO;
import cn.rosercode.ledgerly.vo.AiQueryResultVO;
import cn.rosercode.ledgerly.vo.AiRecordImageResultVO;
import cn.rosercode.ledgerly.vo.AiRecordResultVO;
import cn.rosercode.ledgerly.vo.AiRelationResultVO;
import cn.rosercode.ledgerly.vo.AiRuleSuggestResultVO;
import cn.rosercode.ledgerly.vo.AiStatisticsResultVO;
import cn.rosercode.ledgerly.vo.AiSuggestionVO;
import cn.rosercode.ledgerly.vo.AiTagResultVO;
import cn.rosercode.ledgerly.vo.AiUsageResultVO;
/**
* AI 控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -8,11 +8,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.config.app.AppConfig;
import cn.rosercode.finance.config.app.AppConfigStore;
import cn.rosercode.finance.dto.LogRetentionRequest;
import cn.rosercode.finance.dto.NotificationUrlRequest;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.config.app.AppConfig;
import cn.rosercode.ledgerly.config.app.AppConfigStore;
import cn.rosercode.ledgerly.dto.LogRetentionRequest;
import cn.rosercode.ledgerly.dto.NotificationUrlRequest;
/**
* 应用配置控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.io.IOException;
import java.util.ArrayList;
@@ -16,15 +16,15 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.BillImportRequest;
import cn.rosercode.finance.enums.BillType;
import cn.rosercode.finance.service.BillImportService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.BillImportResultVO;
import cn.rosercode.finance.vo.BillParseResultVO;
import cn.rosercode.finance.vo.BillTypeVO;
import cn.rosercode.ledgerly.common.BusinessException;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.BillImportRequest;
import cn.rosercode.ledgerly.enums.BillType;
import cn.rosercode.ledgerly.service.BillImportService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.BillImportResultVO;
import cn.rosercode.ledgerly.vo.BillParseResultVO;
import cn.rosercode.ledgerly.vo.BillTypeVO;
/**
* 账单导入控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.CategoryRequest;
import cn.rosercode.finance.service.CategoryService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.CategoryVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.CategoryRequest;
import cn.rosercode.ledgerly.service.CategoryService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.CategoryVO;
/**
* 分类控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -15,12 +15,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.ChannelRequest;
import cn.rosercode.finance.service.ChannelService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.ChannelVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.ChannelRequest;
import cn.rosercode.ledgerly.service.ChannelService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.ChannelVO;
/**
* 交易渠道控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -6,10 +6,10 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.DatabaseConfigRequest;
import cn.rosercode.finance.service.DatabaseService;
import cn.rosercode.finance.vo.DatabaseStatusVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.DatabaseConfigRequest;
import cn.rosercode.ledgerly.service.DatabaseService;
import cn.rosercode.ledgerly.vo.DatabaseStatusVO;
/**
* 数据库配置控制器。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -18,23 +18,23 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.BillImportRequest;
import cn.rosercode.finance.dto.EmailBillConfigRequest;
import cn.rosercode.finance.dto.EmailBillParseRequest;
import cn.rosercode.finance.dto.EmailBillSenderRuleRequest;
import cn.rosercode.finance.email.EmailBillMonitorManager;
import cn.rosercode.finance.service.EmailBillCheckStreamService;
import cn.rosercode.finance.service.EmailBillConfigService;
import cn.rosercode.finance.service.EmailBillMessageService;
import cn.rosercode.finance.service.EmailBillSenderRuleService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.BillImportResultVO;
import cn.rosercode.finance.vo.BillParseResultVO;
import cn.rosercode.finance.vo.EmailBillConfigVO;
import cn.rosercode.finance.vo.EmailBillMessageVO;
import cn.rosercode.finance.vo.EmailBillSenderRuleVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.BillImportRequest;
import cn.rosercode.ledgerly.dto.EmailBillConfigRequest;
import cn.rosercode.ledgerly.dto.EmailBillParseRequest;
import cn.rosercode.ledgerly.dto.EmailBillSenderRuleRequest;
import cn.rosercode.ledgerly.email.EmailBillMonitorManager;
import cn.rosercode.ledgerly.service.EmailBillCheckStreamService;
import cn.rosercode.ledgerly.service.EmailBillConfigService;
import cn.rosercode.ledgerly.service.EmailBillMessageService;
import cn.rosercode.ledgerly.service.EmailBillSenderRuleService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.BillImportResultVO;
import cn.rosercode.ledgerly.vo.BillParseResultVO;
import cn.rosercode.ledgerly.vo.EmailBillConfigVO;
import cn.rosercode.ledgerly.vo.EmailBillMessageVO;
import cn.rosercode.ledgerly.vo.EmailBillSenderRuleVO;
/**
* 邮箱账单控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -8,14 +8,14 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.LogQuery;
import cn.rosercode.finance.service.AppLogStreamService;
import cn.rosercode.finance.service.LogService;
import cn.rosercode.finance.vo.AppLogVO;
import cn.rosercode.finance.vo.HttpLogVO;
import cn.rosercode.finance.vo.LoginLogVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.LogQuery;
import cn.rosercode.ledgerly.service.AppLogStreamService;
import cn.rosercode.ledgerly.service.LogService;
import cn.rosercode.ledgerly.vo.AppLogVO;
import cn.rosercode.ledgerly.vo.HttpLogVO;
import cn.rosercode.ledgerly.vo.LoginLogVO;
/**
* 系统日志控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -14,16 +14,16 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.NotificationChannelRequest;
import cn.rosercode.finance.dto.NotificationConfigRequest;
import cn.rosercode.finance.service.NotificationChannelService;
import cn.rosercode.finance.service.NotificationConfigService;
import cn.rosercode.finance.service.NotificationService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.NotificationChannelVO;
import cn.rosercode.finance.vo.NotificationConfigVO;
import cn.rosercode.finance.vo.NotificationLogVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.NotificationChannelRequest;
import cn.rosercode.ledgerly.dto.NotificationConfigRequest;
import cn.rosercode.ledgerly.service.NotificationChannelService;
import cn.rosercode.ledgerly.service.NotificationConfigService;
import cn.rosercode.ledgerly.service.NotificationService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.NotificationChannelVO;
import cn.rosercode.ledgerly.vo.NotificationConfigVO;
import cn.rosercode.ledgerly.vo.NotificationLogVO;
/**
* 通知控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -16,14 +16,14 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.BatchDeleteRequest;
import cn.rosercode.finance.dto.RuleQuery;
import cn.rosercode.finance.dto.RuleRequest;
import cn.rosercode.finance.service.RuleService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.RuleVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.BatchDeleteRequest;
import cn.rosercode.ledgerly.dto.RuleQuery;
import cn.rosercode.ledgerly.dto.RuleRequest;
import cn.rosercode.ledgerly.service.RuleService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.RuleVO;
/**
* 规则控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -11,17 +11,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.StatisticsQuery;
import cn.rosercode.finance.dto.StatisticsRangeQuery;
import cn.rosercode.finance.enums.StatisticsDimension;
import cn.rosercode.finance.service.StatisticsService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.CategoryStatisticsVO;
import cn.rosercode.finance.vo.MonthlyStatisticsVO;
import cn.rosercode.finance.vo.StatisticsGroupVO;
import cn.rosercode.finance.vo.StatisticsSummaryVO;
import cn.rosercode.finance.vo.TrendStatisticsVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.StatisticsQuery;
import cn.rosercode.ledgerly.dto.StatisticsRangeQuery;
import cn.rosercode.ledgerly.enums.StatisticsDimension;
import cn.rosercode.ledgerly.service.StatisticsService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.CategoryStatisticsVO;
import cn.rosercode.ledgerly.vo.MonthlyStatisticsVO;
import cn.rosercode.ledgerly.vo.StatisticsGroupVO;
import cn.rosercode.ledgerly.vo.StatisticsSummaryVO;
import cn.rosercode.ledgerly.vo.TrendStatisticsVO;
/**
* 统计控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.TagRequest;
import cn.rosercode.finance.service.TagService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.TagVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.TagRequest;
import cn.rosercode.ledgerly.service.TagService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.TagVO;
/**
* 标签控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.io.IOException;
import java.net.URLEncoder;
@@ -28,21 +28,21 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.PageResult;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.BatchCategoryRequest;
import cn.rosercode.finance.dto.BatchCreateTransactionRequest;
import cn.rosercode.finance.dto.BatchDeleteRequest;
import cn.rosercode.finance.dto.BatchTagRequest;
import cn.rosercode.finance.dto.TransactionQuery;
import cn.rosercode.finance.dto.TransactionRequest;
import cn.rosercode.finance.exporter.TransactionExportSheetHandler;
import cn.rosercode.finance.service.ChannelService;
import cn.rosercode.finance.service.TransactionService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.ChannelOptionVO;
import cn.rosercode.finance.vo.TransactionExportVO;
import cn.rosercode.finance.vo.TransactionVO;
import cn.rosercode.ledgerly.common.PageResult;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.BatchCategoryRequest;
import cn.rosercode.ledgerly.dto.BatchCreateTransactionRequest;
import cn.rosercode.ledgerly.dto.BatchDeleteRequest;
import cn.rosercode.ledgerly.dto.BatchTagRequest;
import cn.rosercode.ledgerly.dto.TransactionQuery;
import cn.rosercode.ledgerly.dto.TransactionRequest;
import cn.rosercode.ledgerly.exporter.TransactionExportSheetHandler;
import cn.rosercode.ledgerly.service.ChannelService;
import cn.rosercode.ledgerly.service.TransactionService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.ChannelOptionVO;
import cn.rosercode.ledgerly.vo.TransactionExportVO;
import cn.rosercode.ledgerly.vo.TransactionVO;
/**
* 交易记录控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.List;
@@ -16,11 +16,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.TransactionGroupRequest;
import cn.rosercode.finance.service.TransactionGroupService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.TransactionGroupVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.TransactionGroupRequest;
import cn.rosercode.ledgerly.service.TransactionGroupService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.TransactionGroupVO;
/**
* 账单关系组控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -10,17 +10,17 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.ChangePasswordRequest;
import cn.rosercode.finance.dto.LoginRequest;
import cn.rosercode.finance.dto.RegisterRequest;
import cn.rosercode.finance.dto.RegistrationUpdateRequest;
import cn.rosercode.finance.service.RegistrationService;
import cn.rosercode.finance.service.UserService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.LoginVO;
import cn.rosercode.finance.vo.RegistrationStatusVO;
import cn.rosercode.finance.vo.UserVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.ChangePasswordRequest;
import cn.rosercode.ledgerly.dto.LoginRequest;
import cn.rosercode.ledgerly.dto.RegisterRequest;
import cn.rosercode.ledgerly.dto.RegistrationUpdateRequest;
import cn.rosercode.ledgerly.service.RegistrationService;
import cn.rosercode.ledgerly.service.UserService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.LoginVO;
import cn.rosercode.ledgerly.vo.RegistrationStatusVO;
import cn.rosercode.ledgerly.vo.UserVO;
/**
* 用户控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.controller;
package cn.rosercode.ledgerly.controller;
import java.util.Map;
@@ -10,14 +10,14 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.rosercode.finance.common.Result;
import cn.rosercode.finance.dto.BillSourceStatsRequest;
import cn.rosercode.finance.dto.ExcludedDisplayStyleRequest;
import cn.rosercode.finance.dto.PaginationPrefsRequest;
import cn.rosercode.finance.dto.ShowHiddenDataRequest;
import cn.rosercode.finance.service.UserPreferenceService;
import cn.rosercode.finance.util.UserContext;
import cn.rosercode.finance.vo.PaginationPrefsVO;
import cn.rosercode.ledgerly.common.Result;
import cn.rosercode.ledgerly.dto.BillSourceStatsRequest;
import cn.rosercode.ledgerly.dto.ExcludedDisplayStyleRequest;
import cn.rosercode.ledgerly.dto.PaginationPrefsRequest;
import cn.rosercode.ledgerly.dto.ShowHiddenDataRequest;
import cn.rosercode.ledgerly.service.UserPreferenceService;
import cn.rosercode.ledgerly.util.UserContext;
import cn.rosercode.ledgerly.vo.PaginationPrefsVO;
/**
* 用户设置控制器
@@ -1,4 +1,4 @@
package cn.rosercode.finance.converter;
package cn.rosercode.ledgerly.converter;
import java.util.List;
@@ -6,36 +6,36 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import cn.rosercode.finance.entity.AiUsage;
import cn.rosercode.finance.entity.Category;
import cn.rosercode.finance.entity.EmailBillConfig;
import cn.rosercode.finance.entity.EmailBillMessage;
import cn.rosercode.finance.entity.EmailBillSenderRule;
import cn.rosercode.finance.entity.HttpLog;
import cn.rosercode.finance.entity.LoginLog;
import cn.rosercode.finance.entity.NotificationChannel;
import cn.rosercode.finance.entity.NotificationLog;
import cn.rosercode.finance.entity.Rule;
import cn.rosercode.finance.entity.Tag;
import cn.rosercode.finance.entity.Transaction;
import cn.rosercode.finance.entity.TransactionGroup;
import cn.rosercode.finance.entity.TransactionGroupItem;
import cn.rosercode.finance.entity.User;
import cn.rosercode.finance.vo.AiUsageVO;
import cn.rosercode.finance.vo.CategoryVO;
import cn.rosercode.finance.vo.EmailBillConfigVO;
import cn.rosercode.finance.vo.EmailBillMessageVO;
import cn.rosercode.finance.vo.EmailBillSenderRuleVO;
import cn.rosercode.finance.vo.HttpLogVO;
import cn.rosercode.finance.vo.LoginLogVO;
import cn.rosercode.finance.vo.NotificationChannelVO;
import cn.rosercode.finance.vo.NotificationLogVO;
import cn.rosercode.finance.vo.RuleVO;
import cn.rosercode.finance.vo.TagVO;
import cn.rosercode.finance.vo.TransactionGroupItemVO;
import cn.rosercode.finance.vo.TransactionGroupVO;
import cn.rosercode.finance.vo.TransactionVO;
import cn.rosercode.finance.vo.UserVO;
import cn.rosercode.ledgerly.entity.AiUsage;
import cn.rosercode.ledgerly.entity.Category;
import cn.rosercode.ledgerly.entity.EmailBillConfig;
import cn.rosercode.ledgerly.entity.EmailBillMessage;
import cn.rosercode.ledgerly.entity.EmailBillSenderRule;
import cn.rosercode.ledgerly.entity.HttpLog;
import cn.rosercode.ledgerly.entity.LoginLog;
import cn.rosercode.ledgerly.entity.NotificationChannel;
import cn.rosercode.ledgerly.entity.NotificationLog;
import cn.rosercode.ledgerly.entity.Rule;
import cn.rosercode.ledgerly.entity.Tag;
import cn.rosercode.ledgerly.entity.Transaction;
import cn.rosercode.ledgerly.entity.TransactionGroup;
import cn.rosercode.ledgerly.entity.TransactionGroupItem;
import cn.rosercode.ledgerly.entity.User;
import cn.rosercode.ledgerly.vo.AiUsageVO;
import cn.rosercode.ledgerly.vo.CategoryVO;
import cn.rosercode.ledgerly.vo.EmailBillConfigVO;
import cn.rosercode.ledgerly.vo.EmailBillMessageVO;
import cn.rosercode.ledgerly.vo.EmailBillSenderRuleVO;
import cn.rosercode.ledgerly.vo.HttpLogVO;
import cn.rosercode.ledgerly.vo.LoginLogVO;
import cn.rosercode.ledgerly.vo.NotificationChannelVO;
import cn.rosercode.ledgerly.vo.NotificationLogVO;
import cn.rosercode.ledgerly.vo.RuleVO;
import cn.rosercode.ledgerly.vo.TagVO;
import cn.rosercode.ledgerly.vo.TransactionGroupItemVO;
import cn.rosercode.ledgerly.vo.TransactionGroupVO;
import cn.rosercode.ledgerly.vo.TransactionVO;
import cn.rosercode.ledgerly.vo.UserVO;
/**
* 实体与视图对象之间的转换器,由 MapStruct 在编译期生成实现。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import cn.rosercode.finance.vo.AiNewTagVO;
import cn.rosercode.ledgerly.vo.AiNewTagVO;
/**
* AI 建议应用请求DTO,携带逐条记录的建议分类与标签,用于一键写入。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.util.List;
@@ -6,7 +6,7 @@ import java.util.List;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import cn.rosercode.finance.vo.AiNewTagVO;
import cn.rosercode.ledgerly.vo.AiNewTagVO;
/**
* AI 生成规则的批量创建请求。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.Map;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
@@ -1,8 +1,8 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
import cn.rosercode.finance.config.datasource.DataSourceType;
import cn.rosercode.ledgerly.config.datasource.DataSourceType;
/**
* 数据库配置请求对象,用于提交 MySQL 或 SQLite 的连接信息。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.Map;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.util.List;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.dto;
package cn.rosercode.ledgerly.dto;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import jakarta.mail.Folder;
import jakarta.mail.MessagingException;
@@ -9,7 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.eclipse.angus.mail.imap.IMAPFolder;
import org.eclipse.angus.mail.imap.IMAPStore;
import cn.rosercode.finance.entity.EmailBillConfig;
import cn.rosercode.ledgerly.entity.EmailBillConfig;
/**
* 邮箱账单监听线程,为单个邮箱配置维持 IMAP IDLE 长连接。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.util.ArrayList;
import java.util.List;
@@ -16,9 +16,9 @@ import jakarta.annotation.PreDestroy;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.finance.entity.EmailBillConfig;
import cn.rosercode.finance.mapper.EmailBillConfigMapper;
import cn.rosercode.ledgerly.common.BusinessException;
import cn.rosercode.ledgerly.entity.EmailBillConfig;
import cn.rosercode.ledgerly.mapper.EmailBillConfigMapper;
/**
* 邮箱账单监听管理器,负责各邮箱配置监听线程的生命周期。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.io.IOException;
import java.time.LocalDateTime;
@@ -17,13 +17,13 @@ import jakarta.mail.internet.MimeMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.entity.EmailBillConfig;
import cn.rosercode.finance.entity.EmailBillMessage;
import cn.rosercode.finance.entity.EmailBillSenderRule;
import cn.rosercode.finance.enums.BillType;
import cn.rosercode.finance.enums.EmailBillStatus;
import cn.rosercode.finance.mapper.EmailBillMessageMapper;
import cn.rosercode.finance.service.EmailBillSenderRuleService;
import cn.rosercode.ledgerly.entity.EmailBillConfig;
import cn.rosercode.ledgerly.entity.EmailBillMessage;
import cn.rosercode.ledgerly.entity.EmailBillSenderRule;
import cn.rosercode.ledgerly.enums.BillType;
import cn.rosercode.ledgerly.enums.EmailBillStatus;
import cn.rosercode.ledgerly.mapper.EmailBillMessageMapper;
import cn.rosercode.ledgerly.service.EmailBillSenderRuleService;
/**
* 邮箱账单处理器,将命中的邮件附件保存到本地并登记为待解析消息。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -18,9 +18,9 @@ import jakarta.mail.search.ReceivedDateTerm;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.finance.entity.EmailBillConfig;
import cn.rosercode.finance.mapper.EmailBillConfigMapper;
import cn.rosercode.ledgerly.common.BusinessException;
import cn.rosercode.ledgerly.entity.EmailBillConfig;
import cn.rosercode.ledgerly.mapper.EmailBillConfigMapper;
/**
* 邮箱账单拉取器,按配置的拉取范围执行一次拉取(连接、获取目标邮件、交给处理器)。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.util.List;
@@ -9,7 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import cn.rosercode.finance.entity.EmailBillSenderRule;
import cn.rosercode.ledgerly.entity.EmailBillSenderRule;
/**
* 发件人规则匹配器,按邮件发件人地址匹配已启用的发件人识别规则。
@@ -1,4 +1,4 @@
package cn.rosercode.finance.email;
package cn.rosercode.ledgerly.email;
import java.io.IOException;
import java.nio.file.Files;
@@ -8,7 +8,7 @@ import java.nio.file.Paths;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import cn.rosercode.finance.common.BusinessException;
import cn.rosercode.ledgerly.common.BusinessException;
/**
* 邮箱账单附件本地存储。

Some files were not shown because too many files have changed in this diff Show More