Subversion Repositories SmartDukaan

Rev

Rev 23809 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21101 kshitij.so 1
package in.shop2020.support.controllers;
2
 
3
import in.shop2020.model.v1.order.UserWallet;
22044 amit.gupta 4
import in.shop2020.model.v1.order.UserWalletHistory;
23809 amit.gupta 5
import in.shop2020.model.v1.order.WalletReferenceType;
21101 kshitij.so 6
import in.shop2020.model.v1.user.User;
7
import in.shop2020.model.v1.user.UserContextService.Client;
8
import in.shop2020.support.utils.ReportsUtils;
9
import in.shop2020.thrift.clients.TransactionClient;
10
import in.shop2020.thrift.clients.UserClient;
11
 
22054 amit.gupta 12
import java.text.SimpleDateFormat;
13
import java.util.Date;
22044 amit.gupta 14
import java.util.List;
15
 
21101 kshitij.so 16
import javax.servlet.ServletContext;
17
import javax.servlet.http.HttpServletRequest;
18
import javax.servlet.http.HttpServletResponse;
19
import javax.servlet.http.HttpSession;
20
 
22044 amit.gupta 21
import org.apache.commons.lang.StringUtils;
21101 kshitij.so 22
import org.apache.struts2.convention.annotation.InterceptorRef;
23
import org.apache.struts2.convention.annotation.InterceptorRefs;
24
import org.apache.struts2.convention.annotation.Result;
25
import org.apache.struts2.convention.annotation.Results;
26
import org.apache.struts2.interceptor.ServletRequestAware;
27
import org.apache.struts2.interceptor.ServletResponseAware;
28
import org.apache.struts2.util.ServletContextAware;
29
import org.apache.thrift.TException;
30
import org.slf4j.Logger;
31
import org.slf4j.LoggerFactory;
32
 
33
import com.opensymphony.xwork2.ValidationAwareSupport;
34
 
35
@SuppressWarnings("serial")
36
 
37
@InterceptorRefs({
38
	@InterceptorRef("defaultStack"),
39
	@InterceptorRef("login")
40
})
41
@Results({
42
	@Result(name = "redirect", location = "${url}", type = "redirect"),
43
	@Result(name="authsuccess", type="redirectAction", params = {"actionName" , "reports"})
44
})
45
public class UserWalletCreditController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{
46
 
47
	private static Logger logger = LoggerFactory.getLogger(UserWalletCreditController.class);
48
 
49
	private HttpServletRequest request;
50
	private HttpSession session;
51
	private HttpServletResponse response;
52
	private String id;
53
	private String email;
54
	private User user;
23809 amit.gupta 55
 
21101 kshitij.so 56
	private String amount;
57
	private String url;
58
	private String result;
21363 kshitij.so 59
	private String cashback;
22044 amit.gupta 60
	private String description;
23809 amit.gupta 61
	private WalletReferenceType transactionType;
21101 kshitij.so 62
 
21363 kshitij.so 63
	public String getCashback() {
64
		return cashback;
65
	}
66
 
67
	public void setCashback(String cashback) {
68
		this.cashback = cashback;
69
	}
70
 
21101 kshitij.so 71
	public String getResult() {
72
		return result;
73
	}
74
 
75
	public void setResult(String result) {
76
		this.result = result;
77
	}
78
 
79
	public String getUrl() {
80
		return url;
81
	}
82
 
83
	public void setUrl(String url) {
84
		this.url = url;
85
	}
86
 
23809 amit.gupta 87
	public WalletReferenceType getTransactionType() {
88
		return transactionType;
89
	}
90
 
91
	public void setTransactionType(WalletReferenceType transactionType) {
92
		this.transactionType = transactionType;
93
	}
94
 
23811 amit.gupta 95
	public void setTransactionType(String transactionType) {
96
		this.transactionType = WalletReferenceType.valueOf(transactionType);
97
	}
98
 
21101 kshitij.so 99
	public String getAmount() {
100
		return amount;
101
	}
102
 
103
	public void setAmount(String amount) {
104
		this.amount = amount;
105
	}
106
 
107
	public User getUser() {
108
		return user;
109
	}
110
 
111
	public void setUser(User user) {
112
		this.user = user;
113
	}
114
 
115
	private UserWallet userWallet;
22044 amit.gupta 116
	private List<UserWalletHistory> userWalletHistory;
21101 kshitij.so 117
 
118
 
119
	public UserWallet getUserWallet() {
120
		return userWallet;
121
	}
22044 amit.gupta 122
 
123
	public List<UserWalletHistory> getUserWalletHistory() {
124
		return this.userWalletHistory;
125
	}
21101 kshitij.so 126
 
127
	public void setUserWallet(UserWallet userWallet) {
128
		this.userWallet = userWallet;
129
	}
130
 
131
	public String getEmail() {
132
		return email;
133
	}
134
 
135
	public void setEmail(String email) {
136
		this.email = email;
137
	}
138
 
139
	public String index() throws TException {
140
		if (!ReportsUtils.canAccessReport((Long) session.getAttribute(ReportsUtils.ROLE),request.getServletPath())) {
141
			return "authfail";
142
		}
143
		return "index";
144
	}
145
 
146
	public String getWallet(){
147
		try{
148
			Client uc = new UserClient().getClient();
149
			user = uc.getUserByEmail(email);
150
			if (user.getUserId()==-1){
151
				addActionError("User email not valid");
152
				return "index";
153
			}
154
		}
155
		catch(Exception e){
156
			e.printStackTrace();
157
			addActionError("Service exception.");
158
			return "index";
159
		}
160
		try{
23809 amit.gupta 161
			Client uc = new UserClient().getClient();
162
			user = uc.getUserByEmail(email);
21101 kshitij.so 163
			in.shop2020.model.v1.order.TransactionService.Client tc = new TransactionClient().getClient();
164
			userWallet = tc.getUserWallet(user.getUserId());
22044 amit.gupta 165
			setUserWalletHistory(tc.getLatestUserWalletHistory(user.getUserId(), 0, 20));
21101 kshitij.so 166
		}
167
		catch(Exception e){
168
			e.printStackTrace();
169
			addActionError("Service exception.");
170
			return "index";
171
		}
172
		return "user-wallet-credit-edit";
173
	}
174
 
175
	public String creditWallet(){
176
		long credit_amount;
22044 amit.gupta 177
		double cash_back;
21101 kshitij.so 178
		try{
179
			credit_amount = Long.valueOf(amount);
180
			if (credit_amount <=0){
181
				setResult("Amount cant be negative");
182
				return "pmsa-result";
183
			}
184
		}
185
		catch(Exception e){
186
			setResult("Invalid amount");
187
			return "pmsa-result";
188
		}
21363 kshitij.so 189
 
21101 kshitij.so 190
		try{
21363 kshitij.so 191
			cash_back = Double.valueOf(cashback);
192
		}
193
		catch(Exception e){
194
			setResult("Invalid cashback");
195
			e.printStackTrace();
196
			return "pmsa-result";
197
		}
198
		try{
21101 kshitij.so 199
			Client uc = new UserClient().getClient();
200
			user = uc.getUserByEmail(email);
201
		}
202
		catch(Exception e){
203
			setResult("Service error");
204
			return "pmsa-result";
205
		}
206
 
207
		if (user.getUserId()==-1){
208
			setResult("User email not valid");
209
			return "pmsa-result";
210
		}
22044 amit.gupta 211
		if(StringUtils.isEmpty(description)) {
212
			setResult("Short Description should not be empty");
213
			return "pmsa-result";
214
		}
23809 amit.gupta 215
		if(this.transactionType.equals(WalletReferenceType.ADVANCE_REVERSAL)) {
216
			credit_amount = -credit_amount;
217
		}
21101 kshitij.so 218
		try {
219
			in.shop2020.model.v1.order.TransactionService.Client tc = new TransactionClient().getClient();
22044 amit.gupta 220
			tc.creditUserWallet(user.getUserId(), credit_amount, cash_back, description);
21101 kshitij.so 221
		} catch (Exception e) {
222
			e.printStackTrace();
223
			setResult("Service error");
224
			return "pmsa-result";
225
		}
226
		setResult("Wallet updated successfully");
227
		return "pmsa-result";
228
	}
229
 
230
 
231
	public String getId() {
232
		return id;
233
	}
234
 
235
	public void setId(String id) {
236
		this.id = id;
237
	}
238
 
239
 
240
 
241
	public void setServletRequest(HttpServletRequest req) {
242
		this.request = req;
243
		this.session = req.getSession();        
244
	}
245
 
246
	@Override
247
	public void setServletContext(ServletContext arg0) {
248
		// TODO Auto-generated method stub
249
 
250
	}
251
 
252
	public void setServletResponse(HttpServletResponse response) {
253
		this.response = response;
254
	}
22044 amit.gupta 255
 
256
	public void setDescription(String description) {
257
		this.description = description;
258
	}
21101 kshitij.so 259
 
22044 amit.gupta 260
	public void setUserWalletHistory(List<UserWalletHistory> userWalletHistory) {
261
		this.userWalletHistory = userWalletHistory;
262
	}
22054 amit.gupta 263
 
264
	public String getDate(long timestamp) {
265
		return new SimpleDateFormat().format(new Date(timestamp));
266
	}
21101 kshitij.so 267
 
22044 amit.gupta 268
 
21101 kshitij.so 269
}