From dc0579496b9c858806a606523397cd43ee6217ba Mon Sep 17 00:00:00 2001 From: wzp <2040239371@qq.com> Date: 星期二, 06 五月 2025 11:42:42 +0800 Subject: [PATCH] feat: 新增回调记录表和优化订单记录表 --- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 107 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 81 insertions(+), 26 deletions(-) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index 6fdb634..d4cfcca 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -1,19 +1,16 @@ package com.ruoyi.quartz.task; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.utils.HttpUtil; -import com.ruoyi.system.domain.AOrderStatus; -import com.ruoyi.system.domain.DispatchOrd; -import com.ruoyi.system.domain.OrderStatusCallBackVo; -import com.ruoyi.system.domain.TbOrders; -import com.ruoyi.system.service.IAOrderStatusService; -import com.ruoyi.system.service.IDispatchOrdService; -import com.ruoyi.system.service.ITbOrdersService; +import com.ruoyi.system.domain.*; +import com.ruoyi.system.service.*; import com.ruoyi.system.service.impl.SysUserServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.utils.StringUtils; +import java.util.Date; import java.util.HashMap; import java.util.List; @@ -37,6 +34,12 @@ @Autowired private IDispatchOrdService dispatchOrdService; + @Autowired + private ISysClientAppService sysClientAppService; + + @Autowired + private ITbCallbackLogService tbCallbackLogService; + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i)); @@ -52,6 +55,9 @@ System.out.println("鎵ц鏃犲弬鏂规硶"); } + /** + * 鍥炶皟鎺ㄩ�佺姸鎬� + */ public void ryOrderStatus() { try { List<AOrderStatus> orderStatusList = orderStatusService.selectAOrderStatusList(); @@ -62,8 +68,7 @@ for (AOrderStatus orderStatus : orderStatusList) { int count = tbOrdersService.checkServiceOrdIDExists(orderStatus.getServiceOrdID()); if (count > 0) { - // orderStatusService.updateAOrderStatusFlag(orderStatus.getId()); - System.out.println("鏈嶅姟璁㈠崟ID瀛樺湪锛�" + orderStatus.getServiceOrdID()); + log.info("鏈嶅姟璁㈠崟ID瀛樺湪锛�" + orderStatus.getServiceOrdID()); TbOrders tbOrders = tbOrdersService.selectTbOrdersByServiceOrdID(orderStatus.getServiceOrdID()); @@ -108,10 +113,13 @@ log.error("鑾峰彇璋冨害鍗曞紓甯革細"+e.getMessage()); } + SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey(tbOrders.getAppId()); + if(clientApp==null){ + log.error("鍥炶皟鍦板潃涓嶅瓨鍦�"); + return; + } - - // 浣跨敤鑾峰彇鍒扮殑鎵�鏈夊徃鏈哄鍚� - String callbackUrl = "http://localhost:8080/system/apitest/orderCallback"; + String callbackUrl = clientApp.getCallbackUrl(); try { // 鏋勫缓璇锋眰鍙傛暟 Map<String, String> map = new HashMap<>(); @@ -122,26 +130,34 @@ map.put("plateNo",carLicense); map.put("driverMobile",driverMobiles.toString()); map.put("driverName", driverNames.toString()); + map.put("appId", tbOrders.getAppId()); - // 鎵撳嵃璇锋眰鍙傛暟 - log.info("鍙戦�佸洖璋冭姹傦紝URL: " + callbackUrl); - log.info("璇锋眰鍙傛暟: " + map); + // 绗竴娆″皾璇� + String response = sendCallback(callbackUrl, map); + + if (response == null) { + // 濡傛灉绗竴娆″け璐ワ紝绛夊緟3绉掑悗閲嶈瘯 + Thread.sleep(3000); + log.info("绗竴娆″洖璋冨け璐ワ紝鍑嗗閲嶈瘯"); + response = sendCallback(callbackUrl, map); + } + + if (response != null) { + // 鏇存柊鐘舵�� + log.info("鍥炶皟鎺ㄩ�佹垚鍔燂紝鍙傛暟濡備笅锛�"); + map.forEach((key, value) -> log.info(" {} : {}", key, value)); + orderStatusService.updateAOrderStatusFlag(orderStatus.getId()); - // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 - String response = HttpUtil.post(callbackUrl, map); - // 鎵撳嵃鍝嶅簲缁撴灉 - log.info("鍥炶皟鍝嶅簲缁撴灉: " + response); - - // 鏇存柊鐘舵�� - // orderStatusService.updateAOrderStatusFlag(orderStatus.getId()); + + } else { + log.error("鍥炶皟璇锋眰閲嶈瘯鍚庝粛鐒跺け璐�"); + orderStatusService.updateAOrderStatusFlag(orderStatus.getId()); + } } catch (Exception e) { log.error("鍥炶皟璇锋眰澶辫触: " + e.getMessage()); - // 鍙互鑰冭檻閲嶈瘯鏈哄埗鎴栬�呰褰曞け璐ユ棩蹇� + orderStatusService.updateAOrderStatusFlag(orderStatus.getId()); } - - - } else { log.info("鏈嶅姟璁㈠崟ID涓嶅瓨鍦細" + orderStatus.getServiceOrdID()); @@ -153,4 +169,43 @@ e.printStackTrace(); } } + + // 鏂板鍙戦�佸洖璋冪殑鏂规硶 + private String sendCallback(String callbackUrl, Map<String, String> params) { + TbCallbackLog callbackLog = new TbCallbackLog(); + callbackLog.setCallbackUrl(callbackUrl); + callbackLog.setRequestParams(JSON.toJSONString(params)); + callbackLog.setCreateTime(new Date()); + callbackLog.setStatus("0"); // 榛樿澶辫触 + callbackLog.setRetryCount(0); + callbackLog.setServiceOrdId(params.get("thirdOrderNo")); + callbackLog.setOrderId(Long.valueOf(params.get("orderID"))); + callbackLog.setAppId(params.get("appId")); + + try { + // 鎵撳嵃璇锋眰鍙傛暟 + log.info("鍙戦�佸洖璋冭姹傦紝URL: " + callbackUrl); + log.info("璇锋眰鍙傛暟: " + params); + + // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 + String response = HttpUtil.post(callbackUrl, params); + + // 鎵撳嵃鍝嶅簲缁撴灉 + log.info("鍥炶皟鍝嶅簲缁撴灉: " + response); + + // 鏇存柊鏃ュ織鐘舵�� + callbackLog.setResponseResult(response); + callbackLog.setStatus("1"); // 鎴愬姛 + + tbCallbackLogService.insertTbCallbackLog(callbackLog); + return response; + } catch (Exception e) { + log.error("鍥炶皟璇锋眰寮傚父: " + e.getMessage()); + // 璁板綍閿欒淇℃伅 + callbackLog.setErrorMsg(e.getMessage()); + callbackLog.setRetryCount(1); // 濡傛灉鏄噸璇曠殑鎯呭喌涓嬮渶瑕�+1 + tbCallbackLogService.insertTbCallbackLog(callbackLog); + return null; + } + } } -- Gitblit v1.9.1