diff --git a/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java b/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java index f12ffa2..0f261c1 100644 --- a/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java +++ b/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java @@ -73,6 +73,15 @@ public class DeviceSettingControler { appSettingsMgrService.setAutoLogoutTimeout(val); return ApiRet.success(); } + // setAutoLogout + + @Operation(summary = "设置自动登出") + @PostMapping("/setAutoLogout") + public ApiRet setAutoLogout(Boolean val) { + appSettingsMgrService.setAutoLogout(val); + return ApiRet.success(); + } + @Operation(summary = "设置设备温度") @PostMapping("/setTemperature") diff --git a/src/main/java/a8k/app/controler/api/v1/app/ws/AppWebSocketEndpointMgr.java b/src/main/java/a8k/app/controler/api/v1/app/ws/AppWebSocketEndpointMgr.java index 2bd50ee..3168846 100644 --- a/src/main/java/a8k/app/controler/api/v1/app/ws/AppWebSocketEndpointMgr.java +++ b/src/main/java/a8k/app/controler/api/v1/app/ws/AppWebSocketEndpointMgr.java @@ -1,8 +1,12 @@ package a8k.app.controler.api.v1.app.ws; +import a8k.app.a8ktype.DeviceRunMode; import a8k.app.a8ktype.appevent.AppEvent; import a8k.app.a8ktype.appevent.AppTubeholderSettingUpdateEvent; +import a8k.app.dao.db.type.AppUser; import a8k.app.service.bases.AppEventBusService; +import a8k.app.service.data.AppUserMgrService; +import a8k.app.service.lowerctrl.DeviceInitCtrlService; import a8k.app.service.mainctrl.TubeHolderSettingMgrService; import a8k.app.service.statemgr.*; import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr; @@ -10,6 +14,7 @@ import a8k.app.utils.ZJsonHelper; import jakarta.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -24,7 +29,12 @@ import java.util.Objects; @Component @EnableScheduling public class AppWebSocketEndpointMgr { - private static final Logger log = LoggerFactory.getLogger(AppWebSocketEndpointMgr.class); + private static final Logger log = LoggerFactory.getLogger(AppWebSocketEndpointMgr.class); + @Resource + private AppUserMgrService appUserMgrService; + @Resource + private DeviceInitCtrlService deviceInitCtrlService; + public static class Report { public String messageType = "Report"; @@ -161,6 +171,26 @@ public class AppWebSocketEndpointMgr { reportTubeHolderSetting(); } + static public class DeviceContext { + public DeviceRunMode runMode = DeviceRunMode.RealMode; + public Boolean loginFlag = false; + public AppUser loginUser = null; + public Boolean deviceInitedFlag = false; + public Boolean fatalErrorFlag = false; + } + + @Scheduled(fixedDelay = 1000) + public void reportSessionState() { + DeviceContext deviceContext = new DeviceContext(); + deviceContext.runMode = gstate.getDeviceRunMode(); + deviceContext.loginFlag = appUserMgrService.getLoginUsr() != null; + deviceContext.loginUser = appUserMgrService.getLoginUsr(); + deviceContext.deviceInitedFlag = deviceInitCtrlService.getDeviceInitedTaskState().deviceInited; + deviceContext.fatalErrorFlag = deviceWorkStateMgrService.getDeviceWorkState().fatalErrorFlag; + reportState("DeviceContext", deviceContext); + } + + private Integer reportConsumableStateStateVersion = 0; private Integer reportFrontEndMessageBoxStateVersion = 0; @@ -185,6 +215,7 @@ public class AppWebSocketEndpointMgr { if (forceReport) { reportDeviceState(); + reportSessionState(); } } diff --git a/src/main/java/a8k/app/dao/db/type/AppUser.java b/src/main/java/a8k/app/dao/db/type/AppUser.java index 1d0310a..210dfeb 100644 --- a/src/main/java/a8k/app/dao/db/type/AppUser.java +++ b/src/main/java/a8k/app/dao/db/type/AppUser.java @@ -8,9 +8,9 @@ public class AppUser { @Schema(description = "数据库索引ID") public int id = 0; @Schema(description = "用户账号", example = "admin") - public String account = ""; + public String account = "DEMO"; @Schema(description = "用户密码", example = "1234567") - public String password = ""; + public String password = "DEMO"; @Schema(description = "用户角色", example = "Admin") public UsrRole usrRole = UsrRole.Admin; @Schema(description = "是否内置用户(内置用户不可删除)", example = "false") diff --git a/src/main/java/a8k/app/dao/db/type/DeviceSetting.java b/src/main/java/a8k/app/dao/db/type/DeviceSetting.java index 1369f90..26cf96f 100644 --- a/src/main/java/a8k/app/dao/db/type/DeviceSetting.java +++ b/src/main/java/a8k/app/dao/db/type/DeviceSetting.java @@ -19,9 +19,13 @@ public class DeviceSetting { @NotNull public Boolean autoPrint = false; - @Schema(description = "自动登出") + @Schema(description = "自动登出(Min)") @NotNull - public Integer autoLogoutTimeout = 0; + public Integer autoLogoutTimeout = 10; + + @Schema(description = "自动登出") + public Boolean autoLogout = false; + @Schema(description = "设备温度") @NotNull diff --git a/src/main/java/a8k/app/service/data/AppUserMgrService.java b/src/main/java/a8k/app/service/data/AppUserMgrService.java index ab6ba73..3d37e66 100644 --- a/src/main/java/a8k/app/service/data/AppUserMgrService.java +++ b/src/main/java/a8k/app/service/data/AppUserMgrService.java @@ -19,7 +19,7 @@ public class AppUserMgrService { @Resource AppUsrDao appUsrDao; - AppUser loginUsr; + AppUser loginUsr = new AppUser(); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java b/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java index f04971c..ba28aae 100644 --- a/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java +++ b/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java @@ -65,6 +65,12 @@ public class AppSettingsMgrService { deviceSettingDao.update(setting); } + public void setAutoLogout(Boolean val) { + DeviceSetting setting = deviceSettingDao.get(); + setting.autoLogout = val; + deviceSettingDao.update(setting); + } + public void setLISType(LISTypeEnum val) { LISSetting setting = lisSettingDao.get();