动态相关接口新增分布式锁

This commit is contained in:
tianfeng 2026-02-03 11:13:09 +08:00
parent 9618b01c9b
commit ddb70a599a

View File

@ -34,6 +34,8 @@ import com.red.circle.other.app.dto.clientobject.dynamic.*;
import com.red.circle.other.app.dto.cmd.dynamic.*;
import java.util.List;
import com.red.circle.other.app.util.DistributedLockUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -75,15 +77,26 @@ public class DynamicServiceImpl implements DynamicService {
private final DynamicCheckSendPermissionCmdExe dynamicCheckSendPermissionCmdExe;
private final DynamicBlacklistAddCmdExe dynamicBlacklistAddCmdExe;
private final DynamicBlacklistDelCmdExe dynamicBlacklistDelCmdExe;
private final DistributedLockUtil distributedLockUtil;
private static final String LIKE_LOCK_PREFIX = "dynamic:like:lock";
private static final String COMMENT_LIKE_LOCK_PREFIX = "dynamic:comment:like:lock";
private static final String COMMENT_LOCK_PREFIX = "dynamic:comment:lock";
private static final String CREATE_LOCK_PREFIX = "dynamic:create:lock";
private static final String DELETE_LOCK_PREFIX = "dynamic:delete:lock";
private static final String DELETE_COMMENT_LOCK_PREFIX = "dynamic:comment:delete:lock";
private static final String REPORT_LOCK_PREFIX = "dynamic:report:lock";
@Override
public DynamicListCO createDynamic(DynamicContentAddCmd cmd) {
return dynamicContentAddCmdExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(CREATE_LOCK_PREFIX, cmd.getReqUserId());
return distributedLockUtil.executeWithLock(lockKey, () -> dynamicContentAddCmdExe.execute(cmd));
}
@Override
public void deleteDynamic(IdLongCmd cmd) {
dynamicContentDelExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(DELETE_LOCK_PREFIX, cmd.getReqUserId(), cmd.getId());
distributedLockUtil.executeWithLock(lockKey, () -> dynamicContentDelExe.execute(cmd));
}
@Override
@ -143,22 +156,26 @@ public class DynamicServiceImpl implements DynamicService {
@Override
public Long deleteComment(AppIdLongCmd cmd) {
return dynamicCommentDelExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(DELETE_COMMENT_LOCK_PREFIX, cmd.getReqUserId(), cmd.getId());
return distributedLockUtil.executeWithLock(lockKey, () -> dynamicCommentDelExe.execute(cmd));
}
@Override
public DynamicCommentListCO comment(DynamicCommentCmd cmd) {
return dynamicCommentExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(COMMENT_LOCK_PREFIX, cmd.getReqUserId(), cmd.getId());
return distributedLockUtil.executeWithLock(lockKey, () -> dynamicCommentExe.execute(cmd));
}
@Override
public Long likeComment(DynamicLikeCmd cmd) {
return dynamicCommentLikeExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(COMMENT_LIKE_LOCK_PREFIX, cmd.getReqUserId(), cmd.getCommentId());
return distributedLockUtil.executeWithLock(lockKey, () -> dynamicCommentLikeExe.execute(cmd));
}
@Override
public Long likeDynamic(DynamicLikeCmd cmd) {
return dynamicLikeExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(LIKE_LOCK_PREFIX, cmd.getReqUserId(), cmd.getDynamicId());
return distributedLockUtil.executeWithLock(lockKey, () -> dynamicLikeExe.execute(cmd));
}
@Override
@ -188,7 +205,8 @@ public class DynamicServiceImpl implements DynamicService {
@Override
public void report(DynamicReportCmd cmd) {
dynamicReportCmdExe.execute(cmd);
String lockKey = DistributedLockUtil.buildLockKey(REPORT_LOCK_PREFIX, cmd.getReqUserId(), cmd.getDynamicContentId());
distributedLockUtil.executeWithLock(lockKey, () -> dynamicReportCmdExe.execute(cmd));
}
@Override