From ca825fdfe67223b2eb8a3f9c14b4e60e2339efc6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 25 九月 2024 11:25:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java |   53 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
index 551ff23..bb82c32 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
@@ -1,25 +1,52 @@
 package com.ruoyi.other.api.factory;
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.other.api.feignClient.GoodsClient;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
- * 商品服务降级处理
- * 
- * @author ruoyi
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:48
  */
 @Component
-public class GoodsFallbackFactory implements FallbackFactory<GoodsClient>
-{
-    private static final Logger log = LoggerFactory.getLogger(GoodsFallbackFactory.class);
+public class GoodsFallbackFactory implements FallbackFactory<GoodsClient> {
+	
+	private static final Logger log = LoggerFactory.getLogger(GoodsFallbackFactory.class);
+	
+	@Override
+	public GoodsClient create(Throwable throwable) {
+		log.error("商品调用失败:{}", throwable.getMessage());
+		return new GoodsClient() {
+			
+			@Override
+			public R<TGoods> getGoodsById(Integer id) {
+				return R.fail("根据id获取商品信息失败:" + throwable.getMessage());
+			}
 
-    @Override
-    public GoodsClient create(Throwable throwable) {
-        log.error("商品调用失败:{}", throwable.getMessage());
-        return new GoodsClient() {
-        
-        };
-    }
+			@Override
+			public R<List<Integer>> getGoodsIdsByName(String name) {
+				return R.fail("根据商品名称获取商品ids失败:" + throwable.getMessage());
+			}
+			
+			@Override
+			public R updateGoods(TGoods goods) {
+				// 手动进行全局事务回滚
+				try {
+					GlobalTransactionContext.getCurrent().rollback();
+				} catch (TransactionException e) {
+					throw new RuntimeException(e);
+				}
+				return R.fail("修改商品异常");
+			}
+		};
+	}
+	
 }

--
Gitblit v1.7.1