Subversion Repositories SmartDukaan

Rev

Rev 1946 | Rev 2291 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1946 chandransh 1
package in.shop2020.payment.service.handler;
2
 
3
import java.util.ArrayList;
4
import java.util.Date;
5
import java.util.HashMap;
6
import java.util.List;
7
import java.util.Map;
8
 
9
import org.apache.thrift.TException;
10
import org.springframework.context.ApplicationContext;
11
import org.springframework.context.support.ClassPathXmlApplicationContext;
12
 
13
import in.shop2020.payment.handler.PaymentGatewayHandler;
14
import in.shop2020.payment.handler.PaymentHandler;
15
import in.shop2020.payments.Attribute;
16
import in.shop2020.payments.Payment;
17
import in.shop2020.payments.PaymentException;
18
import in.shop2020.payments.PaymentGateway;
19
import in.shop2020.payments.PaymentService.Iface;
20
import in.shop2020.payments.PaymentStatus;
21
 
22
public class PaymentServiceHandler implements Iface {
23
 
24
	ApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
25
	PaymentHandler paymentHandler = (PaymentHandler) context.getBean("paymentHandler");
26
	PaymentGatewayHandler paymentGatewayHandler = (PaymentGatewayHandler) context.getBean("paymentGatewayHandler");
27
 
28
	@Override
29
	public void closeSession() throws TException {
30
		// TODO Auto-generated method stub		
31
	}
32
 
33
	@Override
34
	public long createPayment(long userId, double amount, long gatewayId, long txnId) throws PaymentException, TException {
35
		in.shop2020.payment.domain.Payment payment = new in.shop2020.payment.domain.Payment();
36
		payment.setUserId(userId);
37
		payment.setAmount(amount);
38
		payment.setGatewayId(gatewayId);
39
		payment.setMerchantTxnId(txnId);
40
		payment.setStatus(PaymentStatus.INIT.getValue());
41
 
42
		return paymentHandler.insertPayment(payment);
43
	}
44
 
45
	@Override
46
	public List<Payment> getPaymentsForUser(long userId, long fromTime, long toTime, PaymentStatus status, long gatewayId) throws PaymentException, TException {
47
		return getThriftPayments(paymentHandler.getPaymentsForUser(userId, fromTime, toTime, status.getValue(), gatewayId));
48
	}
49
 
50
	@Override
51
	public List<Payment> getPayments(long fromTime, long toTime, PaymentStatus status, long gatewayId) throws PaymentException,	TException {
52
		return getThriftPayments(paymentHandler.getPayments(fromTime, toTime, status.getValue(), gatewayId));
53
	}
54
 
55
	@Override
56
	public PaymentGateway getPaymentGateway(long id) throws PaymentException, TException {
57
		//return paymentGatewayHandler.getPaymentGateway(id).getThriftPaymentGateway();
58
		return null;
59
	}
60
 
61
	@Override
62
	public Payment getPayment(long id) throws PaymentException, TException {
63
		return paymentHandler.getPayment(id).getThriftPayment();
64
	}
65
 
66
	@Override
67
	public List<Payment> getPaymentForTxnId(long txnId) throws PaymentException, TException {
68
		return getThriftPayments(paymentHandler.getPaymentForTxn(txnId));
69
	}
70
 
71
	@Override
72
	public boolean updatePaymentDetails(long id, String gatewayPaymentId,
73
			String sessionId, String gatewayTxnStatus, String description,
74
			String gatewayTxnId, String authCode, String referenceCode,
75
			String errorCode, PaymentStatus status, String gatewayTxnDate,
76
			List<Attribute> attributes) throws PaymentException, TException {
77
		in.shop2020.payment.domain.Payment payment = paymentHandler.getPayment(id);
78
		payment.setGatewayPaymentId(gatewayPaymentId);
79
		payment.setSessionId(sessionId);
80
		payment.setGatewayTxnStatus(gatewayTxnStatus);
81
		payment.setDescription(description);
82
		payment.setGatewayTxnId(gatewayTxnId);
83
		payment.setAuthCode(authCode);
84
		payment.setReferenceCode(referenceCode);
85
		payment.setErrorCode(errorCode);
86
		if(status!=null){
87
			payment.setStatus(status.getValue());
88
			if(status.equals(PaymentStatus.SUCCESS))
89
				payment.setSuccessTimestamp(new Date());
90
			else if(status.equals(PaymentStatus.FAILED))
91
				payment.setErrorTimestamp(new Date());
92
		}
93
 
94
		payment.setGatewayTxnDate(gatewayTxnDate);
95
 
96
		Map<String, String> attrMap = new HashMap<String, String>();
2272 rajveer 97
		if(attributes != null){
98
			for(Attribute attribute : attributes){
99
				attrMap.put(attribute.getName(), attribute.getValue());
100
			}
1946 chandransh 101
		}
102
 
103
		paymentHandler.updatePayment(payment, attrMap);
104
		return true;
105
	}
106
 
107
	@Override
108
	public List<Double> getSuccessfulPaymentsAmountRange() throws TException {
109
		List<Double> minMaxAmounts = new ArrayList<Double>();
110
		Map<String, Float> minMax = paymentHandler.getMinMaxPaymentAmount();
111
		minMaxAmounts.add(Double.parseDouble(Float.toString(minMax.get("MIN"))));
112
		minMaxAmounts.add(Double.parseDouble(Float.toString(minMax.get("MAX"))));
113
		return minMaxAmounts;
114
	}
115
 
116
	private List<Payment> getThriftPayments(List<in.shop2020.payment.domain.Payment> daoPayments){
117
		List<Payment> payments = new ArrayList<Payment>();
118
		for(in.shop2020.payment.domain.Payment payment : daoPayments){
119
			payments.add(payment.getThriftPayment());
120
		}
121
		return payments;
122
	}
123
}