增加repository类
This commit is contained in:
parent
b49a64724c
commit
480a40f152
@ -199,4 +199,17 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>${release.repository.id}</id>
|
||||||
|
<url>${release.repository.url}</url>
|
||||||
|
<name>${release.repository.name}</name>
|
||||||
|
</repository>
|
||||||
|
<snapshotRepository>
|
||||||
|
<id>${snapshot.repository.id}</id>
|
||||||
|
<url>${snapshot.repository.url}</url>
|
||||||
|
<name>${snapshot.repository.name}</name>
|
||||||
|
</snapshotRepository>
|
||||||
|
</distributionManagement>
|
||||||
</project>
|
</project>
|
||||||
@ -2,12 +2,16 @@ package com.qqchen.deploy.backend.entity;
|
|||||||
|
|
||||||
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
||||||
import com.qqchen.deploy.backend.common.domain.Entity;
|
import com.qqchen.deploy.backend.common.domain.Entity;
|
||||||
|
import jakarta.persistence.CascadeType;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ -28,4 +32,7 @@ public class Role extends Entity<Long> {
|
|||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private Integer sort = 0;
|
private Integer sort = 0;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "role", cascade = CascadeType.ALL) // 指向 UserRole 的 role 属性
|
||||||
|
private List<UserRole> userRoles;
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ package com.qqchen.deploy.backend.entity;
|
|||||||
|
|
||||||
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
||||||
import com.qqchen.deploy.backend.common.domain.AggregateRoot;
|
import com.qqchen.deploy.backend.common.domain.AggregateRoot;
|
||||||
|
import com.qqchen.deploy.backend.common.domain.Entity;
|
||||||
import com.qqchen.deploy.backend.event.UserRoleChangedEvent;
|
import com.qqchen.deploy.backend.event.UserRoleChangedEvent;
|
||||||
import jakarta.persistence.CascadeType;
|
import jakarta.persistence.CascadeType;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
@ -11,6 +12,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -20,7 +22,7 @@ import java.util.stream.Collectors;
|
|||||||
@jakarta.persistence.Entity
|
@jakarta.persistence.Entity
|
||||||
@Table(name = "sys_user")
|
@Table(name = "sys_user")
|
||||||
@LogicDelete
|
@LogicDelete
|
||||||
public class User extends AggregateRoot<Long> {
|
public class User extends Entity<Long> {
|
||||||
|
|
||||||
@Column(unique = true, nullable = false)
|
@Column(unique = true, nullable = false)
|
||||||
private String username;
|
private String username;
|
||||||
@ -45,99 +47,99 @@ public class User extends AggregateRoot<Long> {
|
|||||||
private String deptName;
|
private String deptName;
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
|
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL) // 指向 UserRole 的 user 属性
|
||||||
private Set<UserRole> userRoles = new HashSet<>();
|
private List<UserRole> userRoles;
|
||||||
|
|
||||||
public void addRole(Role role) {
|
// public void addRole(Role role) {
|
||||||
UserRole userRole = new UserRole(this, role);
|
// UserRole userRole = new UserRole(this, role);
|
||||||
userRoles.add(userRole);
|
// userRoles.add(userRole);
|
||||||
registerDomainEvent(new UserRoleChangedEvent(this.getId(), role.getId(), "ADD"));
|
// registerDomainEvent(new UserRoleChangedEvent(this.getId(), role.getId(), "ADD"));
|
||||||
validateState();
|
// validateState();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void removeRole(Role role) {
|
// public void removeRole(Role role) {
|
||||||
boolean removed = userRoles.removeIf(ur -> ur.getRole().equals(role));
|
// boolean removed = userRoles.removeIf(ur -> ur.getRole().equals(role));
|
||||||
if (removed) {
|
// if (removed) {
|
||||||
registerDomainEvent(new UserRoleChangedEvent(this.getId(), role.getId(), "REMOVE"));
|
// registerDomainEvent(new UserRoleChangedEvent(this.getId(), role.getId(), "REMOVE"));
|
||||||
validateState();
|
// validateState();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void changePassword(String oldPassword, String newPassword) {
|
// public void changePassword(String oldPassword, String newPassword) {
|
||||||
if (!this.password.equals(oldPassword)) {
|
// if (!this.password.equals(oldPassword)) {
|
||||||
throw new IllegalArgumentException("Old password is incorrect");
|
// throw new IllegalArgumentException("Old password is incorrect");
|
||||||
}
|
// }
|
||||||
this.password = newPassword;
|
// this.password = newPassword;
|
||||||
registerDomainEvent(new PasswordChangedEvent(this.getId()));
|
// registerDomainEvent(new PasswordChangedEvent(this.getId()));
|
||||||
validateState();
|
// validateState();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void setEnabled(boolean enabled) {
|
// public void setEnabled(boolean enabled) {
|
||||||
if (this.enabled != enabled) {
|
// if (this.enabled != enabled) {
|
||||||
this.enabled = enabled;
|
// this.enabled = enabled;
|
||||||
registerDomainEvent(new UserStatusChangedEvent(this.getId(), enabled));
|
// registerDomainEvent(new UserStatusChangedEvent(this.getId(), enabled));
|
||||||
validateState();
|
// validateState();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void updateBasicInfo(String nickname, String phone, String email) {
|
// public void updateBasicInfo(String nickname, String phone, String email) {
|
||||||
boolean changed = false;
|
// boolean changed = false;
|
||||||
|
//
|
||||||
if (!Objects.equals(this.nickname, nickname)) {
|
// if (!Objects.equals(this.nickname, nickname)) {
|
||||||
this.nickname = nickname;
|
// this.nickname = nickname;
|
||||||
changed = true;
|
// changed = true;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (!Objects.equals(this.phone, phone)) {
|
// if (!Objects.equals(this.phone, phone)) {
|
||||||
this.phone = phone;
|
// this.phone = phone;
|
||||||
changed = true;
|
// changed = true;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (!Objects.equals(this.email, email)) {
|
// if (!Objects.equals(this.email, email)) {
|
||||||
this.email = email;
|
// this.email = email;
|
||||||
changed = true;
|
// changed = true;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (changed) {
|
// if (changed) {
|
||||||
registerDomainEvent(new UserUpdatedEvent(this.getId()));
|
// registerDomainEvent(new UserUpdatedEvent(this.getId()));
|
||||||
validateState();
|
// validateState();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public boolean hasRole(String roleCode) {
|
// public boolean hasRole(String roleCode) {
|
||||||
return userRoles.stream()
|
// return userRoles.stream()
|
||||||
.map(UserRole::getRole)
|
// .map(UserRole::getRole)
|
||||||
.anyMatch(role -> role.getCode().equals(roleCode));
|
// .anyMatch(role -> role.getCode().equals(roleCode));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public Set<String> getRoleCodes() {
|
// public Set<String> getRoleCodes() {
|
||||||
return userRoles.stream()
|
// return userRoles.stream()
|
||||||
.map(UserRole::getRole)
|
// .map(UserRole::getRole)
|
||||||
.map(Role::getCode)
|
// .map(Role::getCode)
|
||||||
.collect(Collectors.toSet());
|
// .collect(Collectors.toSet());
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
protected void validateState() {
|
// protected void validateState() {
|
||||||
if (username == null || username.trim().isEmpty()) {
|
// if (username == null || username.trim().isEmpty()) {
|
||||||
throw new IllegalStateException("Username cannot be empty");
|
// throw new IllegalStateException("Username cannot be empty");
|
||||||
}
|
// }
|
||||||
if (email == null || !email.matches("^[A-Za-z0-9+_.-]+@(.+)$")) {
|
// if (email == null || !email.matches("^[A-Za-z0-9+_.-]+@(.+)$")) {
|
||||||
throw new IllegalStateException("Invalid email format");
|
// throw new IllegalStateException("Invalid email format");
|
||||||
}
|
// }
|
||||||
if (password == null || password.length() < 6) {
|
// if (password == null || password.length() < 6) {
|
||||||
throw new IllegalStateException("Password must be at least 6 characters");
|
// throw new IllegalStateException("Password must be at least 6 characters");
|
||||||
}
|
// }
|
||||||
if (phone != null && !phone.matches("^\\d{11}$")) {
|
// if (phone != null && !phone.matches("^\\d{11}$")) {
|
||||||
throw new IllegalStateException("Invalid phone number format");
|
// throw new IllegalStateException("Invalid phone number format");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void validateBeforeDelete() {
|
// public void validateBeforeDelete() {
|
||||||
if (!userRoles.isEmpty()) {
|
// if (!userRoles.isEmpty()) {
|
||||||
throw new IllegalStateException("Cannot delete user with assigned roles");
|
// throw new IllegalStateException("Cannot delete user with assigned roles");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -3,6 +3,10 @@ package com.qqchen.deploy.backend.entity;
|
|||||||
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
import com.qqchen.deploy.backend.common.annotation.LogicDelete;
|
||||||
import com.qqchen.deploy.backend.common.domain.Entity;
|
import com.qqchen.deploy.backend.common.domain.Entity;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.GenerationType;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -13,10 +17,12 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Table(name = "sys_user_role")
|
@Table(name = "sys_user_role")
|
||||||
@LogicDelete
|
@LogicDelete
|
||||||
public class UserRole extends Entity<Long> {
|
public class UserRole extends Entity<Long> {
|
||||||
|
|
||||||
@Column(name = "user_id", nullable = false)
|
@ManyToOne // 多对一关系
|
||||||
private Long userId;
|
@JoinColumn(name = "user_id") // 外键列
|
||||||
|
private User user; // 用户
|
||||||
@Column(name = "role_id", nullable = false)
|
|
||||||
private Long roleId;
|
@ManyToOne // 多对一关系
|
||||||
|
@JoinColumn(name = "role_id") // 外键列
|
||||||
|
private Role role; // 角色
|
||||||
}
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.Department;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface DepartmentRepository extends BaseRepository<Department, Long> {
|
||||||
|
|
||||||
|
List<Department> findByParentIdAndDeletedFalseOrderBySort(Long parentId);
|
||||||
|
|
||||||
|
List<Department> findByDeletedFalseOrderBySort();
|
||||||
|
|
||||||
|
boolean existsByCodeAndDeletedFalse(String code);
|
||||||
|
|
||||||
|
boolean existsByNameAndDeletedFalse(String name);
|
||||||
|
|
||||||
|
@Query("SELECT COALESCE(MAX(d.sort), 0) FROM Department d WHERE d.parentId = :parentId AND d.deleted = false")
|
||||||
|
Integer findMaxSortByParentId(@Param("parentId") Long parentId);
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.JenkinsBuild;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface JenkinsBuildRepository extends BaseRepository<JenkinsBuild, Long> {
|
||||||
|
List<JenkinsBuild> findByJobIdAndDeletedFalse(Long jobId);
|
||||||
|
List<JenkinsBuild> findByJobIdAndBuildNumberAndDeletedFalse(Long jobId, Integer buildNumber);
|
||||||
|
void deleteByJobIdAndDeletedFalse(Long jobId);
|
||||||
|
List<JenkinsBuild> findByJobIdAndDeletedFalseOrderByBuildNumberDesc(Long jobId);
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.JenkinsConfig;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface JenkinsConfigRepository extends BaseRepository<JenkinsConfig, Long> {
|
||||||
|
List<JenkinsConfig> findByDeletedFalseOrderBySort();
|
||||||
|
boolean existsByNameAndDeletedFalse(String name);
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.JenkinsJob;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface JenkinsJobRepository extends BaseRepository<JenkinsJob, Long> {
|
||||||
|
List<JenkinsJob> findByJenkinsIdAndDeletedFalse(Long jenkinsId);
|
||||||
|
List<JenkinsJob> findByJenkinsIdAndJobNameAndDeletedFalse(Long jenkinsId, String jobName);
|
||||||
|
void deleteByJenkinsIdAndDeletedFalse(Long jenkinsId);
|
||||||
|
|
||||||
|
@Query("SELECT j FROM JenkinsJob j " +
|
||||||
|
"JOIN FETCH j.view v " +
|
||||||
|
"WHERE j.jenkinsId = :jenkinsId " +
|
||||||
|
"AND v.viewName = :viewName " +
|
||||||
|
"AND j.deleted = false " +
|
||||||
|
"AND v.deleted = false")
|
||||||
|
List<JenkinsJob> findJobsByJenkinsIdAndViewName(
|
||||||
|
@Param("jenkinsId") Long jenkinsId,
|
||||||
|
@Param("viewName") String viewName
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.JenkinsSyncHistory;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface JenkinsSyncHistoryRepository extends BaseRepository<JenkinsSyncHistory, Long> {
|
||||||
|
List<JenkinsSyncHistory> findTop50ByOrderByStartTimeDesc();
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.JenkinsView;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface JenkinsViewRepository extends BaseRepository<JenkinsView, Long> {
|
||||||
|
List<JenkinsView> findByJenkinsIdAndDeletedFalse(Long jenkinsId);
|
||||||
|
List<JenkinsView> findByJenkinsIdAndViewNameAndDeletedFalse(Long jenkinsId, String viewName);
|
||||||
|
void deleteByJenkinsIdAndDeletedFalse(Long jenkinsId);
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.entity.Menu;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Repository
|
||||||
|
public interface MenuRepository extends JpaRepository<Menu, Long> {
|
||||||
|
|
||||||
|
List<Menu> findByDeletedFalseOrderBySort();
|
||||||
|
|
||||||
|
List<Menu> findByParentIdAndDeletedFalseOrderBySort(Long parentId);
|
||||||
|
|
||||||
|
List<Menu> findByTypeAndDeletedFalseOrderBySort(Integer type);
|
||||||
|
|
||||||
|
List<Menu> findByIdInAndDeletedFalseOrderBySort(List<Long> ids);
|
||||||
|
|
||||||
|
List<Menu> findByPermissionLikeAndDeletedFalse(String permission);
|
||||||
|
|
||||||
|
List<Menu> findByTypeAndPermissionIsNotNullAndDeletedFalse(Integer type);
|
||||||
|
|
||||||
|
List<Menu> findByParentIdAndDeletedFalse(Long parentId);
|
||||||
|
|
||||||
|
List<Menu> findByTypeInAndDeletedFalseOrderBySort(List<Integer> types);
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RepositoryBranch;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RepositoryBranchRepository extends BaseRepository<RepositoryBranch, Long> {
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Transactional
|
||||||
|
@Query("DELETE FROM RepositoryBranch b WHERE b.repositoryId = :repositoryId")
|
||||||
|
void deleteByRepositoryId(Long repositoryId);
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RepositoryConfig;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RepositoryConfigRepository extends BaseRepository<RepositoryConfig, Long> {
|
||||||
|
List<RepositoryConfig> findByDeletedFalseOrderBySort();
|
||||||
|
boolean existsByNameAndDeletedFalse(String name);
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RepositoryGroup;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RepositoryGroupRepository extends BaseRepository<RepositoryGroup, Long> {
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Transactional
|
||||||
|
@Query("DELETE FROM RepositoryGroup g WHERE g.repositoryId = :repositoryId")
|
||||||
|
void deleteByRepositoryId(Long repositoryId);
|
||||||
|
|
||||||
|
Optional<RepositoryGroup> findByRepositoryIdAndGroupId(Long repositoryId, Long groupId);
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RepositoryProject;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RepositoryProjectRepository extends BaseRepository<RepositoryProject, Long> {
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Transactional
|
||||||
|
@Query("DELETE FROM RepositoryProject p WHERE p.repositoryId = :repositoryId")
|
||||||
|
void deleteByRepositoryId(Long repositoryId);
|
||||||
|
|
||||||
|
Optional<RepositoryProject> findByRepositoryIdAndProjectId(Long repositoryId, Long projectId);
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RepositorySyncHistory;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RepositorySyncHistoryRepository extends BaseRepository<RepositorySyncHistory, Long> {
|
||||||
|
List<RepositorySyncHistory> findTop50ByOrderByStartTimeDesc();
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.RoleMenu;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RoleMenuRepository extends BaseRepository<RoleMenu, Long> {
|
||||||
|
|
||||||
|
List<RoleMenu> findByRoleId(Long roleId);
|
||||||
|
|
||||||
|
void deleteByRoleId(Long roleId);
|
||||||
|
|
||||||
|
List<RoleMenu> findByRoleIdIn(List<Long> roleIds);
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.Role;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RoleRepository extends BaseRepository<Role, Long> {
|
||||||
|
|
||||||
|
List<Role> findByDeletedFalseOrderBySort();
|
||||||
|
|
||||||
|
boolean existsByCodeAndDeletedFalse(String code);
|
||||||
|
|
||||||
|
boolean existsByNameAndDeletedFalse(String name);
|
||||||
|
|
||||||
|
Optional<Role> findByCodeAndDeletedFalse(String code);
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.Tenant;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface TenantRepository extends BaseRepository<Tenant, Long> {
|
||||||
|
|
||||||
|
List<Tenant> findByDeletedFalseOrderById();
|
||||||
|
|
||||||
|
boolean existsByCodeAndDeletedFalse(String code);
|
||||||
|
|
||||||
|
boolean existsByNameAndDeletedFalse(String name);
|
||||||
|
}
|
||||||
@ -1,11 +1,27 @@
|
|||||||
package com.qqchen.deploy.backend.repository;
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
import com.qqchen.deploy.backend.entity.User;
|
import com.qqchen.deploy.backend.entity.User;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface UserRepository extends BaseRepository<User, Long> {
|
public interface UserRepository extends BaseRepository<User, Long> {
|
||||||
|
|
||||||
|
Optional<User> findByUsernameAndDeletedFalse(String username);
|
||||||
|
|
||||||
|
boolean existsByUsernameAndDeletedFalse(String username);
|
||||||
|
|
||||||
|
boolean existsByEmailAndDeletedFalse(String email);
|
||||||
|
|
||||||
|
boolean existsByPhoneAndDeletedFalse(String phone);
|
||||||
|
|
||||||
|
List<User> findByDeletedFalseOrderById();
|
||||||
|
|
||||||
boolean existsByUsername(String username);
|
boolean existsByUsername(String username);
|
||||||
|
|
||||||
boolean existsByEmail(String email);
|
boolean existsByEmail(String email);
|
||||||
}
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.qqchen.deploy.backend.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.common.repository.BaseRepository;
|
||||||
|
import com.qqchen.deploy.backend.entity.UserRole;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface UserRoleRepository extends BaseRepository<UserRole, Long> {
|
||||||
|
|
||||||
|
List<UserRole> findByUserId(Long userId);
|
||||||
|
|
||||||
|
void deleteByUserId(Long userId);
|
||||||
|
|
||||||
|
List<UserRole> findByRoleId(Long roleId);
|
||||||
|
}
|
||||||
@ -3,9 +3,9 @@ server:
|
|||||||
|
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://127.0.0.1:3306/2024_11_24_platform?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://192.168.1.111:3306/deploy-ease-platform?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: deploy-ease-platform
|
||||||
password: root
|
password: qichen5210523
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
jpa:
|
jpa:
|
||||||
hibernate:
|
hibernate:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user