格式修改
This commit is contained in:
+10
-7
@@ -6,6 +6,8 @@ import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.common.core.export.ExportContracts.ExportBatchRequest;
|
||||
import com.baiyue.common.core.export.ExportContracts.ExportBatchResponse;
|
||||
import com.baiyue.iam.service.CustomerListExportProviderService;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@@ -20,14 +22,15 @@ import java.security.MessageDigest;
|
||||
@RestController
|
||||
@RequestMapping("/internal/exports/v1/CUSTOMER_LIST")
|
||||
public class CustomerListExportProviderController {
|
||||
private final CustomerListExportProviderService service;
|
||||
private final byte[] internalToken;
|
||||
@Resource
|
||||
private CustomerListExportProviderService service;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalTokenValue;
|
||||
private byte[] internalToken;
|
||||
|
||||
public CustomerListExportProviderController(
|
||||
CustomerListExportProviderService service,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalToken) {
|
||||
this.service = service;
|
||||
this.internalToken = internalToken.getBytes(StandardCharsets.UTF_8);
|
||||
@PostConstruct
|
||||
void initializeToken() {
|
||||
this.internalToken = internalTokenValue.getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
@PostMapping("/batches")
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.baiyue.iam.service.TenantGuard;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
@@ -23,11 +24,8 @@ import org.springframework.web.bind.annotation.*;
|
||||
@Validated
|
||||
@Tag(name = "Platform user administration / 平台用户管理")
|
||||
public class PlatformUserManagementController {
|
||||
private final PlatformUserManagementService service;
|
||||
|
||||
public PlatformUserManagementController(PlatformUserManagementService service) {
|
||||
this.service = service;
|
||||
}
|
||||
@Resource
|
||||
private PlatformUserManagementService service;
|
||||
|
||||
@GetMapping
|
||||
@PreAuthorize("hasAuthority('platform:user:list')")
|
||||
|
||||
+3
-5
@@ -3,6 +3,7 @@ package com.baiyue.iam.repository;
|
||||
import com.baiyue.iam.entity.IamTenant;
|
||||
import com.baiyue.iam.mapper.IamTenantMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -11,11 +12,8 @@ import java.util.List;
|
||||
/** Read-only customer queries used by the generic export provider. */
|
||||
@Repository
|
||||
public class CustomerListExportProviderRepository {
|
||||
private final IamTenantMapper tenantMapper;
|
||||
|
||||
public CustomerListExportProviderRepository(IamTenantMapper tenantMapper) {
|
||||
this.tenantMapper = tenantMapper;
|
||||
}
|
||||
@Resource
|
||||
private IamTenantMapper tenantMapper;
|
||||
|
||||
public long maximumId(String keyword, String status) {
|
||||
LambdaQueryWrapper<IamTenant> wrapper = filters(keyword, status)
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.baiyue.iam.mapper.IamMembershipMapper;
|
||||
import com.baiyue.iam.mapper.IamMembershipRoleMapper;
|
||||
import com.baiyue.iam.mapper.IamUserMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -18,16 +19,12 @@ import java.util.List;
|
||||
/** 企业成员仓储,所有成员查询均显式携带租户条件。 */
|
||||
@Repository
|
||||
public class MemberRepository {
|
||||
private final IamMembershipMapper membershipMapper;
|
||||
private final IamUserMapper userMapper;
|
||||
private final IamMembershipRoleMapper roleMapper;
|
||||
|
||||
public MemberRepository(IamMembershipMapper membershipMapper, IamUserMapper userMapper,
|
||||
IamMembershipRoleMapper roleMapper) {
|
||||
this.membershipMapper = membershipMapper;
|
||||
this.userMapper = userMapper;
|
||||
this.roleMapper = roleMapper;
|
||||
}
|
||||
@Resource
|
||||
private IamMembershipMapper membershipMapper;
|
||||
@Resource
|
||||
private IamUserMapper userMapper;
|
||||
@Resource
|
||||
private IamMembershipRoleMapper roleMapper;
|
||||
|
||||
public List<IamMembership> findByTenant(long tenantId) {
|
||||
return membershipMapper.selectList(new LambdaQueryWrapper<IamMembership>()
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baiyue.iam.mapper.IamTenantAddressMapper;
|
||||
import com.baiyue.iam.mapper.IamTenantQualificationMapper;
|
||||
import com.baiyue.iam.mapper.IamUserMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
@@ -16,16 +17,12 @@ import java.util.List;
|
||||
*/
|
||||
@Repository
|
||||
public class ProfileResourceRepository {
|
||||
private final IamUserMapper userMapper;
|
||||
private final IamTenantAddressMapper addressMapper;
|
||||
private final IamTenantQualificationMapper qualificationMapper;
|
||||
|
||||
public ProfileResourceRepository(IamUserMapper userMapper, IamTenantAddressMapper addressMapper,
|
||||
IamTenantQualificationMapper qualificationMapper) {
|
||||
this.userMapper = userMapper;
|
||||
this.addressMapper = addressMapper;
|
||||
this.qualificationMapper = qualificationMapper;
|
||||
}
|
||||
@Resource
|
||||
private IamUserMapper userMapper;
|
||||
@Resource
|
||||
private IamTenantAddressMapper addressMapper;
|
||||
@Resource
|
||||
private IamTenantQualificationMapper qualificationMapper;
|
||||
|
||||
public IamUser findUserByAuthId(Long authUserId) { return userMapper.selectOne(new LambdaQueryWrapper<IamUser>().eq(IamUser::getAuthUserId, authUserId).last("LIMIT 1")); }
|
||||
public void saveUser(IamUser user) { userMapper.updateById(user); }
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.baiyue.iam.repository;
|
||||
import com.baiyue.iam.entity.*;
|
||||
import com.baiyue.iam.mapper.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -13,22 +14,16 @@ import java.util.Set;
|
||||
/** RBAC 仓储,所有业务查询均显式携带租户和应用域。 */
|
||||
@Repository
|
||||
public class RbacRepository {
|
||||
private final IamRoleMapper roleMapper;
|
||||
private final IamPermissionMapper permissionMapper;
|
||||
private final IamMembershipRoleMapper membershipRoleMapper;
|
||||
private final IamRolePermissionMapper rolePermissionMapper;
|
||||
private final IamDataScopeMapper dataScopeMapper;
|
||||
|
||||
public RbacRepository(IamRoleMapper roleMapper, IamPermissionMapper permissionMapper,
|
||||
IamMembershipRoleMapper membershipRoleMapper,
|
||||
IamRolePermissionMapper rolePermissionMapper,
|
||||
IamDataScopeMapper dataScopeMapper) {
|
||||
this.roleMapper = roleMapper;
|
||||
this.permissionMapper = permissionMapper;
|
||||
this.membershipRoleMapper = membershipRoleMapper;
|
||||
this.rolePermissionMapper = rolePermissionMapper;
|
||||
this.dataScopeMapper = dataScopeMapper;
|
||||
}
|
||||
@Resource
|
||||
private IamRoleMapper roleMapper;
|
||||
@Resource
|
||||
private IamPermissionMapper permissionMapper;
|
||||
@Resource
|
||||
private IamMembershipRoleMapper membershipRoleMapper;
|
||||
@Resource
|
||||
private IamRolePermissionMapper rolePermissionMapper;
|
||||
@Resource
|
||||
private IamDataScopeMapper dataScopeMapper;
|
||||
|
||||
public IamRole findRole(Long id, long tenantId, String appCode) {
|
||||
return roleMapper.selectOne(new LambdaQueryWrapper<IamRole>()
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baiyue.iam.entity.IamTenantReview;
|
||||
import com.baiyue.iam.mapper.IamTenantMapper;
|
||||
import com.baiyue.iam.mapper.IamTenantReviewMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -17,13 +18,10 @@ import java.util.List;
|
||||
*/
|
||||
@Repository
|
||||
public class TenantRepository {
|
||||
private final IamTenantMapper tenantMapper;
|
||||
private final IamTenantReviewMapper reviewMapper;
|
||||
|
||||
public TenantRepository(IamTenantMapper tenantMapper, IamTenantReviewMapper reviewMapper) {
|
||||
this.tenantMapper = tenantMapper;
|
||||
this.reviewMapper = reviewMapper;
|
||||
}
|
||||
@Resource
|
||||
private IamTenantMapper tenantMapper;
|
||||
@Resource
|
||||
private IamTenantReviewMapper reviewMapper;
|
||||
|
||||
public boolean existsByCreditCode(String creditCode) {
|
||||
return tenantMapper.selectCount(new LambdaQueryWrapper<IamTenant>()
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.baiyue.common.core.export.ExportContracts.ExportColumn;
|
||||
import com.baiyue.common.core.export.ExportContracts.ExportColumnType;
|
||||
import com.baiyue.iam.entity.IamTenant;
|
||||
import com.baiyue.iam.repository.CustomerListExportProviderRepository;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -54,13 +56,14 @@ public class CustomerListExportProviderService {
|
||||
column("approvedAt", "审批时间", ExportColumnType.DATETIME, 21));
|
||||
private static final String SCHEMA_HASH = schemaHash(COLUMNS);
|
||||
|
||||
private final CustomerListExportProviderRepository repository;
|
||||
private final byte[] snapshotSigningKey;
|
||||
@Resource
|
||||
private CustomerListExportProviderRepository repository;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalServiceToken;
|
||||
private byte[] snapshotSigningKey;
|
||||
|
||||
public CustomerListExportProviderService(
|
||||
CustomerListExportProviderRepository repository,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalServiceToken) {
|
||||
this.repository = repository;
|
||||
@PostConstruct
|
||||
void initializeSigningKey() {
|
||||
this.snapshotSigningKey = internalServiceToken.getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.baiyue.iam.mapper.IamRoleMapper;
|
||||
import com.baiyue.iam.repository.MemberRepository;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import feign.FeignException;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -29,18 +30,14 @@ import org.slf4j.LoggerFactory;
|
||||
public class MemberService {
|
||||
private static final String GRANT_ROLE_PERMISSION = "merchant:member:grant-role";
|
||||
private static final Logger log = LoggerFactory.getLogger(MemberService.class);
|
||||
private final MemberRepository repository;
|
||||
private final IamRoleMapper roleMapper;
|
||||
private final AuthAccountClient authClient;
|
||||
private final String internalToken;
|
||||
|
||||
public MemberService(MemberRepository repository, IamRoleMapper roleMapper, AuthAccountClient authClient,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalToken) {
|
||||
this.repository = repository;
|
||||
this.roleMapper = roleMapper;
|
||||
this.authClient = authClient;
|
||||
this.internalToken = internalToken;
|
||||
}
|
||||
@Resource
|
||||
private MemberRepository repository;
|
||||
@Resource
|
||||
private IamRoleMapper roleMapper;
|
||||
@Resource
|
||||
private AuthAccountClient authClient;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalToken;
|
||||
|
||||
public List<MemberResponse> list(long tenantId) {
|
||||
return repository.findByTenant(tenantId).stream().map(m -> response(tenantId, m)).toList();
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baiyue.iam.dto.ProfileDtos.UpdatePersonalProfileRequest;
|
||||
import com.baiyue.iam.entity.IamMembership;
|
||||
import com.baiyue.iam.entity.IamUser;
|
||||
import com.baiyue.iam.repository.MemberRepository;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.baiyue.common.audit.BusinessAudit;
|
||||
@@ -14,8 +15,8 @@ import com.baiyue.common.audit.BusinessAudit;
|
||||
/** 当前用户个人资料服务,必须同时匹配认证账号与当前租户成员关系。 */
|
||||
@Service
|
||||
public class PersonalProfileService {
|
||||
private final MemberRepository repository;
|
||||
public PersonalProfileService(MemberRepository repository) { this.repository = repository; }
|
||||
@Resource
|
||||
private MemberRepository repository;
|
||||
|
||||
public PersonalProfileResponse get(long tenantId, Long authUserId, String username) {
|
||||
return response(tenantId, authUserId, username);
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.baiyue.iam.mapper.IamRoleMapper;
|
||||
import com.baiyue.iam.repository.MemberRepository;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import feign.FeignException;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -31,19 +32,14 @@ public class PlatformInternalUserService {
|
||||
private static final long PLATFORM_TENANT_ID = 0L;
|
||||
private static final Logger log = LoggerFactory.getLogger(PlatformInternalUserService.class);
|
||||
|
||||
private final MemberRepository repository;
|
||||
private final IamRoleMapper roleMapper;
|
||||
private final AuthAccountClient authClient;
|
||||
private final String internalToken;
|
||||
|
||||
public PlatformInternalUserService(MemberRepository repository, IamRoleMapper roleMapper,
|
||||
AuthAccountClient authClient,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalToken) {
|
||||
this.repository = repository;
|
||||
this.roleMapper = roleMapper;
|
||||
this.authClient = authClient;
|
||||
this.internalToken = internalToken;
|
||||
}
|
||||
@Resource
|
||||
private MemberRepository repository;
|
||||
@Resource
|
||||
private IamRoleMapper roleMapper;
|
||||
@Resource
|
||||
private AuthAccountClient authClient;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalToken;
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public List<InternalUserResponse> list() {
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baiyue.iam.repository.MemberRepository;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import feign.FeignException;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -36,19 +37,14 @@ public class PlatformUserManagementService {
|
||||
private static final long PLATFORM_TENANT_ID = 0L;
|
||||
private static final Logger log = LoggerFactory.getLogger(PlatformUserManagementService.class);
|
||||
|
||||
private final MemberRepository members;
|
||||
private final IamRoleMapper roleMapper;
|
||||
private final AuthAccountClient authClient;
|
||||
private final String internalToken;
|
||||
|
||||
public PlatformUserManagementService(MemberRepository members, IamRoleMapper roleMapper,
|
||||
AuthAccountClient authClient,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalToken) {
|
||||
this.members = members;
|
||||
this.roleMapper = roleMapper;
|
||||
this.authClient = authClient;
|
||||
this.internalToken = internalToken;
|
||||
}
|
||||
@Resource
|
||||
private MemberRepository members;
|
||||
@Resource
|
||||
private IamRoleMapper roleMapper;
|
||||
@Resource
|
||||
private AuthAccountClient authClient;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalToken;
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public PageResult<UserResponse> page(long page, long size, String keyword, String status) {
|
||||
|
||||
+10
-23
@@ -13,9 +13,9 @@ import com.baiyue.iam.repository.MemberRepository;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import feign.FeignException;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -37,28 +37,15 @@ public class TenantAdministratorProvisioningService implements TenantApprovalIni
|
||||
private static final int USERNAME_SUFFIX_LENGTH = 8;
|
||||
private static final int USERNAME_ATTEMPTS = 3;
|
||||
|
||||
private final MemberRepository members;
|
||||
private final IamRoleMapper roles;
|
||||
private final AuthAccountClient authClient;
|
||||
private final String internalToken;
|
||||
private final SecureRandom random;
|
||||
|
||||
@Autowired
|
||||
public TenantAdministratorProvisioningService(MemberRepository members, IamRoleMapper roles,
|
||||
AuthAccountClient authClient,
|
||||
@Value("${baiyue.security.internal-service-token}") String internalToken) {
|
||||
this(members, roles, authClient, internalToken, new SecureRandom());
|
||||
}
|
||||
|
||||
TenantAdministratorProvisioningService(MemberRepository members, IamRoleMapper roles,
|
||||
AuthAccountClient authClient, String internalToken,
|
||||
SecureRandom random) {
|
||||
this.members = members;
|
||||
this.roles = roles;
|
||||
this.authClient = authClient;
|
||||
this.internalToken = internalToken;
|
||||
this.random = random;
|
||||
}
|
||||
@Resource
|
||||
private MemberRepository members;
|
||||
@Resource
|
||||
private IamRoleMapper roles;
|
||||
@Resource
|
||||
private AuthAccountClient authClient;
|
||||
@Value("${baiyue.security.internal-service-token}")
|
||||
private String internalToken;
|
||||
private SecureRandom random = new SecureRandom();
|
||||
|
||||
@Override
|
||||
public String name() { return "tenant-administrator"; }
|
||||
|
||||
+6
-2
@@ -8,6 +8,8 @@ import org.springframework.core.annotation.AnnotationAwareOrderComparator;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.support.TransactionSynchronization;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -21,9 +23,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@Service
|
||||
public class TenantApprovalInitializationCoordinator {
|
||||
private static final Logger log = LoggerFactory.getLogger(TenantApprovalInitializationCoordinator.class);
|
||||
private final List<TenantApprovalInitializer> initializers;
|
||||
@Resource
|
||||
private List<TenantApprovalInitializer> initializers;
|
||||
|
||||
public TenantApprovalInitializationCoordinator(List<TenantApprovalInitializer> initializers) {
|
||||
@PostConstruct
|
||||
void initialize() {
|
||||
List<TenantApprovalInitializer> ordered = new ArrayList<>(initializers);
|
||||
AnnotationAwareOrderComparator.sort(ordered);
|
||||
Set<String> names = new HashSet<>();
|
||||
|
||||
@@ -38,6 +38,6 @@ logging:
|
||||
rollingpolicy:
|
||||
file-name-pattern: "${LOGGING_ROLLING_FILE_NAME_PATTERN:${LOG_PATH:./logs}/${spring.application.name}.%d{yyyy-MM-dd}.%i.log.gz}"
|
||||
max-file-size: "${LOGGING_ROLLING_MAX_FILE_SIZE:100MB}"
|
||||
max-history: "${LOGGING_ROLLING_MAX_HISTORY:30}"
|
||||
max-history: "${LOGGING_ROLLING_MAX_HISTORY:7}"
|
||||
total-size-cap: "${LOGGING_ROLLING_TOTAL_SIZE_CAP:5GB}"
|
||||
clean-history-on-start: "${LOGGING_ROLLING_CLEAN_HISTORY_ON_START:false}"
|
||||
|
||||
Reference in New Issue
Block a user