From cbda37996277d9077d8098a693e0a06e68704111 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 28 Oct 2020 14:04:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/AddToTemplateFormDTO.java | 16 ++++ .../epmet/dto/form/DeleteTemplateFormDTO.java | 16 ++++ .../result/TemplateDraftListResultDTO.java | 34 ++++++++ .../com/epmet/controller/CodeController.java | 39 +++++++++ .../java/com/epmet/service/CodeService.java | 27 ++++++ .../epmet/service/impl/CodeServiceImpl.java | 71 ++++++++++++++++ .../wxapi/constant/WxMaCodeConstant.java | 15 ++++ .../epmet/wxapi/param/WxAddToTemplateReq.java | 18 ++++ .../wxapi/param/WxDeleteTemplateReq.java | 18 ++++ .../result/WxTemplateDraftListResult.java | 51 ++++++++++++ .../epmet/wxapi/service/WxMaCodeService.java | 29 +++++++ .../service/impl/WxMaCodeServiceImpl.java | 83 +++++++++++++++++++ 12 files changed, 417 insertions(+) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddToTemplateFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DeleteTemplateFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDraftListResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddToTemplateReq.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDeleteTemplateReq.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxTemplateDraftListResult.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddToTemplateFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddToTemplateFormDTO.java new file mode 100644 index 0000000000..10de3b3d28 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddToTemplateFormDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 9:55 + */ +@Data +public class AddToTemplateFormDTO implements Serializable { + private static final long serialVersionUID = -7759275805971446460L; + private String draftId; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DeleteTemplateFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DeleteTemplateFormDTO.java new file mode 100644 index 0000000000..843d17a0eb --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DeleteTemplateFormDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 9:57 + */ +@Data +public class DeleteTemplateFormDTO implements Serializable { + private static final long serialVersionUID = -6516706760708801090L; + private String templateId; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDraftListResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDraftListResultDTO.java new file mode 100644 index 0000000000..f5908d773d --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDraftListResultDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 9:52 + */ +@NoArgsConstructor +@Data +public class TemplateDraftListResultDTO implements Serializable { + + private static final long serialVersionUID = 8249448254837721428L; + /** + * 开发者上传草稿时间戳 + */ + private String createTime; + /** + * 版本号,开发者自定义字段 + */ + private String userVersion; + /** + * 版本描述 开发者自定义字段 + */ + private String userDesc; + /** + * 草稿 id + */ + private String draftId; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java index cdaa2a6742..c7457e048f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java @@ -251,5 +251,44 @@ public class CodeController { return new Result<>(); } + /** + * 获取代码草稿列表 + * @author zhaoqifeng + * @date 2020/10/28 9:59 + * @param + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("gettemplatedraftlist") + public Result> getTemplateDraftList() { + List list = codeService.getTemplateDraftList(); + return new Result>().ok(list); + } + + /** + * 将草稿添加到代码模板库 + * @author zhaoqifeng + * @date 2020/10/28 10:00 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("addtotemplate") + public Result addToTemplate(@RequestBody AddToTemplateFormDTO formDTO) { + codeService.addToTemplate(formDTO); + return new Result<>(); + } + + /** + * 删除指定代码模板 + * @author zhaoqifeng + * @date 2020/10/28 10:03 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("deletetemplate") + public Result deleteTemplate(@RequestBody DeleteTemplateFormDTO formDTO) { + codeService.deleteTemplate(formDTO); + return new Result<>(); + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java index 38e409d79b..32fce29360 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java @@ -217,4 +217,31 @@ public interface CodeService { */ void revertCodeRelease(CodeCommonFormDTO formDTO); + /** + * 获取代码草稿列表 + * @author zhaoqifeng + * @date 2020/10/28 10:02 + * @param + * @return java.util.List + */ + List getTemplateDraftList(); + + /** + * 将草稿添加到代码模板库 + * @author zhaoqifeng + * @date 2020/10/28 10:02 + * @param formDTO + * @return void + */ + void addToTemplate(AddToTemplateFormDTO formDTO); + + /** + * 删除指定代码模板 + * @author zhaoqifeng + * @date 2020/10/28 10:03 + * @param formDTO + * @return void + */ + void deleteTemplate(DeleteTemplateFormDTO formDTO); + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java index c8f51e8e40..7e1208dcc4 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java @@ -741,6 +741,77 @@ public class CodeServiceImpl implements CodeService { codeCustomerService.deleteById(codeCustomerDTO.getId()); } + /** + * 获取代码草稿列表 + * + * @return java.util.List + * @author zhaoqifeng + * @date 2020/10/28 10:02 + */ + @Override + public List getTemplateDraftList() { + List resultList = new ArrayList<>(); + //获取COMPONENT_ACCESS_TOKEN + String accessToken = componentAccessTokenDao.getComponentAccessToken(); + //调用微信API获取模板列表 + WxResult wxResult = wxMaCodeService.getTemplateDraftList(accessToken); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + if (null == wxResult.getData() || wxResult.getData().getDraftList().size() == NumConstant.ZERO) { + return resultList; + } + wxResult.getData().getDraftList().forEach(temp -> { + TemplateDraftListResultDTO dto = new TemplateDraftListResultDTO(); + dto.setDraftId(temp.getDraftId()); + dto.setUserVersion(temp.getUserVersion()); + dto.setUserDesc(temp.getUserDesc()); + dto.setCreateTime(DateUtils.formatTimestamp(temp.getCreateTime(), DateUtils.DATE_TIME_PATTERN)); + resultList.add(dto); + }); + return resultList; + } + + /** + * 将草稿添加到代码模板库 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/10/28 10:02 + */ + @Override + public void addToTemplate(AddToTemplateFormDTO formDTO) { + //获取COMPONENT_ACCESS_TOKEN + String accessToken = componentAccessTokenDao.getComponentAccessToken(); + WxAddToTemplateReq request = new WxAddToTemplateReq(); + request.setDraftId(formDTO.getDraftId()); + WxResult result = wxMaCodeService.addToTemplate(accessToken, request); + if (!result.success()) { + throw new RenException(result.getErrorCode(), result.getErrorMsg()); + } + } + + /** + * 删除指定代码模板 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/10/28 10:03 + */ + @Override + public void deleteTemplate(DeleteTemplateFormDTO formDTO) { + //获取COMPONENT_ACCESS_TOKEN + String accessToken = componentAccessTokenDao.getComponentAccessToken(); + WxDeleteTemplateReq request = new WxDeleteTemplateReq(); + request.setTemplateId(formDTO.getTemplateId()); + WxResult result = wxMaCodeService.deleteTemplate(accessToken, request); + if (!result.success()) { + throw new RenException(result.getErrorCode(), result.getErrorMsg()); + } + } + private void saveOperation(String customerId, String clientType, String codeId, String version, String operation, String describe) { CodeOperationHistoryDTO operationDTO = new CodeOperationHistoryDTO(); operationDTO.setCustomerId(customerId); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java index c0d11dca5b..7d1263e3b3 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java @@ -185,4 +185,19 @@ public interface WxMaCodeConstant { * 加急审核申请 */ String SPEED_UP_AUDIT_URL = "https://api.weixin.qq.com/wxa/speedupaudit"; + + /** + * 获取代码草稿列表 + */ + String GET_TEMPLATE_DRAFT_LIST_URL = "https://api.weixin.qq.com/wxa/gettemplatedraftlist"; + + /** + * 将草稿添加到代码模板库 + */ + String ADD_TO_TEMPLATE_URL = "https://api.weixin.qq.com/wxa/addtotemplate"; + + /** + * 获取代码草稿列表 + */ + String DELETE_TEMPLATE_URL = "https://api.weixin.qq.com/wxa/deletetemplate"; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddToTemplateReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddToTemplateReq.java new file mode 100644 index 0000000000..997f959342 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddToTemplateReq.java @@ -0,0 +1,18 @@ +package com.epmet.wxapi.param; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 10:20 + */ +@Data +public class WxAddToTemplateReq implements Serializable { + private static final long serialVersionUID = -4667328954236033227L; + @SerializedName("draft_id") + private String draftId; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDeleteTemplateReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDeleteTemplateReq.java new file mode 100644 index 0000000000..1a70b18e9e --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDeleteTemplateReq.java @@ -0,0 +1,18 @@ +package com.epmet.wxapi.param; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 10:21 + */ +@Data +public class WxDeleteTemplateReq implements Serializable { + private static final long serialVersionUID = 3099244896895201612L; + @SerializedName("template_id") + private String templateId; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxTemplateDraftListResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxTemplateDraftListResult.java new file mode 100644 index 0000000000..e77437af53 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxTemplateDraftListResult.java @@ -0,0 +1,51 @@ +package com.epmet.wxapi.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/28 10:12 + */ + +@NoArgsConstructor +@Data +public class WxTemplateDraftListResult implements Serializable { + private static final long serialVersionUID = -7316579770340890368L; + /** + * 错误码 + */ + private Integer errcode; + /** + * 错误信息 + */ + private String errmsg; + @SerializedName("draft_list") + private List draftList; + + public boolean success(){ + return errcode == 0; + } + + @NoArgsConstructor + @Data + public static class DraftListBean { + /** + * create_time + */ + @SerializedName("create_time") + private Long createTime; + @SerializedName("user_version") + private String userVersion; + @SerializedName("user_desc") + private String userDesc; + @SerializedName("draft_id") + private String draftId; + } + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java index 1918e79603..452ad866e1 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java @@ -202,4 +202,33 @@ public interface WxMaCodeService { * @return com.epmet.wxapi.result.WxResult */ WxResult revertCodeRelease(String accessToken); + + /** + * 获取代码草稿列表 + * @author zhaoqifeng + * @date 2020/10/28 10:18 + * @param accessToken + * @return com.epmet.wxapi.result.WxResult + */ + WxResult getTemplateDraftList(String accessToken); + + /** + * 将草稿添加到代码模板库 + * @author zhaoqifeng + * @date 2020/10/28 10:23 + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + */ + WxResult addToTemplate(String accessToken, WxAddToTemplateReq request); + + /** + * 删除指定代码模板 + * @author zhaoqifeng + * @date 2020/10/28 10:23 + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + */ + WxResult deleteTemplate(String accessToken, WxDeleteTemplateReq request); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java index 1ce1c55b68..8c859debec 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java @@ -387,6 +387,89 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { return result; } + /** + * 获取代码草稿列表 + * + * @param accessToken + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/10/28 10:18 + */ + @Override + public WxResult getTemplateDraftList(String accessToken) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.GET_TEMPLATE_DRAFT_LIST_URL + "?" + "access_token=" + accessToken; + Result templateListResult = HttpClientManager.getInstance().sendGet(url, null); + if (!templateListResult.success()) { + result.setErrorCode(templateListResult.getCode()); + result.setErrorMsg(templateListResult.getMsg()); + return result; + } + Gson gson = new Gson(); + WxTemplateDraftListResult templateList = gson.fromJson(templateListResult.getData(), WxTemplateDraftListResult.class); + result.setErrorCode(templateList.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(templateList.getErrcode())); + result.setData(templateList); + WxTemplateDraftListResult draftListResult = JSONObject.parseObject(templateListResult.getData(), WxTemplateDraftListResult.class); + if (!draftListResult.success()) { + result.setErrorCode(draftListResult.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(draftListResult.getErrcode())); + return result; + } + result.ok(draftListResult); + return result; + } + + /** + * 将草稿添加到代码模板库 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/10/28 10:23 + */ + @Override + public WxResult addToTemplate(String accessToken, WxAddToTemplateReq request) { + WxResult result = new WxResult(); + String url = WxMaCodeConstant.ADD_TO_TEMPLATE_URL + "?" + "access_token=" + accessToken; + Result submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); + if (!submitResult.success()) { + result.setErrorCode(submitResult.getCode()); + result.setErrorMsg(submitResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); + return result; + } + + /** + * 删除指定代码模板 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/10/28 10:23 + */ + @Override + public WxResult deleteTemplate(String accessToken, WxDeleteTemplateReq request) { + WxResult result = new WxResult(); + String url = WxMaCodeConstant.DELETE_TEMPLATE_URL + "?" + "access_token=" + accessToken; + Result submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); + if (!submitResult.success()) { + result.setErrorCode(submitResult.getCode()); + result.setErrorMsg(submitResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); + return result; + } + private String toJson(Object object) { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setPrettyPrinting();