InitService.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.qmth.ops.biz.service;
  2. import com.qmth.boot.mybatis.service.SqlProvider;
  3. import com.qmth.boot.tools.models.ByteArray;
  4. import com.qmth.ops.api.security.Permission;
  5. import com.qmth.ops.biz.domain.Role;
  6. import com.qmth.ops.biz.domain.User;
  7. import com.qmth.ops.biz.domain.UserPermission;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.boot.CommandLineRunner;
  11. import org.springframework.stereotype.Service;
  12. import javax.annotation.Resource;
  13. import java.io.IOException;
  14. @Service
  15. public class InitService implements SqlProvider, CommandLineRunner {
  16. private static final Logger log = LoggerFactory.getLogger(InitService.class);
  17. @Resource
  18. private UserService userService;
  19. @Resource
  20. private UserPermissionService userPermissionService;
  21. @Resource
  22. private LlmClientService llmClientService;
  23. @Resource
  24. private OcrClientService ocrClientService;
  25. @Override
  26. public String get() {
  27. try {
  28. return ByteArray.fromResource("script/init.sql").toString();
  29. } catch (IOException e) {
  30. throw new RuntimeException("数据库初始化异常", e);
  31. }
  32. }
  33. @Override
  34. public void run(String... args) {
  35. if (userService.count() == 0) {
  36. User user = new User();
  37. user.setLoginName("admin");
  38. user.setName("系统管理员");
  39. user.setPassword("123456");
  40. user.setRole(new Role[] { Role.ADMIN });
  41. user.setEnable(true);
  42. userService.insert(user);
  43. log.info("系统管理员初始化完成");
  44. }
  45. User user = userService.findByLoginName("admin");
  46. if (user != null && user.hasRole(Role.ADMIN)) {
  47. for (Permission p : Permission.values()) {
  48. userPermissionService.save(user, p, UserPermission.UNLIMIT_SCOPE);
  49. }
  50. log.info("系统管理员权限更新完成");
  51. }
  52. llmClientService.init();
  53. ocrClientService.init();
  54. log.info("LLM Client初始化完成");
  55. }
  56. }