package com.qmth.ops.biz.service; import com.qmth.boot.tools.models.ByteArray; import com.qmth.ops.api.security.Permission; import com.qmth.ops.biz.domain.Role; import com.qmth.ops.biz.domain.User; import com.qmth.ops.biz.domain.UserPermission; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; @Service public class InitService implements CommandLineRunner { private static final Logger log = LoggerFactory.getLogger(InitService.class); @Resource private UserService userService; @Resource private UserPermissionService userPermissionService; @Resource private LlmClientService llmClientService; @Resource private OcrClientService ocrClientService; @Deprecated public String get() { try { return ByteArray.fromResource("script/init.sql").toString(); } catch (IOException e) { throw new RuntimeException("数据库初始化异常", e); } } @Override public void run(String... args) { if (userService.count() == 0) { User user = new User(); user.setLoginName("admin"); user.setName("系统管理员"); user.setPassword("123456"); user.setRole(new Role[] { Role.ADMIN }); user.setEnable(true); userService.insert(user); log.info("系统管理员初始化完成"); } User user = userService.findByLoginName("admin"); if (user != null && user.hasRole(Role.ADMIN)) { for (Permission p : Permission.values()) { userPermissionService.save(user, p, UserPermission.UNLIMIT_SCOPE); } log.info("系统管理员权限更新完成"); } llmClientService.init(); ocrClientService.init(); log.info("LLM Client初始化完成"); } }