From 0ec274261ccd5aaf8cba62c26a125cfaeaba49f9 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 13 Aug 2020 16:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/CodeAuditResultDTO.java | 16 +++- .../com/epmet/dto/form/CodeCommonFormDTO.java | 1 + .../com/epmet/dto/result/DomainResultDTO.java | 21 ++++++ .../com/epmet/dto/result/ReasonResultDTO.java | 8 ++ .../com/epmet/controller/CodeController.java | 12 +++ .../epmet/entity/CodeAuditResultEntity.java | 10 +++ .../java/com/epmet/service/CodeService.java | 18 +++++ .../epmet/service/impl/CodeServiceImpl.java | 73 ++++++++++++++++--- .../wxapi/result/WxMaModifyDomainResult.java | 33 +++++++++ .../result/WxMaSetWebviewDomainResult.java | 27 +++++++ .../epmet/wxapi/service/WxMaCodeService.java | 6 +- .../service/impl/WxMaCodeServiceImpl.java | 28 ++++--- 12 files changed, 228 insertions(+), 25 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/DomainResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaModifyDomainResult.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaSetWebviewDomainResult.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java index a79140593e..910ded04de 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java @@ -68,9 +68,23 @@ public class CodeAuditResultDTO implements Serializable { */ private String screenShot; + /** + * 素材地址 + */ private String screenShotUrl; - /** + /** + * 反馈内容 + */ + private String feedbackInfo; + + /** + * 反馈素材 + */ + private String feedbackStuff; + + + /** * 乐观锁 */ private Integer revision; diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java index 9f7f31bcac..391a0d217b 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java @@ -20,6 +20,7 @@ public class CodeCommonFormDTO implements Serializable { * 代码ID */ private String codeId; + private String clientType; private String grayPercentage; private String path; private Integer page = 1; diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/DomainResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/DomainResultDTO.java new file mode 100644 index 0000000000..207dc326e6 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/DomainResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/13 16:02 + */ +@Data +public class DomainResultDTO implements Serializable { + private static final long serialVersionUID = -2534293858061449973L; + private List requestDomain; + private List wsRequestDomain; + private List uploadDomain; + private List downloadDomain; + private List webViewDomain; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java index e2d9d1c2ad..4eae30d0bd 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java @@ -23,6 +23,14 @@ public class ReasonResultDTO implements Serializable { * 失败的小程序截图url */ private List screenshotUrl; + /** + * 反馈内容,至多 200 字 + */ + private String feedbackInfo; + /** + * 反馈素材 + */ + private String feedbackStuff; /** * 提交审核时间 */ 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 b03a808edf..01014d7564 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 @@ -208,6 +208,18 @@ public class CodeController { return new Result<>(); } + @PostMapping("setdomains") + public Result setDomains(@RequestBody CodeCommonFormDTO formDTO) { + codeService.setDomains(formDTO); + return new Result<>(); + } + + @PostMapping("getdomain") + public Result getDomains(@RequestBody CodeCommonFormDTO formDTO) { + DomainResultDTO result = codeService.getDomains(formDTO); + return new Result().ok(result); + } + @PostMapping("customers") public Result getCustomerList(@RequestBody UploadListFormDTO formDTO) { PageData pageData = codeService.getCustomerList(formDTO); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java index 8ad218032f..164b8a97bb 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java @@ -70,5 +70,15 @@ public class CodeAuditResultEntity extends BaseEpmetEntity { private String screenShotUrl; + /** + * 反馈内容 + */ + private String feedbackInfo; + + /** + * 反馈素材 + */ + private String feedbackStuff; + } 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 ae2240010c..38e409d79b 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 @@ -154,6 +154,24 @@ public interface CodeService { */ void setDomain(String customerId); + /** + * 设置服务器域名和业务域名 + * @author zhaoqifeng + * @date 2020/8/6 15:34 + * @param formDTO + * @return int + */ + void setDomains(CodeCommonFormDTO formDTO); + + /** + * 获取服务器域名和业务域名 + * @author zhaoqifeng + * @date 2020/8/6 15:34 + * @param formDTO + * @return DomainResultDTO + */ + DomainResultDTO getDomains(CodeCommonFormDTO formDTO); + /** * 已初始化客户列表 * @author zhaoqifeng 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 4d6ba89fbf..216330a6e3 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 @@ -269,12 +269,14 @@ public class CodeServiceImpl implements CodeService { } //调用微信API上提交审核 WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest(); - request.setVersionDesc(formDTO.getVersionDesc()); + if(StringUtils.isBlank(formDTO.getFeedbackInfo())) { + request.setVersionDesc(formDTO.getVersionDesc()); + request.setItemList(formDTO.getItemList()); + request.setPreviewInfo(formDTO.getPreviewInfo()); + request.setUgcDeclare(formDTO.getUgcDeclare()); + } request.setFeedbackInfo(formDTO.getFeedbackInfo()); request.setFeedbackStuff(formDTO.getFeedbackStuff()); - request.setItemList(formDTO.getItemList()); - request.setPreviewInfo(formDTO.getPreviewInfo()); - request.setUgcDeclare(formDTO.getUgcDeclare()); WxResult wxResult = wxMaCodeService.submitAudit(authInfo.getAuthorizerAccessToken(), request); if (!wxResult.success()) { saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(), @@ -303,6 +305,9 @@ public class CodeServiceImpl implements CodeService { codeAuditResultDTO.setResult(CodeConstant.AUDITING); codeAuditResultService.save(codeAuditResultDTO); } else { + codeAuditResultDTO.setFeedbackInfo(formDTO.getFeedbackInfo()); + codeAuditResultDTO.setFeedbackStuff(formDTO.getFeedbackStuff()); + codeAuditResultService.update(codeAuditResultDTO); codeAuditResultService.deleteById(codeAuditResultDTO.getId()); codeAuditResultDTO = new CodeAuditResultDTO(); codeAuditResultDTO.setCustomerId(codeCustomerDTO.getCustomerId()); @@ -447,6 +452,8 @@ public class CodeServiceImpl implements CodeService { codeAuditResultService.update(dto); } result.setScreenshotUrl(urlList); + result.setFeedbackInfo(dto.getFeedbackInfo()); + result.setFeedbackStuff(dto.getFeedbackStuff()); } else { String[] url = dto.getScreenShotUrl().split("[|]"); List urlList = new ArrayList<>(url.length); @@ -562,18 +569,64 @@ public class CodeServiceImpl implements CodeService { } authInfoList.forEach(authInfo -> { //设置服务器域名 - WxResult wxResult = wxMaCodeService.modifyDomain(authInfo.getAuthorizerAccessToken()); - if (!wxResult.success()) { - throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + WxResult modifyDomain = wxMaCodeService.modifyDomain(authInfo.getAuthorizerAccessToken(), "set"); + if (!modifyDomain.success()) { + throw new RenException(modifyDomain.getErrorCode(), modifyDomain.getErrorMsg()); } //设置业务域名 - wxResult = wxMaCodeService.setWebviewDomain(authInfo.getAuthorizerAccessToken()); - if (!wxResult.success()) { - throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + WxResult setWebviewDomain = wxMaCodeService.setWebviewDomain(authInfo.getAuthorizerAccessToken(), "set"); + if (!setWebviewDomain.success()) { + throw new RenException(setWebviewDomain.getErrorCode(), setWebviewDomain.getErrorMsg()); } }); } + @Override + public void setDomains(CodeCommonFormDTO formDTO) { + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); + if (null == authInfo) { + throw new RenException("未授权"); + } + //设置服务器域名 + WxResult wxResult = wxMaCodeService.modifyDomain(authInfo.getAuthorizerAccessToken(), "set"); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + //设置业务域名 + WxResult setWebviewDomain = wxMaCodeService.setWebviewDomain(authInfo.getAuthorizerAccessToken(), "set"); + if (!setWebviewDomain.success()) { + throw new RenException(setWebviewDomain.getErrorCode(), setWebviewDomain.getErrorMsg()); + } + } + + @Override + public DomainResultDTO getDomains(CodeCommonFormDTO formDTO) { + DomainResultDTO resultDTO = new DomainResultDTO(); + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); + if (null == authInfo) { + throw new RenException("未授权"); + } + //设置服务器域名 + WxResult wxResult = wxMaCodeService.modifyDomain(authInfo.getAuthorizerAccessToken(), "get"); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + resultDTO.setDownloadDomain(wxResult.getData().getDownloadDomain()); + resultDTO.setRequestDomain(wxResult.getData().getRequestDomain()); + resultDTO.setUploadDomain(wxResult.getData().getUploadDomain()); + resultDTO.setWsRequestDomain(wxResult.getData().getWsRequestDomain()); + + //设置业务域名 + WxResult setWebviewDomain = wxMaCodeService.setWebviewDomain(authInfo.getAuthorizerAccessToken(), "get"); + if (!setWebviewDomain.success()) { + throw new RenException(setWebviewDomain.getErrorCode(), setWebviewDomain.getErrorMsg()); + } + resultDTO.setWebViewDomain(setWebviewDomain.getData().getWebViewDomain()); + return resultDTO; + } + @Override public PageData getCustomerList(UploadListFormDTO formDTO) { return paCustomerService.getCustomerList(formDTO); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaModifyDomainResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaModifyDomainResult.java new file mode 100644 index 0000000000..4f5606eb06 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaModifyDomainResult.java @@ -0,0 +1,33 @@ +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/8/13 15:46 + */ +@NoArgsConstructor +@Data +public class WxMaModifyDomainResult implements Serializable { + + private static final long serialVersionUID = 8602059705480008729L; + /** + * errcode : 0 + */ + private Integer errcode; + private String errmsg; + @SerializedName("requestdomain") + private List requestDomain; + @SerializedName("wsrequestdomain") + private List wsRequestDomain; + @SerializedName("uploaddomain") + private List uploadDomain; + @SerializedName("downloaddomain") + private List downloadDomain; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaSetWebviewDomainResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaSetWebviewDomainResult.java new file mode 100644 index 0000000000..6700e03b7a --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaSetWebviewDomainResult.java @@ -0,0 +1,27 @@ +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/8/13 15:53 + */ +@NoArgsConstructor +@Data +public class WxMaSetWebviewDomainResult implements Serializable { + + private static final long serialVersionUID = -5871654910653283111L; + /** + * errcode : 0 + */ + private Integer errcode; + private String errmsg; + @SerializedName("webviewdomain") + private List webViewDomain; +} 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 df405b12e9..1918e79603 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 @@ -123,21 +123,23 @@ public interface WxMaCodeService { * 设置服务器域名 * * @param accessToken + * @param action * @return com.epmet.wxapi.result.WxResult * @author zhaoqifeng * @date 2020/7/16 17:21 */ - WxResult modifyDomain(String accessToken); + WxResult modifyDomain(String accessToken, String action); /** * 设置业务域名 * * @param accessToken + * @param action * @return com.epmet.wxapi.result.WxResult * @author zhaoqifeng * @date 2020/7/16 17:22 */ - WxResult setWebviewDomain(String accessToken); + WxResult setWebviewDomain(String accessToken, String action); /** * 上传临时素材 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 ce18ca880c..87b7afb0f6 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 @@ -231,11 +231,11 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { } @Override - public WxResult modifyDomain(String accessToken) { - WxResult result = new WxResult(); + public WxResult modifyDomain(String accessToken, String action) { + WxResult result = new WxResult<>(); String url = WxMaCodeConstant.MODIFY_DOMAIN_URL + "?" + "access_token=" + accessToken; WxMaModifyDomainReq request = new WxMaModifyDomainReq(); - request.setAction("set"); + request.setAction(action); request.setRequestDomain(wxMaDomainDTO.getRequestDomain()); request.setUploadDomain(wxMaDomainDTO.getUploadDomain()); request.setWsRequestDomain(wxMaDomainDTO.getWsRequestDomain()); @@ -246,18 +246,20 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { result.setErrorMsg(modifyResult.getMsg()); return result; } - JSONObject jsonObject = JSONObject.parseObject(modifyResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); + Gson gson = new Gson(); + WxMaModifyDomainResult domainResult = gson.fromJson(modifyResult.getData(), WxMaModifyDomainResult.class); + result.setErrorCode(domainResult.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(domainResult.getErrcode())); + result.setData(domainResult); return result; } @Override - public WxResult setWebviewDomain(String accessToken) { - WxResult result = new WxResult(); + public WxResult setWebviewDomain(String accessToken, String action) { + WxResult result = new WxResult<>(); String url = WxMaCodeConstant.SET_WEBVIEW_DOMAIN_URL + "?" + "access_token=" + accessToken; WxMaSetWebviewDomainReq request = new WxMaSetWebviewDomainReq(); - request.setAction("set"); + request.setAction(action); request.setWebViewDomain(wxMaDomainDTO.getWebviewDomain()); Result modifyResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); if (!modifyResult.success()) { @@ -265,9 +267,11 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { result.setErrorMsg(modifyResult.getMsg()); return result; } - JSONObject jsonObject = JSONObject.parseObject(modifyResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); + Gson gson = new Gson(); + WxMaSetWebviewDomainResult domainResult = gson.fromJson(modifyResult.getData(), WxMaSetWebviewDomainResult.class); + result.setErrorCode(domainResult.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(domainResult.getErrcode())); + result.setData(domainResult); return result; }