diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java index 76d3a3048..0af86b207 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java @@ -1,10 +1,12 @@ package com.iformall.controller.callback; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.TtCouponChannelPoi; import com.iformall.domain.po.WxAppinfo; -import com.iformall.service.MailService; -import com.iformall.service.WxAppinfoService; +import com.iformall.enums.EnumSpuSyncStatus; +import com.iformall.service.*; import com.iformall.utils.DateUtils; import me.chanjar.weixin.common.util.crypto.SHA1; import org.slf4j.Logger; @@ -33,49 +35,89 @@ public class TtWebController extends BaseController { @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + private TtCouponGoodsService ttCouponGoodsService; + /** * { - * "event": "verify_webhook", - * "client_key": "", - * "content": { - * "challenge": 12345 - * } + * "event": "verify_webhook", + * "client_key": "", + * "content": { + * "challenge": 12345 + * } * } */ @PostMapping(value = "/notice") @ResponseBody - public Map notice(@RequestBody Map parameterMap, HttpServletRequest request) { + public Map notice( @RequestBody Map parameterMap,HttpServletRequest request){ logger.debug("[" + getIpAddr() + "] TtOrderCallbackController::notice"); - Map resultMap = new HashMap<>(); - -// String body = ((BodyReaderHttpServletRequestWrapper) request).getBody(); - logger.info("抖音开放平台通知-----parameterMap{}" + parameterMap); - try { - String header = request.getHeader("X-Douyin-Signature"); - logger.info("抖音开放平台通知-----header.X-Douyin-Signature{}" + header); - String client_key = (String) parameterMap.get("client_key"); - logger.info("抖音开放平台通知-----client_key{}" + client_key); - WxAppinfo appInfo = wxAppinfoService.getByAppId(client_key); - -// Map parameterMap = JSONObject.parseObject(body, Map.class); - - String event = (String) parameterMap.get("event"); - logger.info("抖音开放平台通知-----event{}" + event); - - Map content = (HashMap) parameterMap.get("content"); - logger.info("抖音开放平台通知-----content{}" + content.toString()); - String challenge = content.get("challenge").toString(); - logger.info("抖音开放平台通知-----content.challenge{}" + challenge); + logger.info("抖音开放平台通知-----{}"+JSON.toJSONString(parameterMap)); + Map resultMap = new HashMap<>(); + String event = (String) parameterMap.get("event"); + String client_key = (String) parameterMap.get("client_key"); + WxAppinfo appInfo = wxAppinfoService.getByAppId(client_key); + if(appInfo == null){ + resultMap.put("err_code",1000); + resultMap.put("err_tips","error"); + return resultMap; + } - resultMap.put("challenge", challenge); - return resultMap; - } catch (Exception e) { - logger.error(e.getMessage()); - resultMap.put("err_code", 1000); - resultMap.put("err_tips", "error"); + String header = request.getHeader("X-Douyin-Signature"); + String sha1gen = SHA1.gen(appInfo.getSecret(), JSON.toJSONString(parameterMap)); + //发邮件 + String[] receivers = fmExceptionEmails.split(","); + StringBuilder sb = new StringBuilder(); + sb.append(DateUtils.date2String(new Date())); + sb.append("\n"); + sb.append("抖音开放平台通知{}"+JSON.toJSONString(parameterMap)); + sb.append("\n"); + sb.append("sha1gen{}"+sha1gen); + sb.append("\n"); + sb.append("header{}"+header); + //发送邮件 + mailService.sendSimpleMail(receivers, "抖音开放平台通知", sb.toString()); + + + if("verify_webhook".equals(event)){ + Map content = (HashMap) parameterMap.get("content"); + String challenge = content.get("challenge").toString(); + resultMap.put("challenge", challenge); + return resultMap; + }else if("life_goods_audit".equals(event)){ + String content = (String) parameterMap.get("content"); + JSONObject jsonObject = JSON.parseObject(content); + String product_id = jsonObject.getString("product_id"); + String reason = jsonObject.getString("reason"); + String status = jsonObject.getString("status"); +// String product_id = content.get("product_id").toString(); +// String reason = (String) content.get("reason"); +// String status = (String) content.get("status"); + + TtCouponChannelPoi couponChannelPoi = new TtCouponChannelPoi(); + couponChannelPoi.updateTenantInfo(appInfo); + couponChannelPoi.setSpuId(product_id); + if("FAIL".equals(status)){ + couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_rejection.getCode()); + couponChannelPoi.setLastStatusDesc(reason); + + }else if("PASS".equals(status)){ + couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); + couponChannelPoi.setLastStatusDesc(reason); + + }else{ + resultMap.put("err_code",1000); + resultMap.put("err_tips","error"); return resultMap; } + ttCouponGoodsService.handlerTtGoodsAudit(couponChannelPoi); + resultMap.put("err_code",0); + resultMap.put("err_tips","success"); + return resultMap; } - } + resultMap.put("err_code",1000); + resultMap.put("err_tips","error"); + return resultMap; + } +}