动态相关接口新增分布式锁
This commit is contained in:
parent
9618b01c9b
commit
ddb70a599a
@ -34,6 +34,8 @@ import com.red.circle.other.app.dto.clientobject.dynamic.*;
|
|||||||
import com.red.circle.other.app.dto.cmd.dynamic.*;
|
import com.red.circle.other.app.dto.cmd.dynamic.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.red.circle.other.app.util.DistributedLockUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -75,15 +77,26 @@ public class DynamicServiceImpl implements DynamicService {
|
|||||||
private final DynamicCheckSendPermissionCmdExe dynamicCheckSendPermissionCmdExe;
|
private final DynamicCheckSendPermissionCmdExe dynamicCheckSendPermissionCmdExe;
|
||||||
private final DynamicBlacklistAddCmdExe dynamicBlacklistAddCmdExe;
|
private final DynamicBlacklistAddCmdExe dynamicBlacklistAddCmdExe;
|
||||||
private final DynamicBlacklistDelCmdExe dynamicBlacklistDelCmdExe;
|
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
|
@Override
|
||||||
public DynamicListCO createDynamic(DynamicContentAddCmd cmd) {
|
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
|
@Override
|
||||||
public void deleteDynamic(IdLongCmd cmd) {
|
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
|
@Override
|
||||||
@ -143,22 +156,26 @@ public class DynamicServiceImpl implements DynamicService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long deleteComment(AppIdLongCmd cmd) {
|
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
|
@Override
|
||||||
public DynamicCommentListCO comment(DynamicCommentCmd cmd) {
|
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
|
@Override
|
||||||
public Long likeComment(DynamicLikeCmd cmd) {
|
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
|
@Override
|
||||||
public Long likeDynamic(DynamicLikeCmd cmd) {
|
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
|
@Override
|
||||||
@ -188,7 +205,8 @@ public class DynamicServiceImpl implements DynamicService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void report(DynamicReportCmd cmd) {
|
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
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user