| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.izouma.nineth.service;
- import com.izouma.nineth.config.Constants;
- import com.izouma.nineth.domain.Company;
- import com.izouma.nineth.domain.User;
- import com.izouma.nineth.dto.PageQuery;
- import com.izouma.nineth.enums.AuthorityName;
- import com.izouma.nineth.exception.BusinessException;
- import com.izouma.nineth.repo.CompanyRepo;
- import com.izouma.nineth.repo.UserRepo;
- import com.izouma.nineth.security.Authority;
- import com.izouma.nineth.utils.JpaUtils;
- import com.izouma.nineth.utils.SecurityUtils;
- import lombok.AllArgsConstructor;
- import org.springframework.data.domain.Page;
- import org.springframework.security.crypto.password.PasswordEncoder;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.util.Collections;
- @Service
- @AllArgsConstructor
- public class CompanyService {
- private CompanyRepo companyRepo;
- private UserRepo userRepo;
- private PasswordEncoder passwordEncoder;
- private CacheService cacheService;
- public Page<Company> all(PageQuery pageQuery) {
- return companyRepo.findAll(JpaUtils.toSpecification(pageQuery, Company.class), JpaUtils.toPageRequest(pageQuery));
- }
- public void addAdmin(Long companyId, String username, String password) {
- if (!SecurityUtils.hasRole(AuthorityName.ROLE_ADMIN)
- && !companyId.equals(SecurityUtils.getAuthenticatedUser().getCompanyId())) {
- throw new BusinessException("无权限");
- }
- userRepo.save(User.builder()
- .avatar(Constants.DEFAULT_AVATAR)
- .username(username)
- .password(passwordEncoder.encode(password))
- .companyId(companyId)
- .authorities(Collections.singleton(Authority.get(AuthorityName.ROLE_SAAS)))
- .admin(true)
- .build());
- cacheService.clearUserList();
- }
- public void delAdmin(Long companyId, Long userId) {
- if (!SecurityUtils.hasRole(AuthorityName.ROLE_ADMIN)
- && !companyId.equals(SecurityUtils.getAuthenticatedUser().getCompanyId())) {
- throw new BusinessException("无权限");
- }
- userRepo.deleteById(userId);
- cacheService.clearUserList();
- }
- }
|