From 3b66c01c42e6a3aeece9bfe656f1a05cf735c18b Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 20 Aug 2020 13:57:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=9A=E5=8A=A1=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E5=92=8C=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/ModifyDomainFormDTO.java | 41 ++++++++++++ .../epmet/dto/form/WebviewDomainFormDTO.java | 28 +++++++++ .../epmet/controller/SettingController.java | 51 +++++++++++++++ .../com/epmet/service/SettingService.java | 31 +++++++++ .../service/impl/SettingServiceImpl.java | 63 +++++++++++++++++++ .../wxapi/service/WxMaSettingService.java | 30 +++++++-- .../service/impl/WxMaSettingServiceImpl.java | 37 +++++++++++ 7 files changed, 277 insertions(+), 4 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ModifyDomainFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WebviewDomainFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SettingController.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SettingService.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SettingServiceImpl.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ModifyDomainFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ModifyDomainFormDTO.java new file mode 100644 index 0000000000..d8b78838e4 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ModifyDomainFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/20 13:44 + */ +@Data +public class ModifyDomainFormDTO implements Serializable { + private static final long serialVersionUID = -1995778975498383130L; + /** + * 客户ID + */ + private String customerId; + /** + * 客户端类型 + */ + private String clientType; + /** + * request 合法域名 + */ + private List requestDomain; + /** + * socket 合法域名 + */ + private List wsRequestDomain; + /** + * uploadFile 合法域名 + */ + private List uploadDomain; + /** + * downloadFile 合法域名 + */ + private List downloadDomain; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WebviewDomainFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WebviewDomainFormDTO.java new file mode 100644 index 0000000000..dc951e1b7b --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WebviewDomainFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/19 17:46 + */ +@Data +public class WebviewDomainFormDTO implements Serializable { + private static final long serialVersionUID = 8022056850984848597L; + /** + * 客户ID + */ + private String customerId; + /** + * 客户端类型 + */ + private String clientType; + /** + * 业务域名 + */ + private List webViewDomain; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SettingController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SettingController.java new file mode 100644 index 0000000000..c7457466e2 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SettingController.java @@ -0,0 +1,51 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.ModifyDomainFormDTO; +import com.epmet.dto.form.WebviewDomainFormDTO; +import com.epmet.service.SettingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/20 13:50 + */ +@RestController +@RequestMapping("setting") +public class SettingController { + @Autowired + private SettingService settingService; + + /** + * 设置服务器域名 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/8/20 13:51 + */ + @PostMapping("modifydomain") + public Result modifyDomain(@RequestBody ModifyDomainFormDTO formDTO) { + settingService.modifyDomain(formDTO); + return new Result<>(); + } + + /** + * 设置业务域名 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/8/20 13:51 + */ + @PostMapping("setwebviewdomain") + public Result setWebviewDomain(@RequestBody WebviewDomainFormDTO formDTO) { + settingService.setWebviewDomain(formDTO); + return new Result<>(); + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SettingService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SettingService.java new file mode 100644 index 0000000000..011b82fa1e --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SettingService.java @@ -0,0 +1,31 @@ +package com.epmet.service; + +import com.epmet.dto.form.ModifyDomainFormDTO; +import com.epmet.dto.form.WebviewDomainFormDTO; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/20 11:11 + */ +public interface SettingService { + /** + * 设置服务器域名 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/8/20 13:46 + */ + void modifyDomain(ModifyDomainFormDTO formDTO); + + /** + * 设置业务域名 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/8/19 17:49 + */ + void setWebviewDomain(WebviewDomainFormDTO formDTO); +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SettingServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SettingServiceImpl.java new file mode 100644 index 0000000000..134ab97c06 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SettingServiceImpl.java @@ -0,0 +1,63 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.exception.RenException; +import com.epmet.dao.AuthorizationInfoDao; +import com.epmet.dto.AuthorizationInfoDTO; +import com.epmet.dto.form.ModifyDomainFormDTO; +import com.epmet.dto.form.WebviewDomainFormDTO; +import com.epmet.service.SettingService; +import com.epmet.wxapi.param.WxMaModifyDomainReq; +import com.epmet.wxapi.param.WxMaSetWebviewDomainReq; +import com.epmet.wxapi.result.WxResult; +import com.epmet.wxapi.service.WxMaSettingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/8/20 11:11 + */ +@Service +public class SettingServiceImpl implements SettingService { + @Autowired + private AuthorizationInfoDao authorizationInfoDao; + @Autowired + private WxMaSettingService wxMaSettingService; + + @Override + public void modifyDomain(ModifyDomainFormDTO formDTO) { + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); + if (null == authInfo) { + throw new RenException("未授权"); + } + WxMaModifyDomainReq request = new WxMaModifyDomainReq(); + request.setDownloadDomain(formDTO.getDownloadDomain()); + request.setRequestDomain(formDTO.getRequestDomain()); + request.setWsRequestDomain(formDTO.getWsRequestDomain()); + request.setUploadDomain(formDTO.getUploadDomain()); + //设置业务域名 + WxResult setDomain = wxMaSettingService.modifyDomain(authInfo.getAuthorizerAccessToken(), request); + if (!setDomain.success()) { + throw new RenException(setDomain.getErrorCode(), setDomain.getErrorMsg()); + } + } + + @Override + public void setWebviewDomain(WebviewDomainFormDTO formDTO) { + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); + if (null == authInfo) { + throw new RenException("未授权"); + } + WxMaSetWebviewDomainReq request = new WxMaSetWebviewDomainReq(); + request.setAction("set"); + request.setWebViewDomain(formDTO.getWebViewDomain()); + //设置业务域名 + WxResult setWebviewDomain = wxMaSettingService.setWebviewDomain(authInfo.getAuthorizerAccessToken(), request); + if (!setWebviewDomain.success()) { + throw new RenException(setWebviewDomain.getErrorCode(), setWebviewDomain.getErrorMsg()); + } + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSettingService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSettingService.java index 57c9fd65de..f0088e5136 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSettingService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSettingService.java @@ -1,11 +1,10 @@ package com.epmet.wxapi.service; -import com.epmet.wxapi.param.WxAddCategoryReq; -import com.epmet.wxapi.param.WxBindTesterReq; -import com.epmet.wxapi.param.WxDelCategoryReq; -import com.epmet.wxapi.param.WxModifyCategoryReq; +import com.epmet.wxapi.param.*; import com.epmet.wxapi.result.*; +import java.util.List; + /** * 小程序修改服务器地址、类目管理、成员管理 API(大部分只能是第三方平台调用) * @@ -24,6 +23,17 @@ public interface WxMaSettingService { */ WxResult modifyDomain(String accessToken, String action); + /** + * 设置服务器域名 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/7/16 17:21 + */ + WxResult modifyDomain(String accessToken, WxMaModifyDomainReq request); + /** * 设置业务域名 * @@ -35,6 +45,17 @@ public interface WxMaSettingService { */ WxResult setWebviewDomain(String accessToken, String action); + /** + * 设置业务域名 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/8/19 17:52 + */ + WxResult setWebviewDomain(String accessToken, WxMaSetWebviewDomainReq request); + /** * 获取可以设置的所有类目 * @@ -109,4 +130,5 @@ public interface WxMaSettingService { * @date 2020/8/18 15:45 */ WxResult unBindTester(String accessToken, WxBindTesterReq request); + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSettingServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSettingServiceImpl.java index 5490c6207e..fc3719ac1e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSettingServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSettingServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; +import com.epmet.wxapi.constant.WxMaCodeConstant; import com.epmet.wxapi.constant.WxMaSettingConstant; import com.epmet.wxapi.enums.WxMaErrorMsgEnum; import com.epmet.wxapi.param.*; @@ -14,6 +15,8 @@ import com.google.gson.GsonBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author zhaoqifeng * @dscription @@ -51,6 +54,23 @@ public class WxMaSettingServiceImpl implements WxMaSettingService { return result; } + @Override + public WxResult modifyDomain(String accessToken, WxMaModifyDomainReq request) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.MODIFY_DOMAIN_URL + "?" + "access_token=" + accessToken; + Result modifyResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); + if (!modifyResult.success()) { + result.setErrorCode(modifyResult.getCode()); + result.setErrorMsg(modifyResult.getMsg()); + return result; + } + Gson gson = new Gson(); + WxMaModifyDomainResult domainResult = gson.fromJson(modifyResult.getData(), WxMaModifyDomainResult.class); + result.setErrorCode(domainResult.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(domainResult.getErrcode())); + return result; + } + @Override public WxResult setWebviewDomain(String accessToken, String action) { WxResult result = new WxResult<>(); @@ -72,6 +92,23 @@ public class WxMaSettingServiceImpl implements WxMaSettingService { return result; } + @Override + public WxResult setWebviewDomain(String accessToken, WxMaSetWebviewDomainReq request) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.SET_WEBVIEW_DOMAIN_URL + "?" + "access_token=" + accessToken; + Result modifyResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); + if (!modifyResult.success()) { + result.setErrorCode(modifyResult.getCode()); + result.setErrorMsg(modifyResult.getMsg()); + return result; + } + Gson gson = new Gson(); + WxMaSetWebviewDomainResult domainResult = gson.fromJson(modifyResult.getData(), WxMaSetWebviewDomainResult.class); + result.setErrorCode(domainResult.getErrcode()); + result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(domainResult.getErrcode())); + return result; + } + @Override public WxResult getAllCategories(String accessToken) { WxResult result = new WxResult<>();