liujie
2025-08-08 d2de40b544b5b069cd525143ff5a9e0d922b2c66
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
package com.stylefeng.guns;
 
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * SpringBoot方式启动类
 *
 * @author stylefeng
 * @Date 2017/5/21 12:06
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class GunsApplicationTest {
    
    @Autowired
    private IOrderPrivateCarService orderPrivateCarService;
    
    @Autowired
    private IUserInfoService userInfoService;
    
    @Autowired
    private IDriverService driverService;
    @Autowired
    private ICompanyService companyService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    
    
    
 
    @Test
    public void test(){
        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(211);
        //使用备付金进行支付订单
        TradePayOffData tradePayOffData = new TradePayOffData();
        tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
        tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
        tradePayOffData.setOrderDesc("完成订单");
        PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
        String retCode = payInfo.getRetCode();
        if (!"000000".equals(retCode)) {
            log.error("备付金支付失败:{}", payInfo.getRetMsg());
            return;
        }
        PayInfoData data = payInfo.getData();
        String status = data.getStatus();
        if ("3".equals(status)) {
            log.error("备付金支付失败:{}", payInfo.getRetMsg());
            return;
        }
        PayInfoData payInfoData = payInfo.getData();
        PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
        //支付成功,通知三方
        PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
        paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
        paymentOrderRequest.setPaymentInfo(payInfoData.getPaymentInfos());
        paymentOrderRequest.setOrderId("PR" + orderPrivateCar.getId());
        paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
        paymentOrderRequest.setPayTime(data.getPayTime());
        paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
        OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
        
        
        //查询三方订单状态
        Driver driver1 = driverService.selectById(orderPrivateCar.getDriverId());
        Company company = companyService.selectById(driver1.getCompanyId());
        UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar.getUserId());
        GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
        request.setCustomerId(userInfo1.getOnconUUID());
        request.setOrderNo("PR" + orderPrivateCar.getId());
        request.setDriverId(driver1.getEmpId().toString());
        ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
        Integer status1 = travelItineraryList.getList().get(0).getStatus();
        if(9 != status1){
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderPrivateCar.getTravelId());
            request1.setStatus(9);
            if (null != orderPrivateCar.getDriverId()) {
                request1.setDriverId(driver1.getEmpId().toString());
                request1.setSupplierShopId(company.getEnterCode());
            }
            if (2 == orderPrivateCar.getPromotion()) {
                Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request1.setPromoterId(driver2.getEmpId().toString());
            }
            OrderUtil.modifyTravelItinerary(request1);
        }
        
        String payId = payInfo.getData().getPayId();
        //copy原始订单后生成追缴单
        OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
        BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
        orderPrivateCar1.setId(null);
        orderPrivateCar1.setRecoveryOrder(1);
        
        //修改原始订单为支付状态
        orderPrivateCar.setState(8);
        orderPrivateCar.setPayType(5);
        orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
        orderPrivateCarService.updateById(orderPrivateCar);
        //添加三方支付记录
        try {
            paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        
        
        Driver driver = driverService.selectById(orderPrivateCar1.getDriverId());
        UserInfo userInfo = userInfoService.selectById(orderPrivateCar1.getUserId());
        //调用三方创建订单
        CreateOrderRequest createOrderRequest = new CreateOrderRequest();
        createOrderRequest.setTreatShopId(driver.getEmpId().toString());
        createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
        createOrderRequest.setCharge(new BigDecimal(orderPrivateCar1.getOrderMoney()));
        createOrderRequest.setOrderNo("PR" + orderPrivateCar1.getId());
        createOrderRequest.setCustomerId(userInfo.getOnconUUID());
        OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
        orderPrivateCar1.setTravelId(orderInfo.getOrderId());
        orderPrivateCar1.setIsCreated(1);
        //保存追缴单
        orderPrivateCarService.insert(orderPrivateCar1);
    }
}