OWL ITS + 탐지시스템(인터넷 진흥원)
박지현
2022-02-21 174dc12380c54730014e86c8897be16389fc804f
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
package kr.wisestone.owl.domain;
 
import kr.wisestone.owl.service.impl.PaymentServiceImpl;
import kr.wisestone.owl.util.ConvertUtil;
import org.apache.commons.text.StringEscapeUtils;
import org.springframework.util.StringUtils;
 
import javax.persistence.*;
import java.io.Serializable;
 
/**
 * Created by wisestone on 2018-02-13.
 */
@Entity
public class PaymentHistory extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;
 
    public static final String PAYMENT_RESULT_SUCCESS = "success";
    public static final String PAYMENT_RESULT_FAILED = "failed";
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String type;
    private Integer price;
    private Integer buyUser;
    private String customerUid;
    private String merchantUid;
    private String paymentResult;
    private String paymentResponse;
 
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "workspace_id")
    private Workspace workspace;
 
    public PaymentHistory() {
    }
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getType() {
        return type;
    }
 
    public void setType(String type) {
        this.type = type;
    }
 
    public Integer getPrice() {
        return price;
    }
 
    public void setPrice(Integer price) {
        this.price = price;
    }
 
    public Integer getBuyUser() {
        return buyUser;
    }
 
    public void setBuyUser(Integer buyUser) {
        this.buyUser = buyUser;
    }
 
    public String getCustomerUid() {
        return customerUid;
    }
 
    public void setCustomerUid(String customerUid) {
        this.customerUid = customerUid;
    }
 
    public String getMerchantUid() {
        return merchantUid;
    }
 
    public void setMerchantUid(String merchantUid) {
        this.merchantUid = merchantUid;
    }
 
    public String getPaymentResult() {
        return paymentResult;
    }
 
    public void setPaymentResult(String paymentResult) {
        this.paymentResult = paymentResult;
    }
 
    public String getPaymentResponse() {
        return paymentResponse;
    }
 
    public void setPaymentResponse(String paymentResponse) {
        this.paymentResponse = paymentResponse;
    }
 
    public Workspace getWorkspace() {
        return workspace;
    }
 
    public void setWorkspace(Workspace workspace) {
        this.workspace = workspace;
    }
 
    public PaymentHistory bindPaymentResult(PaymentServiceImpl.RestClientResultObject resultObject) {
 
        if (resultObject.isValidResult()) {
            this.setPaymentResult(PAYMENT_RESULT_SUCCESS);
            this.setPaymentResponse(ConvertUtil.convertObjectToJson(resultObject.getResponse()));
        }
        else {
 
            this.setPaymentResult(PAYMENT_RESULT_FAILED);
 
            if (resultObject.isHttpRequestFailed()) {
                this.setPaymentResponse(resultObject.getHttpStatus().getReasonPhrase());
            }
            else if (resultObject.isIamportResultFailed()) {
                this.setPaymentResponse(resultObject.getMessage());
            }
            else if (resultObject.isIamportPaymentFailed()) {
                if (StringUtils.hasText(resultObject.getMessage())) {
                    this.setPaymentResponse(resultObject.getMessage());
                }
                else {
                    this.setPaymentResponse(StringEscapeUtils.unescapeJava(resultObject.getIamportFailReason()));
                }
            }
        }
 
        return this;
    }
}