YJ
2021-05-17 52d926ef0abf4f4f857d74c156191e84303cb746
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
package com.ks.vip.service.remote;
 
import com.ks.vip.exception.VipOrderException;
import com.ks.vip.mapper.VipOrderMapper;
import com.ks.vip.pojo.DO.VipCombo;
import com.ks.vip.pojo.DO.VipOrder;
import com.ks.vip.pojo.DTO.PayWayInfoDTO;
import com.ks.vip.pojo.DTO.VipOrderDTO;
import com.ks.vip.pojo.Enums.OrderTypeEnum;
import com.ks.vip.query.VipOrderQuery;
import com.ks.vip.service.VipCenterService;
import com.ks.vip.service.VipComboService;
import com.ks.vip.service.VipOrederPayService;
import com.ks.vip.service.VipOrederService;
import com.ks.vip.util.Constant;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.alipay.AlipayH5PayUtil;
import org.yeshi.utils.entity.wx.WXPayOrderInfoV3;
import org.yeshi.utils.wx.WXPayV3Util;
 
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
@Service(version = "1.0")
public class VipOrderPayServiceImpl implements VipOrederPayService {
 
    @Resource
    private VipOrderMapper vipOrderMapper;
 
    @Resource
    private VipComboService vipComboService;
 
    @Resource
    private VipCenterService vipCenterService;
 
 
    @Override
    public PayWayInfoDTO payOrder(VipOrder order) {
        return null;
    }
 
    @Override
    public VipOrder checkOrderPayState(String id) {
        return null;
    }
 
 
//    @Transactional(rollbackFor = Exception.class)
//    @Override
//    public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException, VIPException, PPTVException, VideoBuyRecordException {
//        String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId());
//        switch (record.getPayWay()) {
//            case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN:
//                try {
//                    goldCornManager.consumeGoldCorn(record, record.getGoldCorn());
//                } catch (Exception e) {
//                    throw new GoldCornException(1, "影视豆扣除出错");
//                }
//                paySuccess(record.getId(), OrderRecord.PAY_WAY_GOLDCORN, null, new Date());
//
//            case OrderRecord.PAY_WAY_ALIPAY: {
//                if (record.getMoney() != null && record.getMoney().compareTo(new BigDecimal(0)) == 0) {
//                    return new PayWayInfoDTO(0, VipUtil.getPaySuccessUrl(record.getId()));
//                }
//                //生成支付宝支付订单
//                String form = VipUtil.getVipChargeAlipayForm(record.getId(), record.getOrderType(), orderNo, record.getMoney());
//                //暂存2分钟
//                String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis());
//                redisManager.cacheCommonString(id, form, 120);
//                String payUrl = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id;
//                orderLogger.info("订单创建支付宝支付链接成功:id-{} 链接-{}", record.getId(), payUrl);
//                return new PayWayInfoDTO(OrderRecord
//                        .PAY_WAY_ALIPAY, payUrl);
//            }
//            case OrderRecord.PAY_WAY_WX_GOLDCORN:
//                try {
//                    goldCornManager.consumeGoldCorn(record, record.getGoldCorn());
//                } catch (){
//                }
//        }
 
 
 
//        @Transactional(rollbackFor = Exception.class)
//        @Override
//        public OrderRecord checkOrderPayState(String id) {
//            OrderRecord record = vipOrderRecordDao.find(OrderRecord.class, id);
//            if (record.getState() == OrderRecord.STATE_PAY)
//                return record;
//
//            switch (record.getPayWay()) {
//                case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN:
//                case OrderRecord.PAY_WAY_ALIPAY: {
//                    //支付宝
//                    AlipayTradeQueryResponse res = null;
//                    try {
//                        res = AlipayH5PayUtil.queryOrder(VipUtil.getAlipayApp(), VIPOrderUtil.getOutOrderNo(record.getOrderType(), id), null);
//                        //支付成功
//                        if (res.isSuccess() && "TRADE_SUCCESS".equalsIgnoreCase(res.getTradeStatus())) {
//                            try {
//                                return paySuccess(id, OrderRecord.PAY_WAY_ALIPAY, new BigDecimal(res.getTotalAmount()), new Date());
//                            } catch (Exception e) {
//                                e.printStackTrace();
//                            }
//                        }
//                    } catch (AlipayApiException e) {
//                        e.printStackTrace();
//                    }
//                }
//
//                break;
//                case OrderRecord.PAY_WAY_WX_GOLDCORN:
//                case OrderRecord.PAY_WAY_WX: {
//                    //微信
//                    try {
//                        WXPayOrderInfoV3 info = WXPayV3Util.getPayOrderInfo(VIPOrderUtil.getOutOrderNo(record.getOrderType(), id), VipUtil.getWXAPP());
//                        if (info != null && info.getTrade_state().equalsIgnoreCase("SUCCESS")) {
//                            paySuccess(id, record.getPayWay(), new BigDecimal(info.getAmount().getPayer_total()).divide(new BigDecimal(100), 2, RoundingMode.FLOOR), new Date());
//                            return record;
//                        }
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                    }
//                }
//                break;
//            }
//            return record;
//
//        }
}