CompanyService.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.izouma.nineth.service;
  2. import com.izouma.nineth.config.Constants;
  3. import com.izouma.nineth.domain.Company;
  4. import com.izouma.nineth.domain.User;
  5. import com.izouma.nineth.dto.PageQuery;
  6. import com.izouma.nineth.enums.AuthorityName;
  7. import com.izouma.nineth.exception.BusinessException;
  8. import com.izouma.nineth.repo.CompanyRepo;
  9. import com.izouma.nineth.repo.UserRepo;
  10. import com.izouma.nineth.security.Authority;
  11. import com.izouma.nineth.utils.JpaUtils;
  12. import com.izouma.nineth.utils.SecurityUtils;
  13. import lombok.AllArgsConstructor;
  14. import org.springframework.data.domain.Page;
  15. import org.springframework.security.crypto.password.PasswordEncoder;
  16. import org.springframework.stereotype.Service;
  17. import java.math.BigDecimal;
  18. import java.util.Collections;
  19. @Service
  20. @AllArgsConstructor
  21. public class CompanyService {
  22. private CompanyRepo companyRepo;
  23. private UserRepo userRepo;
  24. private PasswordEncoder passwordEncoder;
  25. private CacheService cacheService;
  26. public Page<Company> all(PageQuery pageQuery) {
  27. return companyRepo.findAll(JpaUtils.toSpecification(pageQuery, Company.class), JpaUtils.toPageRequest(pageQuery));
  28. }
  29. public void addAdmin(Long companyId, String username, String password) {
  30. if (!SecurityUtils.hasRole(AuthorityName.ROLE_ADMIN)
  31. && !companyId.equals(SecurityUtils.getAuthenticatedUser().getCompanyId())) {
  32. throw new BusinessException("无权限");
  33. }
  34. userRepo.save(User.builder()
  35. .avatar(Constants.DEFAULT_AVATAR)
  36. .username(username)
  37. .password(passwordEncoder.encode(password))
  38. .companyId(companyId)
  39. .authorities(Collections.singleton(Authority.get(AuthorityName.ROLE_SAAS)))
  40. .admin(true)
  41. .build());
  42. cacheService.clearUserList();
  43. }
  44. public void delAdmin(Long companyId, Long userId) {
  45. if (!SecurityUtils.hasRole(AuthorityName.ROLE_ADMIN)
  46. && !companyId.equals(SecurityUtils.getAuthenticatedUser().getCompanyId())) {
  47. throw new BusinessException("无权限");
  48. }
  49. userRepo.deleteById(userId);
  50. cacheService.clearUserList();
  51. }
  52. }