添加应用功能优化

pull/45/head
shao1121353141 2023-09-09 00:11:54 +08:00
parent e976af0188
commit 7a5bd096dd
12 changed files with 53 additions and 38 deletions

View File

@ -17,6 +17,8 @@
*/
package cn.topiam.employee.application;
import cn.topiam.employee.common.entity.app.AppGroupAssociationEntity;
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.util.AlternativeJdkIdGenerator;
import org.springframework.util.IdGenerator;
@ -33,6 +35,9 @@ import cn.topiam.employee.common.repository.app.AppRepository;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
/**
* AbstractApplicationService
*
@ -55,7 +60,7 @@ public abstract class AbstractApplicationService implements ApplicationService {
}
@Override
public AppEntity createApp(String name, String icon, String remark, Long groupId,
public AppEntity createApp(String name, String icon, String remark, Long[] groupId,
InitLoginType initLoginType, AuthorizationType authorizationType) {
AppEntity appEntity = new AppEntity();
appEntity.setName(name);
@ -70,28 +75,44 @@ public abstract class AbstractApplicationService implements ApplicationService {
appEntity.setInitLoginType(initLoginType);
appEntity.setAuthorizationType(authorizationType);
appEntity.setRemark(remark);
return appRepository.save(appEntity);
appRepository.save(appEntity);
List<AppGroupAssociationEntity> list = new ArrayList<>();
for (Long id : groupId) {
AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity();
appGroupAssociationEntity.setGroupId(id);
appGroupAssociationEntity.setAppId(appEntity.getId());
list.add(appGroupAssociationEntity);
}
appGroupAssociationRepository.saveAll(list);
return appEntity;
}
/**
* AppAccountRepository
*/
protected final AppAccountRepository appAccountRepository;
protected final AppAccountRepository appAccountRepository;
/**
* AppGroupAssociationRepository
*/
protected final AppGroupAssociationRepository appGroupAssociationRepository;
/**
* ApplicationRepository
*/
protected final AppRepository appRepository;
protected final AppRepository appRepository;
/**
* IdGenerator
*/
protected final IdGenerator idGenerator;
protected final IdGenerator idGenerator;
protected AbstractApplicationService(AppAccountRepository appAccountRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppRepository appRepository) {
this.appAccountRepository = appAccountRepository;
this.appRepository = appRepository;
this.appGroupAssociationRepository = appGroupAssociationRepository;
this.idGenerator = new AlternativeJdkIdGenerator();
}
}

View File

@ -22,6 +22,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import cn.topiam.employee.common.repository.app.*;
import org.bouncycastle.asn1.x500.X500Name;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -32,10 +33,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import cn.topiam.employee.common.entity.app.AppCertEntity;
import cn.topiam.employee.common.enums.app.AppCertUsingType;
import cn.topiam.employee.common.repository.app.AppAccessPolicyRepository;
import cn.topiam.employee.common.repository.app.AppAccountRepository;
import cn.topiam.employee.common.repository.app.AppCertRepository;
import cn.topiam.employee.common.repository.app.AppRepository;
import cn.topiam.employee.support.exception.TopIamException;
import cn.topiam.employee.support.util.CertUtils;
import cn.topiam.employee.support.util.RsaUtils;
@ -128,8 +125,9 @@ public abstract class AbstractCertificateApplicationService extends AbstractAppl
protected AbstractCertificateApplicationService(AppCertRepository appCertRepository,
AppAccountRepository appAccountRepository,
AppAccessPolicyRepository appAccessPolicyRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppRepository appRepository) {
super(appAccountRepository, appRepository);
super(appAccountRepository, appGroupAssociationRepository, appRepository);
this.appCertRepository = appCertRepository;
this.appAccessPolicyRepository = appAccessPolicyRepository;
this.idGenerator = new AlternativeJdkIdGenerator();

View File

@ -96,7 +96,7 @@ public interface ApplicationService {
* @return {@link Long} ID
*/
@Transactional(rollbackFor = Exception.class)
String create(String name, String icon, String remark, Long groupId);
String create(String name, String icon, String remark, Long[] groupId);
/**
*
@ -142,6 +142,6 @@ public interface ApplicationService {
* @param authorizationType {@link AuthorizationType}
* @return {@link AppEntity}
*/
AppEntity createApp(String name, String icon, String remark, Long groupId,
AppEntity createApp(String name, String icon, String remark, Long[] groupId,
InitLoginType initLoginType, AuthorizationType authorizationType);
}

View File

@ -26,6 +26,7 @@ import cn.topiam.employee.common.entity.app.AppFormConfigEntity;
import cn.topiam.employee.common.entity.app.po.AppFormConfigPO;
import cn.topiam.employee.common.repository.app.AppAccountRepository;
import cn.topiam.employee.common.repository.app.AppFormConfigRepository;
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
import cn.topiam.employee.common.repository.app.AppRepository;
/**
@ -83,8 +84,9 @@ public abstract class AbstractFormApplicationService extends AbstractApplication
protected AbstractFormApplicationService(AppRepository appRepository,
AppAccountRepository appAccountRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppFormConfigRepository appFormConfigRepository) {
super(appAccountRepository, appRepository);
super(appAccountRepository, appGroupAssociationRepository, appRepository);
this.appFormConfigRepository = appFormConfigRepository;
}
}

View File

@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -199,7 +200,7 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS
* @param groupId {@link Long} id
*/
@Override
public String create(String name, String icon, String remark, Long groupId) {
public String create(String name, String icon, String remark, Long[] groupId) {
//1、创建应用
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP,
AuthorizationType.AUTHORIZATION);
@ -216,8 +217,10 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS
protected FormStandardApplicationServiceImpl(AppAccountRepository appAccountRepository,
AppFormConfigRepository appFormConfigRepository,
AppRepository appRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppFormConfigConverter appFormConfigConverter) {
super(appRepository, appAccountRepository, appFormConfigRepository);
super(appRepository, appAccountRepository, appGroupAssociationRepository,
appFormConfigRepository);
this.appFormConfigConverter = appFormConfigConverter;
}

View File

@ -102,8 +102,10 @@ public abstract class AbstractJwtCertificateApplicationService extends
AppCertRepository appCertRepository,
AppRepository appRepository,
AppAccountRepository appAccountRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppAccessPolicyRepository appAccessPolicyRepository) {
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository);
super(appCertRepository, appAccountRepository, appAccessPolicyRepository,
appGroupAssociationRepository, appRepository);
this.appCertRepository = appCertRepository;
this.appRepository = appRepository;
this.appJwtConfigRepository = appJwtConfigRepository;

View File

@ -204,7 +204,7 @@ public class JwtStandardCertificateApplicationServiceImpl extends
* @param groupId {@link Long} id
*/
@Override
public String create(String name, String icon, String remark, Long groupId) {
public String create(String name, String icon, String remark, Long[] groupId) {
//1、创建应用
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP,
AuthorizationType.AUTHORIZATION);
@ -229,9 +229,10 @@ public class JwtStandardCertificateApplicationServiceImpl extends
AppCertRepository appCertRepository,
AppRepository appRepository,
AppAccountRepository appAccountRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppAccessPolicyRepository appAccessPolicyRepository) {
super(appJwtConfigRepository, appCertRepository, appRepository, appAccountRepository,
appAccessPolicyRepository);
appGroupAssociationRepository, appAccessPolicyRepository);
this.appJwtConfigConverter = appJwtConfigConverter;
}
}

View File

@ -137,8 +137,10 @@ public abstract class AbstractOidcCertificateApplicationService extends
AppAccountRepository appAccountRepository,
AppAccessPolicyRepository appAccessPolicyRepository,
AppRepository appRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppOidcConfigRepository appOidcConfigRepository) {
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository);
super(appCertRepository, appAccountRepository, appAccessPolicyRepository,
appGroupAssociationRepository, appRepository);
this.appCertRepository = appCertRepository;
this.appRepository = appRepository;
this.appOidcConfigRepository = appOidcConfigRepository;

View File

@ -78,7 +78,7 @@ public class OidcStandardCertificateApplicationServiceImpl extends
* @param groupId {@link Long} id
*/
@Override
public String create(String name, String icon, String remark, Long groupId) {
public String create(String name, String icon, String remark, Long[] groupId) {
//1、创建应用
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.APP,
AuthorizationType.AUTHORIZATION);
@ -275,9 +275,10 @@ public class OidcStandardCertificateApplicationServiceImpl extends
AppAccessPolicyRepository appAccessPolicyRepository,
AppRepository appRepository,
AppOidcConfigRepository appOidcConfigRepository,
AppGroupAssociationRepository appGroupAssociationRepository,
AppOidcStandardConfigConverter appOidcStandardConfigConverter) {
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository,
appOidcConfigRepository);
appGroupAssociationRepository, appOidcConfigRepository);
this.appOidcStandardConfigConverter = appOidcStandardConfigConverter;
}
}

View File

@ -64,6 +64,6 @@ public class AppCreateParam implements Serializable {
/**
* id
*/
@Schema(description = "应用分组id")
private Long groupId;
@Schema(description = "应用分组ID")
private Long[] groupId;
}

View File

@ -54,11 +54,4 @@ public class AppGroupCreateParam implements Serializable {
*/
@Schema(description = "备注")
private String remark;
/**
* ID
*/
@Parameter(description = "应用分组ID")
private String[] groupId;
}

View File

@ -94,14 +94,6 @@ public class AppGroupServiceImpl implements AppGroupService {
public Boolean createAppGroup(AppGroupCreateParam param) {
AppGroupEntity entity = appGroupConverter.appGroupCreateParamConvertToEntity(param);
appGroupRepository.save(entity);
List<AppGroupAssociationEntity> list = new ArrayList<>();
for (String groupId : param.getGroupId()) {
AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity();
appGroupAssociationEntity.setGroupId(Long.valueOf(groupId));
appGroupAssociationEntity.setAppId(entity.getId());
list.add(appGroupAssociationEntity);
}
appGroupAssociationRepository.saveAll(list);
AuditContext.setTarget(
Target.builder().id(String.valueOf(entity.getId())).type(TargetType.APP_GROUP).build());
return true;