REQ-3104: 查询所有按钮/kv
This commit is contained in:
parent
201f02d93e
commit
470384a8bc
@ -14,12 +14,10 @@ import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.TodoType;
|
||||
import cn.axzo.msg.center.service.pending.ClientRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
import cn.axzo.msg.center.utils.DateFormatUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -33,7 +31,6 @@ import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @description
|
||||
@ -285,64 +282,6 @@ public class PendingMessageDTO implements Serializable {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingMessageResponse toResponse(ClientRequest request) {
|
||||
boolean isCreatedToday = false;
|
||||
if (createTime != null) {
|
||||
Date createAt = DateFormatUtil.toDate(createTime);
|
||||
isCreatedToday = DateUtil.isSameDay(createAt, new Date());
|
||||
}
|
||||
return PendingMessageResponse.builder()
|
||||
// 发起人单位、项目信息
|
||||
.promoterOuId(promoterOuId)
|
||||
.promoterWorkspaceId(promoterWorkspaceId)
|
||||
.promoterWorkspaceName(promoterWorkspaceName)
|
||||
.promoterWorkspaceType(promoterWorkspaceType)
|
||||
// 接收者单位、项目信息
|
||||
.executorOuId(executorOuId)
|
||||
.executorWorkspaceId(executorWorkspaceId)
|
||||
.executorWorkspaceName(executorWorkspaceName)
|
||||
.executorWorkspaceType(executorWorkspaceType)
|
||||
// 其它信息
|
||||
.bizExtParamObj(bizExtParamObj)
|
||||
.routerExtParamObj(routerExtParamObj)
|
||||
//页面展示
|
||||
.ouId(this.ouId)
|
||||
.workspaceId(workspaceId)
|
||||
.workspaceName(workspaceName)
|
||||
// 样式
|
||||
.detailStyle(detailStyle)
|
||||
.isCreatedToday(isCreatedToday)
|
||||
.isRead(isRead)
|
||||
.todoType(todoType)
|
||||
.proposedButtons(proposedButtons)
|
||||
.templateCategory(templateCategory)
|
||||
.identityCode(this.identityCode)
|
||||
.templateCode(this.templateCode)
|
||||
.title(this.title)
|
||||
.content(this.content)
|
||||
.promoterPersonId(Optional.ofNullable(this.promoter).map(PersonDTO::getId).orElse(null))
|
||||
.promoterName(Optional.ofNullable(this.promoter).map(PersonDTO::getName).orElse(null))
|
||||
.promoterIdentity(Optional.ofNullable(this.promoter).map(PersonDTO::getIdentity).orElse(null))
|
||||
.executorPersonId(Optional.ofNullable(this.executor).map(PersonDTO::getId).orElse(null))
|
||||
.executorName(Optional.ofNullable(this.executor).map(PersonDTO::getName).orElse(null))
|
||||
.executorIdentity(Optional.ofNullable(this.executor).map(PersonDTO::getIdentity).orElse(null))
|
||||
.bizCode(this.bizCode)
|
||||
.subBizCode(this.subBizCode)
|
||||
.bizDesc(this.bizDesc)
|
||||
.bizFlag(this.bizFlag)
|
||||
.state(this.getState())
|
||||
.bizCategory(this.bizCategory)
|
||||
.createTimestamp(DateFormatUtil.toTimestamp(this.createTime))
|
||||
.updateTimestamp(DateFormatUtil.toTimestamp(this.updateTime))
|
||||
.deadlineTimestamp(DateFormatUtil.toTimestamp(this.deadline))
|
||||
.bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null))
|
||||
.bizFinalState(bizFinalState)
|
||||
.modelV3(modelV3)
|
||||
.displayOnCardKeyValues(modelV3.determineDisplayOnCardKeyValues())
|
||||
.cardUrlOpenStrategy(cardUrlOpenStrategy)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JSON.toJSONString(this);
|
||||
|
||||
@ -122,10 +122,12 @@ public class TodoRangeQueryService {
|
||||
if (respResult.getList() != null) {
|
||||
ArrayList<ParsedKV> keyValues = new ArrayList<>();
|
||||
for (PendingMessageResponse response : respResult.getList()) {
|
||||
response.determineButtonRouters()
|
||||
.removeIf(btn -> !btn.determineStyles().contains(ButtonStyleEnum.OVER_CARD));
|
||||
if (request.isButtonDisplayOnCardAware())
|
||||
response.determineButtonRouters()
|
||||
.removeIf(btn -> !btn.determineStyles().contains(ButtonStyleEnum.OVER_CARD));
|
||||
if (response.getModelV3() != null) {
|
||||
response.getModelV3().getButtons().removeIf(btn -> {
|
||||
if (!request.isButtonDisplayOnCardAware()) return false;
|
||||
YesOrNo supportBatchProcess = request.getSupportBatchProcess();
|
||||
boolean notBatchProcessQuery = supportBatchProcess == null || supportBatchProcess == YesOrNo.NO;
|
||||
return notBatchProcessQuery && !btn.hasStyle(ButtonStyleEnum.OVER_CARD);
|
||||
|
||||
@ -24,6 +24,7 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.ParsedModel3Visitor;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.ParsedModelV3Walker;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedCardUrl;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedKV;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
import cn.axzo.msg.center.utils.JSONObjectUtil;
|
||||
@ -250,7 +251,13 @@ class TodoRespBuilder {
|
||||
|
||||
Runnable modelV3Builder = () -> {
|
||||
response.setModelV3(parsedModel);
|
||||
response.setDisplayOnCardKeyValues(parsedModel.determineDisplayOnCardKeyValues());
|
||||
List<ParsedKV> keyValues = parsedModel.collectKeyValues();
|
||||
boolean isKeyValueDisplayOnCardAware = request == null || request.isKeyValueDisplayOnCardAware();
|
||||
if (isKeyValueDisplayOnCardAware)
|
||||
keyValues = keyValues.stream()
|
||||
.filter(ParsedKV::isDisplayOnCard)
|
||||
.collect(toList());
|
||||
response.setDisplayOnCardKeyValues(keyValues);
|
||||
response.setCardUrlOpenStrategy(templateModel.getTemplate().getCardUrlOpenStrategy());
|
||||
ParsedModelV3Walker.walkDown(parsedModel, new ParsedModel3Visitor() {
|
||||
@Override
|
||||
|
||||
@ -16,4 +16,12 @@ public interface ClientRequest {
|
||||
return ModelVersion.V3.getVersionNumber();
|
||||
}
|
||||
|
||||
default boolean isKeyValueDisplayOnCardAware() {
|
||||
return false;
|
||||
}
|
||||
|
||||
default boolean isButtonDisplayOnCardAware() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@ -158,6 +158,16 @@ public class PendingMessagePageRequest extends PageRequest implements ClientRequ
|
||||
*/
|
||||
private Integer modelVersion;
|
||||
|
||||
/**
|
||||
* 是否根据配置'是否显示在卡片上'过滤key/value
|
||||
*/
|
||||
private boolean isKeyValueDisplayOnCardAware = true;
|
||||
|
||||
/**
|
||||
* 是否根据配置'是否显示在卡片上'过滤按钮
|
||||
*/
|
||||
private boolean isButtonDisplayOnCardAware = true;
|
||||
|
||||
// !! 用于排查问题
|
||||
private String analysisToken;
|
||||
private AnalysisInfo a = new AnalysisInfo();
|
||||
|
||||
@ -64,14 +64,13 @@ public class ParsedModelV3 implements MessageButtonProvider<ParsedButtonV3>, Pus
|
||||
return template == null ? null : template.getCode();
|
||||
}
|
||||
|
||||
public List<ParsedKV> determineDisplayOnCardKeyValues() {
|
||||
public List<ParsedKV> collectKeyValues() {
|
||||
return determineGroups().stream()
|
||||
.filter(group -> group.getGroupType() == GroupType.KV_VALUES)
|
||||
.map(ParsedGroupV3::getGroupInfo)
|
||||
.filter(Objects::nonNull)
|
||||
.map(ParsedGroupInfo::getKeyValues)
|
||||
.flatMap(Collection::stream)
|
||||
.filter(ParsedKV::isDisplayOnCard)
|
||||
.collect(toList());
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user