Merge branch 'feature/REQ-1507' of axzsource.com:universal/infrastructure/backend/msg-center-plat into dev
This commit is contained in:
commit
bda8a0f478
@ -2,6 +2,7 @@ package cn.axzo.msg.center.inside.notices.config;
|
||||
|
||||
import cn.axzo.msg.center.api.enums.MsgTempBizCategoryEnum;
|
||||
import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes;
|
||||
import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -15,6 +16,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -44,6 +46,8 @@ public class PendingMessageBizConfig {
|
||||
|
||||
private Map<MsgTempBizCategoryEnum, String> categoryJumpUrl;
|
||||
|
||||
private Map<AppTerminalTypeEnum, List<Long>> msgGroupConfig;
|
||||
|
||||
public List<MsgTempBizCategoryConfig> tempCategoriesConfig() {
|
||||
return Arrays.stream(MsgTempBizCategoryEnum.values())
|
||||
.filter(e -> category.containsKey(e))
|
||||
@ -59,6 +63,14 @@ public class PendingMessageBizConfig {
|
||||
categoryJumpUrl.get(category));
|
||||
}
|
||||
|
||||
public List<Long> fetchMessageGroupTreeNodeIds(AppTerminalTypeEnum appTerminalType) {
|
||||
if (Objects.isNull(appTerminalType)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// TODO: [cold_blade] [P2] 需要配置各个应用终端映射的业务中心分类的结点id
|
||||
return msgGroupConfig.getOrDefault(appTerminalType, Collections.emptyList());
|
||||
}
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
package cn.axzo.msg.center.message.controller;
|
||||
|
||||
import cn.axzo.msg.center.message.domain.dto.PendingMessageStatisticDTO;
|
||||
import cn.axzo.msg.center.message.domain.dto.PendingMessageDTO;
|
||||
import cn.axzo.msg.center.message.domain.dto.PendingMessageStatisticDTO;
|
||||
import cn.axzo.msg.center.message.domain.param.MessageGroupNodeStatisticParam;
|
||||
import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam;
|
||||
import cn.axzo.msg.center.message.service.PendingMessageNewService;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.client.PendingMessageClient;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import cn.azxo.framework.common.model.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.msg.center.message.service;
|
||||
|
||||
import cn.axzo.msg.center.message.domain.param.MessageGroupNodeSaveOrUpdateParam;
|
||||
import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO;
|
||||
import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@ -72,4 +73,13 @@ public interface MessageGroupNodeService {
|
||||
* @return 分类树列表
|
||||
*/
|
||||
List<GroupTreeNodeDTO> listGroupTree(@Nullable MessageGroupCategoryEnum category, @Nullable String nodeName);
|
||||
|
||||
/**
|
||||
* 获取各个应用端对应的业务中心分类结点编码配置
|
||||
*
|
||||
* @param category 分类树的种类
|
||||
* @param appTerminalType 应用终端类型
|
||||
* @return 对应的分类树的根节点编码列表
|
||||
*/
|
||||
List<String> listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType);
|
||||
}
|
||||
|
||||
@ -7,11 +7,13 @@ import cn.axzo.msg.center.dal.MessageGroupNodeDao;
|
||||
import cn.axzo.msg.center.dal.MessageTemplateGroupDao;
|
||||
import cn.axzo.msg.center.domain.entity.MessageGroupNode;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateGroup;
|
||||
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
|
||||
import cn.axzo.msg.center.message.domain.dto.GroupTreeNodePathDTO;
|
||||
import cn.axzo.msg.center.message.domain.param.MessageGroupNodeSaveOrUpdateParam;
|
||||
import cn.axzo.msg.center.message.service.MessageGroupNodeService;
|
||||
import cn.axzo.msg.center.message.service.MessageGroupTreeNodeCacheService;
|
||||
import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO;
|
||||
import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum;
|
||||
import cn.axzo.msg.center.utils.TreeHelperUtil;
|
||||
import cn.axzo.msg.center.utils.UUIDUtil;
|
||||
@ -41,6 +43,7 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService {
|
||||
|
||||
private final MessageGroupNodeDao messageGroupNodeDao;
|
||||
private final MessageTemplateGroupDao messageTemplateGroupDao;
|
||||
private final PendingMessageBizConfig pendingMessageBizConfig;
|
||||
private final MessageGroupTreeNodeCacheService messageGroupTreeNodeCacheService;
|
||||
|
||||
@Override
|
||||
@ -134,6 +137,18 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType) {
|
||||
AssertUtil.notNull(category, "category can not be null");
|
||||
List<Long> nodeIds = MessageGroupCategoryEnum.PENDING.equals(category) ?
|
||||
pendingMessageBizConfig.fetchMessageGroupTreeNodeIds(appTerminalType) : Collections.emptyList();
|
||||
return messageGroupTreeNodeCacheService.listAllGroupTree().stream()
|
||||
.filter(e -> category.getMsgGroupNodeCategories().contains(e.getCategory()))
|
||||
.filter(e -> CollectionUtils.isEmpty(nodeIds) || nodeIds.contains(e.getNodeId()))
|
||||
.map(GroupTreeNodeDTO::getNodeCode)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private MessageGroupNode convert(MessageGroupNodeSaveOrUpdateParam param) {
|
||||
MessageGroupNode groupNode = new MessageGroupNode();
|
||||
groupNode.setCode(UUIDUtil.uuidString());
|
||||
|
||||
@ -154,6 +154,7 @@ public class MessageGroupTreeNodeCacheServiceImpl implements MessageGroupTreeNod
|
||||
|
||||
private GroupTreeNodeDTO convert(MessageGroupNode groupNode) {
|
||||
return GroupTreeNodeDTO.builder()
|
||||
.nodeId(groupNode.getId())
|
||||
.nodeName(groupNode.getName())
|
||||
.nodeCode(groupNode.getCode())
|
||||
.nodeIcon(groupNode.getIcon())
|
||||
|
||||
@ -20,6 +20,7 @@ import cn.axzo.msg.center.service.dto.IdentityDTO;
|
||||
import cn.axzo.msg.center.service.dto.PersonDTO;
|
||||
import cn.axzo.msg.center.service.dto.QueryOrderByDTO;
|
||||
import cn.axzo.msg.center.service.enums.IdentityTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum;
|
||||
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageRoleCategoryEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
@ -68,8 +69,9 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
|
||||
@Override
|
||||
public List<PendingMessageStatisticDTO> groupStatistic(MessageGroupNodeStatisticParam param) {
|
||||
// TODO: [cold_blade] [P0] 获取待统计的业务中心分类结点的编码
|
||||
return param.getGroupNodeCodes().stream()
|
||||
List<String> groupTreeRootNodeCodes = messageGroupNodeService
|
||||
.listGroupTreeRootNodeCodes(MessageGroupCategoryEnum.PENDING, param.getTerminalType());
|
||||
return groupTreeRootNodeCodes.stream()
|
||||
.flatMap(e -> statistic(e, param).stream())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
@ -127,6 +129,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
.orElseThrow(() -> new ServiceException("not found message template."));
|
||||
PendingMessageRecord record = convert(param, msgTemplate);
|
||||
pendingMessageRecordDao.save(record);
|
||||
// TODO 补偿消息推送 @luofu
|
||||
return record.getIdentityCode();
|
||||
}
|
||||
|
||||
@ -185,7 +188,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
}
|
||||
|
||||
private List<PendingMessageStatisticDTO> statistic(String rootNodeCode, MessageGroupNodeStatisticParam param) {
|
||||
// TODO:[cold_blade] [P0] 异常捕获处理记忆功能实现
|
||||
// TODO:[cold_blade] [P0] 异常捕获处理功能实现
|
||||
GroupTreeNodeDTO rootNode = messageGroupNodeService.queryRootNode(rootNodeCode)
|
||||
.orElseThrow(() -> new ServiceException("groupNodeCode is invalid."));
|
||||
// 外部传的是根节点,但是前端希望只返回根节点的字节的
|
||||
|
||||
@ -9,12 +9,10 @@ import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -32,6 +30,10 @@ public class GroupTreeNodeDTO implements IBaseTree<GroupTreeNodeDTO, String>, Se
|
||||
|
||||
private static final long serialVersionUID = -3244632155934087302L;
|
||||
|
||||
/**
|
||||
* 存储模型的主键id
|
||||
*/
|
||||
private Long nodeId;
|
||||
/**
|
||||
* 模板分组结点名称
|
||||
*/
|
||||
@ -83,13 +85,4 @@ public class GroupTreeNodeDTO implements IBaseTree<GroupTreeNodeDTO, String>, Se
|
||||
.children(children)
|
||||
.build();
|
||||
}
|
||||
|
||||
public Optional<GroupTreeNodeDTO> getChild(String treeNodeCode) {
|
||||
if (StringUtils.isBlank(treeNodeCode) || Objects.isNull(nodeChildren)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return nodeChildren.stream()
|
||||
.filter(e -> Objects.equals(e.getNodeCode(), treeNodeCode))
|
||||
.findFirst();
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,6 +51,10 @@ public class PendingMessageResponse implements Serializable {
|
||||
* 代办发起者自然人id
|
||||
*/
|
||||
private Long promoterPersonId;
|
||||
/**
|
||||
* 发起者姓名
|
||||
*/
|
||||
private String promoterName;
|
||||
/**
|
||||
* 代办发起者身份
|
||||
*/
|
||||
@ -59,6 +63,10 @@ public class PendingMessageResponse implements Serializable {
|
||||
* 代办执行者自然人id
|
||||
*/
|
||||
private Long executorPersonId;
|
||||
/**
|
||||
* 执行者姓名
|
||||
*/
|
||||
private String executorName;
|
||||
/**
|
||||
* 代办执行者身份
|
||||
*/
|
||||
@ -79,6 +87,14 @@ public class PendingMessageResponse implements Serializable {
|
||||
* 业务标签
|
||||
*/
|
||||
private String bizFlag;
|
||||
/**
|
||||
* 项目部图标
|
||||
*/
|
||||
private String projectIcon;
|
||||
/**
|
||||
* 项目部名称
|
||||
*/
|
||||
private String projectName;
|
||||
/**
|
||||
* 业务类型
|
||||
*/
|
||||
@ -106,7 +122,7 @@ public class PendingMessageResponse implements Serializable {
|
||||
/**
|
||||
* 业务终态的印章图片地址
|
||||
*/
|
||||
private String bizFinalStateIconUrl;
|
||||
private String bizFinalStateIcon;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@ -44,6 +44,10 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
|
||||
* 发起者的自然人ID
|
||||
*/
|
||||
private Long promoterPersonId;
|
||||
/**
|
||||
* 发起者姓名
|
||||
*/
|
||||
private String promoterName;
|
||||
/**
|
||||
* 发起者身份
|
||||
*/
|
||||
@ -56,6 +60,10 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
|
||||
* 执行者的自然人ID
|
||||
*/
|
||||
private Long executorPersonId;
|
||||
/**
|
||||
* 执行者姓名
|
||||
*/
|
||||
private String executorName;
|
||||
/**
|
||||
* 执行者身份
|
||||
*/
|
||||
@ -104,6 +112,10 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
|
||||
* 业务描述eg:流程结点描述
|
||||
*/
|
||||
private String bizDesc;
|
||||
/**
|
||||
* 业务标签
|
||||
*/
|
||||
private String bizFlag;
|
||||
/**
|
||||
* 业务扩展参数
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user