REQ-3201: 幂等控制
This commit is contained in:
parent
466a1b2f74
commit
5aeb6a56b1
@ -12,6 +12,7 @@ import cn.axzo.msg.center.service.pending.request.CardStateInfo;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdatePresetButtonRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdateStateRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PresetButtonPressedRequest;
|
||||
import cn.axzo.msg.center.service.util.IdempotentCodeBuilder;
|
||||
import com.alibaba.excel.util.StringUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.Sets;
|
||||
@ -185,6 +186,11 @@ public class TodoWithCardWrapper {
|
||||
}
|
||||
sendRequest.setStateInfo(CardStateInfo.buildCardStateInfo(CardBizState.PENDING.getCode(), CardState.CREATED));
|
||||
|
||||
sendRequest.setIdempotentCode(new IdempotentCodeBuilder(false)
|
||||
.append(param.getBizCode())
|
||||
.append(param.getSubBizCode())
|
||||
.build());
|
||||
|
||||
return sendRequest;
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package cn.axzo.msg.center.service.util;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class IdempotentCodeBuilder {
|
||||
|
||||
private final List<Object> buf = new ArrayList<>();
|
||||
private final boolean appendNull;
|
||||
|
||||
public IdempotentCodeBuilder append(Object value) {
|
||||
if (value == null && !appendNull)
|
||||
return this;
|
||||
buf.add(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public String build() {
|
||||
return buf.stream().map(String::valueOf).collect(Collectors.joining(":"));
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user