Pu Zhibing
2025-01-23 792cbb986fb8c32f6bbc1638c4ae264372e7a28f
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
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.AddTripartitePlatformOrder;
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<List<TChargingOrder>> getOrderBySiteIdAndTime(ChargingPercentProvinceDto chargingPercentProvinceDto) {
                return R.fail("根据站点id和时间区间查询订单数据失败:" + throwable.getMessage());
            }
    
            @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,Long userId) {
                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 chargingOrderALICallback(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(SecurityDetectionVO securityDetection) {
                log.error("修改安全检测数据失败:" + throwable.getMessage());
            }
    
            @Override
            public void startChargeSuccessfully(PlatformStartChargingReplyMessageVO message) {
                log.error("远程启动充电应答失败:" + throwable.getMessage());
            }
    
            @Override
            public void terminateSuccessfulResponse(PlatformStopChargingReplyVO platformStopChargingReply) {
                log.error("停止充电应答处理失败:" + throwable.getMessage());
            }
    
            @Override
            public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
                log.error("停止充电返回账单后计算费用处理失败:" + throwable.getMessage());
            }
    
            @Override
            public R<List<TChargingOrder>> getChargingOrder(TChargingOrderVo order) {
                return R.fail("获取充电订单数据失败:" + throwable.getMessage());
            }
    
    
            @Override
            public R<List<TChargingOrder>> getCarChargingOrder(Long carId, String startTime, String endTime) {
                return R.fail("根据车辆id获取指定时间范围内的数据失败:" + throwable.getMessage());
            }
    
            @Override
            public R addTripartitePlatformOrder(AddTripartitePlatformOrder query) {
                return R.fail("添加三方平台充电订单数据失败:" + throwable.getMessage());
            }
    
            @Override
            public R<TChargingOrder> getChargingOrderByStartChargeSeq(String startChargeSeq) {
                return R.fail("根据三方平台订单id获取充电数据失败:" + throwable.getMessage());
            }
    
    
            @Override
            public R tripartitePlatformStopCharge(String startChargeSeq) {
                return R.fail("三方平台请求停止充电失败:" + throwable.getMessage());
            }
        };
    }
}