Pu Zhibing
2024-10-08 7e73e670d70e860bce6c216c23a75d366982c3c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.ruoyi.order.api.factory;
 
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingOrderGroup;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.ChargingListQuery;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TSettlementConfirm;
import com.ruoyi.order.api.query.TChargingCountQuery;
import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
import com.ruoyi.order.api.vo.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PathVariable;
 
import java.util.List;
 
/**
 * 充电订单服务降级处理
 * 
 * @author ruoyi
 */
@Component
public class ChargingOrderFallbackFactory implements FallbackFactory<ChargingOrderClient>
{
    private static final Logger log = LoggerFactory.getLogger(ChargingOrderFallbackFactory.class);
 
    @Override
    public ChargingOrderClient create(Throwable throwable) {
        log.error("充电订单调用失败:{}", throwable.getMessage());
        return new ChargingOrderClient() {
 
            @Override
            public R<String> queryOrderByGunId(String id) {
                return R.fail("远程调用根据枪id 查询最新的订单id 用户后台结束充电" + throwable.getMessage());
            }
 
            @Override
            public R<Long> useOrderCount(Long userId) {
                return R.fail("订单计数:" + throwable.getMessage());
 
            }
 
            @Override
            public R<ChargingBillVO> chargingBillListR(ChargingListQuery dto) {
                return R.fail("查询充电算帐单失败" + throwable.getMessage());
            }
 
            @Override
            public R<TChargingOrder> orderDetail(Long orderId) {
                return R.fail("订单详情:" + throwable.getMessage());
            }
 
            @Override
            public R<List<TChargingOrder>> getList(Integer siteId) {
                return R.fail("根据站点id查询充电订单:" + throwable.getMessage());
            }
 
            @Override
            public R<List<ChargingOrderGroup>> getBySiteIdAndTime(ChargingPercentProvinceDto chargingPercentProvinceDto) {
                return null;
            }
 
            @Override
            public R<Integer> getChargingCount(TChargingCountQuery req) {
                return R.fail("根据会员id和有效期查询有效期内享受充电折扣次数:" + throwable.getMessage());
            }
 
            @Override
            public R<TChargingOrder> getOrderDetailByGunId(Integer chargingGunId) {
                return R.fail("根据充电枪获取正在充电的订单:" + throwable.getMessage());
            }
 
            @Override
            public R<Long> getCar(@PathVariable("id")String id) {
                return R.fail("获取用户最近使用车辆充电的车辆id:" + throwable.getMessage());
            }
    
            @Override
            public void chargeMonitoring(UploadRealTimeMonitoringDataQuery query) {
            }
 
            @Override
            public R<TChargingOrder> getOrderByCode(String code) {
                return R.fail("通过流水号查询订单调用失败:" + throwable.getMessage());
            }
    
            @Override
            public void endCharge(String code) {
        
            }
    
            @Override
            public void excelEndCharge(String code) {
        
            }
 
            @Override
            public R<TChargingOrder> getChargingOrderByLicensePlate(GetChargingOrderByLicensePlate query) {
                return R.fail("根据车牌号和时间查询有效的充电数据失败:" + throwable.getMessage());
            }
 
            @Override
            public R<TSettlementConfirm> downloadSettlement(String uid) {
                return R.fail("通过id查询结算确认失败:" + throwable.getMessage());
            }
 
            @Override
            public R<SettlementTotalVO> settlementTotalR(String time) {
                return R.fail("查询结算汇总表导出列表失败:" + throwable.getMessage());
            }
 
            @Override
            public R<String> updateChargingOrder(TChargingOrder chargingOrder) {
                return R.fail("修改充电订单失败:" + throwable.getMessage());
            }
 
            @Override
            public R<String> stopCharging(String id) {
                return R.fail("手动停止充电失败:" + throwable.getMessage());
            }
    
            @Override
            public void chargingOrderWXCallback(String out_trade_no, String transaction_id, String attach) {
                log.error("充电支付成功回调通知失败:" + throwable.getMessage());
            }
    
            @Override
            public void chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
                log.error("远程启动失败后退款通知失败:" + throwable.getMessage());
            }
 
            @Override
            public void shoppingOrderWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
                log.error("购物订单退款回调通知失败:" + throwable.getMessage());
 
            }
    
            @Override
            public void securityDetection(SecurityDetection securityDetection) {
                log.error("修改安全检测数据失败:" + throwable.getMessage());
            }
    
            @Override
            public void startChargeSuccessfully(PlatformStartChargingReplyMessage message) {
                log.error("远程启动充电应答失败:" + throwable.getMessage());
            }
        };
    }
}