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

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

@ -27,7 +27,8 @@ import java.util.List;
@RestController
@RequestMapping("/officialAccount")
@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 {
@ -61,40 +62,61 @@ public class OfficialAccountController {
* @return
* @
*/
@GetMapping("/template/detailTemplate")
@PostMapping("/detailTemplate")
@ApiOperation("/根据账号Id和模板ID获取模板列表")
public BasicResultVO queryDetailList(Long id, String wxTemplateId) {
if (id == null || wxTemplateId == null) {
return BasicResultVO.success(RespStatusEnum.CLIENT_BAD_PARAMETERS);
}
try {
List<CommonAmisVo> result = new ArrayList<>();
WxMpService wxMpService = WxServiceUtils.wxMpServiceMap.get(id);
List<WxMpTemplate> allPrivateTemplate = wxMpService.getTemplateMsgService().getAllPrivateTemplate();
for (WxMpTemplate wxMpTemplate : allPrivateTemplate) {
if (wxTemplateId.equals(wxMpTemplate.getTemplateId())) {
String[] data = wxMpTemplate.getContent().split(StrUtil.LF);
for (String datum : data) {
String name = datum.substring(datum.indexOf("{{") + 2, datum.indexOf("."));
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]);
CommonAmisVo wxMpTemplateParam = getWxMpTemplateParam(wxTemplateId, allPrivateTemplate);
return BasicResultVO.success(wxMpTemplateParam);
} catch (Exception e) {
log.error("OfficialAccountController#queryList fail:{}", Throwables.getStackTraceAsString(e));
return BasicResultVO.fail(RespStatusEnum.SERVICE_ERROR);
}
}
}
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;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* amis
*/
@ -24,4 +27,59 @@ public class CommonAmisVo {
private String name;
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