Merge branch 'feature/REQ-1507' into dev

This commit is contained in:
陈维伟 2023-11-10 18:21:30 +08:00
commit 17d4ae0376
4 changed files with 46 additions and 14 deletions

View File

@ -113,6 +113,10 @@
<groupId>cn.axzo.im.center</groupId> <groupId>cn.axzo.im.center</groupId>
<artifactId>im-center-api</artifactId> <artifactId>im-center-api</artifactId>
</dependency> </dependency>
<dependency>
<groupId>cn.axzo.apollo</groupId>
<artifactId>apollo-workspace-api</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -44,18 +44,20 @@ public class PendingMessagePushParam implements Serializable {
* 模板编码 * 模板编码
*/ */
private String templateCode; private String templateCode;
/** // /**
* 消息所属项目部类型 // * 删除工作台类型,通过id查
*/ // * 消息所属项目部类型
private OrganizationTypeEnum orgType; // */
// private OrganizationTypeEnum orgType;
/** /**
* 消息所属项目部Id * 消息所属项目部Id
*/ */
private Long workspaceId; private Long workspaceId;
/** // /**
* 消息所属项目部名称 // * 删除工作台名称,通过id查
*/ // * 消息所属项目部名称
private String workspaceName; // */
// private String workspaceName;
/** /**
* 业务类型 * 业务类型
*/ */

View File

@ -1,5 +1,8 @@
package cn.axzo.msg.center.message.service.impl; package cn.axzo.msg.center.message.service.impl;
import cn.axzo.apollo.core.web.Result;
import cn.axzo.apollo.workspace.api.workspace.WorkspaceApi;
import cn.axzo.apollo.workspace.api.workspace.res.SimpleWorkspaceRes;
import cn.axzo.msg.center.common.enums.TableIsDeleteEnum; import cn.axzo.msg.center.common.enums.TableIsDeleteEnum;
import cn.axzo.msg.center.common.exception.ServiceException; import cn.axzo.msg.center.common.exception.ServiceException;
import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.common.utils.PlaceholderResolver;
@ -61,6 +64,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
private final MessageGroupNodeService messageGroupNodeService; private final MessageGroupNodeService messageGroupNodeService;
private final MessageTemplateNewService messageTemplateNewService; private final MessageTemplateNewService messageTemplateNewService;
private final MessageTemplateGroupService messageTemplateGroupService; private final MessageTemplateGroupService messageTemplateGroupService;
private final WorkspaceApi workspaceApi;
@Override @Override
public List<PendingMessageStatisticDTO> groupStatistic(MessageGroupNodeStatisticParam param) { public List<PendingMessageStatisticDTO> groupStatistic(MessageGroupNodeStatisticParam param) {
@ -122,8 +126,18 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
MessageTemplateDTO msgTemplate = messageTemplateNewService MessageTemplateDTO msgTemplate = messageTemplateNewService
.queryByTemplateCode(param.getTemplateCode()) .queryByTemplateCode(param.getTemplateCode())
.orElseThrow(() -> new ServiceException("not found message template.")); .orElseThrow(() -> new ServiceException("not found message template."));
// 生成requestNo
String requestNo = UUIDUtil.uuidString(); String requestNo = UUIDUtil.uuidString();
List<PendingMessageRecord> record = convert(param, msgTemplate,requestNo); // 查询工作台信息
SimpleWorkspaceRes workspace = null;
Long workspaceId = param.getWorkspaceId();
Result<SimpleWorkspaceRes> workspaceRes = workspaceApi.getOne(workspaceId);
if (!"200".equals(workspaceRes.getCode())) {
log.info("未查询到工作台信息 workspaceId:{}",workspaceId);
}else{
workspace = workspaceRes.getData();
}
List<PendingMessageRecord> record = convert(param, msgTemplate,requestNo,workspace);
pendingMessageRecordDao.saveBatch(record); pendingMessageRecordDao.saveBatch(record);
// TODO 消息推送 @luofu // TODO 消息推送 @luofu
return requestNo; return requestNo;
@ -250,7 +264,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
}); });
} }
private List<PendingMessageRecord> convert(PendingMessagePushParam param, MessageTemplateDTO msgTemplate,String requestNo) { private List<PendingMessageRecord> convert(PendingMessagePushParam param, MessageTemplateDTO msgTemplate,String requestNo,SimpleWorkspaceRes workspace) {
// 多个执行者生成多条record // 多个执行者生成多条record
return param.getExecutor().stream().map(executor ->{ return param.getExecutor().stream().map(executor ->{
PendingMessageRecord record = new PendingMessageRecord(); PendingMessageRecord record = new PendingMessageRecord();
@ -262,9 +276,11 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
// 构建模板信息 // 构建模板信息
buildTemplateInfo(record, msgTemplate, param.getRouterParams()); buildTemplateInfo(record, msgTemplate, param.getRouterParams());
// 构建代办所属企业/项目等相关信息 // 构建代办所属企业/项目等相关信息
record.setOrgType(Objects.isNull(param.getOrgType()) ? OrganizationTypeEnum.UNKNOWN : param.getOrgType());
record.setOrgId(param.getWorkspaceId()); record.setOrgId(param.getWorkspaceId());
record.setOrgName(param.getWorkspaceName()); if (workspace != null) {
record.setOrgType(OrganizationTypeEnum.codeOf(workspace.getType()));
record.setOrgName(workspace.getName());
}
// 构建业务类信息 // 构建业务类信息
buildBusinessInfo(record, param); buildBusinessInfo(record, param);
return record; return record;

View File

@ -4,7 +4,10 @@ import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays;
/** /**
* 工作台类型
* @description * @description
* *
* @author cold_blade * @author cold_blade
@ -14,10 +17,17 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE) @AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum OrganizationTypeEnum { public enum OrganizationTypeEnum {
ENT(2, "企业工作台"), ENT(1, "企业工作台"),
PROJECT(1, "项目部工作台"), PROJECT(2, "项目部工作台"),
UNKNOWN(0, "未知"); UNKNOWN(0, "未知");
private final Integer code; private final Integer code;
private final String message; private final String message;
public static OrganizationTypeEnum codeOf(Integer code) {
return Arrays.stream(values())
.filter(e -> e.code.equals(code))
.findFirst().orElse(UNKNOWN);
}
} }