package com.walker.pay.support;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.pay.Order;
import com.walker.pay.PayStatus;
import com.walker.pay.PayType;
import com.walker.pay.ServiceProvider;
import com.walker.pay.SplitAccount;
import java.util.List;
public class DefaultOrder implements Order {
private long id = 0;
private String payDefinitionId = null;
private String tradeNo = null;
private PayType payType = null;
private long totalMoney = 0;
private String title = null;
private String nonce = null;
private String notifyUrl = null;
private String attach = null;
private String ip = StringUtils.EMPTY_STRING;
private ServiceProvider serviceProvider;
private String version;
@Override
public String getIdString() {
// if(StringUtils.isNotEmpty(this.idString)){
// return idString;
// }
// return String.valueOf(this.id);
return idString;
}
public void setIdString(String idString) {
// if(this.id > 0){
// throw new IllegalArgumentException("id已经设置,不能再次设置id字符串!");
// }
// if(StringUtils.isNumeric(idString)){
// this.id = Long.parseLong(idString);
// }
this.idString = idString;
}
private String idString;
public void setId(long id) {
if(StringUtils.isNotEmpty(this.idString)){
throw new IllegalArgumentException("idString已经设置,无需重复设置id");
}
this.id = id;
}
/**
* 订单不用再设置'支付定义ID',由 PayEngineManager 根据 ServiceProvider 和 PayType 查找获得。
* @param payDefinitionId
* @date 2023-02-20
* @date 2023-02-23 在查询订单状态时,需要从数据库获取支付定义信息。
*/
public void setPayDefinitionId(String payDefinitionId) {
this.payDefinitionId = payDefinitionId;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public void setPayType(PayType payType) {
this.payType = payType;
}
public void setTotalMoney(long totalMoney) {
this.totalMoney = totalMoney;
}
public void setTitle(String title) {
this.title = title;
}
public void setNonce(String nonce) {
this.nonce = nonce;
}
public void setNotifyUrl(String notifyUrl) {
this.notifyUrl = notifyUrl;
}
public void setAttach(String attach) {
this.attach = attach;
}
public void setIp(String ip) {
this.ip = ip;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
public void setServiceProvider(ServiceProvider serviceProvider){
this.serviceProvider = serviceProvider;
}
public void setVersion(String version){
this.version = version;
}
private long createTime = 0;
@Override
public long getId() {
return this.id;
}
@Override
public String getPayDefinitionId() {
return this.payDefinitionId;
}
@Override
public ServiceProvider getServiceProvider() {
return this.serviceProvider;
}
@Override
public String getVersion() {
return this.version;
}
@Override
public String getTradeNo() {
return this.tradeNo;
}
@Override
public PayType getPayType() {
return this.payType;
}
@Override
public long getTotalMoney() {
return this.totalMoney;
}
@Override
public String getTitle() {
return this.title;
}
@Override
public String getNonce() {
return this.nonce;
}
@Override
public String getNotifyUrl() {
return this.notifyUrl;
}
@Override
public String getAttach() {
return this.attach;
}
@Override
public String getIp() {
return this.ip;
}
@Override
public long getCreateTime() {
return this.createTime;
}
@Override
public String getDeviceInfo() {
return this.deviceInfo;
}
@Override
public long getFee() {
return this.fee;
}
@Override
public String getBuyerId() {
return this.buyerId;
}
@Override
public String getReceiverId() {
return this.receiverId;
}
@Override
public PayStatus getPayStatus() {
return this.payStatus;
}
@Override
public List getSplitAccountList() {
return this.splitAccountList;
}
public void setDeviceInfo(String deviceInfo) {
this.deviceInfo = deviceInfo;
}
public void setFee(long fee) {
this.fee = fee;
}
public void setBuyerId(String buyerId) {
this.buyerId = buyerId;
}
public void setReceiverId(String receiverId) {
this.receiverId = receiverId;
}
public void setPayStatus(PayStatus payStatus) {
this.payStatus = payStatus;
}
public void setSplitAccountList(List splitAccountList) {
this.splitAccountList = splitAccountList;
}
private List splitAccountList;
private PayStatus payStatus = null;
private String deviceInfo;
private long fee = 0;
private String buyerId;
private String receiverId;
@Override
public String toString(){
return new StringBuilder("[id=").append(this.id)
.append(", tradeNo=").append(this.tradeNo)
.append(", payType=").append(this.payType)
.append(", totalMoney=").append(this.totalMoney)
.append(", title=").append(this.title)
.append(", payDefinitionId=").append(this.payDefinitionId)
.append(", buyerId=").append(this.buyerId)
.append(", receiverId=").append(this.receiverId)
.append(", idString=").append(this.idString)
.append("]").toString();
}
}