feat: add missing @Transaction to service

This commit is contained in:
vran 2022-07-27 22:50:34 +08:00
parent e5dc581e48
commit 5ecbf62853
10 changed files with 32 additions and 1 deletions

View File

@ -71,7 +71,6 @@ public class DatabaseTypeService {
} }
} }
@Transactional
public void update(DatabaseTypeUpdateRequest request) { public void update(DatabaseTypeUpdateRequest request) {
databaseTypeUpdateValidator.validRequestRequiredParams(request); databaseTypeUpdateValidator.validRequestRequiredParams(request);
databaseTypeDao.selectOptionalById(request.getId()).ifPresent(data -> { databaseTypeDao.selectOptionalById(request.getId()).ifPresent(data -> {
@ -111,6 +110,7 @@ public class DatabaseTypeService {
return result; return result;
} }
@Transactional
public void deleteById(Integer id) { public void deleteById(Integer id) {
databaseTypeDao.selectOptionalById(id).ifPresent(data -> { databaseTypeDao.selectOptionalById(id).ifPresent(data -> {
if (DatabaseTypes.has(data.getDatabaseType())) { if (DatabaseTypes.has(data.getDatabaseType())) {

View File

@ -17,6 +17,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -39,6 +40,7 @@ public class DocumentDiscussionService {
private final EventPublisher eventPublisher; private final EventPublisher eventPublisher;
@Transactional
public void deleteById(Integer groupId, public void deleteById(Integer groupId,
Integer projectId, Integer projectId,
Integer discussionId) { Integer discussionId) {
@ -73,6 +75,7 @@ public class DocumentDiscussionService {
} }
} }
@Transactional
public void create(Integer groupId, Integer projectId, Integer userId, DiscussionCreateRequest request) { public void create(Integer groupId, Integer projectId, Integer userId, DiscussionCreateRequest request) {
if (projectDao.exists(groupId, projectId)) { if (projectDao.exists(groupId, projectId)) {
DocumentDiscussion pojo = new DocumentDiscussion(); DocumentDiscussion pojo = new DocumentDiscussion();

View File

@ -9,6 +9,7 @@ import com.databasir.dao.tables.pojos.DocumentTemplateProperty;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -40,6 +41,7 @@ public class DocumentTemplateService {
.build(); .build();
} }
@Transactional
public void updateByType(DocumentTemplatePropertiesUpdateRequest request) { public void updateByType(DocumentTemplatePropertiesUpdateRequest request) {
List<DocumentTemplateProperty> pojoList = documentTemplatePropertiesUpdateRequestConverter.toPojo(request); List<DocumentTemplateProperty> pojoList = documentTemplatePropertiesUpdateRequestConverter.toPojo(request);
documentTemplatePropertyDao.batchInsertOnDuplicateKeyUpdateValue(pojoList); documentTemplatePropertyDao.batchInsertOnDuplicateKeyUpdateValue(pojoList);

View File

@ -84,6 +84,7 @@ public class GroupService {
eventPublisher.publish(new GroupUpdated(request.getId(), request.getName(), request.getDescription())); eventPublisher.publish(new GroupUpdated(request.getId(), request.getName(), request.getDescription()));
} }
@Transactional
public void delete(Integer groupId) { public void delete(Integer groupId) {
groupDao.deleteById(groupId); groupDao.deleteById(groupId);
userRoleDao.deleteByGroupId(groupId); userRoleDao.deleteByGroupId(groupId);
@ -130,10 +131,12 @@ public class GroupService {
return groupResponseConverter.toResponse(group, users); return groupResponseConverter.toResponse(group, users);
} }
@Transactional
public void removeMember(Integer groupId, Integer userId) { public void removeMember(Integer groupId, Integer userId) {
userRoleDao.deleteByUserIdAndGroupId(userId, groupId); userRoleDao.deleteByUserIdAndGroupId(userId, groupId);
} }
@Transactional
public void addMember(Integer groupId, GroupMemberCreateRequest request) { public void addMember(Integer groupId, GroupMemberCreateRequest request) {
if (userRoleDao.hasRole(request.getUserId(), groupId)) { if (userRoleDao.hasRole(request.getUserId(), groupId)) {
throw DomainErrors.USER_ROLE_DUPLICATE.exception(); throw DomainErrors.USER_ROLE_DUPLICATE.exception();
@ -145,6 +148,7 @@ public class GroupService {
userRoleDao.insertAndReturnId(pojo); userRoleDao.insertAndReturnId(pojo);
} }
@Transactional
public void changeMemberRole(Integer groupId, Integer userId, String role) { public void changeMemberRole(Integer groupId, Integer userId, String role) {
if (!userRoleDao.hasRole(userId, groupId, role)) { if (!userRoleDao.hasRole(userId, groupId, role)) {
// TODO 最多 20 个组长 // TODO 最多 20 个组长

View File

@ -15,6 +15,7 @@ import com.databasir.dao.tables.pojos.UserRole;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -38,6 +39,8 @@ public class LoginService {
private final JwtTokens jwtTokens; private final JwtTokens jwtTokens;
@Transactional
public AccessTokenRefreshResponse refreshAccessTokens(AccessTokenRefreshRequest request) { public AccessTokenRefreshResponse refreshAccessTokens(AccessTokenRefreshRequest request) {
Login login = loginDao.selectByRefreshToken(request.getRefreshToken()) Login login = loginDao.selectByRefreshToken(request.getRefreshToken())
.orElseThrow(DomainErrors.INVALID_REFRESH_TOKEN_OPERATION::exception); .orElseThrow(DomainErrors.INVALID_REFRESH_TOKEN_OPERATION::exception);
@ -71,6 +74,8 @@ public class LoginService {
return new AccessTokenRefreshResponse(accessToken, accessTokenExpireAtMilli); return new AccessTokenRefreshResponse(accessToken, accessTokenExpireAtMilli);
} }
@Transactional
public LoginKeyResponse generate(Integer userId) { public LoginKeyResponse generate(Integer userId) {
User user = userDao.selectById(userId); User user = userDao.selectById(userId);
String accessToken = jwtTokens.accessToken(user.getEmail()); String accessToken = jwtTokens.accessToken(user.getEmail());

View File

@ -18,6 +18,7 @@ import com.databasir.dao.tables.pojos.TableColumnDocument;
import com.databasir.dao.tables.pojos.TableDocument; import com.databasir.dao.tables.pojos.TableDocument;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
@ -41,6 +42,8 @@ public class MockDataService {
private final MockDataValidator mockDataValidator; private final MockDataValidator mockDataValidator;
@Transactional
public String generateMockInsertSql(Integer projectId, MockDataGenerateCondition condition) { public String generateMockInsertSql(Integer projectId, MockDataGenerateCondition condition) {
mockDataValidator.validProject(projectId); mockDataValidator.validProject(projectId);
DatabaseDocument databaseDoc = DatabaseDocument databaseDoc =
@ -50,6 +53,8 @@ public class MockDataService {
return mockDataGenerator.createInsertSql(projectId, databaseDoc.getId(), tableDoc.getName()); return mockDataGenerator.createInsertSql(projectId, databaseDoc.getId(), tableDoc.getName());
} }
@Transactional
public void saveMockRules(Integer projectId, public void saveMockRules(Integer projectId,
Integer tableId, Integer tableId,
List<ColumnMockRuleSaveRequest> rules) { List<ColumnMockRuleSaveRequest> rules) {

View File

@ -236,6 +236,8 @@ public class ProjectService {
return projectSimpleTaskResponseConverter.of(tasks); return projectSimpleTaskResponseConverter.of(tasks);
} }
@Transactional
public void cancelTask(Integer projectId, Integer taskId) { public void cancelTask(Integer projectId, Integer taskId) {
if (!projectDao.existsById(projectId)) { if (!projectDao.existsById(projectId)) {
throw DomainErrors.PROJECT_NOT_FOUND.exception(); throw DomainErrors.PROJECT_NOT_FOUND.exception();

View File

@ -7,6 +7,7 @@ import com.databasir.dao.impl.SysMailDao;
import com.databasir.dao.tables.pojos.SysMail; import com.databasir.dao.tables.pojos.SysMail;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Optional; import java.util.Optional;
@ -40,6 +41,8 @@ public class SystemService {
}); });
} }
@Transactional
public void updateEmailSetting(SystemEmailUpdateRequest request) { public void updateEmailSetting(SystemEmailUpdateRequest request) {
SysMail sysMail = new SysMail(); SysMail sysMail = new SysMail();
sysMail.setSmtpHost(request.getSmtpHost()); sysMail.setSmtpHost(request.getSmtpHost());

View File

@ -76,6 +76,8 @@ public class UserProjectService {
} }
} }
@Transactional
public void removeFavorites(Integer projectId, Integer userId) { public void removeFavorites(Integer projectId, Integer userId) {
if (userFavoriteProjectDao.exists(userId, projectId)) { if (userFavoriteProjectDao.exists(userId, projectId)) {
userFavoriteProjectDao.delete(userId, projectId); userFavoriteProjectDao.delete(userId, projectId);

View File

@ -143,12 +143,15 @@ public class UserService {
} }
} }
@Transactional
public void removeSysOwnerFrom(Integer userId) { public void removeSysOwnerFrom(Integer userId) {
if (userRoleDao.hasRole(userId, SYS_OWNER)) { if (userRoleDao.hasRole(userId, SYS_OWNER)) {
userRoleDao.deleteRole(userId, SYS_OWNER); userRoleDao.deleteRole(userId, SYS_OWNER);
} }
} }
@Transactional
public void addSysOwnerTo(Integer userId) { public void addSysOwnerTo(Integer userId) {
if (!userRoleDao.hasRole(userId, SYS_OWNER)) { if (!userRoleDao.hasRole(userId, SYS_OWNER)) {
UserRole role = new UserRole(); UserRole role = new UserRole();
@ -158,6 +161,7 @@ public class UserService {
} }
} }
@Transactional
public void updatePassword(Integer userId, UserPasswordUpdateRequest request) { public void updatePassword(Integer userId, UserPasswordUpdateRequest request) {
if (!Objects.equals(request.getNewPassword(), request.getConfirmNewPassword())) { if (!Objects.equals(request.getNewPassword(), request.getConfirmNewPassword())) {
throw DomainErrors.UPDATE_PASSWORD_CONFIRM_FAILED.exception(); throw DomainErrors.UPDATE_PASSWORD_CONFIRM_FAILED.exception();
@ -171,6 +175,7 @@ public class UserService {
loginDao.deleteByUserId(userId); loginDao.deleteByUserId(userId);
} }
@Transactional
public void updateNickname(Integer userId, UserNicknameUpdateRequest request) { public void updateNickname(Integer userId, UserNicknameUpdateRequest request) {
User user = userDao.selectById(userId); User user = userDao.selectById(userId);
user.setNickname(request.getNickname()); user.setNickname(request.getNickname());