REQ-3045: 同步模版基础
This commit is contained in:
parent
fa5dd8f981
commit
bd3eb78983
@ -1,29 +1,27 @@
|
||||
package cn.axzo.msg.center.message.controller;
|
||||
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.msg.center.message.domain.param.MessageTemplateV3SaveOrUpdateParam;
|
||||
import cn.axzo.msg.center.message.domain.param.RelationTemplateMapInitParam;
|
||||
import cn.axzo.msg.center.message.domain.vo.RelationTemplateMapInitRequest;
|
||||
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
|
||||
import cn.axzo.msg.center.message.service.MessageTemplateNewSyncService;
|
||||
import cn.axzo.msg.center.message.service.MessageTemplateV3Service;
|
||||
import cn.axzo.msg.center.message.service.RelationTemplateMapService;
|
||||
import cn.axzo.msg.center.message.service.impl.MessageTemplateV3SyncService;
|
||||
import cn.axzo.msg.center.service.template.client.MessageTemplateV3Client;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3CreateRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateSyncDto;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateSyncQueryRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3CreateRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3DeleteRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3PageRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncResponse;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3UpdateRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3UpdateStatusRequest;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
import cn.axzo.msg.center.service.template.response.MessageTemplateDetailResponse;
|
||||
import cn.axzo.msg.center.service.template.response.MessageTemplatePageResponse;
|
||||
import cn.axzo.msg.center.service.template.response.MessageTemplateV3DetailResponse;
|
||||
import cn.axzo.msg.center.service.template.response.MessageTemplateV3PageResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import cn.azxo.framework.common.model.Page;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -51,7 +49,7 @@ public class MessageTemplateV3Controller implements MessageTemplateV3Client {
|
||||
|
||||
private final MessageTemplateNewService messageTemplateNewService;
|
||||
private final RelationTemplateMapService relationTemplateMapService;
|
||||
private final MessageTemplateNewSyncService messageTemplateNewSyncService;
|
||||
private final MessageTemplateV3SyncService messageTemplateV3SyncService;
|
||||
private final MessageTemplateV3Service messageTemplateV3Service;
|
||||
|
||||
@Override
|
||||
@ -98,17 +96,6 @@ public class MessageTemplateV3Controller implements MessageTemplateV3Client {
|
||||
return CommonResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<MessageTemplateSyncDto> getSyncMessageTemplate(
|
||||
MessageTemplateSyncQueryRequest request) {
|
||||
MessageTemplateDetailResponse detail = messageTemplateNewService.querySyncMessageTemplate(request.getTemplateCode());
|
||||
AssertUtil.notNull(detail, "消息模板不存在");
|
||||
MessageTemplateSyncDto result = BeanUtil.copyProperties(detail, MessageTemplateSyncDto.class);
|
||||
result.setTemplateCode(request.getTemplateCode());
|
||||
result.setEnv(request.getEnv());
|
||||
return CommonResponse.success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<MessageDetailStyle>> listTemplateDetailStyles() {
|
||||
List<MessageDetailStyle> styles = messageTemplateNewService.listTemplateDetailStyles();
|
||||
@ -116,10 +103,16 @@ public class MessageTemplateV3Controller implements MessageTemplateV3Client {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Void> syncTemplate(MessageTemplateSyncDto param) {
|
||||
log.info("syncTemplate param= [{}]", JSONUtil.toJsonStr(param));
|
||||
messageTemplateNewSyncService.syncTemplate(param);
|
||||
return CommonResponse.success();
|
||||
public CommonResponse<MessageTemplateV3SyncResponse>
|
||||
getSyncMessageTemplate(MessageTemplateSyncQueryRequest request) {
|
||||
log.info("getSyncMessageTemplate param= [{}]", JSONUtil.toJsonStr(request));
|
||||
return CommonResponse.success(messageTemplateV3SyncService.getSyncMessageTemplate(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<String> syncTemplate(MessageTemplateV3SyncRequest request) {
|
||||
log.info("syncTemplate param= [{}]", JSONUtil.toJsonStr(request));
|
||||
return CommonResponse.success(messageTemplateV3SyncService.syncTemplate(request));
|
||||
}
|
||||
|
||||
@PostMapping(value = "/message/template/relation/init/v3", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
|
||||
@ -0,0 +1,91 @@
|
||||
package cn.axzo.msg.center.message.service.impl;
|
||||
|
||||
import cn.axzo.msg.center.common.utils.BizAssertions;
|
||||
import cn.axzo.msg.center.dal.MessageTemplateButtonV3Dao;
|
||||
import cn.axzo.msg.center.dal.MessageTemplateGroupV3Dao;
|
||||
import cn.axzo.msg.center.dal.MessageTemplateV3Dao;
|
||||
import cn.axzo.msg.center.domain.entity.BaseEntityWithOperator;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateButtonV3;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateGroupV3;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateV3;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateSyncQueryRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncResponse;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MessageTemplateV3SyncService {
|
||||
|
||||
private final MessageTemplateV3Dao messageTemplateV3Dao;
|
||||
private final MessageTemplateGroupV3Dao messageTemplateGroupV3Dao;
|
||||
private final MessageTemplateButtonV3Dao messageTemplateButtonV3Dao;
|
||||
|
||||
public MessageTemplateV3SyncResponse getSyncMessageTemplate(MessageTemplateSyncQueryRequest request) {
|
||||
MessageTemplateV3 template = findTemplate(request.getTemplateCode());
|
||||
BizAssertions.assertNotNull(template, "未找到需要同步的模版: {}", request.getTemplateCode());
|
||||
List<MessageTemplateGroupV3> groups = messageTemplateGroupV3Dao.lambdaQuery()
|
||||
.eq(MessageTemplateGroupV3::getTemplateCode, template.getCode())
|
||||
.list();
|
||||
List<MessageTemplateButtonV3> buttons = messageTemplateButtonV3Dao.lambdaQuery()
|
||||
.eq(MessageTemplateButtonV3::getTemplateCode, template.getCode())
|
||||
.list();
|
||||
MessageTemplateV3SyncResponse resp = new MessageTemplateV3SyncResponse();
|
||||
JSONObject respJson = new JSONObject();
|
||||
respJson.put("template", template);
|
||||
respJson.put("groups", groups);
|
||||
respJson.put("buttons", buttons);
|
||||
resp.setTemplate(respJson);
|
||||
return resp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return error
|
||||
*/
|
||||
public String syncTemplate(MessageTemplateV3SyncRequest request) {
|
||||
MessageTemplateV3 template = request.getTemplate()
|
||||
.getObject("template", MessageTemplateV3.class);
|
||||
MessageTemplateV3 savedTemplate = findTemplate(template.getCode());
|
||||
if (savedTemplate != null) return "模板已存在";
|
||||
List<MessageTemplateGroupV3> groups = request.getTemplate()
|
||||
.getObject("groups", new TypeReference<List<MessageTemplateGroupV3>>() {});
|
||||
List<MessageTemplateButtonV3> buttons = request.getTemplate()
|
||||
.getObject("groups", new TypeReference<List<MessageTemplateButtonV3>>() {});
|
||||
|
||||
setBasicProps(template, request.getOperatorId(), request.getOperatorName());
|
||||
groups.forEach(group -> setBasicProps(group, request.getOperatorId(), request.getOperatorName()));
|
||||
buttons.forEach(button -> setBasicProps(button, request.getOperatorId(), request.getOperatorName()));
|
||||
|
||||
messageTemplateV3Dao.save(template);
|
||||
if (CollectionUtils.isNotEmpty(groups))
|
||||
messageTemplateGroupV3Dao.saveBatch(groups);
|
||||
if (CollectionUtils.isNotEmpty(buttons))
|
||||
messageTemplateButtonV3Dao.saveBatch(buttons);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private MessageTemplateV3 findTemplate(String templateCode) {
|
||||
return messageTemplateV3Dao.lambdaQuery()
|
||||
.eq(MessageTemplateV3::getCode, templateCode)
|
||||
.one();
|
||||
}
|
||||
|
||||
private void setBasicProps(BaseEntityWithOperator<?> entity, Long operatorId, String operatorName) {
|
||||
entity.setCreateAt(null);
|
||||
entity.setUpdateAt(null);
|
||||
entity.setCreatePersonId(operatorId);
|
||||
entity.setCreatePersonName(operatorName);
|
||||
entity.setUpdatePersonId(operatorId);
|
||||
entity.setUpdatePersonName(operatorName);
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,8 @@ import cn.axzo.msg.center.service.template.request.MessageTemplateSyncDto;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateSyncQueryRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3DeleteRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3PageRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3SyncResponse;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3UpdateRequest;
|
||||
import cn.axzo.msg.center.service.template.request.MessageTemplateV3UpdateStatusRequest;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
@ -96,14 +98,14 @@ public interface MessageTemplateV3Client {
|
||||
* 查询消息模板
|
||||
*/
|
||||
@PostMapping(value = "/message/template/v3/sync/get", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<MessageTemplateSyncDto> getSyncMessageTemplate(@RequestBody @Valid MessageTemplateSyncQueryRequest request);
|
||||
CommonResponse<MessageTemplateV3SyncResponse> getSyncMessageTemplate(@RequestBody @Valid MessageTemplateSyncQueryRequest request);
|
||||
|
||||
/**
|
||||
* 同步消息模板
|
||||
* req-1896 说明:仅pre环境能同步
|
||||
*/
|
||||
@PostMapping(value = "/message/template/v3/sync", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Void> syncTemplate(@RequestBody @Valid MessageTemplateSyncDto request);
|
||||
CommonResponse<String> syncTemplate(@RequestBody @Valid MessageTemplateV3SyncRequest request);
|
||||
|
||||
/**
|
||||
* 获取所有消息样式
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package cn.axzo.msg.center.service.template.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class MessageTemplateV3SyncRequest {
|
||||
private JSONObject template;
|
||||
private Long operatorId;
|
||||
private String operatorName;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.axzo.msg.center.service.template.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class MessageTemplateV3SyncResponse {
|
||||
private JSONObject template;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user