大声道撒旦

This commit is contained in:
dengqichen 2024-12-26 15:59:20 +08:00
parent 656413d3f7
commit ed7f012142
44 changed files with 189 additions and 124 deletions

View File

@ -27,9 +27,9 @@ public class ProjectGroupDTO extends BaseDTO {
private String projectGroupDesc; private String projectGroupDesc;
private List<EnvironmentDTO> environments; private Integer totalEnvironments;
private List<ApplicationDTO> applications; private Integer totalApplications;
private Boolean enabled; private Boolean enabled;

View File

@ -66,13 +66,7 @@ public class Application extends Entity<Long> {
@Column(name = "sort", nullable = false) @Column(name = "sort", nullable = false)
private Integer sort; private Integer sort;
// /** @Column(name = "project_group_id", nullable = false)
// * 所属项目ID private Long projectGroupId;
// */
// @Column(name = "project_group_id", nullable = false)
// private Long projectGroupId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_group_id")
private ProjectGroup projectGroup;
} }

View File

@ -63,9 +63,4 @@ public class Environment extends Entity<Long> {
@Column(name = "sort", nullable = false) @Column(name = "sort", nullable = false)
private Integer sort; private Integer sort;
/**
* 关联的项目组列表
*/
@ManyToMany(mappedBy = "environments")
private List<ProjectGroup> projectGroups = new ArrayList<>();
} }

View File

@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.system.entity.User;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where; import org.hibernate.annotations.Where;
@ -67,17 +68,4 @@ public class ProjectGroup extends Entity<Long> {
@Column(name = "sort", nullable = false) @Column(name = "sort", nullable = false)
private Integer sort; private Integer sort;
/**
* 关联的环境列表
*/
@ManyToMany
@JoinTable(
name = "deploy_project_group_environment",
joinColumns = @JoinColumn(name = "project_group_id"),
inverseJoinColumns = @JoinColumn(name = "environment_id")
)
private List<Environment> environments = new ArrayList<>();
@OneToMany(mappedBy = "projectGroup", fetch = FetchType.LAZY)
private Set<Application> applications = new HashSet<>();
} }

View File

@ -1,34 +1,24 @@
//package com.qqchen.deploy.backend.deploy.entity; package com.qqchen.deploy.backend.deploy.entity;
//
//import com.qqchen.deploy.backend.framework.domain.Entity; import com.qqchen.deploy.backend.framework.domain.Entity;
//import jakarta.persistence.Column; import jakarta.persistence.Column;
//import jakarta.persistence.JoinColumn; import jakarta.persistence.Table;
//import jakarta.persistence.ManyToOne; import lombok.Data;
//import jakarta.persistence.Table; import lombok.EqualsAndHashCode;
//import lombok.Data;
//import lombok.EqualsAndHashCode; /**
// * 项目环境关联实体
///** */
// * 项目环境关联实体 @Data
// */ @EqualsAndHashCode(callSuper = true)
//@Data @jakarta.persistence.Entity
//@EqualsAndHashCode(callSuper = true) @Table(name = "deploy_project_group_environment")
//@jakarta.persistence.Entity public class ProjectGroupEnvironment extends Entity<Long> {
//@Table(name = "deploy_project_group_environment")
//public class ProjectGroupEnvironment extends Entity<Long> { @Column(name = "project_group_id")
// private Long projectGroupId;
// /**
// * 项目ID @Column(name = "environment_id")
// */ private Long environmentId;
// @ManyToOne
// @JoinColumn(name = "project_group_id", nullable = false) }
// private ProjectGroup projectGroup;
//
// /**
// * 环境ID
// */
// @ManyToOne
// @JoinColumn(name = "environment_id", nullable = false)
// private Environment environment;
//
//}

View File

@ -4,7 +4,10 @@ import com.qqchen.deploy.backend.deploy.entity.Application;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface IApplicationRepository extends IBaseRepository<Application, Long> { public interface IApplicationRepository extends IBaseRepository<Application, Long> {
Integer countByProjectGroupId(Long projectGroupId);
} }

View File

@ -2,11 +2,29 @@ package com.qqchen.deploy.backend.deploy.repository;
import com.qqchen.deploy.backend.deploy.entity.Environment; import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 环境数据访问接口 * 环境数据访问接口
*/ */
@Repository @Repository
public interface IEnvironmentRepository extends IBaseRepository<Environment, Long> { public interface IEnvironmentRepository extends IBaseRepository<Environment, Long> {
@Query(value = "SELECT e.* FROM deploy_environment e " +
"INNER JOIN deploy_project_group_environment pge ON e.id = pge.environment_id " +
"WHERE pge.project_group_id = :projectGroupId",
nativeQuery = true)
List<Environment> findByProjectGroupId(@Param("projectGroupId") Long projectGroupId);
@Query(value = "SELECT COUNT(*) FROM deploy_environment e " +
"INNER JOIN deploy_project_group_environment pge ON e.id = pge.environment_id " +
"WHERE pge.project_group_id = :projectGroupId",
nativeQuery = true)
Integer countByProjectGroupId(@Param("projectGroupId") Long projectGroupId);
} }

View File

@ -2,8 +2,15 @@ package com.qqchen.deploy.backend.deploy.repository;
import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.entity.ProjectGroup;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import com.querydsl.core.types.Predicate;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface IProjectGroupRepository extends IBaseRepository<ProjectGroup, Long> { public interface IProjectGroupRepository extends IBaseRepository<ProjectGroup, Long> {
} }

View File

@ -2,7 +2,8 @@ package com.qqchen.deploy.backend.deploy.service;
import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO; import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO;
import com.qqchen.deploy.backend.deploy.entity.Application; import com.qqchen.deploy.backend.deploy.entity.Application;
import com.qqchen.deploy.backend.deploy.query.ApplicationQuery;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
public interface IApplicationService extends IBaseService<Application, ApplicationDTO, Long> { public interface IApplicationService extends IBaseService<Application, ApplicationDTO, ApplicationQuery, Long> {
} }

View File

@ -2,6 +2,7 @@ package com.qqchen.deploy.backend.deploy.service;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO; import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment; import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.deploy.query.EnvironmentQuery;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import java.util.List; import java.util.List;
@ -9,7 +10,7 @@ import java.util.List;
/** /**
* 环境服务接口 * 环境服务接口
*/ */
public interface IEnvironmentService extends IBaseService<Environment, EnvironmentDTO, Long> { public interface IEnvironmentService extends IBaseService<Environment, EnvironmentDTO, EnvironmentQuery, Long> {
/** /**
* 获取项目的环境列表 * 获取项目的环境列表

View File

@ -3,8 +3,9 @@ package com.qqchen.deploy.backend.deploy.service;
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem; import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.ExternalSystemDTO; import com.qqchen.deploy.backend.system.model.ExternalSystemDTO;
import com.qqchen.deploy.backend.system.model.query.ExternalSystemQuery;
public interface IExternalSystemService extends IBaseService<ExternalSystem, ExternalSystemDTO, Long> { public interface IExternalSystemService extends IBaseService<ExternalSystem, ExternalSystemDTO, ExternalSystemQuery, Long> {
/** /**
* 测试连接 * 测试连接

View File

@ -2,7 +2,11 @@ package com.qqchen.deploy.backend.deploy.service;
import com.qqchen.deploy.backend.deploy.dto.ProjectGroupDTO; import com.qqchen.deploy.backend.deploy.dto.ProjectGroupDTO;
import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.entity.ProjectGroup;
import com.qqchen.deploy.backend.deploy.query.ProjectGroupQuery;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import org.springframework.data.domain.Page;
public interface IProjectGroupService extends IBaseService<ProjectGroup, ProjectGroupDTO, Long> { public interface IProjectGroupService extends IBaseService<ProjectGroup, ProjectGroupDTO, ProjectGroupQuery, Long> {
Page<ProjectGroupDTO> page(ProjectGroupQuery query);
} }

View File

@ -2,11 +2,12 @@ package com.qqchen.deploy.backend.deploy.service.impl;
import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO; import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO;
import com.qqchen.deploy.backend.deploy.entity.Application; import com.qqchen.deploy.backend.deploy.entity.Application;
import com.qqchen.deploy.backend.deploy.query.ApplicationQuery;
import com.qqchen.deploy.backend.deploy.service.IApplicationService; import com.qqchen.deploy.backend.deploy.service.IApplicationService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public class ApplicationServiceImpl extends BaseServiceImpl<Application, ApplicationDTO, Long> implements IApplicationService { public class ApplicationServiceImpl extends BaseServiceImpl<Application, ApplicationDTO, ApplicationQuery, Long> implements IApplicationService {
} }

View File

@ -4,6 +4,7 @@ import com.qqchen.deploy.backend.deploy.converter.EnvironmentConverter;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO; import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment; import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.deploy.entity.QEnvironment; import com.qqchen.deploy.backend.deploy.entity.QEnvironment;
import com.qqchen.deploy.backend.deploy.query.EnvironmentQuery;
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository; import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
import com.qqchen.deploy.backend.deploy.service.IEnvironmentService; import com.qqchen.deploy.backend.deploy.service.IEnvironmentService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
@ -20,7 +21,7 @@ import java.util.stream.Collectors;
* 环境服务实现类 * 环境服务实现类
*/ */
@Service @Service
public class EnvironmentServiceImpl extends BaseServiceImpl<Environment, EnvironmentDTO, Long> implements IEnvironmentService { public class EnvironmentServiceImpl extends BaseServiceImpl<Environment, EnvironmentDTO, EnvironmentQuery, Long> implements IEnvironmentService {
@Resource @Resource
private IEnvironmentRepository environmentRepository; private IEnvironmentRepository environmentRepository;

View File

@ -13,6 +13,7 @@ import com.qqchen.deploy.backend.deploy.integration.IExternalSystemIntegration;
import com.qqchen.deploy.backend.system.model.ExternalSystemDTO; import com.qqchen.deploy.backend.system.model.ExternalSystemDTO;
import com.qqchen.deploy.backend.deploy.repository.IExternalSystemRepository; import com.qqchen.deploy.backend.deploy.repository.IExternalSystemRepository;
import com.qqchen.deploy.backend.deploy.service.IExternalSystemService; import com.qqchen.deploy.backend.deploy.service.IExternalSystemService;
import com.qqchen.deploy.backend.system.model.query.ExternalSystemQuery;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -41,8 +42,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class ExternalSystemServiceImpl extends BaseServiceImpl<ExternalSystem, ExternalSystemDTO, Long> public class ExternalSystemServiceImpl extends BaseServiceImpl<ExternalSystem, ExternalSystemDTO, ExternalSystemQuery, Long> implements IExternalSystemService {
implements IExternalSystemService {
@Resource @Resource
private IExternalSystemRepository externalSystemRepository; private IExternalSystemRepository externalSystemRepository;

View File

@ -1,15 +1,51 @@
package com.qqchen.deploy.backend.deploy.service.impl; package com.qqchen.deploy.backend.deploy.service.impl;
import com.qqchen.deploy.backend.deploy.dto.ProjectGroupDTO; import com.qqchen.deploy.backend.deploy.dto.ProjectGroupDTO;
import com.qqchen.deploy.backend.deploy.entity.Application;
import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.entity.ProjectGroup;
import com.qqchen.deploy.backend.deploy.query.ProjectGroupQuery;
import com.qqchen.deploy.backend.deploy.repository.IApplicationRepository;
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
import com.qqchen.deploy.backend.deploy.repository.IProjectGroupRepository;
import com.qqchen.deploy.backend.deploy.service.IEnvironmentService;
import com.qqchen.deploy.backend.deploy.service.IProjectGroupService; import com.qqchen.deploy.backend.deploy.service.IProjectGroupService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import jakarta.annotation.Resource;
import jakarta.persistence.Query; import jakarta.persistence.Query;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static java.util.stream.Collectors.toList;
@Service @Service
public class ProjectGroupServiceImpl extends BaseServiceImpl<ProjectGroup, ProjectGroupDTO, Long> implements IProjectGroupService { public class ProjectGroupServiceImpl extends BaseServiceImpl<ProjectGroup, ProjectGroupDTO, ProjectGroupQuery, Long> implements IProjectGroupService {
@Resource
private IProjectGroupRepository projectGroupRepository;
@Resource
private IApplicationRepository applicationRepository;
@Resource
private IEnvironmentRepository environmentRepository;
@Override
public Page<ProjectGroupDTO> page(ProjectGroupQuery query) {
Page<ProjectGroupDTO> page = super.page(query);
List<ProjectGroupDTO> result = page.getContent().stream().map(projectGroupDTO -> {
projectGroupDTO.setTotalApplications(applicationRepository.countByProjectGroupId(projectGroupDTO.getId()));
projectGroupDTO.setTotalEnvironments(environmentRepository.countByProjectGroupId(projectGroupDTO.getId()));
return projectGroupDTO;
}).collect(toList());
return new PageImpl<>(result, page.getPageable(), page.getTotalElements());
}
@Override @Override
@Transactional @Transactional

View File

@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.framework.dto.BaseDTO;
import com.qqchen.deploy.backend.framework.enums.ResponseCode; import com.qqchen.deploy.backend.framework.enums.ResponseCode;
import com.qqchen.deploy.backend.framework.exception.BusinessException; import com.qqchen.deploy.backend.framework.exception.BusinessException;
import com.qqchen.deploy.backend.framework.exception.DependencyInjectionException; import com.qqchen.deploy.backend.framework.exception.DependencyInjectionException;
import com.qqchen.deploy.backend.framework.query.BaseQuery;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
@ -34,7 +35,7 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
private final ApplicationContext applicationContext; private final ApplicationContext applicationContext;
private final Map<Class<?>, IBaseService<?, ?, ?>> serviceCache = new ConcurrentHashMap<>(); private final Map<Class<?>, IBaseService<?, ?, ?, ?>> serviceCache = new ConcurrentHashMap<>();
private final Map<Class<?>, IBaseRepository<?, ?>> repositoryCache = new ConcurrentHashMap<>(); private final Map<Class<?>, IBaseRepository<?, ?>> repositoryCache = new ConcurrentHashMap<>();
@ -52,7 +53,7 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
if (bean instanceof BaseController<?, ?, ?, ?> controller) { if (bean instanceof BaseController<?, ?, ?, ?> controller) {
return injectControllerDependencies(controller, beanName); return injectControllerDependencies(controller, beanName);
} }
if (bean instanceof BaseServiceImpl<?, ?, ?> service) { if (bean instanceof BaseServiceImpl<?, ?, ?, ?> service) {
return injectServiceDependencies(service, beanName); return injectServiceDependencies(service, beanName);
} }
} catch (Exception e) { } catch (Exception e) {
@ -65,20 +66,20 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
} }
// Controller 依赖注入相关方法 // Controller 依赖注入相关方法
private <T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> private <T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable>
Object injectControllerDependencies(BaseController<T, D, ID, ?> controller, String beanName) { Object injectControllerDependencies(BaseController<T, D, ID, ?> controller, String beanName) {
Class<T> entityClass = resolveEntityClass(controller); Class<T> entityClass = resolveEntityClass(controller);
if (entityClass == null) { if (entityClass == null) {
return controller; return controller;
} }
IBaseService<?, ?, ?> cachedService = serviceCache.computeIfAbsent( IBaseService<?, ?, ?, ?> cachedService = serviceCache.computeIfAbsent(
entityClass, entityClass,
key -> findServiceForEntity(entityClass, beanName) key -> findServiceForEntity(entityClass, beanName)
); );
try { try {
IBaseService<T, D, ID> service = (IBaseService<T, D, ID>) cachedService; IBaseService<T, D, Q, ID> service = (IBaseService<T, D, Q, ID>) cachedService;
ReflectionUtils.setField("service", controller, service); ReflectionUtils.setField("service", controller, service);
log.debug("Successfully injected service {} for controller {}", log.debug("Successfully injected service {} for controller {}",
service.getClass().getSimpleName(), service.getClass().getSimpleName(),
@ -94,12 +95,12 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T extends Entity<ID>, ID extends Serializable> private <T extends Entity<ID>, ID extends Serializable>
IBaseService<?, ?, ?> findServiceForEntity(Class<T> entityClass, String controllerName) { IBaseService<?, ?, ?, ?> findServiceForEntity(Class<T> entityClass, String controllerName) {
String serviceBeanName = "i" + entityClass.getSimpleName() + "Service"; String serviceBeanName = "i" + entityClass.getSimpleName() + "Service";
log.debug("Looking for service bean: {}", serviceBeanName); log.debug("Looking for service bean: {}", serviceBeanName);
if (applicationContext.containsBean(serviceBeanName)) { if (applicationContext.containsBean(serviceBeanName)) {
return (IBaseService<?, ?, ?>) applicationContext.getBean(serviceBeanName); return (IBaseService<?, ?, ?, ?>) applicationContext.getBean(serviceBeanName);
} }
return Arrays.stream(applicationContext.getBeanNamesForType(IBaseService.class)) return Arrays.stream(applicationContext.getBeanNamesForType(IBaseService.class))
@ -113,7 +114,7 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T extends Entity<ID>, ID extends Serializable> private <T extends Entity<ID>, ID extends Serializable>
IBaseService<?, ?, ?> tryGetService(String beanName, Class<T> entityClass, String controllerName) { IBaseService<?, ?, ?, ?> tryGetService(String beanName, Class<T> entityClass, String controllerName) {
try { try {
Class<?> serviceClass = applicationContext.getType(beanName); Class<?> serviceClass = applicationContext.getType(beanName);
if (serviceClass == null) { if (serviceClass == null) {
@ -127,7 +128,7 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
serviceGenericTypes.length > 0 && serviceGenericTypes.length > 0 &&
entityClass.equals(serviceGenericTypes[0])) { entityClass.equals(serviceGenericTypes[0])) {
log.debug("Found matching service: {} for entity: {}", beanName, entityClass.getSimpleName()); log.debug("Found matching service: {} for entity: {}", beanName, entityClass.getSimpleName());
return (IBaseService<?, ?, ?>) applicationContext.getBean(beanName); return (IBaseService<?, ?, ?, ?>) applicationContext.getBean(beanName);
} }
} catch (Exception e) { } catch (Exception e) {
log.warn("Failed to analyze service bean: {} for controller: {}", beanName, controllerName, e); log.warn("Failed to analyze service bean: {} for controller: {}", beanName, controllerName, e);
@ -136,8 +137,8 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
} }
// Service 依赖注入相关方法 // Service 依赖注入相关方法
private <T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> private <T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable>
Object injectServiceDependencies(BaseServiceImpl<T, D, ID> service, String beanName) { Object injectServiceDependencies(BaseServiceImpl<T, D, Q, ID> service, String beanName) {
Class<T> entityClass = resolveEntityClass(service); Class<T> entityClass = resolveEntityClass(service);
log.debug("Resolving dependencies for entity: {}", entityClass.getSimpleName()); log.debug("Resolving dependencies for entity: {}", entityClass.getSimpleName());
@ -180,8 +181,8 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
// 辅助方法用于注入具体的依赖 // 辅助方法用于注入具体的依赖
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> private <T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable>
void injectRepository(BaseServiceImpl<T, D, ID> service, Class<T> entityClass) { void injectRepository(BaseServiceImpl<T, D, Q, ID> service, Class<T> entityClass) {
String repositoryBeanName = "I" + entityClass.getSimpleName() + "Repository"; String repositoryBeanName = "I" + entityClass.getSimpleName() + "Repository";
log.debug("正在查找 Repository: {}", repositoryBeanName); log.debug("正在查找 Repository: {}", repositoryBeanName);
@ -207,8 +208,8 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> private <T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable>
void injectConverter(BaseServiceImpl<T, D, ID> service, Class<T> entityClass) { void injectConverter(BaseServiceImpl<T, D, Q, ID> service, Class<T> entityClass) {
String converterBeanName = entityClass.getSimpleName().substring(0, 1).toLowerCase() String converterBeanName = entityClass.getSimpleName().substring(0, 1).toLowerCase()
+ entityClass.getSimpleName().substring(1) + "ConverterImpl"; + entityClass.getSimpleName().substring(1) + "ConverterImpl";
log.debug("正在查找 Converter: {}", converterBeanName); log.debug("正在查找 Converter: {}", converterBeanName);
@ -236,8 +237,8 @@ public class DependencyInjectionPostProcessor implements BeanPostProcessor, Disp
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> private <T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable>
void injectEntityPath(BaseServiceImpl<T, D, ID> service, Class<T> entityClass) { void injectEntityPath(BaseServiceImpl<T, D, Q, ID> service, Class<T> entityClass) {
try { try {
EntityPath<T> entityPath = (EntityPath<T>) entityPathCache.computeIfAbsent( EntityPath<T> entityPath = (EntityPath<T>) entityPathCache.computeIfAbsent(
entityClass, entityClass,

View File

@ -20,7 +20,7 @@ import java.util.concurrent.CompletableFuture;
@Validated @Validated
public abstract class BaseController<T extends Entity<ID>, D extends BaseDTO, ID extends Serializable, Q extends BaseQuery> { public abstract class BaseController<T extends Entity<ID>, D extends BaseDTO, ID extends Serializable, Q extends BaseQuery> {
protected IBaseService<T, D, ID> service; protected IBaseService<T, D, Q, ID> service;
@PostMapping @PostMapping
public Response<D> create(@Validated @RequestBody D dto) { public Response<D> create(@Validated @RequestBody D dto) {

View File

@ -11,7 +11,7 @@ import java.util.List;
/** /**
* 通用服务接口 * 通用服务接口
*/ */
public interface IBaseService<T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> { public interface IBaseService<T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable> {
D create(D dto); D create(D dto);
D update(ID id, D dto); D update(ID id, D dto);
@ -22,9 +22,9 @@ public interface IBaseService<T extends Entity<ID>, D extends BaseDTO, ID extend
List<D> findAll(); List<D> findAll();
Page<D> page(BaseQuery query); Page<D> page(Q query);
List<D> findAll(BaseQuery query); List<D> findAll(Q query);
void batchProcess(List<D> dtos); void batchProcess(List<D> dtos);

View File

@ -49,8 +49,7 @@ import com.qqchen.deploy.backend.framework.annotation.ServiceType;
@Transactional(readOnly = true) @Transactional(readOnly = true)
@Slf4j @Slf4j
public abstract class BaseServiceImpl<T extends Entity<ID>, D extends BaseDTO, ID extends Serializable> public abstract class BaseServiceImpl<T extends Entity<ID>, D extends BaseDTO, Q extends BaseQuery, ID extends Serializable> implements IBaseService<T, D, Q, ID> {
implements IBaseService<T, D, ID> {
protected IBaseRepository<T, ID> repository; protected IBaseRepository<T, ID> repository;
protected BaseConverter<T, D> converter; protected BaseConverter<T, D> converter;
@ -101,7 +100,7 @@ public abstract class BaseServiceImpl<T extends Entity<ID>, D extends BaseDTO, I
} }
@Override @Override
public List<D> findAll(BaseQuery query) { public List<D> findAll(Q query) {
validateDatabaseOperation("findAll"); validateDatabaseOperation("findAll");
if (query == null) { if (query == null) {
return findAll(); return findAll();
@ -113,7 +112,7 @@ public abstract class BaseServiceImpl<T extends Entity<ID>, D extends BaseDTO, I
} }
@Override @Override
public Page<D> page(BaseQuery query) { public Page<D> page(Q query) {
validateDatabaseOperation("page"); validateDatabaseOperation("page");
Page<T> page = repository.findAll(createQueryPredicate(query), createPageRequest(query)); Page<T> page = repository.findAll(createQueryPredicate(query), createPageRequest(query));
return converter.toDtoPage(page); return converter.toDtoPage(page);

View File

@ -3,11 +3,12 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.entity.Department; import com.qqchen.deploy.backend.system.entity.Department;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.DepartmentDTO; import com.qqchen.deploy.backend.system.model.DepartmentDTO;
import com.qqchen.deploy.backend.system.model.query.DepartmentQuery;
import com.qqchen.deploy.backend.system.model.response.DepartmentResponse; import com.qqchen.deploy.backend.system.model.response.DepartmentResponse;
import java.util.List; import java.util.List;
public interface IDepartmentService extends IBaseService<Department, DepartmentDTO, Long> { public interface IDepartmentService extends IBaseService<Department, DepartmentDTO, DepartmentQuery, Long> {
/** /**
* 获取部门树 * 获取部门树

View File

@ -3,12 +3,13 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.entity.Menu; import com.qqchen.deploy.backend.system.entity.Menu;
import com.qqchen.deploy.backend.system.model.MenuDTO; import com.qqchen.deploy.backend.system.model.MenuDTO;
import com.qqchen.deploy.backend.system.model.query.MenuQuery;
import com.qqchen.deploy.backend.system.model.response.MenuPermissionTreeResponse; import com.qqchen.deploy.backend.system.model.response.MenuPermissionTreeResponse;
import com.qqchen.deploy.backend.system.model.response.MenuResponse; import com.qqchen.deploy.backend.system.model.response.MenuResponse;
import java.util.List; import java.util.List;
public interface IMenuService extends IBaseService<Menu, MenuDTO, Long> { public interface IMenuService extends IBaseService<Menu, MenuDTO, MenuQuery, Long> {
/** /**
* 获取菜单树 * 获取菜单树

View File

@ -3,9 +3,11 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.entity.Permission; import com.qqchen.deploy.backend.system.entity.Permission;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.PermissionDTO; import com.qqchen.deploy.backend.system.model.PermissionDTO;
import com.qqchen.deploy.backend.system.model.query.PermissionQuery;
import java.util.List; import java.util.List;
public interface IPermissionService extends IBaseService<Permission, PermissionDTO, Long> { public interface IPermissionService extends IBaseService<Permission, PermissionDTO, PermissionQuery, Long> {
List<PermissionDTO> listAllEnabled(); List<PermissionDTO> listAllEnabled();
List<PermissionDTO> listByMenuId(Long menuId); List<PermissionDTO> listByMenuId(Long menuId);
List<PermissionDTO> listByIds(List<Long> ids); List<PermissionDTO> listByIds(List<Long> ids);

View File

@ -4,10 +4,11 @@ import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.entity.Role; import com.qqchen.deploy.backend.system.entity.Role;
import com.qqchen.deploy.backend.system.model.RoleDTO; import com.qqchen.deploy.backend.system.model.RoleDTO;
import com.qqchen.deploy.backend.system.model.PermissionDTO; import com.qqchen.deploy.backend.system.model.PermissionDTO;
import com.qqchen.deploy.backend.system.model.query.RoleQuery;
import java.util.List; import java.util.List;
public interface IRoleService extends IBaseService<Role, RoleDTO, Long> { public interface IRoleService extends IBaseService<Role, RoleDTO, RoleQuery, Long> {
/** /**
* 验证角色编码是否存在 * 验证角色编码是否存在

View File

@ -3,7 +3,8 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.entity.RoleTag; import com.qqchen.deploy.backend.system.entity.RoleTag;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.RoleTagDTO; import com.qqchen.deploy.backend.system.model.RoleTagDTO;
import com.qqchen.deploy.backend.system.model.query.RoleTagQuery;
public interface IRoleTagService extends IBaseService<RoleTag, RoleTagDTO, Long> { public interface IRoleTagService extends IBaseService<RoleTag, RoleTagDTO, RoleTagQuery, Long> {
} }

View File

@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.entity.SysParam; import com.qqchen.deploy.backend.system.entity.SysParam;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.SysParamDTO; import com.qqchen.deploy.backend.system.model.SysParamDTO;
import com.qqchen.deploy.backend.system.model.query.SysParamQuery;
public interface ISysParamService extends IBaseService<SysParam, SysParamDTO, Long> { public interface ISysParamService extends IBaseService<SysParam, SysParamDTO, SysParamQuery, Long> {
} }

View File

@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.entity.Tenant; import com.qqchen.deploy.backend.system.entity.Tenant;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.TenantDTO; import com.qqchen.deploy.backend.system.model.TenantDTO;
import com.qqchen.deploy.backend.system.model.query.TenantQuery;
/** /**
* 租户服务接口 * 租户服务接口
@ -10,7 +11,7 @@ import com.qqchen.deploy.backend.system.model.TenantDTO;
* @author QQChen * @author QQChen
* @version 1.0.0 * @version 1.0.0
*/ */
public interface ITenantService extends IBaseService<Tenant, TenantDTO, Long> { public interface ITenantService extends IBaseService<Tenant, TenantDTO, TenantQuery, Long> {
/** /**
* 更新租户启用状态 * 更新租户启用状态

View File

@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.system.service;
import com.qqchen.deploy.backend.system.model.UserDTO; import com.qqchen.deploy.backend.system.model.UserDTO;
import com.qqchen.deploy.backend.framework.annotation.Audited; import com.qqchen.deploy.backend.framework.annotation.Audited;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.system.model.query.UserQuery;
import com.qqchen.deploy.backend.system.model.request.LoginRequest; import com.qqchen.deploy.backend.system.model.request.LoginRequest;
import com.qqchen.deploy.backend.system.model.response.LoginResponse; import com.qqchen.deploy.backend.system.model.response.LoginResponse;
import com.qqchen.deploy.backend.system.entity.User; import com.qqchen.deploy.backend.system.entity.User;
@ -12,7 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
public interface IUserService extends IBaseService<User, UserDTO, Long> { public interface IUserService extends IBaseService<User, UserDTO, UserQuery, Long> {
LoginResponse login(LoginRequest request); LoginResponse login(LoginRequest request);
UserDTO register(UserRequest request); UserDTO register(UserRequest request);
boolean checkUsernameExists(String username); boolean checkUsernameExists(String username);

View File

@ -6,6 +6,7 @@ import com.qqchen.deploy.backend.framework.enums.ResponseCode;
import com.qqchen.deploy.backend.framework.exception.UniqueConstraintException; import com.qqchen.deploy.backend.framework.exception.UniqueConstraintException;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.DepartmentDTO; import com.qqchen.deploy.backend.system.model.DepartmentDTO;
import com.qqchen.deploy.backend.system.model.query.DepartmentQuery;
import com.qqchen.deploy.backend.system.model.response.DepartmentResponse; import com.qqchen.deploy.backend.system.model.response.DepartmentResponse;
import com.qqchen.deploy.backend.system.repository.IDepartmentRepository; import com.qqchen.deploy.backend.system.repository.IDepartmentRepository;
import com.qqchen.deploy.backend.system.repository.IUserRepository; import com.qqchen.deploy.backend.system.repository.IUserRepository;
@ -22,7 +23,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class DepartmentServiceImpl extends BaseServiceImpl<Department, DepartmentDTO, Long> implements IDepartmentService { public class DepartmentServiceImpl extends BaseServiceImpl<Department, DepartmentDTO, DepartmentQuery, Long> implements IDepartmentService {
@Resource @Resource
private IDepartmentRepository departmentRepository; private IDepartmentRepository departmentRepository;

View File

@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.framework.annotation.ServiceType;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.MenuDTO; import com.qqchen.deploy.backend.system.model.MenuDTO;
import com.qqchen.deploy.backend.system.model.UserDTO; import com.qqchen.deploy.backend.system.model.UserDTO;
import com.qqchen.deploy.backend.system.model.query.MenuQuery;
import com.qqchen.deploy.backend.system.model.response.MenuPermissionTreeResponse; import com.qqchen.deploy.backend.system.model.response.MenuPermissionTreeResponse;
import com.qqchen.deploy.backend.system.model.response.MenuResponse; import com.qqchen.deploy.backend.system.model.response.MenuResponse;
import com.qqchen.deploy.backend.system.repository.IMenuRepository; import com.qqchen.deploy.backend.system.repository.IMenuRepository;
@ -31,7 +32,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class MenuServiceImpl extends BaseServiceImpl<Menu, MenuDTO, Long> implements IMenuService { public class MenuServiceImpl extends BaseServiceImpl<Menu, MenuDTO, MenuQuery, Long> implements IMenuService {
@Resource @Resource
private IMenuRepository menuRepository; private IMenuRepository menuRepository;

View File

@ -6,6 +6,7 @@ import com.qqchen.deploy.backend.system.entity.Permission;
import com.qqchen.deploy.backend.framework.annotation.ServiceType; import com.qqchen.deploy.backend.framework.annotation.ServiceType;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.PermissionDTO; import com.qqchen.deploy.backend.system.model.PermissionDTO;
import com.qqchen.deploy.backend.system.model.query.PermissionQuery;
import com.qqchen.deploy.backend.system.repository.IMenuRepository; import com.qqchen.deploy.backend.system.repository.IMenuRepository;
import com.qqchen.deploy.backend.system.repository.IPermissionRepository; import com.qqchen.deploy.backend.system.repository.IPermissionRepository;
import com.qqchen.deploy.backend.system.service.IPermissionService; import com.qqchen.deploy.backend.system.service.IPermissionService;
@ -22,7 +23,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class PermissionServiceImpl extends BaseServiceImpl<Permission, PermissionDTO, Long> implements IPermissionService { public class PermissionServiceImpl extends BaseServiceImpl<Permission, PermissionDTO, PermissionQuery, Long> implements IPermissionService {
@Resource @Resource
private IPermissionRepository permissionRepository; private IPermissionRepository permissionRepository;

View File

@ -12,6 +12,7 @@ import com.qqchen.deploy.backend.framework.exception.UniqueConstraintException;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.PermissionDTO; import com.qqchen.deploy.backend.system.model.PermissionDTO;
import com.qqchen.deploy.backend.system.model.RoleDTO; import com.qqchen.deploy.backend.system.model.RoleDTO;
import com.qqchen.deploy.backend.system.model.query.RoleQuery;
import com.qqchen.deploy.backend.system.repository.IMenuRepository; import com.qqchen.deploy.backend.system.repository.IMenuRepository;
import com.qqchen.deploy.backend.system.repository.IPermissionRepository; import com.qqchen.deploy.backend.system.repository.IPermissionRepository;
import com.qqchen.deploy.backend.system.repository.IRoleRepository; import com.qqchen.deploy.backend.system.repository.IRoleRepository;
@ -35,7 +36,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class RoleServiceImpl extends BaseServiceImpl<Role, RoleDTO, Long> implements IRoleService { public class RoleServiceImpl extends BaseServiceImpl<Role, RoleDTO, RoleQuery, Long> implements IRoleService {
@Resource @Resource
private IRoleRepository roleRepository; private IRoleRepository roleRepository;

View File

@ -6,6 +6,7 @@ import com.qqchen.deploy.backend.framework.exception.BusinessException;
import com.qqchen.deploy.backend.framework.exception.UniqueConstraintException; import com.qqchen.deploy.backend.framework.exception.UniqueConstraintException;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.RoleTagDTO; import com.qqchen.deploy.backend.system.model.RoleTagDTO;
import com.qqchen.deploy.backend.system.model.query.RoleTagQuery;
import com.qqchen.deploy.backend.system.repository.IRoleTagRepository; import com.qqchen.deploy.backend.system.repository.IRoleTagRepository;
import com.qqchen.deploy.backend.system.service.IRoleTagService; import com.qqchen.deploy.backend.system.service.IRoleTagService;
import com.qqchen.deploy.backend.framework.annotation.ServiceType; import com.qqchen.deploy.backend.framework.annotation.ServiceType;
@ -19,7 +20,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class RoleTagServiceImpl extends BaseServiceImpl<RoleTag, RoleTagDTO, Long> implements IRoleTagService { public class RoleTagServiceImpl extends BaseServiceImpl<RoleTag, RoleTagDTO, RoleTagQuery, Long> implements IRoleTagService {
@Resource @Resource
private IRoleTagRepository roleTagRepository; private IRoleTagRepository roleTagRepository;

View File

@ -5,6 +5,7 @@ import com.qqchen.deploy.backend.system.entity.SysParam;
import com.qqchen.deploy.backend.framework.annotation.ServiceType; import com.qqchen.deploy.backend.framework.annotation.ServiceType;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.SysParamDTO; import com.qqchen.deploy.backend.system.model.SysParamDTO;
import com.qqchen.deploy.backend.system.model.query.SysParamQuery;
import com.qqchen.deploy.backend.system.repository.ISysParamRepository; import com.qqchen.deploy.backend.system.repository.ISysParamRepository;
import com.qqchen.deploy.backend.system.service.ISysParamService; import com.qqchen.deploy.backend.system.service.ISysParamService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -16,7 +17,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class SysParamServiceImpl extends BaseServiceImpl<SysParam, SysParamDTO, Long> implements ISysParamService { public class SysParamServiceImpl extends BaseServiceImpl<SysParam, SysParamDTO, SysParamQuery, Long> implements ISysParamService {
@Resource @Resource
private SysParamConverter converter; private SysParamConverter converter;

View File

@ -4,6 +4,7 @@ import com.qqchen.deploy.backend.system.entity.Tenant;
import com.qqchen.deploy.backend.framework.annotation.ServiceType; import com.qqchen.deploy.backend.framework.annotation.ServiceType;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.system.model.TenantDTO; import com.qqchen.deploy.backend.system.model.TenantDTO;
import com.qqchen.deploy.backend.system.model.query.TenantQuery;
import com.qqchen.deploy.backend.system.repository.ITenantRepository; import com.qqchen.deploy.backend.system.repository.ITenantRepository;
import com.qqchen.deploy.backend.system.service.ITenantService; import com.qqchen.deploy.backend.system.service.ITenantService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -25,7 +26,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Slf4j @Slf4j
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
public class TenantServiceImpl extends BaseServiceImpl<Tenant, TenantDTO, Long> implements ITenantService { public class TenantServiceImpl extends BaseServiceImpl<Tenant, TenantDTO, TenantQuery, Long> implements ITenantService {
@Resource @Resource
private ITenantRepository tenantRepository; private ITenantRepository tenantRepository;

View File

@ -10,6 +10,7 @@ import com.qqchen.deploy.backend.framework.security.SecurityUtils;
import com.qqchen.deploy.backend.framework.security.util.JwtTokenUtil; import com.qqchen.deploy.backend.framework.security.util.JwtTokenUtil;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.framework.utils.PasswordGenerator; import com.qqchen.deploy.backend.framework.utils.PasswordGenerator;
import com.qqchen.deploy.backend.system.model.query.UserQuery;
import com.qqchen.deploy.backend.system.model.request.LoginRequest; import com.qqchen.deploy.backend.system.model.request.LoginRequest;
import com.qqchen.deploy.backend.system.model.request.UserRequest; import com.qqchen.deploy.backend.system.model.request.UserRequest;
import com.qqchen.deploy.backend.system.model.response.LoginResponse; import com.qqchen.deploy.backend.system.model.response.LoginResponse;
@ -40,7 +41,7 @@ import static com.qqchen.deploy.backend.framework.annotation.ServiceType.Type.DA
@Service @Service
@ServiceType(DATABASE) @ServiceType(DATABASE)
@Slf4j @Slf4j
public class UserServiceImpl extends BaseServiceImpl<User, UserDTO, Long> implements IUserService { public class UserServiceImpl extends BaseServiceImpl<User, UserDTO, UserQuery, Long> implements IUserService {
@Resource @Resource
private RoleConverter roleConverter; private RoleConverter roleConverter;

View File

@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowDesignDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowExecutionDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowExecutionDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceCreateDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceCreateDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum; import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum;
import org.flowable.engine.repository.Deployment; import org.flowable.engine.repository.Deployment;
@ -19,7 +20,7 @@ import java.util.Map;
/** /**
* 工作流定义服务接口 * 工作流定义服务接口
*/ */
public interface IWorkflowDefinitionService extends IBaseService<WorkflowDefinition, WorkflowDefinitionDTO, Long> { public interface IWorkflowDefinitionService extends IBaseService<WorkflowDefinition, WorkflowDefinitionDTO, WorkflowDefinitionQuery, Long> {
WorkflowDefinitionDTO saveWorkflowDesign(WorkflowDefinitionDTO dto) throws Exception; WorkflowDefinitionDTO saveWorkflowDesign(WorkflowDefinitionDTO dto) throws Exception;

View File

@ -5,6 +5,7 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowHistoricalInstancesDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest;
import com.qqchen.deploy.backend.workflow.dto.WorkflowTemplateWithInstancesDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowTemplateWithInstancesDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowInstanceQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance;
import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery; import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery;
@ -16,7 +17,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public interface IWorkflowInstanceService extends IBaseService<WorkflowInstance, WorkflowInstanceDTO, Long> { public interface IWorkflowInstanceService extends IBaseService<WorkflowInstance, WorkflowInstanceDTO, WorkflowInstanceQuery, Long> {
/** /**
* 创建工作流实例并关联Flowable实例 * 创建工作流实例并关联Flowable实例

View File

@ -4,6 +4,7 @@ import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionCreateDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionCreateDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeTypeDefinedDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeTypeDefinedDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeDefinition;
import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums;
@ -12,7 +13,7 @@ import java.util.List;
/** /**
* 工作流节点定义服务接口 * 工作流节点定义服务接口
*/ */
public interface IWorkflowNodeDefinitionService extends IBaseService<WorkflowNodeDefinition, WorkflowNodeDefinitionDTO, Long> { public interface IWorkflowNodeDefinitionService extends IBaseService<WorkflowNodeDefinition, WorkflowNodeDefinitionDTO, WorkflowDefinitionQuery, Long> {
/** /**

View File

@ -2,13 +2,14 @@ package com.qqchen.deploy.backend.workflow.service;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeInstanceDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeInstanceDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowNodeInstanceQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance;
import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums;
import com.qqchen.deploy.backend.workflow.dto.event.WorkflowNodeInstanceStatusChangeEvent; import com.qqchen.deploy.backend.workflow.dto.event.WorkflowNodeInstanceStatusChangeEvent;
import java.util.List; import java.util.List;
public interface IWorkflowNodeInstanceService extends IBaseService<WorkflowNodeInstance, WorkflowNodeInstanceDTO, Long> { public interface IWorkflowNodeInstanceService extends IBaseService<WorkflowNodeInstance, WorkflowNodeInstanceDTO, WorkflowNodeInstanceQuery, Long> {
/** /**
* 更新节点实例状态 * 更新节点实例状态
* *

View File

@ -6,6 +6,7 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowDefinitionDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowExecutionDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowExecutionDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowTriggerTypeDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowTriggerTypeDTO;
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum; import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum;
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
@ -47,7 +48,7 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
@Service @Service
public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefinition, WorkflowDefinitionDTO, Long> implements IWorkflowDefinitionService { public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefinition, WorkflowDefinitionDTO, WorkflowDefinitionQuery, Long> implements IWorkflowDefinitionService {
@Resource @Resource
private RepositoryService repositoryService; private RepositoryService repositoryService;

View File

@ -9,6 +9,7 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowHistoricalInstancesDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest; import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest;
import com.qqchen.deploy.backend.workflow.dto.WorkflowTemplateWithInstancesDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowTemplateWithInstancesDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowInstanceQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance;
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance;
@ -46,7 +47,7 @@ import static java.util.stream.Collectors.toList;
@Slf4j @Slf4j
@Service @Service
public class WorkflowInstanceServiceImpl extends BaseServiceImpl<WorkflowInstance, WorkflowInstanceDTO, Long> implements IWorkflowInstanceService { public class WorkflowInstanceServiceImpl extends BaseServiceImpl<WorkflowInstance, WorkflowInstanceDTO, WorkflowInstanceQuery, Long> implements IWorkflowInstanceService {
@Resource @Resource
private IWorkflowDefinitionRepository workflowDefinitionRepository; private IWorkflowDefinitionRepository workflowDefinitionRepository;

View File

@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeDefinitionDTO;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeTypeDefinedDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeTypeDefinedDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowDefinitionQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeDefinition;
import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums;
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
@ -34,7 +35,7 @@ import com.qqchen.deploy.backend.workflow.annotation.SchemaPropertyDataSourcePar
*/ */
@Slf4j @Slf4j
@Service @Service
public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowNodeDefinition, WorkflowNodeDefinitionDTO, Long> implements IWorkflowNodeDefinitionService { public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowNodeDefinition, WorkflowNodeDefinitionDTO, WorkflowDefinitionQuery, Long> implements IWorkflowNodeDefinitionService {
@Resource @Resource
private IWorkflowNodeDefinitionRepository workflowNodeDefinitionRepository; private IWorkflowNodeDefinitionRepository workflowNodeDefinitionRepository;

View File

@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.workflow.service.impl;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import com.qqchen.deploy.backend.workflow.converter.WorkflowNodeInstanceConverter; import com.qqchen.deploy.backend.workflow.converter.WorkflowNodeInstanceConverter;
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeInstanceDTO; import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeInstanceDTO;
import com.qqchen.deploy.backend.workflow.dto.query.WorkflowNodeInstanceQuery;
import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance;
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance;
import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums;
@ -21,7 +22,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class WorkflowNodeInstanceServiceImpl extends BaseServiceImpl<WorkflowNodeInstance, WorkflowNodeInstanceDTO, Long> implements IWorkflowNodeInstanceService { public class WorkflowNodeInstanceServiceImpl extends BaseServiceImpl<WorkflowNodeInstance, WorkflowNodeInstanceDTO, WorkflowNodeInstanceQuery, Long> implements IWorkflowNodeInstanceService {
@Resource @Resource
private IWorkflowNodeInstanceRepository workflowNodeInstanceRepository; private IWorkflowNodeInstanceRepository workflowNodeInstanceRepository;