InitService.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. import java.util.Arrays;
  15. import java.util.stream.Collectors;
  16. @Service
  17. public class InitService implements SqlProvider, CommandLineRunner {
  18. private static final Logger log = LoggerFactory.getLogger(InitService.class);
  19. @Resource
  20. private UserService userService;
  21. @Resource
  22. private UserPermissionService userPermissionService;
  23. @Override
  24. public String get() {
  25. try {
  26. return ByteArray.fromInputStream(this.getClass().getClassLoader().getResourceAsStream("script/init.sql"))
  27. .toString();
  28. } catch (IOException e) {
  29. throw new RuntimeException("数据库初始化异常", e);
  30. }
  31. }
  32. @Override
  33. public void run(String... args) {
  34. if (userService.count() == 0) {
  35. User user = new User();
  36. user.setLoginName("admin");
  37. user.setName("系统管理员");
  38. user.setPassword("123456");
  39. user.setRole(new Role[] { Role.ADMIN });
  40. user.setEnable(true);
  41. userService.insert(user);
  42. log.info("系统管理员初始化完成");
  43. }
  44. User user = userService.findByLoginName("admin");
  45. if (user != null && user.hasRole(Role.ADMIN)) {
  46. userPermissionService.saveBatch(Arrays.stream(Permission.values()).map(p -> {
  47. UserPermission up = new UserPermission();
  48. up.setUserId(user.getId());
  49. up.setPermission(p);
  50. up.setScope(UserPermission.UNLIMIT_SCOPE);
  51. return up;
  52. }).collect(Collectors.toList()));
  53. log.info("系统管理员权限更新完成");
  54. }
  55. }
  56. }