From f449961724f3defb0d5e1de3b91219e86154b9d5 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 31 Jul 2019 16:44:07 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/enums/EnumTemplateType.java | 4 +- .../controller/WxWeappInfoController.java | 260 +++++++++--------- 2 files changed, 128 insertions(+), 136 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java b/mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java index 3d6af18..4dbe088 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java @@ -9,8 +9,8 @@ public enum EnumTemplateType { VERIFY_SUCCESS(1, "核销成功消息"), VERIFY_FAIL(2, "核销失败消息"), - PRESS_SUCCESS(3,"砍价成功消息"), - AUDIT_MESSAGE(101, "审核结果通知") // 公众号 + PRESS_PRICE_SUCCESS(3, "砍价成功消息"), + AUDIT_MESSAGE(101, "审核结果通知"), // 公众号 ; public static EnumTemplateType getEnum(Integer code) { diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java index 28ce548..019ee50 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java @@ -150,6 +150,7 @@ public class WxWeappInfoController extends BaseController { return new ResultData(ErrorCode.WEAPP_BASIC_SET_DOMAIN_ERR); } JSONObject templeObj = JSON.parseObject(weappBasicSet.getTemplateInfo()); + logger.info(templeObj.toJSONString()); if(StringUtils.isBlank(appsStr)) { WxWeappInfo weappInfoQ = new WxWeappInfo(); @@ -183,69 +184,17 @@ public class WxWeappInfoController extends BaseController { if(authorizerInfo == null) { return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH); } + WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); + /* try { - WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); - // 设置基础版本 - String versionRet = openMaService.setSupportVersion(weappBasicSet.getVersion()); - logger.info(versionRet); - JSONObject verObj = JSON.parseObject(versionRet); - if(verObj.getInteger("errcode").equals(0)) { - authorizerInfo.setBaseStatus(0); - } else { - authorizerInfo.setBaseStatus(1); - } - authorizerInfo.setBaseTime(new Date()); - authorizerInfo.setUpdateTime(new Date()); - authorizerInfoService.updateBaseVersion(authorizerInfo); - - // 服务器域名 - String action = "set"; - JSONObject urlObj = domainObj.getJSONObject("url"); - List requestDomain = getUrlList(urlObj.getJSONArray("requestdomain")); - List wsrequestDomain = getUrlList(urlObj.getJSONArray("wsrequestdomain")); - List uploadDomain = getUrlList(urlObj.getJSONArray("uploaddomain")); - List downloadDomain = getUrlList(urlObj.getJSONArray("downloaddomain")); - logger.info(downloadDomain.toString()); - WxOpenMaDomainResult openRet = openMaService.modifyDomain(action, - requestDomain, wsrequestDomain, - uploadDomain, downloadDomain); - logger.info(openRet.toString()); - if(openRet.isSuccess()) { - logger.info("设置服务器域名成功"); - authorizerInfo.setDomainStatus(0); - authorizerInfo.setDomainTime(new Date()); - authorizerInfo.setUpdateTime(new Date()); + setBasicVersion(weappBasicSet, authorizerInfo, openMaService); - } else { - logger.info("设置服务器域名成功"); - authorizerInfo.setDomainStatus(1); - authorizerInfo.setDomainTime(new Date()); - authorizerInfo.setUpdateTime(new Date()); - } - authorizerInfoService.updateDomainUrl(authorizerInfo); - // 业务域名 - JSONObject webObj = domainObj.getJSONObject("web"); - List urlList = getUrlList(webObj.getJSONArray("webviewdomain")); - String openRet1 = openMaService.setWebViewDomain(action, urlList); - logger.info(openRet1); - JSONObject webRetObj = JSON.parseObject(openRet1); - if(webRetObj.getInteger("errcode").equals(0)) { - logger.info("设置服务器业务域名成功"); - authorizerInfo.setWebdomainStatus(0); - authorizerInfo.setWebdomainTime(new Date()); - authorizerInfo.setUpdateTime(new Date()); - } else { - logger.info("设置服务器业务域名失败"); - authorizerInfo.setWebdomainStatus(1); - authorizerInfo.setWebdomainTime(new Date()); - authorizerInfo.setUpdateTime(new Date()); - } - authorizerInfoService.updateWebDomainUrl(authorizerInfo); + setDomainUrl(domainObj, authorizerInfo, openMaService); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); } - + */ // 设置微信模板 if(weappBasicSet.getType().equals(EnumAppType.C.getCode())) { if(authorizerInfo.getTemplateStatus() == null || @@ -256,83 +205,12 @@ public class WxWeappInfoController extends BaseController { WxMaService maService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); try { - // 核销成功消息 - JSONObject verify_success = templeObj.getJSONObject("verify_success"); - String id = verify_success.getString("id"); - JSONArray keyidlist = verify_success.getJSONArray("keyword_id_list"); - String customParam = verify_success.getString("custom_param"); - logger.info(customParam); - JSONObject customParamObj = JSON.parseObject(customParam); - List keyArr = getIdList(keyidlist); - if(appinfo != null) { - // wx_template_msg - WxTemplateMsg templateMsgQ = new WxTemplateMsg(); - templateMsgQ.setTenantId(appinfo.getTenantId()); - templateMsgQ.setType(EnumTemplateType.VERIFY_SUCCESS.getCode()); - WxTemplateMsg templateMsg = templateMsgService.getByObj(templateMsgQ); - if(templateMsg != null) { - templateMsg.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsg); - } else { - WxMaTemplateAddResult ret = maService.getTemplateService().addTemplate(id, keyArr); - logger.info(ret.toString()); - templateMsgQ.setTemplateId(ret.getTemplateId()); - templateMsgQ.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsgQ); - } - } - // 核销失败消息 - JSONObject verify_fail = templeObj.getJSONObject("verify_fail"); - id = verify_fail.getString("id"); - keyidlist = verify_fail.getJSONArray("keyword_id_list"); - customParam = verify_fail.getString("custom_param"); - logger.info(customParam); - customParamObj = JSON.parseObject(customParam); - List keyArr1 = getIdList(keyidlist); - if(appinfo != null) { - // wx_template_msg - WxTemplateMsg templateMsgQ = new WxTemplateMsg(); - templateMsgQ.setTenantId(appinfo.getTenantId()); - templateMsgQ.setType(EnumTemplateType.VERIFY_FAIL.getCode()); - WxTemplateMsg templateMsg = templateMsgService.getByObj(templateMsgQ); - if(templateMsg != null) { - templateMsg.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsg); - } else { - WxMaTemplateAddResult ret = maService.getTemplateService().addTemplate(id, keyArr1); - logger.info(ret.toString()); - templateMsgQ.setTemplateId(ret.getTemplateId()); - templateMsgQ.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsgQ); - } - } - - // 砍价成功消息 - JSONObject press_success = templeObj.getJSONObject("press_success"); - id = press_success.getString("id"); - keyidlist = press_success.getJSONArray("keyword_id_list"); - customParam = press_success.getString("custom_param"); - logger.info(customParam); - customParamObj = JSON.parseObject(customParam); - List keyArr2 = getIdList(keyidlist); - - if(appinfo != null) { - // wx_template_msg - WxTemplateMsg templateMsgQ = new WxTemplateMsg(); - templateMsgQ.setTenantId(appinfo.getTenantId()); - templateMsgQ.setType(EnumTemplateType.PRESS_SUCCESS.getCode()); - WxTemplateMsg templateMsg = templateMsgService.getByObj(templateMsgQ); - if(templateMsg != null) { - templateMsg.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsg); - } else { - WxMaTemplateAddResult ret = maService.getTemplateService().addTemplate(id, keyArr2); - logger.info(ret.toString()); - templateMsgQ.setTemplateId(ret.getTemplateId()); - templateMsgQ.setCustomParam(customParamObj.toJSONString()); - templateMsgService.saveOrUpdate(templateMsgQ); - } - } + logger.info("verify success"); + setBasicTemplateMsgVerifySuccess(templeObj, appinfo, maService); + logger.info("verify fail"); + setBasicTemplateMsgVerifyFail(templeObj, appinfo, maService); + logger.info("press success"); + setBasicTemplateMsgPressSuccess(templeObj, appinfo, maService); // 更新状态 authorizerInfo.setTemplateStatus(EnumWxAuthotizationTemplateStatus.SUCCESS.getCode()); @@ -354,6 +232,120 @@ public class WxWeappInfoController extends BaseController { return null; } + private void setBasicTemplateMsg(JSONObject templeObj, WxAppinfo appinfo, WxMaService maService, Integer msgCode, String msgTypeStr) throws WxErrorException { + JSONObject msgObj; + try { + msgObj = templeObj.getJSONObject(msgTypeStr); + } catch (Exception e) { + logger.error(e.getMessage()); + return; + } + logger.info(msgObj.toJSONString()); + String id = msgObj.getString("id"); + JSONArray keyidlist = msgObj.getJSONArray("keyword_id_list"); + String customParam = msgObj.getString("custom_param"); + logger.info(customParam); + JSONObject customParamObj = JSON.parseObject(customParam); + List keyArr1 = getIdList(keyidlist); + if (appinfo != null) { + // wx_template_msg + WxTemplateMsg templateMsgQ = new WxTemplateMsg(); + templateMsgQ.setTenantId(appinfo.getTenantId()); + logger.info(msgCode.toString()); + templateMsgQ.setType(msgCode); + WxTemplateMsg templateMsg = templateMsgService.getByObj(templateMsgQ); + if (templateMsg != null) { + templateMsg.setCustomParam(customParamObj.toJSONString()); + templateMsgService.saveOrUpdate(templateMsg); + } else { + WxMaTemplateAddResult ret = maService.getTemplateService().addTemplate(id, keyArr1); + logger.info(ret.toString()); + templateMsgQ.setTemplateId(ret.getTemplateId()); + templateMsgQ.setCustomParam(customParamObj.toJSONString()); + templateMsgService.saveOrUpdate(templateMsgQ); + } + } + } + + private void setBasicTemplateMsgVerifySuccess(JSONObject templeObj, WxAppinfo appinfo, WxMaService maService) throws WxErrorException { + // 核销成功消息 + setBasicTemplateMsg(templeObj, appinfo, maService, EnumTemplateType.VERIFY_SUCCESS.getCode(), "verify_success"); + } + + private void setBasicTemplateMsgVerifyFail(JSONObject templeObj, WxAppinfo appinfo, WxMaService maService) throws WxErrorException { + // 核销失败消息 + setBasicTemplateMsg(templeObj, appinfo, maService, EnumTemplateType.VERIFY_FAIL.getCode(), "verify_fail"); + } + + private void setBasicTemplateMsgPressSuccess(JSONObject templeObj, WxAppinfo appinfo, WxMaService maService) throws WxErrorException { + // 砍价成功消息 + logger.info("setBasicTemplateMsgPressSuccess begin.."); + /// EnumTemplateType.PRESS_PRICE_SUCCESS.getCode() + setBasicTemplateMsg(templeObj, appinfo, maService, EnumTemplateType.PRESS_PRICE_SUCCESS.getCode(), "press_success"); + logger.info("setBasicTemplateMsgPressSuccess end."); + } + + private void setDomainUrl(JSONObject domainObj, WxAuthorizerInfo authorizerInfo, WxOpenMaService openMaService) throws WxErrorException { + // 服务器域名 + String action = "set"; + JSONObject urlObj = domainObj.getJSONObject("url"); + List requestDomain = getUrlList(urlObj.getJSONArray("requestdomain")); + List wsrequestDomain = getUrlList(urlObj.getJSONArray("wsrequestdomain")); + List uploadDomain = getUrlList(urlObj.getJSONArray("uploaddomain")); + List downloadDomain = getUrlList(urlObj.getJSONArray("downloaddomain")); + logger.info(downloadDomain.toString()); + WxOpenMaDomainResult openRet = openMaService.modifyDomain(action, + requestDomain, wsrequestDomain, + uploadDomain, downloadDomain); + logger.info(openRet.toString()); + if(openRet.isSuccess()) { + logger.info("设置服务器域名成功"); + authorizerInfo.setDomainStatus(0); + authorizerInfo.setDomainTime(new Date()); + authorizerInfo.setUpdateTime(new Date()); + + } else { + logger.info("设置服务器域名成功"); + authorizerInfo.setDomainStatus(1); + authorizerInfo.setDomainTime(new Date()); + authorizerInfo.setUpdateTime(new Date()); + } + authorizerInfoService.updateDomainUrl(authorizerInfo); + // 业务域名 + JSONObject webObj = domainObj.getJSONObject("web"); + List urlList = getUrlList(webObj.getJSONArray("webviewdomain")); + String openRet1 = openMaService.setWebViewDomain(action, urlList); + logger.info(openRet1); + JSONObject webRetObj = JSON.parseObject(openRet1); + if(webRetObj.getInteger("errcode").equals(0)) { + logger.info("设置服务器业务域名成功"); + authorizerInfo.setWebdomainStatus(0); + authorizerInfo.setWebdomainTime(new Date()); + authorizerInfo.setUpdateTime(new Date()); + } else { + logger.info("设置服务器业务域名失败"); + authorizerInfo.setWebdomainStatus(1); + authorizerInfo.setWebdomainTime(new Date()); + authorizerInfo.setUpdateTime(new Date()); + } + authorizerInfoService.updateWebDomainUrl(authorizerInfo); + } + + private void setBasicVersion(WxWeappBasicSet weappBasicSet, WxAuthorizerInfo authorizerInfo, WxOpenMaService openMaService) throws WxErrorException { + // 设置基础版本 + String versionRet = openMaService.setSupportVersion(weappBasicSet.getVersion()); + logger.info(versionRet); + JSONObject verObj = JSON.parseObject(versionRet); + if(verObj.getInteger("errcode").equals(0)) { + authorizerInfo.setBaseStatus(0); + } else { + authorizerInfo.setBaseStatus(1); + } + authorizerInfo.setBaseTime(new Date()); + authorizerInfo.setUpdateTime(new Date()); + authorizerInfoService.updateBaseVersion(authorizerInfo); + } + private List getIdList(JSONArray keyidlist) { List keyArr = new ArrayList(); for (int i = 0; i < keyidlist.size(); i++) {