抢红包增加锁

This commit is contained in:
tianfeng 2025-11-26 11:40:37 +08:00
parent 40be2a0440
commit b2fb0fe217

View File

@ -11,6 +11,7 @@ import com.red.circle.other.app.dto.cmd.GrabRoomRedPacketCmd;
import com.red.circle.other.app.dto.cmd.QueryRoomRedPacketDetailCmd;
import com.red.circle.other.app.dto.cmd.QueryRoomRedPacketListCmd;
import com.red.circle.other.app.dto.cmd.SendRoomRedPacketCmd;
import com.red.circle.other.app.util.DistributedLockUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -29,6 +30,7 @@ public class RoomRedPacketServiceImpl implements RoomRedPacketService {
private final GrabRoomRedPacketCmdExe grabRoomRedPacketCmdExe;
private final QueryRoomRedPacketListQryExe queryRoomRedPacketListQryExe;
private final QueryRoomRedPacketDetailQryExe queryRoomRedPacketDetailQryExe;
private final DistributedLockUtil distributedLockUtil;
@Override
public RoomRedPacketCO sendRedPacket(SendRoomRedPacketCmd cmd) {
@ -37,7 +39,8 @@ public class RoomRedPacketServiceImpl implements RoomRedPacketService {
@Override
public GrabRoomRedPacketResultCO grabRedPacket(GrabRoomRedPacketCmd cmd) {
return grabRoomRedPacketCmdExe.execute(cmd);
String key = "room:red_packet:" + cmd.getPacketId() + ":" + cmd.getReqUserId();
return distributedLockUtil.executeWithLock(key, () -> grabRoomRedPacketCmdExe.execute(cmd));
}
@Override