From 3bbd80a63ac7728ac01b641a48a26befcb171a0f Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 15 十二月 2025 07:19:21 +0800
Subject: [PATCH] feat:增加企业微信登录判断
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 210 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 182 insertions(+), 28 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..e70255f 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,20 @@
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.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -28,6 +29,31 @@
public class RyTask
{
private static final Logger log = LoggerFactory.getLogger(RyTask.class);
+
+
+
+ // 娣诲姞鐘舵�佹槧灏勫瓧鍏�
+ private static final Map<String, String> ORDER_STATUS_MAP = new HashMap<String, String>() {{
+ put("-1", "鏃犳晥鍙栨秷");
+ put("1", "鏈姤浠�");
+ put("2", "宸叉姤浠�");
+ put("3", "1 - 瀹屽叏鏈‘璁�");
+ put("4", "2 - 閮ㄥ垎宸茬‘璁�");
+ put("5", "鏈嚭杞�");
+ put("6", "3 - 宸插嚭杞︼紙鍘绘帴鎮h�呴�斾腑锛�");
+ put("7", "宸插嚭杞︼紙绛夊緟鎮h�咃級");
+ put("8", "4 - 宸插嚭杞︼紙鏈嶅姟涓級");
+ put("9", "5 - 宸查�佽揪锛堝洖绋嬩腑锛�");
+ put("10", "宸茶繑鍥�");
+ put("11", "璺戠┖鍗曪紝宸茶繑鍥�");
+ put("12", "鍙栨秷");
+ put("13", "0 - 鏂拌皟搴﹀崟锛堟湭涓嬪彂锛�");
+ put("14", "宸叉彁浜わ紝绛夊緟瀹℃牳");
+ put("15", "瀹℃牳瀹屾垚");
+ put("16", "瀹℃牳涓嶉�氳繃");
+ put("17", "宸茬珯鐐�");
+ }};
+
@Autowired
private IAOrderStatusService orderStatusService;
@@ -36,6 +62,15 @@
@Autowired
private IDispatchOrdService dispatchOrdService;
+
+ @Autowired
+ private ISysClientAppService sysClientAppService;
+
+ @Autowired
+ private ITbCallbackLogService tbCallbackLogService;
+
+ @Autowired
+ private ITbVehicleOrderService tbVehicleOrderService;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
@@ -52,6 +87,12 @@
System.out.println("鎵ц鏃犲弬鏂规硶");
}
+
+
+
+ /**
+ * 鍥炶皟鎺ㄩ�佺姸鎬�
+ */
public void ryOrderStatus() {
try {
List<AOrderStatus> orderStatusList = orderStatusService.selectAOrderStatusList();
@@ -62,15 +103,14 @@
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());
//鑾峰彇杞︾墝鍙�
- String carLicense = "";
+ String carLicense = "-";
StringBuilder driverNames = new StringBuilder();
StringBuilder driverMobiles = new StringBuilder();
try{
@@ -101,6 +141,38 @@
}
}
}
+
+ //濡傛灉杞︾墝鍙蜂笉涓虹┖
+ if(carLicense!=null && carLicense.length()>0){
+// log.info("鏇存柊璁㈠崟-杞︾墝鍙峰叧鑱旇〃锛屻��" + tbOrders.getOrderID() + "銆戣溅鐗屽彿锛�" + carLicense);
+
+ //鏌ヨ鏄惁瀛樺湪鍏宠仈璁板綍
+ TbVehicleOrder tbVehicleOrder = tbVehicleOrderService.selectTbVehicleOrderById(tbOrders.getOrderID());
+ if(tbVehicleOrder==null){
+ //涓嶅瓨鍦ㄥ叧鑱旇褰�
+ //鍒涘缓鍏宠仈璁板綍
+ tbVehicleOrder = new TbVehicleOrder();
+ tbVehicleOrder.setOrderId(tbOrders.getOrderID());
+ tbVehicleOrder.setServiceOrdId(tbOrders.getServiceOrdID());
+ tbVehicleOrder.setVehicle(carLicense);
+ tbVehicleOrder.setStatus("0");
+ tbVehicleOrderService.insertTbVehicleOrder(tbVehicleOrder);
+ }
+ else{
+ //瀛樺湪鍏宠仈璁板綍
+ //鏇存柊鍏宠仈璁板綍
+ if(orderStatus.getMsg().contains("宸茶繑鍥�"))
+ {
+ tbVehicleOrder.setStatus("1");
+ tbVehicleOrderService.updateTbVehicleOrder(tbVehicleOrder);
+ }
+ else if(orderStatus.getMsg().contains("鍙栨秷"))
+ {
+ tbVehicleOrder.setStatus("2");
+ tbVehicleOrderService.updateTbVehicleOrder(tbVehicleOrder);
+ }
+ }
+ }
}
}
catch (Exception e)
@@ -108,40 +180,83 @@
log.error("鑾峰彇璋冨害鍗曞紓甯革細"+e.getMessage());
}
+ SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey(tbOrders.getAppId());
+ if(clientApp==null){
+ log.error("鍥炶皟鍦板潃涓嶅瓨鍦�");
+ orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
+ continue;
+ }
-
- // 浣跨敤鑾峰彇鍒扮殑鎵�鏈夊徃鏈哄鍚�
- String callbackUrl = "http://localhost:8080/system/apitest/orderCallback";
+ String callbackUrl = clientApp.getCallbackUrl();
try {
+
+ String carLicenseStr = "-";
+ if(carLicense!=null && carLicense.length()>0){
+ carLicenseStr = carLicense;
+ }
+
+
// 鏋勫缓璇锋眰鍙傛暟
Map<String, String> map = new HashMap<>();
map.put("orderID", tbOrders.getOrderID().toString());
map.put("thirdOrderNo", orderStatus.getServiceOrdID());
- map.put("orderStatus","1");
+ map.put("orderStatus", ORDER_STATUS_MAP.entrySet()
+ .stream()
+ .filter(entry -> entry.getValue().equals(orderStatus.getMsg()))
+ .map(Map.Entry::getKey)
+ .findFirst()
+ .orElse("0"));
map.put("orderRemark", orderStatus.getMsg());
- map.put("plateNo",carLicense);
+ map.put("plateNo",carLicenseStr);
map.put("driverMobile",driverMobiles.toString());
map.put("driverName", driverNames.toString());
- // 鎵撳嵃璇锋眰鍙傛暟
- log.info("鍙戦�佸洖璋冭姹傦紝URL: " + callbackUrl);
- log.info("璇锋眰鍙傛暟: " + map);
+ //鏍煎紡鍖栨洿鏂版椂闂�
+ try {
- // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲
- String response = HttpUtil.post(callbackUrl, map);
+ // 2. 瀹氫箟鐩爣鏍煎紡锛�24灏忔椂鍒� "HH"锛�
+ DateTimeFormatter targetFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ String formattedTime = orderStatus.getUpdateTime().format(targetFormat);
+ map.put("updateTime", formattedTime);
+ }
+ catch (Exception ex)
+ {
+ log.error("鏃堕棿鏍煎紡杞寲鍑洪敊");
+ }
- // 鎵撳嵃鍝嶅簲缁撴灉
- log.info("鍥炶皟鍝嶅簲缁撴灉: " + response);
- // 鏇存柊鐘舵��
- // orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
+
+
+ log.info("銆愮洃娴嬨�慬" + tbOrders.getOrderID() + "]杞︾墝鍙凤細" + carLicenseStr);
+ //鎵撳嵃map
+ log.info("銆愮洃娴嬨�慬" + tbOrders.getOrderID() + "]鍥炶皟璇锋眰鍙傛暟锛�" + 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());
+
+
+
+ } 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 +268,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