You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
9.7 KiB

2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
2 years ago
​
​
​
​
2 years ago
​
​
​
​
​
2 years ago
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
2 years ago
​
​
​
​
2 years ago
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
  1. package com.gcc.communityHall.service.Impl;
  2. import java.io.FileOutputStream;
  3. import java.net.InetAddress;
  4. import java.net.UnknownHostException;
  5. import java.time.LocalDateTime;
  6. import java.time.format.DateTimeFormatter;
  7. import java.util.Date;
  8. import java.util.List;
  9. import java.util.Optional;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import com.gcc.communityHall.entity.ApplicationLogs;
  15. import com.gcc.communityHall.entity.BookingDetails;
  16. import com.gcc.communityHall.entity.Counsellordetails;
  17. import com.gcc.communityHall.entity.HallDetails;
  18. import com.gcc.communityHall.entity.HallImages;
  19. import com.gcc.communityHall.entity.UserHistory;
  20. import com.gcc.communityHall.entity.Users;
  21. import com.gcc.communityHall.repository.ApplicationLogsRepository;
  22. import com.gcc.communityHall.repository.BookingDetailsRepository;
  23. import com.gcc.communityHall.repository.CounsellorDetailsRepository;
  24. import com.gcc.communityHall.repository.UserHistoryRepository;
  25. import com.gcc.communityHall.repository.UsersRepository;
  26. import com.gcc.communityHall.service.UserService;
  27. import jakarta.persistence.EntityManager;
  28. import jakarta.persistence.PersistenceContext;
  29. import jakarta.servlet.http.HttpSession;
  30. @Service
  31. public class UserServiceImpl implements UserService {
  32. @Autowired
  33. UsersRepository usersRepository;
  34. @Autowired
  35. private CounsellorDetailsRepository counsellorDetailsRepository;
  36. @Autowired
  37. private BookingDetailsRepository bookingDetailsRepository;
  38. @Autowired
  39. private HttpSession session;
  40. @Autowired
  41. private ApplicationLogsRepository applicationLogsRepository;
  42. @PersistenceContext
  43. private EntityManager entityManager;
  44. @Value("${file.upload.directory}")
  45. private String uploadDirectory;
  46. @Value("${file.fullpath}")
  47. private String serverPath;
  48. @Override
  49. @Transactional
  50. public void approveUser(int userId) {
  51. entityManager.createQuery(
  52. "UPDATE Users u SET u.userstatus = 'APPROVED' WHERE u.userId = :userId AND u.userstatus = 'PENDING'")
  53. .setParameter("userId", userId)
  54. .executeUpdate();
  55. }
  56. @Autowired
  57. UserHistoryRepository userHistoryRepository;
  58. public UserServiceImpl(UsersRepository userRepo) {
  59. this.usersRepository = userRepo;
  60. }
  61. public UserServiceImpl() {
  62. }
  63. @Override
  64. public Users user(Users user) {
  65. if (user.getUsertype() == null || !user.getUsertype().equals(Users.userType.PUBLIC)) {
  66. user.setUserstatus(Users.userStatus.PENDING);
  67. }
  68. // if(user.getUsertype().equals(Users.userType.COUNCILLOR)) {
  69. // Counsellordetails
  70. // counsellordetails=counsellorDetailsRepository.findByMobile(user.getMobileNo());
  71. // counsellordetails.getMobile1();counsellordetails.getMobile2()
  72. // }
  73. Users saveUser = usersRepository.save(user);
  74. if (user.getUserPhoto() != null && !user.getUserPhoto().isEmpty()) {
  75. String fileName = saveUser.getUserId() + "_" + user.getUserPhoto().getOriginalFilename();
  76. String filePath = uploadDirectory + "/userPhoto/" + fileName;
  77. try (FileOutputStream fos = new FileOutputStream(filePath)) {
  78. byte[] bytes = user.getUserPhoto().getBytes();
  79. fos.write(bytes);
  80. } catch (Exception e) {
  81. throw new RuntimeException(e);
  82. }
  83. saveUser.setProfilephoto(serverPath + "images/userPhoto/" + fileName);
  84. saveUser = usersRepository.save(saveUser);
  85. }
  86. return saveUser;
  87. }
  88. @Override
  89. public Users getUserById(int userId) {
  90. Optional<Users> user = usersRepository.findById(userId);
  91. if (user.isPresent()) {
  92. return user.get();
  93. }
  94. return null;
  95. }
  96. @Override
  97. public List<Users> getUserByStatus(Users.userStatus status) {
  98. return usersRepository.findByUserstatus(status);
  99. }
  100. @Override
  101. public List<Users> getUserByType(Users.userType userType) {
  102. return usersRepository.findByUsertype(userType);
  103. }
  104. @Override
  105. public Users updateUserStatus(int userId, Users.userStatus status, String comments) {
  106. Optional<Users> user = usersRepository.findById(userId);
  107. String adminname = (String) session.getAttribute("usertype");
  108. Integer loginid = (Integer) session.getAttribute("id");
  109. if (user.isPresent()) {
  110. Users usr = user.get();
  111. UserHistory userHistory = new UserHistory();
  112. userHistory.setUsers(usr);
  113. userHistory.setUserstatus(status);
  114. userHistory.setComments(comments);
  115. userHistory.setCdate(new Date());
  116. userHistory.setUpdatedBy(adminname);
  117. userHistoryRepository.save(userHistory);
  118. usr.setUserstatus(status);
  119. usr.setUpdatedBy(adminname);
  120. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  121. String formattedDate = LocalDateTime.now().format(formatter);
  122. usr.setUpdatedDate(formattedDate);
  123. Users users = usersRepository.save(usr);
  124. ApplicationLogs logs = new ApplicationLogs();
  125. logs.setComments("Action by " + adminname);
  126. logs.setLoginId(loginid);
  127. logs.setLogType("User Status:-" + status.toString());
  128. InetAddress inetAddress;
  129. try {
  130. inetAddress = InetAddress.getLocalHost();
  131. String hostname = InetAddress.getLocalHost().getHostName();
  132. logs.setIpaddress(inetAddress.getHostAddress());
  133. logs.setSystemName(hostname);
  134. } catch (UnknownHostException e) {
  135. // TODO Auto-generated catch block
  136. e.printStackTrace();
  137. }
  138. applicationLogsRepository.save(logs);
  139. return users;
  140. }
  141. return null;
  142. }
  143. @Override
  144. public Users findByMobileno(Long mobileNo) {
  145. // TODO Auto-generated method stub
  146. return usersRepository.findByMobileNo(mobileNo);
  147. }
  148. // yoga
  149. @Override
  150. public List<Users> getAllUsers(String fromDate, String toDate) {
  151. return usersRepository.getAllUsers(fromDate, toDate);
  152. }
  153. @Override
  154. public List<Users> getAllUsersWithFilters(String fromDate, String toDate, String userStatus, String userType) {
  155. return usersRepository.getAllUsersWithFilters(fromDate, toDate, userStatus, userType);
  156. }
  157. @Override
  158. public List<Users> getAllUsersWithStatusFilters(String fromDate, String toDate, String userStatus) {
  159. return usersRepository.getAllUsersWithStatusFilters(fromDate, toDate, userStatus);
  160. }
  161. @Override
  162. public List<Users> getAllUsersWithTypeFilters(String fromDate, String toDate, String userType) {
  163. return usersRepository.getAllUsersWithTypeFilters(fromDate, toDate, userType);
  164. }
  165. public void updateProfile(Users userProfileRequest) {
  166. // Retrieve the user entity from the repository based on the ID
  167. Optional<Users> optionalUser = usersRepository.findById(userProfileRequest.getUserId());
  168. if (optionalUser.isPresent()) {
  169. Users user = optionalUser.get();
  170. // Update the user entity with the new profile details
  171. user.setName(userProfileRequest.getName());
  172. user.setEmail(userProfileRequest.getEmail());
  173. user.setEmail(userProfileRequest.getArea());
  174. user.setEmail(userProfileRequest.getStreet());
  175. user.setEmail(userProfileRequest.getDoorNo());
  176. usersRepository.save(user);
  177. } else {
  178. // System.out.println("User with ID " + userProfileRequest.getUserId() + " not
  179. // found");
  180. }
  181. }
  182. @Override
  183. public String updateUserDetails(Users userDetails) {
  184. Users existingUser = usersRepository.findById(userDetails.getUserId()).orElse(null);
  185. if (existingUser != null) {
  186. // Update user details
  187. existingUser.setName(userDetails.getName());
  188. existingUser.setDoorNo(userDetails.getDoorNo());
  189. existingUser.setArea(userDetails.getArea());
  190. existingUser.setLocation(userDetails.getLocation());
  191. existingUser.setUsertype(userDetails.getUsertype());
  192. existingUser.setPinCode(userDetails.getPinCode());
  193. existingUser.setEmail(userDetails.getEmail());
  194. if (userDetails.getProfilephoto() != null && !userDetails.getProfilephoto().isEmpty()) {
  195. existingUser.setProfilephoto(userDetails.getProfilephoto()); // Update profile photo path
  196. }
  197. if (userDetails.getUsertype() == Users.userType.PUBLIC) {
  198. existingUser.setUserstatus(Users.userStatus.APPROVED);
  199. } else {
  200. existingUser.setUserstatus(Users.userStatus.PENDING);
  201. }
  202. usersRepository.save(existingUser);
  203. return "success";
  204. }
  205. return "failed";
  206. }
  207. @Override
  208. public void saveUsers(Users user) {
  209. // TODO Auto-generated method stub
  210. }
  211. public Counsellordetails findByMobile(long mobileno) {
  212. return counsellorDetailsRepository.findByMobile(mobileno);
  213. }
  214. @Override
  215. public Users getUserDetailsByMobileNo(long mobileNo) {
  216. return usersRepository.findByMobileNo(mobileNo);
  217. }
  218. public void toggleUserStatus(Integer userId, boolean active) {
  219. Optional<Users> optionalUser = usersRepository.findById(userId);
  220. if (optionalUser.isPresent()) {
  221. Users user = optionalUser.get();
  222. user.setActive(active);
  223. usersRepository.save(user);
  224. }
  225. }
  226. }