From 4df8f9b93e35d81927a41bc793dbc0cfbb3c2ba6 Mon Sep 17 00:00:00 2001 From: vran Date: Thu, 28 Jul 2022 22:58:40 +0800 Subject: [PATCH] feat: add missing @Transaction to service (#255) --- .../core/domain/database/service/DatabaseTypeService.java | 2 +- .../domain/discussion/service/DocumentDiscussionService.java | 3 +++ .../domain/document/service/DocumentTemplateService.java | 2 ++ .../databasir/core/domain/group/service/GroupService.java | 4 ++++ .../databasir/core/domain/login/service/LoginService.java | 5 +++++ .../java/com/databasir/core/domain/mock/MockDataService.java | 5 +++++ .../core/domain/project/service/ProjectService.java | 2 ++ .../databasir/core/domain/system/service/SystemService.java | 3 +++ .../core/domain/user/service/UserProjectService.java | 2 ++ .../com/databasir/core/domain/user/service/UserService.java | 5 +++++ 10 files changed, 32 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/databasir/core/domain/database/service/DatabaseTypeService.java b/core/src/main/java/com/databasir/core/domain/database/service/DatabaseTypeService.java index af214032..84c30613 100644 --- a/core/src/main/java/com/databasir/core/domain/database/service/DatabaseTypeService.java +++ b/core/src/main/java/com/databasir/core/domain/database/service/DatabaseTypeService.java @@ -71,7 +71,6 @@ public Integer create(DatabaseTypeCreateRequest request) { } } - @Transactional public void update(DatabaseTypeUpdateRequest request) { databaseTypeUpdateValidator.validRequestRequiredParams(request); databaseTypeDao.selectOptionalById(request.getId()).ifPresent(data -> { @@ -111,6 +110,7 @@ private DriverResult loadAndValidate(String remoteUrl, String localPath, String return result; } + @Transactional public void deleteById(Integer id) { databaseTypeDao.selectOptionalById(id).ifPresent(data -> { if (DatabaseTypes.has(data.getDatabaseType())) { diff --git a/core/src/main/java/com/databasir/core/domain/discussion/service/DocumentDiscussionService.java b/core/src/main/java/com/databasir/core/domain/discussion/service/DocumentDiscussionService.java index 028c6cd9..62c351d9 100644 --- a/core/src/main/java/com/databasir/core/domain/discussion/service/DocumentDiscussionService.java +++ b/core/src/main/java/com/databasir/core/domain/discussion/service/DocumentDiscussionService.java @@ -17,6 +17,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Map; import java.util.Set; @@ -39,6 +40,7 @@ public class DocumentDiscussionService { private final EventPublisher eventPublisher; + @Transactional public void deleteById(Integer groupId, Integer projectId, Integer discussionId) { @@ -73,6 +75,7 @@ public Page list(Integer groupId, } } + @Transactional public void create(Integer groupId, Integer projectId, Integer userId, DiscussionCreateRequest request) { if (projectDao.exists(groupId, projectId)) { DocumentDiscussion pojo = new DocumentDiscussion(); diff --git a/core/src/main/java/com/databasir/core/domain/document/service/DocumentTemplateService.java b/core/src/main/java/com/databasir/core/domain/document/service/DocumentTemplateService.java index a7ec0aa8..d1116fa5 100644 --- a/core/src/main/java/com/databasir/core/domain/document/service/DocumentTemplateService.java +++ b/core/src/main/java/com/databasir/core/domain/document/service/DocumentTemplateService.java @@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; @@ -40,6 +41,7 @@ public DocumentTemplatePropertiesResponse getAllProperties() { .build(); } + @Transactional public void updateByType(DocumentTemplatePropertiesUpdateRequest request) { List pojoList = documentTemplatePropertiesUpdateRequestConverter.toPojo(request); documentTemplatePropertyDao.batchInsertOnDuplicateKeyUpdateValue(pojoList); diff --git a/core/src/main/java/com/databasir/core/domain/group/service/GroupService.java b/core/src/main/java/com/databasir/core/domain/group/service/GroupService.java index 0e6bbb7c..979f6b79 100644 --- a/core/src/main/java/com/databasir/core/domain/group/service/GroupService.java +++ b/core/src/main/java/com/databasir/core/domain/group/service/GroupService.java @@ -84,6 +84,7 @@ public void update(GroupUpdateRequest request) { eventPublisher.publish(new GroupUpdated(request.getId(), request.getName(), request.getDescription())); } + @Transactional public void delete(Integer groupId) { groupDao.deleteById(groupId); userRoleDao.deleteByGroupId(groupId); @@ -130,10 +131,12 @@ public GroupResponse get(Integer groupId) { return groupResponseConverter.toResponse(group, users); } + @Transactional public void removeMember(Integer groupId, Integer userId) { userRoleDao.deleteByUserIdAndGroupId(userId, groupId); } + @Transactional public void addMember(Integer groupId, GroupMemberCreateRequest request) { if (userRoleDao.hasRole(request.getUserId(), groupId)) { throw DomainErrors.USER_ROLE_DUPLICATE.exception(); @@ -145,6 +148,7 @@ public void addMember(Integer groupId, GroupMemberCreateRequest request) { userRoleDao.insertAndReturnId(pojo); } + @Transactional public void changeMemberRole(Integer groupId, Integer userId, String role) { if (!userRoleDao.hasRole(userId, groupId, role)) { // TODO 最多 20 个组长 diff --git a/core/src/main/java/com/databasir/core/domain/login/service/LoginService.java b/core/src/main/java/com/databasir/core/domain/login/service/LoginService.java index efb6e618..e1b5c320 100644 --- a/core/src/main/java/com/databasir/core/domain/login/service/LoginService.java +++ b/core/src/main/java/com/databasir/core/domain/login/service/LoginService.java @@ -15,6 +15,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.Instant; import java.time.LocalDateTime; @@ -38,6 +39,8 @@ public class LoginService { private final JwtTokens jwtTokens; + @Transactional + public AccessTokenRefreshResponse refreshAccessTokens(AccessTokenRefreshRequest request) { Login login = loginDao.selectByRefreshToken(request.getRefreshToken()) .orElseThrow(DomainErrors.INVALID_REFRESH_TOKEN_OPERATION::exception); @@ -71,6 +74,8 @@ public AccessTokenRefreshResponse refreshAccessTokens(AccessTokenRefreshRequest return new AccessTokenRefreshResponse(accessToken, accessTokenExpireAtMilli); } + @Transactional + public LoginKeyResponse generate(Integer userId) { User user = userDao.selectById(userId); String accessToken = jwtTokens.accessToken(user.getEmail()); diff --git a/core/src/main/java/com/databasir/core/domain/mock/MockDataService.java b/core/src/main/java/com/databasir/core/domain/mock/MockDataService.java index 278789ae..ec4dcb20 100644 --- a/core/src/main/java/com/databasir/core/domain/mock/MockDataService.java +++ b/core/src/main/java/com/databasir/core/domain/mock/MockDataService.java @@ -18,6 +18,7 @@ import com.databasir.dao.tables.pojos.TableDocument; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.function.Function; @@ -41,6 +42,8 @@ public class MockDataService { private final MockDataValidator mockDataValidator; + @Transactional + public String generateMockInsertSql(Integer projectId, MockDataGenerateCondition condition) { mockDataValidator.validProject(projectId); DatabaseDocument databaseDoc = @@ -50,6 +53,8 @@ public String generateMockInsertSql(Integer projectId, MockDataGenerateCondition return mockDataGenerator.createInsertSql(projectId, databaseDoc.getId(), tableDoc.getName()); } + @Transactional + public void saveMockRules(Integer projectId, Integer tableId, List rules) { diff --git a/core/src/main/java/com/databasir/core/domain/project/service/ProjectService.java b/core/src/main/java/com/databasir/core/domain/project/service/ProjectService.java index 825ed324..f2b10726 100644 --- a/core/src/main/java/com/databasir/core/domain/project/service/ProjectService.java +++ b/core/src/main/java/com/databasir/core/domain/project/service/ProjectService.java @@ -236,6 +236,8 @@ public List listManualTasks(Integer projectId, Projec return projectSimpleTaskResponseConverter.of(tasks); } + @Transactional + public void cancelTask(Integer projectId, Integer taskId) { if (!projectDao.existsById(projectId)) { throw DomainErrors.PROJECT_NOT_FOUND.exception(); diff --git a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java index 3b9148bb..784e85a3 100644 --- a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java +++ b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java @@ -7,6 +7,7 @@ import com.databasir.dao.tables.pojos.SysMail; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.Optional; @@ -40,6 +41,8 @@ public void deleteSystemEmail() { }); } + @Transactional + public void updateEmailSetting(SystemEmailUpdateRequest request) { SysMail sysMail = new SysMail(); sysMail.setSmtpHost(request.getSmtpHost()); diff --git a/core/src/main/java/com/databasir/core/domain/user/service/UserProjectService.java b/core/src/main/java/com/databasir/core/domain/user/service/UserProjectService.java index c2fe8e42..04e83e9a 100644 --- a/core/src/main/java/com/databasir/core/domain/user/service/UserProjectService.java +++ b/core/src/main/java/com/databasir/core/domain/user/service/UserProjectService.java @@ -76,6 +76,8 @@ public void addFavorites(Integer projectId, Integer userId) { } } + @Transactional + public void removeFavorites(Integer projectId, Integer userId) { if (userFavoriteProjectDao.exists(userId, projectId)) { userFavoriteProjectDao.delete(userId, projectId); diff --git a/core/src/main/java/com/databasir/core/domain/user/service/UserService.java b/core/src/main/java/com/databasir/core/domain/user/service/UserService.java index 51e8a6ab..f5dc339e 100644 --- a/core/src/main/java/com/databasir/core/domain/user/service/UserService.java +++ b/core/src/main/java/com/databasir/core/domain/user/service/UserService.java @@ -143,12 +143,15 @@ public void switchEnableStatus(Integer userId, Boolean enable) { } } + @Transactional public void removeSysOwnerFrom(Integer userId) { if (userRoleDao.hasRole(userId, SYS_OWNER)) { userRoleDao.deleteRole(userId, SYS_OWNER); } } + @Transactional + public void addSysOwnerTo(Integer userId) { if (!userRoleDao.hasRole(userId, SYS_OWNER)) { UserRole role = new UserRole(); @@ -158,6 +161,7 @@ public void addSysOwnerTo(Integer userId) { } } + @Transactional public void updatePassword(Integer userId, UserPasswordUpdateRequest request) { if (!Objects.equals(request.getNewPassword(), request.getConfirmNewPassword())) { throw DomainErrors.UPDATE_PASSWORD_CONFIRM_FAILED.exception(); @@ -171,6 +175,7 @@ public void updatePassword(Integer userId, UserPasswordUpdateRequest request) { loginDao.deleteByUserId(userId); } + @Transactional public void updateNickname(Integer userId, UserNicknameUpdateRequest request) { User user = userDao.selectById(userId); user.setNickname(request.getNickname());