feat(service): 实现国际化支持并优化Service层

重构文件类型相关Service以支持国际化查询
添加findOneByLang辅助方法统一查询逻辑
实现StringConverter支持UI控件显示
优化缓存配置和查询性能
新增UnitStringConverter和CustomerCatalogStringConverter
完善文档和测试用例
This commit is contained in:
2025-09-24 16:20:49 +08:00
parent 45eed8281f
commit 09b0da498b
32 changed files with 1968 additions and 78 deletions

View File

@@ -0,0 +1,49 @@
package com.ecep.contract.converter;
import com.ecep.contract.service.CustomerCatalogService;
import com.ecep.contract.vo.CustomerCatalogVo;
import javafx.util.StringConverter;
/**
* 客户分类字符串转换器
* 用于在UI组件中显示客户分类信息并支持从字符串还原客户分类对象
*
* @author AI Assistant
* @since 2024-01-01
*/
public class CustomerCatalogStringConverter extends StringConverter<CustomerCatalogVo> {
/** 客户分类服务,用于从字符串查找对应的客户分类对象 */
private final CustomerCatalogService service;
/**
* 构造函数
*
* @param service 客户分类服务实例
*/
public CustomerCatalogStringConverter(CustomerCatalogService service) {
this.service = service;
}
/**
* 将客户分类对象转换为字符串表示
*
* @param object 客户分类对象
* @return 客户分类的名称如果对象为null则返回空字符串
*/
@Override
public String toString(CustomerCatalogVo object) {
return object == null ? "" : object.getName();
}
/**
* 从字符串还原客户分类对象
*
* @param string 客户分类名称
* @return 对应的客户分类对象如果未找到则返回null
*/
@Override
public CustomerCatalogVo fromString(String string) {
return service.findByName(string);
}
}

View File

@@ -0,0 +1,53 @@
package com.ecep.contract.converter;
import org.springframework.stereotype.Component;
import com.ecep.contract.service.UnitService;
import com.ecep.contract.vo.UnitVo;
import javafx.util.StringConverter;
/**
* UnitVo的StringConverter实现用于JavaFX控件中的显示和转换
*/
@Component
public class UnitStringConverter extends StringConverter<UnitVo> {
private final UnitService unitService;
/**
* 构造函数
*
* @param unitService UnitService实例
*/
public UnitStringConverter(UnitService unitService) {
this.unitService = unitService;
}
/**
* 将UnitVo对象转换为字符串
*
* @param object UnitVo对象
* @return 转换后的字符串
*/
@Override
public String toString(UnitVo object) {
if (object == null) {
return "";
}
return object.getName();
}
/**
* 将字符串转换为UnitVo对象
*
* @param string 字符串
* @return 转换后的UnitVo对象
*/
@Override
public UnitVo fromString(String string) {
if (string == null || string.isEmpty()) {
return null;
}
return unitService.findByName(string);
}
}