ruoyi-api/ruoyi-api-order/src/main/java/factory/RemoteOrderFallbackFactory.java
@@ -1,28 +1,19 @@ package factory; import com.ruoyi.common.core.domain.R; import feignClient.RemoteOrderClient; import model.Order; import model.OrderGood; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 订单服务降级处理 * @author luofl */ @Component public class RemoteOrderFallbackFactory implements FallbackFactory<RemoteOrderClient> { @Override public RemoteOrderClient create(Throwable cause) { return new RemoteOrderClient() { @Override public R<List<Order>> goodsOrder(List<Long> goodsIds) { return R.fail("获取订单失败"); } }; } } //package factory; // //import feignClient.RemoteOrderClient; //import org.springframework.cloud.openfeign.FallbackFactory; //import org.springframework.stereotype.Component; // ///** // * 订单服务降级处理 // * @author luofl // */ //@Component //public class RemoteOrderFallbackFactory implements FallbackFactory<RemoteOrderClient> { // // @Override // public RemoteOrderClient create(Throwable cause) { // return new RemoteOrderClient() { // }; // } //} ruoyi-api/ruoyi-api-order/src/main/java/factory/RemoteOrderGoodsFallbackFactory.java
@@ -15,9 +15,16 @@ return new RemoteOrderGoodsClient(){ @Override public R<List<Order>> goodsOrder(List<Long> goodsIds) { log.error("编辑用户信息失败:{}", cause.getMessage()); throw new RuntimeException("编辑用户信息失败"); log.error("获取订单商品失败:{}", cause.getMessage()); throw new RuntimeException("获取订单商品失败"); } @Override public R<List<Order>> getOrderListByIds(List<Long> orderIds) { log.error("获取订单列表失败:{}", cause.getMessage()); throw new RuntimeException("获取订单列表失败"); } }; } } ruoyi-api/ruoyi-api-order/src/main/java/feignClient/RemoteOrderClient.java
@@ -1,28 +1,24 @@ package feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import factory.RemoteOrderFallbackFactory; import model.Order; import model.OrderGood; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * 订单远程调用接口 * @author luofl */ @FeignClient(contextId = "RemoteOrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteOrderFallbackFactory.class) public interface RemoteOrderClient { /** * 查询指定商品订单 */ @PostMapping("/order/getOrderListByIds") public R<List<Order>> goodsOrder(@RequestBody List<Long> orderIds); } //package feignClient; // //import com.ruoyi.common.core.constant.ServiceNameConstants; //import com.ruoyi.common.core.domain.R; //import factory.RemoteOrderFallbackFactory; //import model.Order; //import model.OrderGood; //import org.springframework.cloud.openfeign.FeignClient; //import org.springframework.web.bind.annotation.GetMapping; //import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestParam; // //import java.util.List; // ///** // * 订单远程调用接口 // * @author luofl // */ //@FeignClient(contextId = "RemoteOrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteOrderFallbackFactory.class) //public interface RemoteOrderClient { // // //} ruoyi-api/ruoyi-api-order/src/main/java/feignClient/RemoteOrderGoodsClient.java
@@ -20,4 +20,10 @@ */ @PostMapping("/order-good/selectGoodsOrder") public R<List<Order>> goodsOrder(@RequestBody List<Long> goodsIds); /** * 根据ids查找订单列表 */ @PostMapping("/order/getOrderListByIds") public R<List<Order>> getOrderListByIds(@RequestBody List<Long> orderIds); } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RemoteVipSettingClient.java
@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(contextId = "RemoteOrderGoodsClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = RemoteVipSettingFallbackFactory.class) @FeignClient(contextId = "RemoteVipSettingClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = RemoteVipSettingFallbackFactory.class) public interface RemoteVipSettingClient { @GetMapping("/vip-setting/getVipSettingById") ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
@@ -15,6 +15,7 @@ import com.ruoyi.other.api.feignClient.OrderClient; import com.ruoyi.system.api.model.LoginUser; import feignClient.RemoteOrderClient; import feignClient.RemoteOrderGoodsClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -45,7 +46,7 @@ @Resource private WalletService walletService; @Resource private RemoteOrderClient remoteOrderClient; private RemoteOrderGoodsClient remoteOrderGoodsClient; @Resource private AppUserService appUserService; @@ -85,7 +86,7 @@ .eq(BalanceChangeRecord::getAppUserId, userId)); List<Long> orderIds = list.stream().map(BalanceChangeRecord::getOrderId).collect(Collectors.toList()); R<List<Order>> r = remoteOrderClient.goodsOrder(orderIds); R<List<Order>> r = remoteOrderGoodsClient.getOrderListByIds(orderIds); if (!R.isSuccess(r)){ return R.fail(r.getMsg()); }