微信服务号接口:获取具体模板信息,并组装给至前端

master
3y 3 years ago
parent 6ac0f13ba5
commit 17ad0282f1

@ -27,7 +27,8 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/officialAccount") @RequestMapping("/officialAccount")
@Api("微信服务号") @Api("微信服务号")
@CrossOrigin(origins = {AustinConstant.ORIGIN_VALUE, "https://aisuda.bce.baidu.com"}, allowCredentials = "true", allowedHeaders = "*") @CrossOrigin(origins = {AustinConstant.ORIGIN_VALUE, "https://aisuda.bce.baidu.com", "http://localhost:8080"}
, allowCredentials = "true", allowedHeaders = "*", methods = {RequestMethod.PUT, RequestMethod.POST, RequestMethod.GET})
public class OfficialAccountController { public class OfficialAccountController {
@ -61,40 +62,61 @@ public class OfficialAccountController {
* @return * @return
* @ * @
*/ */
@GetMapping("/template/detailTemplate") @PostMapping("/detailTemplate")
@ApiOperation("/根据账号Id和模板ID获取模板列表") @ApiOperation("/根据账号Id和模板ID获取模板列表")
public BasicResultVO queryDetailList(Long id, String wxTemplateId) { public BasicResultVO queryDetailList(Long id, String wxTemplateId) {
if (id == null || wxTemplateId == null) {
return BasicResultVO.success(RespStatusEnum.CLIENT_BAD_PARAMETERS);
}
try { try {
List<CommonAmisVo> result = new ArrayList<>();
WxMpService wxMpService = WxServiceUtils.wxMpServiceMap.get(id); WxMpService wxMpService = WxServiceUtils.wxMpServiceMap.get(id);
List<WxMpTemplate> allPrivateTemplate = wxMpService.getTemplateMsgService().getAllPrivateTemplate(); List<WxMpTemplate> allPrivateTemplate = wxMpService.getTemplateMsgService().getAllPrivateTemplate();
for (WxMpTemplate wxMpTemplate : allPrivateTemplate) { CommonAmisVo wxMpTemplateParam = getWxMpTemplateParam(wxTemplateId, allPrivateTemplate);
if (wxTemplateId.equals(wxMpTemplate.getTemplateId())) { return BasicResultVO.success(wxMpTemplateParam);
String[] data = wxMpTemplate.getContent().split(StrUtil.LF); } catch (Exception e) {
for (String datum : data) { log.error("OfficialAccountController#queryList fail:{}", Throwables.getStackTraceAsString(e));
String name = datum.substring(datum.indexOf("{{") + 2, datum.indexOf(".")); return BasicResultVO.fail(RespStatusEnum.SERVICE_ERROR);
CommonAmisVo commonAmisVo = CommonAmisVo.builder() }
.name(name) }
.type("text")
.required(true)
.build();
if (datum.contains("first")) {
commonAmisVo.setLabel("名字");
} else if (datum.contains("remark")) {
commonAmisVo.setLabel("备注");
} else {
commonAmisVo.setLabel(datum.split("")[0]);
} /**
result.add(commonAmisVo); * amis
*
* @param wxTemplateId
* @param allPrivateTemplate
* @return
*/
private CommonAmisVo getWxMpTemplateParam(String wxTemplateId, List<WxMpTemplate> allPrivateTemplate) {
CommonAmisVo officialAccountParam = null;
for (WxMpTemplate wxMpTemplate : allPrivateTemplate) {
if (wxTemplateId.equals(wxMpTemplate.getTemplateId())) {
String[] data = wxMpTemplate.getContent().split(StrUtil.LF);
officialAccountParam = CommonAmisVo.builder()
.type("input-table")
.name("officialAccountParam")
.label("新增一行,输入模板对应的文案")
.addable(true)
.editable(true)
.needConfirm(false)
.build();
List<CommonAmisVo.ColumnsDTO> columnsDTOS = new ArrayList<>();
for (String datum : data) {
String name = datum.substring(datum.indexOf("{{") + 2, datum.indexOf("."));
CommonAmisVo.ColumnsDTO.ColumnsDTOBuilder dtoBuilder = CommonAmisVo.ColumnsDTO.builder().name(name).type("input-text").required(true).quickEdit(true);
if (datum.contains("first")) {
dtoBuilder.label("名字");
} else if (datum.contains("remark")) {
dtoBuilder.label("备注");
} else {
dtoBuilder.label(datum.split("")[0]);
} }
columnsDTOS.add(dtoBuilder.build());
} }
officialAccountParam.setColumns(columnsDTOS);
} }
return BasicResultVO.success(result);
} catch (Exception e) {
log.error("OfficialAccountController#queryList fail:{}", Throwables.getStackTraceAsString(e));
return BasicResultVO.fail(RespStatusEnum.SERVICE_ERROR);
} }
return officialAccountParam;
} }
} }

@ -1,11 +1,14 @@
package com.java3y.austin.web.vo.amis; package com.java3y.austin.web.vo.amis;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
/** /**
* amis * amis
*/ */
@ -24,4 +27,59 @@ public class CommonAmisVo {
private String name; private String name;
private boolean required; private boolean required;
private String size;
private boolean addable;
private boolean editable;
private boolean needConfirm;
/**
* columns
*/
@JSONField(name = "columns")
private List<ColumnsDTO> columns;
/**
* ColumnsDTO
*/
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class ColumnsDTO {
/**
* nameX
*/
@JSONField(name = "name")
private String name;
/**
* labelX
*/
@JSONField(name = "label")
private String label;
/**
* type
*/
@JSONField(name = "type")
private String type;
/**
* placeholder
*/
@JSONField(name = "placeholder")
private String placeholder;
/**
* type
*/
@JSONField(name = "required")
private Boolean required;
@JSONField(name = "quickEdit")
private Boolean quickEdit;
}
} }

Loading…
Cancel
Save