Subversion Repositories SmartDukaan

Rev

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