Subversion Repositories SmartDukaan

Rev

Rev 24478 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
24383 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDateTime;
4
import java.util.List;
5
 
6
import javax.servlet.http.HttpServletRequest;
7
 
8
import org.apache.logging.log4j.LogManager;
9
import org.apache.logging.log4j.Logger;
10
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.beans.factory.annotation.Qualifier;
12
import org.springframework.stereotype.Controller;
13
import org.springframework.ui.Model;
14
import org.springframework.web.bind.annotation.GetMapping;
15
import org.springframework.web.bind.annotation.PostMapping;
16
import org.springframework.web.bind.annotation.RequestParam;
17
 
18
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
19
import com.spice.profitmandi.common.model.ProfitMandiConstants;
20
import com.spice.profitmandi.dao.entity.auth.AuthUser;
21
import com.spice.profitmandi.dao.entity.dtr.Role;
22
import com.spice.profitmandi.dao.entity.dtr.User;
23
import com.spice.profitmandi.dao.entity.dtr.UserRole;
24
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
25
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
26
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
27
import com.spice.profitmandi.dao.repository.dtr.UserRoleRepository;
28
import com.spice.profitmandi.service.AuthService;
29
import com.spice.profitmandi.web.model.LoginDetails;
30
import com.spice.profitmandi.web.util.CookiesProcessor;
31
 
32
@Controller
33
public class AuthUserController {
34
 
35
	private static final Logger LOGGER = LogManager.getLogger(AuthUserController.class);
36
 
37
	@Autowired
38
	private AuthService authService;
39
 
40
	@Autowired
41
	private AuthRepository authRepository;
42
 
43
	@Autowired
44
	private UserRepository userRepository;
45
 
46
	@Autowired
47
	private RoleRepository roleRepository;
48
 
49
	@Autowired
50
	private UserRoleRepository userRoleRepository;
51
 
52
	@Autowired
53
	private CookiesProcessor cookiesProcessor;
54
 
55
	@Autowired
56
	@Qualifier("userUserRepository")
57
	private com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;
58
 
59
	@GetMapping(value = "/createAuthUser")
60
	public String getcreateAuthUser(HttpServletRequest request,
61
			@RequestParam(name = "offset", defaultValue = "0") int offset,
62
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
63
			throws ProfitMandiBusinessException {
64
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
65
		long size = authRepository.selectCountAuthUser();
66
		model.addAttribute("authUsers", authUsers);
67
		model.addAttribute("start", offset + 1);
68
		model.addAttribute("size", size);
69
		if (authUsers.size() < limit) {
70
			model.addAttribute("end", offset + authUsers.size());
71
		} else {
72
			model.addAttribute("end", offset + limit);
73
		}
74
		return "create-auth-user";
75
 
76
	}
77
 
78
	@PostMapping(value = "/createAuthUser")
79
	public String createAuthUser(HttpServletRequest request,
80
			@RequestParam(name = ProfitMandiConstants.FIRST_NAME, defaultValue = "") String firstName,
81
			@RequestParam(name = ProfitMandiConstants.LAST_NAME, defaultValue = "") String lastName,
82
			@RequestParam(name = ProfitMandiConstants.EMAIL_ID, defaultValue = "") String emailId,
83
			@RequestParam(name = ProfitMandiConstants.MOBILE_NUMBER, defaultValue = "") String mobileNumber,
84
			@RequestParam(name = "offset", defaultValue = "0") int offset,
85
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
86
			throws ProfitMandiBusinessException {
87
		AuthUser authUser = null;
88
		User user = null;
89
		List<Role> roles = roleRepository.selectAll();
90
		try {
91
			user = userRepository.selectByEmailId(emailId);
92
			userRoleRepository.deleteByUserId(user.getId());
93
			for (Role role : roles) {
94
				UserRole userRole = new UserRole();
95
				userRole.setRoleId(role.getId());
96
				userRole.setUserId(user.getId());
97
				userRoleRepository.persist(userRole);
98
			}
99
		} catch (Exception ex) {
100
			user = new User();
101
			user.setFirstName(firstName);
102
			user.setLastName(lastName);
103
			user.setUsername(emailId);
104
			user.setEmailId(emailId);
105
			user.setPassword("");
106
			user.setMobileNumber(mobileNumber);
107
			user.setCity("Noida");
108
			user.setPinCode(201301);
109
			user.setActivated(true);
110
			user.setMobile_verified(true);
111
			user.setReferral_url("");
112
			user.setUpdateTimestamp(LocalDateTime.now());
113
			user.setStatus(0);
114
			user.setCreateTimestamp(LocalDateTime.now());
115
			userRepository.persist(user);
116
			LOGGER.info("User created successfully");
117
			for (Role role : roles) {
118
				UserRole userRole = new UserRole();
119
				userRole.setRoleId(role.getId());
120
				userRole.setUserId(user.getId());
121
				userRoleRepository.persist(userRole);
122
			}
123
		}
124
		authUser = new AuthUser();
125
		authUser.setEmailId(emailId);
126
		authUser.setFirstName(firstName);
127
		authUser.setLastName(lastName);
128
		authUser.setMobileNumber(mobileNumber);
129
		authUser.setCreatedTimestamp(LocalDateTime.now());
130
		authService.addAuthUser(authUser);
131
 
132
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
133
		long size = authRepository.selectCountAuthUser();
134
		model.addAttribute("authUsers", authUsers);
135
		model.addAttribute("start", offset + 1);
136
		model.addAttribute("size", size);
137
		if (authUsers.size() < limit) {
138
			model.addAttribute("end", offset + authUsers.size());
139
		} else {
140
			model.addAttribute("end", offset + limit);
141
		}
142
		return "create-auth-user";
143
	}
144
 
145
	@GetMapping(value = "/changePassword")
146
	public String getChangePassword(HttpServletRequest request, Model model) {
147
		return "change-auth-user-password";
148
	}
149
 
150
	@PostMapping(value = "/changePassword")
151
	public String changePassword(HttpServletRequest request,
152
			@RequestParam(name = "oldPassword", defaultValue = "") String oldPassword,
153
			@RequestParam(name = "newPassword", defaultValue = "") String newPassword, Model model)
154
			throws ProfitMandiBusinessException {
155
 
156
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
157
		authService.changePassword(loginDetails.getEmailId(), oldPassword, newPassword);
158
		return "change-auth-user-password";
159
	}
160
 
161
	@GetMapping(value = "/getPaginatedAuthUser")
162
	public String getPaginatedAuthUser(HttpServletRequest request,
163
			@RequestParam(name = "offset", defaultValue = "0") int offset,
164
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
165
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
166
		model.addAttribute("authUsers", authUsers);
167
		return "auth-users-paginated";
168
	}
169
}