diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java index 2fbef1d..512b442 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java @@ -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 result = new ArrayList<>(); - WxMpService wxMpService = WxServiceUtils.wxMpServiceMap.get(id); List 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 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 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; } } diff --git a/austin-web/src/main/java/com/java3y/austin/web/vo/amis/CommonAmisVo.java b/austin-web/src/main/java/com/java3y/austin/web/vo/amis/CommonAmisVo.java index fe89b17..dff2216 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/vo/amis/CommonAmisVo.java +++ b/austin-web/src/main/java/com/java3y/austin/web/vo/amis/CommonAmisVo.java @@ -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 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; + + } }