refactor(service): 修改IEntityService泛型为VO类型并优化缓存策略

重构所有注解@CacheConfig的Service类,将IEntityService泛型从实体类改为VO类
实现实体与VO之间的转换逻辑,使用VO替代实体进行缓存以避免序列化问题
更新相关依赖组件和测试用例,确保功能完整性和系统兼容性
优化Redis缓存配置,清理旧缓存数据并验证新缓存策略有效性
This commit is contained in:
2025-09-28 18:19:00 +08:00
parent df6188db40
commit b03b5385a5
75 changed files with 3144 additions and 1377 deletions

View File

@@ -3,8 +3,8 @@ package com.ecep.contract.vm;
import com.ecep.contract.Desktop;
import com.ecep.contract.MyDateTimeUtils;
import com.ecep.contract.SpringApp;
import com.ecep.contract.WebSocketClientService;
import com.ecep.contract.controller.CurrentEmployeeInitialedEvent;
import com.ecep.contract.model.EmployeeRole;
import com.ecep.contract.service.EmployeeService;
import com.ecep.contract.vo.EmployeeRoleVo;
import com.ecep.contract.vo.EmployeeVo;
@@ -138,11 +138,34 @@ public class CurrentEmployee extends EmployeeViewModel {
* 3. 更新当前用户的信息
* 4. 更新当前用户的角色
*/
executorService.submit(() -> {
// issue #1 sss 2020-07-05
// issue #1 sss 2020-07-05
Thread.ofVirtual().start(() -> {
while (getId().get() <= 0) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
int activeEmployeeId = getId().get();
if (activeEmployeeId <= 0) {
return;
}
EmployeeService employeeService = SpringApp.getBean(EmployeeService.class);
EmployeeVo employee = employeeService.findById(getId().get());
List<EmployeeRoleVo> roles = employeeService.getRolesByEmployeeId(getId().get());
WebSocketClientService webSocketService = SpringApp.getBean(WebSocketClientService.class);
while (!webSocketService.getOnlineProperty().get()) {
try {
logger.debug("waiting for websocket online...");
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
EmployeeVo employee = employeeService.findById(activeEmployeeId);
List<EmployeeRoleVo> roles = employeeService.getRolesByEmployeeId(activeEmployeeId);
Platform.runLater(() -> {
update(employee);
rolesProperty().setAll(roles);
@@ -151,9 +174,9 @@ public class CurrentEmployee extends EmployeeViewModel {
future.complete(null);
});
});
/**
* 定时更新用户活动状态
*/
// 定时更新用户活动状态
executorService.scheduleWithFixedDelay(() -> {
try {
// SpringApp.getBean(EmployeeService.class).updateActive(Desktop.instance.getSessionId());