From 57755e68d324e32cae70af046db30b50cb41edfe Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 7 Aug 2020 14:52:19 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=8E=A8=E9=80=81=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E5=AE=8C=E6=88=90=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=92=89=E9=92=89=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/CustomerAndUserResultDTO.java | 37 +++++++++++ .../PublicAccountCallBackController.java | 7 +++ .../java/com/epmet/dao/PaCustomerDao.java | 7 +++ .../ComponentVerifyTicketServiceImpl.java | 61 +++++++++++++++++++ .../main/resources/mapper/PaCustomerDao.xml | 24 ++++++++ 5 files changed, 136 insertions(+) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerAndUserResultDTO.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerAndUserResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerAndUserResultDTO.java new file mode 100644 index 0000000000..08035efd03 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerAndUserResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.result; + +import com.epmet.dto.PaCustomerDTO; +import com.epmet.dto.PaUserDTO; +import com.epmet.dto.PaUserWechatDTO; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description 查询授权客户及管理员信息-接口返参 + * @Author sun + */ +@Data +public class CustomerAndUserResultDTO implements Serializable { + + private static final long serialVersionUID = 5214475907074876716L; + + /** + * 客户Id + */ + private String customerId; + /** + * 客户Id + */ + private String customerName; + /** + * 管理员称谓 + */ + private String appellation; + /** + * 管理员手机号 + */ + private String phone; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PublicAccountCallBackController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PublicAccountCallBackController.java index b28809053d..6a8ee07de2 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PublicAccountCallBackController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PublicAccountCallBackController.java @@ -55,6 +55,13 @@ public class PublicAccountCallBackController { } } + /** + * @return java.lang.String + * @author sun + * @description 此请求url是公众号后台设置的消息url,首次创建公众号时微信会发送get请求调用接口, + * 后边公众号所有的消息都是通过该url发送post请求,目前对于公众号的消息全部回复空字符串, + * 后续可以回复各种格式的消息,具体可参考: https://www.cnblogs.com/xdp-gacl/p/5161206.html + */ @PostMapping(value = "/callback") public String wxServerValdation() { return ""; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java index 7f59170729..126ef49db3 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java @@ -22,6 +22,7 @@ import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.form.ModifyCustomerFormDTO; import com.epmet.dto.form.RegisterByAuthFormDTO; import com.epmet.dto.result.CustomerAgencyResultDTO; +import com.epmet.dto.result.CustomerAndUserResultDTO; import com.epmet.dto.result.RegisterByAuthResultDTO; import com.epmet.entity.PaCustomerEntity; import org.apache.ibatis.annotations.Mapper; @@ -84,4 +85,10 @@ public interface PaCustomerDao extends BaseDao { * @date 2020/8/5 3:23 下午 */ String selectCustomerName(@Param("customerId") String customerId); + + /** + * @author sun + * @Description 查询客户及管理员信息 + */ + CustomerAndUserResultDTO selectCustomerAndUser(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index 9704f71e0a..aa327a2475 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -3,6 +3,10 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.client.config.utils.IOUtils; +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiRobotSendRequest; +import com.dingtalk.api.response.OapiRobotSendResponse; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; @@ -12,6 +16,7 @@ import com.epmet.constant.ModuleConstant; import com.epmet.constant.ThirdRedisKeyConstant; import com.epmet.constant.ThirdRunTimeInfoConstant; import com.epmet.dao.*; +import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.PaCustomerUserAgencyDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -21,6 +26,7 @@ import com.epmet.mpaes.WXXmlToMapUtil; import com.epmet.redis.RedisThird; import com.epmet.service.ComponentVerifyTicketService; import com.epmet.wxapi.constant.WxMaCodeConstant; +import com.taobao.api.ApiException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -34,6 +40,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; import static com.epmet.constant.ModuleConstant.COMPONENT_ACCESS_TOKEN; import static com.epmet.constant.ThirdRunTimeInfoConstant.*; @@ -88,6 +95,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe private PaUserDao paUserDao; @Autowired private PaCustomerServiceImpl paCustomerServiceImpl; + @Autowired + private PaCustomerDao paCustomerDao; @Value("${third.platform.appId}") private String componentAppId; @@ -448,6 +457,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe authCodeDao.updateAppId(customerId,clientType,authAppId); // 4. 保存授权方账户信息 this.saveAuthAccountInfo(customerId,authAppId,clientType); + // 5. 校验客户居民端、工作端小程序是否全部授权,全部授权完成的推送钉钉消息 sun + this.checkAuthorization(customerId); log.info("回调结束"); } @@ -689,4 +700,54 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe date.setTime(aLong); return date; } + + /** + * @author sun + * @Description 校验客户两哥小程序是否完成授权 + */ + private void checkAuthorization(String customerId){ + List list = customerMpDao.selectByCustomerId(customerId); + AtomicBoolean bl = new AtomicBoolean(false); + list.forEach(mp->{ + if(mp.getAuthorizationFlag()!=NumConstant.ONE){ + bl.set(true); + } + }); + if(!bl.get()){ + dDingNews(customerId); + } + } + + /** + * @author sun + * @Description 发送钉钉消息,通知运营人员有新客户完成授权 + */ + private String dDingNews(String customerId) { + //1.查询客户及管理员信息,用于发送消息使用 + CustomerAndUserResultDTO result = paCustomerDao.selectCustomerAndUser(customerId); + if (null == result || null == result.getCustomerId()) { + log.error("授权完成发送钉钉消息失败,原因:未查询到客户信息,客户Id->" + customerId); + return null; + } + //2.拼接钉钉消息内容并发送 + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=b4e47783ad72ba643278598ff8af90e745890c13538b2a4dc139635a71289dfd"); + OapiRobotSendRequest request = new OapiRobotSendRequest(); + request.setMsgtype("markdown"); + OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); + markdown.setTitle("授权客户信息"); + //"新客户通知"几个字是设置机器人时自定义的关键字,要保持代码与机器人设置的一致 + markdown.setText("新客户通知: \n" + + "> 客户名称: " + result.getCustomerName() + "\n\n" + + "> 管理员称谓: " + result.getAppellation() + "\n\n" + + "> 联系方式: " + result.getPhone() + "\n"); + request.setMarkdown(markdown); + try { + OapiRobotSendResponse response = client.execute(request); + } catch (ApiException e) { + log.error("机器人生病了......"); + e.printStackTrace(); + } + return null; + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml index 2d09708ba1..ffceb02e07 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml @@ -82,6 +82,30 @@ AND id = #{customerId} + + UPDATE pa_customer SET is_initialize = #{isInitialize} From 81967ea0689b2f6ed198faf35ae4930097f45c86 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 15:02:19 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/WarrantController.java | 4 +- .../java/com/epmet/mpaes/WXBizMsgCrypt.java | 4 +- .../com/epmet/service/WarrantService.java | 2 +- .../impl/AppLetAuthorizationServiceImpl.java | 1 - .../service/impl/WarrantServiceImpl.java | 106 ++++++++++++------ 5 files changed, 74 insertions(+), 43 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java index 90139540e1..ab190ac159 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java @@ -27,9 +27,9 @@ public class WarrantController { private WarrantService warrantService; @PostMapping(value ="/{APPID}/callback") - public String acceptMessageAndEvent(HttpServletRequest request, @PathVariable("APPID") String appid, + public void acceptMessageAndEvent(HttpServletRequest request, @PathVariable("APPID") String appid, HttpServletResponse response)throws IOException, DocumentException, AesException { - return warrantService.acceptMessageAndEvent(request, appid, response); + warrantService.acceptMessageAndEvent(request, appid, response); } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mpaes/WXBizMsgCrypt.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mpaes/WXBizMsgCrypt.java index 73b61f930b..28749e6820 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mpaes/WXBizMsgCrypt.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mpaes/WXBizMsgCrypt.java @@ -85,7 +85,7 @@ public class WXBizMsgCrypt { } // 随机生成16位字符串 - String getRandomStr() { + public String getRandomStr() { String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); @@ -103,7 +103,7 @@ public class WXBizMsgCrypt { * @return 加密后base64编码的字符串 * @throws AesException aes加密失败 */ - String encrypt(String randomStr, String text) throws AesException { + public String encrypt(String randomStr, String text) throws AesException { ByteGroup byteCollector = new ByteGroup(); byte[] randomStrBytes = randomStr.getBytes(CHARSET); byte[] textBytes = text.getBytes(CHARSET); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java index 9393704594..4ae4cfd5e1 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java @@ -13,6 +13,6 @@ import java.io.IOException; */ public interface WarrantService { - String acceptMessageAndEvent(HttpServletRequest request,String appid,HttpServletResponse response)throws IOException, DocumentException, AesException; + void acceptMessageAndEvent(HttpServletRequest request,String appid,HttpServletResponse response)throws IOException, DocumentException, AesException; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java index 138d8e4dc7..069b6d0f40 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java @@ -60,7 +60,6 @@ public class AppLetAuthorizationServiceImpl implements AppLetAuthorizationServic String userId = tokenDto.getUserId(); //获取预授权码 String preAuthCode = componentVerifyTicketService.preAuthCode(); -// String redirectUrl = WxMaCodeConstant.WEB_URL + formDTO.getClientType(); String redirectUrl = String.format(WxMaCodeConstant.WEB_URL,source,formDTO.getClientType()); String authUrl = String.format(WxMaCodeConstant.API_AUTH_REGISTER_URL, componentAppId, preAuthCode, redirectUrl); result.setUrl(authUrl); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 031910a932..1a00d701fe 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -8,6 +8,7 @@ import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; import com.dingtalk.api.response.OapiRobotSendResponse; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.constant.ModuleConstant; @@ -22,6 +23,7 @@ import com.epmet.dto.result.TemplateAndAppIdResultDTO; import com.epmet.mpaes.AesException; import com.epmet.mpaes.WXBizMsgCrypt; import com.epmet.mpaes.WXXmlToMapUtil; +import com.epmet.mpaes.XMLParse; import com.epmet.redis.RedisThird; import com.epmet.service.WarrantService; import com.epmet.wxapi.constant.WxMaCodeConstant; @@ -37,10 +39,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.io.PrintWriter; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -87,15 +91,16 @@ public class WarrantServiceImpl implements WarrantService { */ @Transactional(rollbackFor = Exception.class) @Override - public String acceptMessageAndEvent(HttpServletRequest request, String appId, HttpServletResponse response)throws IOException, DocumentException, AesException { - log.info("消息与事件接收URL【代码审核结果】开始执行......"); - log.info("appId:"+ appId); + public void acceptMessageAndEvent(HttpServletRequest request, String appId, HttpServletResponse response)throws IOException, DocumentException, AesException { request.setCharacterEncoding(ModuleConstant.UTF8); String msgSignature = request.getParameter(ModuleConstant.MSG_SIGNATURE); String timeStamp = request.getParameter(ModuleConstant.TIMESTAMP); String nonce = request.getParameter(ModuleConstant.NONCE); if (!StringUtils.isNotBlank(msgSignature)) { - return ModuleConstant.SUCCESS;// 微信推送给第三方开放平台的消息一定是加过密的,无消息加密无法解密消息 + // 微信推送给第三方开放平台的消息一定是加过密的,无消息加密无法解密消息 + PrintWriter pw = response.getWriter(); + pw.write(ModuleConstant.SUCCESS); + pw.flush(); } InputStream inputStream; String postData = null; @@ -109,7 +114,6 @@ public class WarrantServiceImpl implements WarrantService { } catch (AesException e) { e.printStackTrace(); } - log.info(String.format(ThirdRunTimeInfoConstant.MSG,msg)); // 将xml转为map Map result = WXXmlToMapUtil.multilayerXmlToMap(msg); Map xml = (Map) result.get(ModuleConstant.XML); @@ -117,20 +121,22 @@ public class WarrantServiceImpl implements WarrantService { log.info(String.format(ThirdRunTimeInfoConstant.MSG_TYPE,msgType)); String toUserName = null; String fromUserName = null; + if (xml.containsKey(ModuleConstant.TO_USER_NAME)){ + toUserName = xml.get(ModuleConstant.TO_USER_NAME).toString(); + log.info("toUserName为:" + toUserName); + } + if (xml.containsKey(ModuleConstant.FROM_USER_NAME)){ + fromUserName = xml.get(ModuleConstant.FROM_USER_NAME).toString(); + log.info("fromUserName为:"+fromUserName); + } if (msgType.equals(ModuleConstant.EVENT_LOW)) { String event = xml.get(ModuleConstant.EVENT).toString(); - if (xml.containsKey(ModuleConstant.TO_USER_NAME)){ - toUserName = xml.get(ModuleConstant.TO_USER_NAME).toString(); - } - if (xml.containsKey(ModuleConstant.FROM_USER_NAME)){ - fromUserName = xml.get(ModuleConstant.FROM_USER_NAME).toString(); - } if (event.startsWith(ModuleConstant.WE_APP_AUDIT)) { + log.info("消息与事件接收URL【代码审核结果】开始执行......"); // TODO 目前来看,msgType = ‘event’ 的是代码审核结果 Long createTime = Long.valueOf(xml.get(ModuleConstant.CREATE_TIME).toString()); CodeAuditRecordFormDTO codeAuditRecord = ConvertUtils.mapToEntity(xml, CodeAuditRecordFormDTO.class); codeAuditRecord.setWechatCreateTime(componentVerifyTicketServiceImpl.sToDate(createTime.toString())); -// String toUserName = codeAuditRecord.getToUserName();//小程序原始ID CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName); String clientType = customerIdAndClientResultDTO.getClientType(); String customerId = customerIdAndClientResultDTO.getCustomerId(); @@ -147,7 +153,6 @@ public class WarrantServiceImpl implements WarrantService { log.info(String.format(ThirdRunTimeInfoConstant.CODE_AUDIT_RESULT, xml)); codeAuditRecordDao.insertCodeAuditRecord(codeAuditRecord); // 修改 code_audit_result 中的代码审核结果 -// String event = codeAuditRecord.getEvent(); String reason = codeAuditRecord.getReason(); String codeResult = null; switch (event) { @@ -167,9 +172,13 @@ public class WarrantServiceImpl implements WarrantService { String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord); codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); log.info("消息与事件接收URL【代码审核结果】结束......"); - }else { + PrintWriter pw = response.getWriter(); + pw.write(ModuleConstant.SUCCESS); + pw.flush(); + }/*else { + log.info("==================== ==== event message ========= ="); this.replyEventMessage(request,response,event,toUserName,fromUserName); - } + }*/ }else if (msgType.equals(ModuleConstant.TEXT)){ // TODO 公众号回复消息 MessagePushTextFormDTO messagePushTextFormDTO = ConvertUtils.mapToEntity(xml, MessagePushTextFormDTO.class); @@ -179,18 +188,15 @@ public class WarrantServiceImpl implements WarrantService { // messagePushTextDao.insertMessageText(messagePushTextFormDTO); String content = messagePushTextFormDTO.getContent(); log.info(String.format(ThirdRunTimeInfoConstant.CONTENT,content)); - /** - * 测试公众号处理用户消息 - * 模拟粉丝发送文本消息给专用测试公众号,第三方平台方需根据文本消息的内容进行相应的响应: - * 1)微信模推送给第三方平台方:文本消息,其中 Content 字段的内容固定为:TESTCOMPONENT_MSG_TYPE_TEXT - * 2)第三方平台方立马回应文本消息并最终触达粉丝:Content 必须固定为:TESTCOMPONENT_MSG_TYPE_TEXT_callback - */ - this.processTextMessage(request,response,content,toUserName,fromUserName); - + this.processTextMessage(request, response, content, toUserName, fromUserName); } - return ModuleConstant.SUCCESS; } + /*public static void main(String[] args) { + WarrantServiceImpl w = new WarrantServiceImpl(); + w.dingDingRobot("haha","weapp_audit_fail","haha","jumian"); + }*/ + /** * @Description 钉钉机器人报警 * @author zxc @@ -236,7 +242,7 @@ public class WarrantServiceImpl implements WarrantService { } /** - * 方法描述: 类型为enevt的时候,拼接 + * 方法描述: 类型为event的时候,拼接 * @param request * @param response * @param event @@ -247,6 +253,7 @@ public class WarrantServiceImpl implements WarrantService { public void replyEventMessage(HttpServletRequest request, HttpServletResponse response, String event, String toUserName, String fromUserName) throws DocumentException, IOException { + log.info("================ event + from_callback..................."); String content = event + ModuleConstant.FROM_CALLBACK; replyTextMessage(request,response,content,toUserName,fromUserName); } @@ -263,13 +270,24 @@ public class WarrantServiceImpl implements WarrantService { String content,String toUserName, String fromUserName) throws IOException, DocumentException{ if(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT.equals(content)){ - String returnContent = content+ModuleConstant._CALL_BACK; - replyTextMessage(request,response,returnContent,toUserName,fromUserName); + log.info("收到消息,要回复了......"); +// String returnContent = content+ModuleConstant._CALL_BACK; + String returnContent = "TESTCOMPONENT_MSG_TYPE_TEXT_callback"; + log.info("拼接的回复内容【普通】:"+returnContent); + String result = replyTextMessage(request, response, returnContent, toUserName, fromUserName); + log.info("加密的回复内容为:"+result); + PrintWriter pw = response.getWriter(); + pw.write(result); + pw.flush(); }else if(StringUtils.startsWithIgnoreCase(content, ModuleConstant.QUERY_AUTH_CODE)){ - response.getWriter().print("");//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 + PrintWriter pw = response.getWriter();//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 + pw.write(""); + pw.flush(); + log.info(String.format(ThirdRunTimeInfoConstant.TEXT_MESSAGE_LOG_INFO,content,content.split(ThirdRedisKeyConstant.COLON)[NumConstant.ONE],fromUserName,toUserName)); //接下来客服API再回复一次消息 - replyApiTextMessage(content.split(ThirdRedisKeyConstant.COLON)[NumConstant.ONE],toUserName); + String[] split = content.split(ThirdRedisKeyConstant.COLON); + replyApiTextMessage(split[NumConstant.ONE],fromUserName); } } @@ -284,21 +302,30 @@ public class WarrantServiceImpl implements WarrantService { * @param fromUserName 发送人 * @author zxc */ - public void replyTextMessage(HttpServletRequest request, HttpServletResponse response, + public String replyTextMessage(HttpServletRequest request, HttpServletResponse response, String content,String toUserName, String fromUserName) throws DocumentException, IOException { Long createTime = System.currentTimeMillis() / NumConstant.ONE_THOUSAND; StringBuffer sb = new StringBuffer(512); + log.info("********************** encryption start.............."); sb.append(""); sb.append(""); sb.append(""); - sb.append(""+createTime.toString()+""); - sb.append(""); + sb.append(""+createTime+""); sb.append(""); + sb.append(""); sb.append(""); String replyMsg = sb.toString(); log.info(String.format(ThirdRunTimeInfoConstant.SEND_MESSAGE_XML,replyMsg)); - returnJSON(replyMsg,response); + WXBizMsgCrypt wxBizMsgCrypt; + String generate = null; + try { + wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId); + generate = wxBizMsgCrypt.encryptMsg(replyMsg, String.valueOf(System.currentTimeMillis()/1000), wxBizMsgCrypt.getRandomStr()); + } catch (AesException e) { + e.printStackTrace(); + } + return generate; } /** @@ -319,15 +346,20 @@ public class WarrantServiceImpl implements WarrantService { jsonObject.put(ModuleConstant.AUTHORIZATION_CODE, auth_code); String authInfo = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_QUERY_AUTH_URL + componentAccessToken, JSON.toJSONString(jsonObject)).getData(); HashMap hashMap = JSON.parseObject(authInfo, HashMap.class); + if (hashMap.containsKey("errcode")){ + throw new RenException("全网发布接入检测【API文本消息回复失败】"); + } Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO); AuthorizationInfoResultDTO authorizationInfoResultDTO = ConvertUtils.mapToEntity(map, AuthorizationInfoResultDTO.class); String authorizer_access_token = authorizationInfoResultDTO.getAuthorizer_access_token(); + Map msgMap = new HashMap(); + String msg = auth_code + "_from_api"; + msgMap.put("content", msg); JSONObject json = new JSONObject(); json.put("touser",fromUserName); - json.put("msgtype", "text"); - json.put("text", "{\"content\":\""+auth_code+ModuleConstant._FROM_API+"\"}"); - + json.put("msgtype","text"); + json.put("text",msgMap); String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.SEND_MESSAGE_CUSTOM + authorizer_access_token, JSON.toJSONString(json)).getData(); log.info("客服发送接口返回值:"+data); } @@ -347,7 +379,7 @@ public class WarrantServiceImpl implements WarrantService { JsonGenerator generator = objectMapper.getJsonFactory(). createJsonGenerator(response.getOutputStream(), encoding); objectMapper.writeValue(generator, data); - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); } } From 7d461160eb5a6a9a592816706fc03a24fe55e549 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 7 Aug 2020 17:24:45 +0800 Subject: [PATCH 03/23] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8D=87=E7=BA=A7=20?= =?UTF-8?q?=20=20112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-user/epmet-user-server/deploy/docker-compose-dev.yml | 2 +- epmet-user/epmet-user-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index 05049a8edb..aaecc89036 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.111 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.112 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 6e323ee2fe..fb079f2cd3 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.111 + 0.3.112 com.epmet epmet-user From d93acd747ffcda15a6fa031e70b4b36808066d91 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 17:31:51 +0800 Subject: [PATCH 04/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/WarrantServiceImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 1a00d701fe..efdcb4c96f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -23,7 +23,6 @@ import com.epmet.dto.result.TemplateAndAppIdResultDTO; import com.epmet.mpaes.AesException; import com.epmet.mpaes.WXBizMsgCrypt; import com.epmet.mpaes.WXXmlToMapUtil; -import com.epmet.mpaes.XMLParse; import com.epmet.redis.RedisThird; import com.epmet.service.WarrantService; import com.epmet.wxapi.constant.WxMaCodeConstant; @@ -39,7 +38,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -175,10 +173,10 @@ public class WarrantServiceImpl implements WarrantService { PrintWriter pw = response.getWriter(); pw.write(ModuleConstant.SUCCESS); pw.flush(); - }/*else { + }else { log.info("==================== ==== event message ========= ="); this.replyEventMessage(request,response,event,toUserName,fromUserName); - }*/ + } }else if (msgType.equals(ModuleConstant.TEXT)){ // TODO 公众号回复消息 MessagePushTextFormDTO messagePushTextFormDTO = ConvertUtils.mapToEntity(xml, MessagePushTextFormDTO.class); @@ -255,7 +253,10 @@ public class WarrantServiceImpl implements WarrantService { throws DocumentException, IOException { log.info("================ event + from_callback..................."); String content = event + ModuleConstant.FROM_CALLBACK; - replyTextMessage(request,response,content,toUserName,fromUserName); + String s = replyTextMessage(request, response, content, toUserName, fromUserName); + PrintWriter pw = response.getWriter(); + pw.write(s); + pw.flush(); } @@ -321,7 +322,7 @@ public class WarrantServiceImpl implements WarrantService { String generate = null; try { wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId); - generate = wxBizMsgCrypt.encryptMsg(replyMsg, String.valueOf(System.currentTimeMillis()/1000), wxBizMsgCrypt.getRandomStr()); + generate = wxBizMsgCrypt.encryptMsg(replyMsg, String.valueOf(createTime), wxBizMsgCrypt.getRandomStr()); } catch (AesException e) { e.printStackTrace(); } From e3ba79b9a52d8473bf03c38c789d6e8fb55c7107 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 17:33:24 +0800 Subject: [PATCH 05/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 3b9a6b3a15..3086bd316e 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.108 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.109 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index a16b983f97..2ebec8bbf9 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.108 + 0.0.109 com.epmet From 9d2b0bb83eae0053f310390c9fee8bc21172416d Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Fri, 7 Aug 2020 17:42:20 +0800 Subject: [PATCH 06/23] =?UTF-8?q?heart=E6=A8=A1=E5=9D=97=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-heart-server/deploy/docker-compose-dev.yml | 4 ++-- epmet-module/epmet-heart/epmet-heart-server/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml index ac05d69371..3a128b4d4a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-heart-server: container_name: epmet-heart-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.43 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.44 ports: - "8111:8111" network_mode: host # 使用现有网络 @@ -14,4 +14,4 @@ services: resources: limits: cpus: '0.1' - memory: 250M \ No newline at end of file + memory: 250M diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index 9c015b3dd0..1c4ac2008a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.43 + 0.0.44 com.epmet epmet-heart From b6e3ddd1cfc4d7aff9b1356d2c67f8d32c30393b Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 7 Aug 2020 17:59:06 +0800 Subject: [PATCH 07/23] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-user/epmet-user-server/deploy/docker-compose-dev.yml | 2 +- epmet-user/epmet-user-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index aaecc89036..c4678d66cd 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.112 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.113 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index fb079f2cd3..6b4dbb7a3d 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.112 + 0.3.113 com.epmet epmet-user From 2d16a44d1cf78f2583cfcc7f9da6e67fb7e6f294 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 18:13:05 +0800 Subject: [PATCH 08/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/WarrantServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index efdcb4c96f..3d4bf7fd62 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -312,9 +312,9 @@ public class WarrantServiceImpl implements WarrantService { sb.append(""); sb.append(""); sb.append(""); - sb.append(""+createTime+""); - sb.append(""); + sb.append(""); sb.append(""); + sb.append(""); sb.append(""); String replyMsg = sb.toString(); log.info(String.format(ThirdRunTimeInfoConstant.SEND_MESSAGE_XML,replyMsg)); From 55565722c1c6f7974244596054ad6898cb927908 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 18:14:11 +0800 Subject: [PATCH 09/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 3086bd316e..85e0adfe1b 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.109 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.110 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 2ebec8bbf9..4cb37c7143 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.109 + 0.0.110 com.epmet From 2495921b25681b6d4973406398467898467f8231 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 20:28:47 +0800 Subject: [PATCH 10/23] robot --- .../main/java/com/epmet/service/impl/WarrantServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 3d4bf7fd62..5a2115e886 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -201,7 +201,7 @@ public class WarrantServiceImpl implements WarrantService { * @date 2020/8/5 4:33 下午 */ public void dingDingRobot(String result,String event,String customerName,String clientType){ - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=5b48fcbc3fde24b8ba4696aa062b7f8146479a9d3467dbb1f9cf132ec36b955a"); + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("markdown"); OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); From e94b78364ee8e9bfe22f8a34a524df80d5e32058 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 20:29:44 +0800 Subject: [PATCH 11/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 85e0adfe1b..3fe2e7201f 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.110 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.111 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 4cb37c7143..1316373ba3 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.110 + 0.0.111 com.epmet From 9ab38cce7f3bb408053f03989a3468bf132e9ea7 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 21:09:25 +0800 Subject: [PATCH 12/23] robot --- .../service/impl/WarrantServiceImpl.java | 45 ++++++++++++++----- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 5a2115e886..c73e8bffa0 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -8,9 +8,11 @@ import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; import com.dingtalk.api.response.OapiRobotSendResponse; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.form.DingTalkTextMsg; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; +import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ModuleConstant; import com.epmet.constant.ThirdRedisKeyConstant; import com.epmet.constant.ThirdRunTimeInfoConstant; @@ -31,6 +33,7 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.ObjectMapper; import com.taobao.api.ApiException; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import org.dom4j.DocumentException; import org.springframework.beans.factory.annotation.Autowired; @@ -38,11 +41,14 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; +import java.net.URLEncoder; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -156,17 +162,15 @@ public class WarrantServiceImpl implements WarrantService { switch (event) { case ModuleConstant.WEAPP_AUDIT_SUCCESS: codeResult = ModuleConstant.AUDIT_SUCCESS; - this.dingDingRobot(reason,null,customerName,client); break; case ModuleConstant.WEAPP_AUDIT_FAIL: codeResult = ModuleConstant.AUDIT_FAILED; - this.dingDingRobot(reason,codeResult,customerName,client); break; case ModuleConstant.WEAPP_AUDIT_DELAY: codeResult = ModuleConstant.DELAY; - this.dingDingRobot(reason,codeResult,customerName,client); break; } + this.dingDingRobot(reason,codeResult,customerName,client); String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord); codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); log.info("消息与事件接收URL【代码审核结果】结束......"); @@ -190,18 +194,12 @@ public class WarrantServiceImpl implements WarrantService { } } - /*public static void main(String[] args) { - WarrantServiceImpl w = new WarrantServiceImpl(); - w.dingDingRobot("haha","weapp_audit_fail","haha","jumian"); - }*/ - /** * @Description 钉钉机器人报警 * @author zxc * @date 2020/8/5 4:33 下午 */ public void dingDingRobot(String result,String event,String customerName,String clientType){ - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("markdown"); OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); @@ -227,12 +225,37 @@ public class WarrantServiceImpl implements WarrantService { } request.setMarkdown(markdown); try { - OapiRobotSendResponse response = client.execute(request); - } catch (ApiException e) { + String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; + String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; + this.sendCodeMsg(request,url,secret); + } catch (Exception e) { log.error("机器人生病了......"); e.printStackTrace(); } } +/* + public static void main(String[] args) { + WarrantServiceImpl w = new WarrantServiceImpl(); + w.dingDingRobot("审核失败","weapp_audit_fail","机器人测试","居民端"); + }*/ + + public Result sendCodeMsg(OapiRobotSendRequest request,String url,String secret) { + Long timestamp = System.currentTimeMillis(); + + try { + String stringToSign = timestamp + "\n" + secret; + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256")); + byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8")); + String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); + url = url.concat("×tamp=" + timestamp + "&sign=" + sign); + Result stringResult = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(request)); + String data = stringResult.getData(); + } catch (Exception e) { + e.printStackTrace(); + } + return new Result().error(); + } public String getClient(String clientType){ String result = clientType == "resi" ? "居民端" : "工作端"; From e6131dbe12112df581b3cb7ab91c18cb44e572a2 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 7 Aug 2020 21:10:08 +0800 Subject: [PATCH 13/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 3fe2e7201f..dd440435ab 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.111 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.112 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 1316373ba3..27b00e9fad 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.111 + 0.0.112 com.epmet From e0bc6d772754b90bcac695cb194de1f87778c8aa Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 08:52:12 +0800 Subject: [PATCH 14/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/WarrantServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index c73e8bffa0..cd0b6295ca 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -335,8 +335,8 @@ public class WarrantServiceImpl implements WarrantService { sb.append(""); sb.append(""); sb.append(""); - sb.append(""); - sb.append(""); +// sb.append(""); +// sb.append(""); sb.append(""); sb.append(""); String replyMsg = sb.toString(); From 3526d02977aefac70794e676a56ee1b7b9849f46 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 08:53:01 +0800 Subject: [PATCH 15/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index dd440435ab..ceca26e685 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.112 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.113 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 27b00e9fad..df9092b122 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.112 + 0.0.113 com.epmet From 79f765ffd0f02773a38f530cd454e34caa86e4d1 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 09:11:49 +0800 Subject: [PATCH 16/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/service/impl/WarrantServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index cd0b6295ca..262de84cdd 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -337,6 +337,7 @@ public class WarrantServiceImpl implements WarrantService { sb.append(""); // sb.append(""); // sb.append(""); + sb.append(""); sb.append(""); String replyMsg = sb.toString(); From 0422f738e04acbab56067c222454829774f3d7de Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 09:25:34 +0800 Subject: [PATCH 17/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WarrantServiceImpl.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index cd0b6295ca..66583392e6 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -190,7 +190,26 @@ public class WarrantServiceImpl implements WarrantService { // messagePushTextDao.insertMessageText(messagePushTextFormDTO); String content = messagePushTextFormDTO.getContent(); log.info(String.format(ThirdRunTimeInfoConstant.CONTENT,content)); - this.processTextMessage(request, response, content, toUserName, fromUserName); + if(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT.equals(content)){ + log.info("收到消息,要回复了......"); +// String returnContent = content+ModuleConstant._CALL_BACK; + String returnContent = "TESTCOMPONENT_MSG_TYPE_TEXT_callback"; + log.info("拼接的回复内容【普通】:"+returnContent); + String resultContent = replyTextMessage(request, response, returnContent, toUserName, fromUserName); + log.info("加密的回复内容为:"+result); + PrintWriter pw = response.getWriter(); + pw.write(resultContent); + pw.flush(); + }else if(StringUtils.startsWithIgnoreCase(content, ModuleConstant.QUERY_AUTH_CODE)){ + PrintWriter pw = response.getWriter();//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 + pw.write(""); + pw.flush(); + + log.info(String.format(ThirdRunTimeInfoConstant.TEXT_MESSAGE_LOG_INFO,content,content.split(ThirdRedisKeyConstant.COLON)[NumConstant.ONE],fromUserName,toUserName)); + //接下来客服API再回复一次消息 + String[] split = content.split(ThirdRedisKeyConstant.COLON); + replyApiTextMessage(split[NumConstant.ONE],fromUserName); + } } } @@ -293,26 +312,7 @@ public class WarrantServiceImpl implements WarrantService { public void processTextMessage(HttpServletRequest request, HttpServletResponse response, String content,String toUserName, String fromUserName) throws IOException, DocumentException{ - if(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT.equals(content)){ - log.info("收到消息,要回复了......"); -// String returnContent = content+ModuleConstant._CALL_BACK; - String returnContent = "TESTCOMPONENT_MSG_TYPE_TEXT_callback"; - log.info("拼接的回复内容【普通】:"+returnContent); - String result = replyTextMessage(request, response, returnContent, toUserName, fromUserName); - log.info("加密的回复内容为:"+result); - PrintWriter pw = response.getWriter(); - pw.write(result); - pw.flush(); - }else if(StringUtils.startsWithIgnoreCase(content, ModuleConstant.QUERY_AUTH_CODE)){ - PrintWriter pw = response.getWriter();//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 - pw.write(""); - pw.flush(); - log.info(String.format(ThirdRunTimeInfoConstant.TEXT_MESSAGE_LOG_INFO,content,content.split(ThirdRedisKeyConstant.COLON)[NumConstant.ONE],fromUserName,toUserName)); - //接下来客服API再回复一次消息 - String[] split = content.split(ThirdRedisKeyConstant.COLON); - replyApiTextMessage(split[NumConstant.ONE],fromUserName); - } } @@ -335,8 +335,8 @@ public class WarrantServiceImpl implements WarrantService { sb.append(""); sb.append(""); sb.append(""); -// sb.append(""); -// sb.append(""); + sb.append(""); + sb.append(""); sb.append(""); sb.append(""); String replyMsg = sb.toString(); From 2e3536dd6eeef14877e50c28cb6a2832f37f6020 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 09:27:00 +0800 Subject: [PATCH 18/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index ceca26e685..00ff69e659 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.113 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.114 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index df9092b122..3f12a0490c 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.113 + 0.0.114 com.epmet From 9c4b8af6124ce195f8c72b49ff0bbc4729de1af3 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 8 Aug 2020 10:13:16 +0800 Subject: [PATCH 19/23] =?UTF-8?q?=E9=83=A8=E7=BD=B2heart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-heart-server/deploy/docker-compose-dev.yml | 2 +- .../epmet-heart-server/deploy/docker-compose-test.yml | 2 +- epmet-module/epmet-heart/epmet-heart-server/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml index 3a128b4d4a..6657b1a07b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-heart-server: container_name: epmet-heart-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.44 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.45 ports: - "8111:8111" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml index 05632f1c83..bd1df2562d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-heart-server: container_name: epmet-heart-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-heart-server:0.0.42 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-heart-server:0.0.45 ports: - "8111:8111" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index 1c4ac2008a..3d5f6772fc 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.44 + 0.0.45 com.epmet epmet-heart From 3fb59b1116372e05ecc5e7d0fe8d41ef4e633fbc Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 10:39:14 +0800 Subject: [PATCH 20/23] =?UTF-8?q?=E5=85=A8=E7=BD=91=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WarrantServiceImpl.java | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 66583392e6..0f731a7e8a 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -195,11 +195,8 @@ public class WarrantServiceImpl implements WarrantService { // String returnContent = content+ModuleConstant._CALL_BACK; String returnContent = "TESTCOMPONENT_MSG_TYPE_TEXT_callback"; log.info("拼接的回复内容【普通】:"+returnContent); - String resultContent = replyTextMessage(request, response, returnContent, toUserName, fromUserName); - log.info("加密的回复内容为:"+result); - PrintWriter pw = response.getWriter(); - pw.write(resultContent); - pw.flush(); + replyTextMessage(request, response, returnContent, toUserName, fromUserName); + }else if(StringUtils.startsWithIgnoreCase(content, ModuleConstant.QUERY_AUTH_CODE)){ PrintWriter pw = response.getWriter();//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 pw.write(""); @@ -243,14 +240,9 @@ public class WarrantServiceImpl implements WarrantService { break; } request.setMarkdown(markdown); - try { - String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; - String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; - this.sendCodeMsg(request,url,secret); - } catch (Exception e) { - log.error("机器人生病了......"); - e.printStackTrace(); - } + String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; + String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; + this.sendCodeMsg(request,url,secret); } /* public static void main(String[] args) { @@ -295,10 +287,7 @@ public class WarrantServiceImpl implements WarrantService { throws DocumentException, IOException { log.info("================ event + from_callback..................."); String content = event + ModuleConstant.FROM_CALLBACK; - String s = replyTextMessage(request, response, content, toUserName, fromUserName); - PrintWriter pw = response.getWriter(); - pw.write(s); - pw.flush(); + replyTextMessage(request, response, content, toUserName, fromUserName); } @@ -326,7 +315,7 @@ public class WarrantServiceImpl implements WarrantService { * @param fromUserName 发送人 * @author zxc */ - public String replyTextMessage(HttpServletRequest request, HttpServletResponse response, + public void replyTextMessage(HttpServletRequest request, HttpServletResponse response, String content,String toUserName, String fromUserName) throws DocumentException, IOException { Long createTime = System.currentTimeMillis() / NumConstant.ONE_THOUSAND; @@ -346,10 +335,12 @@ public class WarrantServiceImpl implements WarrantService { try { wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId); generate = wxBizMsgCrypt.encryptMsg(replyMsg, String.valueOf(createTime), wxBizMsgCrypt.getRandomStr()); + PrintWriter pw = response.getWriter(); + pw.write(generate); + pw.flush(); } catch (AesException e) { e.printStackTrace(); } - return generate; } /** From c30679c10fe79781a66a2e583a7719886c920742 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 8 Aug 2020 10:40:05 +0800 Subject: [PATCH 21/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 00ff69e659..d59f0ee045 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.114 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.115 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 3f12a0490c..0ef28db5a1 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.114 + 0.0.115 com.epmet From 0dd5e21e97109dc9366069e5d2e7322f5eb3b5f6 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 10 Aug 2020 09:13:26 +0800 Subject: [PATCH 22/23] robot --- .../java/com/epmet/service/impl/WarrantServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 0f731a7e8a..d90eb661d0 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -170,7 +170,9 @@ public class WarrantServiceImpl implements WarrantService { codeResult = ModuleConstant.DELAY; break; } + log.info("开始寻找机器人发送消息"); this.dingDingRobot(reason,codeResult,customerName,client); + log.info("已找到robot,并发送消息......"); String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord); codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); log.info("消息与事件接收URL【代码审核结果】结束......"); @@ -240,6 +242,7 @@ public class WarrantServiceImpl implements WarrantService { break; } request.setMarkdown(markdown); + log.info("robot需要发送的内容为:"+markdown.getTitle()); String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; this.sendCodeMsg(request,url,secret); @@ -252,16 +255,17 @@ public class WarrantServiceImpl implements WarrantService { public Result sendCodeMsg(OapiRobotSendRequest request,String url,String secret) { Long timestamp = System.currentTimeMillis(); - try { String stringToSign = timestamp + "\n" + secret; Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256")); byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8")); String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); + log.info("sign为:"+sign); url = url.concat("×tamp=" + timestamp + "&sign=" + sign); Result stringResult = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(request)); - String data = stringResult.getData(); + log.info("robot发送消息结果为:"+stringResult.getData()); + return stringResult; } catch (Exception e) { e.printStackTrace(); } From a012e8402af54e95c7892d771895cab53f353dfc Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 10 Aug 2020 09:14:40 +0800 Subject: [PATCH 23/23] =?UTF-8?q?third=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-third-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-third/epmet-third-server/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index d59f0ee045..71002a4833 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.115 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.116 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 0ef28db5a1..306cb6ed20 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.115 + 0.0.116 com.epmet