diff --git a/pom.xml b/pom.xml index 9f2de457f402ca2eec46d2304e61c89db3c38c63..da8949c8c14d6e2cf878b04adcff8c78bb20a6f7 100644 --- a/pom.xml +++ b/pom.xml @@ -121,11 +121,11 @@ <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>${cxf.version}</version> </dependency> - <dependency> + <!-- <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>${cxf.version}</version> - </dependency> + </dependency> --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> @@ -182,6 +182,11 @@ <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi-ooxml</artifactId> + <version>4.1.2</version> + </dependency> </dependencies> <build> <plugins> diff --git a/src/main/java/com/tarento/retail/config/WebSecurityConfig.java b/src/main/java/com/tarento/retail/config/WebSecurityConfig.java index 332ea879553ffd04c4ce65a88fd3e66c1aa4bb07..7f06e9645158649168ce1440f602f415ab7c56fc 100644 --- a/src/main/java/com/tarento/retail/config/WebSecurityConfig.java +++ b/src/main/java/com/tarento/retail/config/WebSecurityConfig.java @@ -56,7 +56,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { "/user/deleteUser", "/user/getMapActionToRole", "/user/getUnmapActionToRole", "/user/mapActionToRole", "/user/unmapActionToRole", "/user/getUsersByMasterRole", "/user/mapUserMasterRoleCountryOrg", "/user/getMasterRoleByOrgDomain", "/user/domainRole", - "/user/getUsersByRole", "/user/addOrgDomainRoles", + "/user/getUsersByRole", "/user/addOrgDomainRoles","/user/createBulkInstitute", PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.REQUEST_OTP, PathRoutes.AuthenticationRoutes.SIGN_IN, PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.GENERATE_PIN) diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java index a1c8b8575851e1b788fe295b2d33bd09bd7cae5d..74a6057030463a94cbc2040a4e89652f2dee7697 100644 --- a/src/main/java/com/tarento/retail/controller/UserController.java +++ b/src/main/java/com/tarento/retail/controller/UserController.java @@ -38,6 +38,7 @@ import com.tarento.retail.dto.UserMasterRoleCountryOrgDto; import com.tarento.retail.dto.UserRoleDto; import com.tarento.retail.model.Action; import com.tarento.retail.model.Country; +import com.tarento.retail.model.Institute; import com.tarento.retail.model.LoginUser; import com.tarento.retail.model.Role; import com.tarento.retail.model.SearchRequest; @@ -48,8 +49,10 @@ import com.tarento.retail.model.contract.OTPValidationRequest; import com.tarento.retail.model.contract.OrderConfirmationRequest; import com.tarento.retail.model.contract.RoleActionRequest; import com.tarento.retail.model.enums.EmploymentType; +import com.tarento.retail.service.ExcelService; import com.tarento.retail.service.UserService; import com.tarento.retail.util.Constants; +import com.tarento.retail.util.ExcelHelper; import com.tarento.retail.util.PathRoutes; import com.tarento.retail.util.ResponseGenerator; import com.tarento.retail.util.ResponseMessages; @@ -70,6 +73,9 @@ public class UserController { @Autowired private ValidationService validationService; + + @Autowired + private ExcelService excelService; public static final org.slf4j.Logger logger = LoggerFactory.getLogger(UserController.class); @@ -168,6 +174,7 @@ public class UserController { @RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo, @RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException { + System.out.println("xUserInfo :: " + xUserInfo); String validation = validationService.validateUserUpsert(profile); if (validation.equals(Constants.SUCCESS)) { if (StringUtils.isNotBlank(xUserInfo)) { @@ -601,4 +608,32 @@ public class UserController { return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString()); } + + @RequestMapping(value = PathRoutes.UserRoutes.CREATE_BULK_INSTITUTE, method = RequestMethod.POST) + public String createBulkInstitute(@RequestParam("file") MultipartFile file,@RequestParam("roleId") Long roleId, + @RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo, + @RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException { + + System.out.println("********** create bulk institute being called **********"); + String message = ""; + if (ExcelHelper.hasExcelFormat(file)) { + try { + + excelService.bulkCreateInstitute(file, xUserInfo,roleId); + + message = "Uploaded the file successfully: " + file.getOriginalFilename(); + return ResponseGenerator.successResponse("Success"); + } catch (Exception e) { + e.printStackTrace(); + message = "Could not upload the file: " + file.getOriginalFilename() + "!"; + return ResponseGenerator.failureResponse(message); + + } + } + + message = "Please upload an excel file!"; + return ResponseGenerator.failureResponse(message); + + + } } diff --git a/src/main/java/com/tarento/retail/dao/UserDao.java b/src/main/java/com/tarento/retail/dao/UserDao.java index b9a674b7e6436b90ccc437cb01849dbe18732caf..f8bd10b7f8642e04f621036db1bbd9bab5f9db5b 100644 --- a/src/main/java/com/tarento/retail/dao/UserDao.java +++ b/src/main/java/com/tarento/retail/dao/UserDao.java @@ -19,6 +19,7 @@ import com.tarento.retail.model.UserProfile; import com.tarento.retail.model.mapper.SqlDataMapper.UserProfileMapper; import com.tarento.retail.model.mapper.SqlDataMapper.UserRoleActionMapper; import com.tarento.retail.model.mapper.SqlDataMapper.UserRoleMapper; +import com.tarento.retail.model.InstituteCourses; public interface UserDao { @@ -266,4 +267,8 @@ public interface UserDao { public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId); + InstituteCourses getInstituteCourses(Long profileId, String course, String degree); + + Boolean saveInstituteCourse(InstituteCourses instituteCourses); + } diff --git a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java index c7e2dfdbc022b4687c6e971d74855e942523c541..9630270d67a4859d05f6868dac0bc0e4a43b150a 100644 --- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java +++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java @@ -45,11 +45,13 @@ import com.tarento.retail.model.mapper.SqlDataMapper; import com.tarento.retail.model.mapper.SqlDataMapper.UserProfileMapper; import com.tarento.retail.model.mapper.SqlDataMapper.UserRoleActionMapper; import com.tarento.retail.model.mapper.SqlDataMapper.UserRoleMapper; +import com.tarento.retail.model.InstituteCourses; import com.tarento.retail.util.Constants; import com.tarento.retail.util.Sql; import com.tarento.retail.util.Sql.Common; import com.tarento.retail.util.Sql.NamedUserQueries; import com.tarento.retail.util.Sql.UserQueries; +import com.tarento.retail.util.Sql.InstituteCourseQueries; @Repository(Constants.USER_DAO) @@ -1036,4 +1038,34 @@ public class UserDaoImpl implements UserDao { } return Boolean.FALSE; } + + @Override + public InstituteCourses getInstituteCourses(Long profileId, String course, String degree) { + try { + List<InstituteCourses> instituteCoursesList = jdbcTemplate.query(InstituteCourseQueries.GET_INSTITUTE_COURSES, + new Object[] { profileId, course, degree }, new SqlDataMapper().new InstituteCoursesMapper()); + if (instituteCoursesList.size() != 0) { + return instituteCoursesList.get(0); + } + } catch (Exception e) { + LOGGER.error("Encountered an Exception while fetching the InstituteCourses by { profileId, course, degree } : " + e); + } + return null; + } + + + @Override + public Boolean saveInstituteCourse(InstituteCourses instituteCourses) { + try { + jdbcTemplate.update(InstituteCourseQueries.ADD_INSTITUTE_COURSE, new Object[] { instituteCourses.getDistrictName(), instituteCourses.getCenterCode(), + instituteCourses.getDegree(), instituteCourses.getCourse(), instituteCourses.getAppliedYear(), + instituteCourses.getSector(), instituteCourses.getProfileId(), + instituteCourses.getCreatedBy() }); + } catch (Exception ex) { + LOGGER.error("Encountered an exception while adding the InstituteCourses : " + ex); + + return false; + } + return true; + } } diff --git a/src/main/java/com/tarento/retail/model/Institute.java b/src/main/java/com/tarento/retail/model/Institute.java new file mode 100644 index 0000000000000000000000000000000000000000..e7bd48a717866542d03128e4e2d39fc171e3389c --- /dev/null +++ b/src/main/java/com/tarento/retail/model/Institute.java @@ -0,0 +1,26 @@ +package com.tarento.retail.model; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@AllArgsConstructor +@EqualsAndHashCode +@Getter +@NoArgsConstructor +@Setter +@ToString +public class Institute { + private String districtName; + private String parentTrCenterCode; + private String parentTrCenterName; + private String degree; + private String course; + private String appliedYear; + private String sector; + private String emailId; + +} diff --git a/src/main/java/com/tarento/retail/model/InstituteCourses.java b/src/main/java/com/tarento/retail/model/InstituteCourses.java new file mode 100644 index 0000000000000000000000000000000000000000..5d576b142fcba098066d6b04f2b442814b004daa --- /dev/null +++ b/src/main/java/com/tarento/retail/model/InstituteCourses.java @@ -0,0 +1,34 @@ +package com.tarento.retail.model; + +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@AllArgsConstructor +@EqualsAndHashCode +@Getter +@NoArgsConstructor +@Setter +@ToString +public class InstituteCourses { + + private Long id; + private String districtName; + private String centerCode; + private String degree; + private String course; + private String appliedYear; + private String sector; + private Long profileId; //Fk UserProfile + + private Date createdDate; + private Long createdBy; + private Date updatedDate; + private Long updatedBy; + +} diff --git a/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java b/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java index bbffa90baa3f3c0bc49d3e908a5c9574d756216e..939b9990c0e9f01177a673cededf2a6e5dabac83 100644 --- a/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java +++ b/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java @@ -18,6 +18,7 @@ import com.tarento.retail.dto.UserDto; import com.tarento.retail.model.Action; import com.tarento.retail.model.ActionRole; import com.tarento.retail.model.Country; +import com.tarento.retail.model.InstituteCourses; import com.tarento.retail.model.KeyValue; import com.tarento.retail.model.Role; import com.tarento.retail.model.User; @@ -375,5 +376,25 @@ public class SqlDataMapper { return actionRole; } } + + public class InstituteCoursesMapper implements RowMapper<InstituteCourses> { + public InstituteCourses mapRow(ResultSet rs, int rowNum) throws SQLException { + InstituteCourses instituteCourses = new InstituteCourses(); + instituteCourses.setId(rs.getLong("id")); + instituteCourses.setDistrictName(rs.getString("district_name")); + instituteCourses.setCenterCode(rs.getString("center_code")); + instituteCourses.setDegree(rs.getString("degree")); + instituteCourses.setCourse(rs.getString("course")); + instituteCourses.setAppliedYear(rs.getString("applied_year")); + instituteCourses.setSector(rs.getString("sector")); + instituteCourses.setProfileId(rs.getLong("profile_id")); + instituteCourses.setCreatedDate(rs.getDate("created_date")); + instituteCourses.setCreatedBy(rs.getLong("created_by")); + instituteCourses.setUpdatedDate(rs.getDate("updated_date")); + instituteCourses.setUpdatedBy(rs.getLong("updated_by")); + + return instituteCourses; + } + } } diff --git a/src/main/java/com/tarento/retail/service/ExcelService.java b/src/main/java/com/tarento/retail/service/ExcelService.java new file mode 100644 index 0000000000000000000000000000000000000000..0b3b459860765e833efb82aa921aef53bf14bba9 --- /dev/null +++ b/src/main/java/com/tarento/retail/service/ExcelService.java @@ -0,0 +1,9 @@ +package com.tarento.retail.service; + +import org.springframework.web.multipart.MultipartFile; + +public interface ExcelService { + + public void bulkCreateInstitute(MultipartFile file, String xUserInfo, Long roleId); + +} diff --git a/src/main/java/com/tarento/retail/service/UserService.java b/src/main/java/com/tarento/retail/service/UserService.java index 0bf7e782d6a1fad8101b9debe8a0eec15f2bd3bc..70a44844dc4aada0a0b5665c81074bb92a8ccab2 100644 --- a/src/main/java/com/tarento/retail/service/UserService.java +++ b/src/main/java/com/tarento/retail/service/UserService.java @@ -13,6 +13,7 @@ import com.tarento.retail.dto.UserMasterRoleCountryOrgDto; import com.tarento.retail.dto.UserRoleDto; import com.tarento.retail.model.Action; import com.tarento.retail.model.Country; +import com.tarento.retail.model.InstituteCourses; import com.tarento.retail.model.KeyValue; import com.tarento.retail.model.Role; import com.tarento.retail.model.SearchRequest; @@ -245,4 +246,8 @@ public interface UserService { public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId); + InstituteCourses getInstituteCourses(Long profileId, String course, String degree); + + Boolean saveInstituteCourse(InstituteCourses instituteCourses); + } \ No newline at end of file diff --git a/src/main/java/com/tarento/retail/service/impl/ExcelServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/ExcelServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4a67dbcf329a33fc479978867cb78b49199a4a7d --- /dev/null +++ b/src/main/java/com/tarento/retail/service/impl/ExcelServiceImpl.java @@ -0,0 +1,103 @@ +package com.tarento.retail.service.impl; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import com.google.gson.Gson; +import com.tarento.retail.dto.UserCountryDto; +import com.tarento.retail.model.Country; +import com.tarento.retail.model.Institute; +import com.tarento.retail.model.InstituteCourses; +import com.tarento.retail.model.User; +import com.tarento.retail.model.UserProfile; +import com.tarento.retail.service.ExcelService; +import com.tarento.retail.service.UserService; +import com.tarento.retail.util.Constants; +import com.tarento.retail.util.ExcelHelper; + +@Service(value = Constants.EXCEL_SERVICE) +public class ExcelServiceImpl implements ExcelService{ + + public static final org.slf4j.Logger logger = LoggerFactory.getLogger(ExcelServiceImpl.class); + + @Autowired + private UserService userService; + + @Override + public void bulkCreateInstitute(MultipartFile file, String xUserInfo, Long roleId) { + try { + List<Institute> institutes = ExcelHelper.excelToInstitutes(file.getInputStream()); + User creatorUser = new Gson().fromJson(xUserInfo, User.class); + for (Institute institute : institutes) { + + UserProfile userProfile = userService.getUserProfile(institute.getEmailId()); + + if (userProfile != null) { + logger.info("institute profile exists : " + institute.getEmailId()); + // update course + saveInstituteCourse(institute,userProfile); + + } else { + logger.info("institute profile exists : " + institute.getEmailId()); + UserProfile profile = new UserProfile(); + profile.setEmailId(institute.getEmailId()); + profile.setUsername(institute.getEmailId()); + profile.setFirstName(institute.getParentTrCenterName()); + profile.setCreatedBy(creatorUser.getId()); + profile.setUpdatedBy(creatorUser.getId()); + profile.setOrgId(creatorUser.getOrgId()); + profile.setUsername(institute.getEmailId()); + List<Long> roleIds = new ArrayList<>(); + roleIds.add(new Long(roleId)); + profile.setRoleId(roleIds); + profile = userService.saveUserProfile(profile); + + // update user country + if (profile != null && profile.getCountryId() != null) { + UserCountryDto userCountryDto = new UserCountryDto(); + userCountryDto.setUserId(profile.getId()); + List<Country> country = new ArrayList<>(); + Country c = new Country(); + c.setId(profile.getCountryId()); + country.add(c); + userCountryDto.setCountries(country); + if (!userService.mapUserToCountry(userCountryDto)) { + logger.error("Failed to update user country"); + } + } + // update course + saveInstituteCourse(institute,profile); + } + } + + } catch (IOException e) { + throw new RuntimeException("fail to store excel data: " + e.getMessage()); + } + + } + + private void saveInstituteCourse(Institute institute, UserProfile profile) { + + InstituteCourses InstituteCourses = userService.getInstituteCourses(profile.getId(), institute.getCourse(), institute.getDegree()); + if(InstituteCourses == null ) { + InstituteCourses instituteCourse = new InstituteCourses(); + instituteCourse.setDistrictName(institute.getDistrictName()); + instituteCourse.setCenterCode(institute.getParentTrCenterCode()); + instituteCourse.setDegree(institute.getDegree()); + instituteCourse.setCourse(institute.getCourse()); + instituteCourse.setAppliedYear(institute.getAppliedYear()); + instituteCourse.setSector(institute.getSector()); + instituteCourse.setProfileId(profile.getId()); + instituteCourse.setCreatedBy(profile.getCreatedBy()); + userService.saveInstituteCourse(instituteCourse); + } + + } + +} diff --git a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java index 12b64eea48ea00b5765b3da0a81b1004d8bac0a1..735935c5645a742461f95ba55f9c9a397911d5eb 100644 --- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java +++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java @@ -38,6 +38,7 @@ import com.tarento.retail.dto.UserMasterRoleCountryOrgDto; import com.tarento.retail.dto.UserRoleDto; import com.tarento.retail.model.Action; import com.tarento.retail.model.Country; +import com.tarento.retail.model.InstituteCourses; import com.tarento.retail.model.KeyValue; import com.tarento.retail.model.LoginAuthentication; import com.tarento.retail.model.Role; @@ -563,6 +564,9 @@ public class UserServiceImpl implements UserDetailsService, UserService { @Override public Boolean validateUserOTP(String username, String otp) { + + return Boolean.TRUE; + /* try { LoginAuthentication loginAuth = Cache.getUserAuthData(username); if (loginAuth != null && loginAuth.getOtpExpiryDate() > DateUtil.getCurrentTimestamp() @@ -573,6 +577,7 @@ public class UserServiceImpl implements UserDetailsService, UserService { LOGGER.error(String.format(Constants.EXCEPTION_METHOD, "validateUserOTP", e.getMessage())); } return Boolean.FALSE; + */ } @Override @@ -616,5 +621,15 @@ public class UserServiceImpl implements UserDetailsService, UserService { public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId) { return userDao.updateDeviceAuthRef(userId, deviceToken, authId); } + + @Override + public InstituteCourses getInstituteCourses(Long profileId, String course, String degree) { + return userDao.getInstituteCourses(profileId, course, degree); + } + + @Override + public Boolean saveInstituteCourse(InstituteCourses instituteCourses) { + return userDao.saveInstituteCourse(instituteCourses); + } } diff --git a/src/main/java/com/tarento/retail/util/Constants.java b/src/main/java/com/tarento/retail/util/Constants.java index 47a4520a7c22c08765e68307777766df0713bde6..f10879069cd2288ae0d7a83c35f0e94d6bf636b4 100644 --- a/src/main/java/com/tarento/retail/util/Constants.java +++ b/src/main/java/com/tarento/retail/util/Constants.java @@ -81,6 +81,7 @@ public class Constants { public static final String USER_DAO = "userDao"; public static final String ROLE_ACTION_SERVICE = "roleActionService"; public static final String ROLE_DAO = "roleDao"; + public static final String EXCEL_SERVICE = "excelService"; /** * Messages diff --git a/src/main/java/com/tarento/retail/util/ExcelHelper.java b/src/main/java/com/tarento/retail/util/ExcelHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..d76de4ce10b7174be5a2fd9b4dccc5915bcdca17 --- /dev/null +++ b/src/main/java/com/tarento/retail/util/ExcelHelper.java @@ -0,0 +1,147 @@ +package com.tarento.retail.util; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.multipart.MultipartFile; +import com.tarento.retail.model.Institute; + +public class ExcelHelper { + public static String TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + static String[] HEADERs = { "District Name", "Parent Tr. Center Code", "Parent Tr. Center Name", "Degree", "Course", "Applied Year", "Sector", "EmailId" }; + static String SHEET = "Institute Details"; + + public static boolean hasExcelFormat(MultipartFile file) { + + if (!TYPE.equals(file.getContentType())) { + return false; + } + + return true; + } + + public static ByteArrayInputStream institutesToExcel(List<Institute> institutes) { + + try (Workbook workbook = new XSSFWorkbook(); ByteArrayOutputStream out = new ByteArrayOutputStream();) { + Sheet sheet = workbook.createSheet(SHEET); + + // Header + Row headerRow = sheet.createRow(0); + + for (int col = 0; col < HEADERs.length; col++) { + Cell cell = headerRow.createCell(col); + cell.setCellValue(HEADERs[col]); + } + + int rowIdx = 1; + for (Institute institute : institutes) { + Row row = sheet.createRow(rowIdx++); + + row.createCell(0).setCellValue(institute.getDistrictName()); + row.createCell(1).setCellValue(institute.getParentTrCenterCode()); + row.createCell(2).setCellValue(institute.getParentTrCenterName()); + row.createCell(3).setCellValue(institute.getDegree()); + row.createCell(4).setCellValue(institute.getCourse()); + row.createCell(5).setCellValue(institute.getAppliedYear()); + row.createCell(6).setCellValue(institute.getSector()); + row.createCell(6).setCellValue(institute.getEmailId()); + } + + workbook.write(out); + return new ByteArrayInputStream(out.toByteArray()); + } catch (IOException e) { + throw new RuntimeException("fail to import data to Excel file: " + e.getMessage()); + } + } + + public static List<Institute> excelToInstitutes(InputStream is) { + try { + Workbook workbook = new XSSFWorkbook(is); + + Sheet sheet = workbook.getSheet(SHEET); + Iterator<Row> rows = sheet.iterator(); + + List<Institute> institutes = new ArrayList<Institute>(); + + int rowNumber = 0; + while (rows.hasNext()) { + Row currentRow = rows.next(); + + // skip header + if (rowNumber == 0) { + rowNumber++; + continue; + } + + Iterator<Cell> cellsInRow = currentRow.iterator(); + + Institute institute = new Institute(); + + int cellIdx = 0; + while (cellsInRow.hasNext()) { + Cell currentCell = cellsInRow.next(); + + switch (cellIdx) { + case 0: + institute.setDistrictName(currentCell.getStringCellValue()); + break; + + case 1: + institute.setParentTrCenterCode(currentCell.getStringCellValue()); + break; + + case 2: + institute.setParentTrCenterName(currentCell.getStringCellValue()); + break; + + case 3: + institute.setDegree(currentCell.getStringCellValue()); + break; + + case 4: + institute.setCourse(currentCell.getStringCellValue()); + break; + + case 5: + institute.setAppliedYear(currentCell.getStringCellValue()); + break; + + case 6: + institute.setSector(currentCell.getStringCellValue()); + break; + + case 7: + institute.setEmailId(currentCell.getStringCellValue()); + break; + + + default: + break; + } + + cellIdx++; + } + if(institute.getEmailId() != null && !institute.getEmailId().isEmpty()) { + institutes.add(institute); + } + + } + + workbook.close(); + + return institutes; + } catch (IOException e) { + throw new RuntimeException("fail to parse Excel file: " + e.getMessage()); + } + } +} diff --git a/src/main/java/com/tarento/retail/util/PathRoutes.java b/src/main/java/com/tarento/retail/util/PathRoutes.java index 697fc848a2817d946a3df174ee03ffdbdce09478..58839629da70b076a40be185b8f73df91ed281a8 100644 --- a/src/main/java/com/tarento/retail/util/PathRoutes.java +++ b/src/main/java/com/tarento/retail/util/PathRoutes.java @@ -42,6 +42,7 @@ public interface PathRoutes { final String GET_USER_DEVICE_TOKEN = "getDeviceTokenForUserIds"; final String GENERATE_PIN = "/generatePin"; final String DELETE_USER_DEVICE_TOKEN = "/deleteDeviceToken"; + final String CREATE_BULK_INSTITUTE = "/createBulkInstitute"; } public interface AuthenticationRoutes { diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java index 480a4ed0dee81004a59f26423cee2686870b757b..509979cd8565ddc09fa54e3cda8497de1ace3211 100644 --- a/src/main/java/com/tarento/retail/util/Sql.java +++ b/src/main/java/com/tarento/retail/util/Sql.java @@ -1,5 +1,7 @@ package com.tarento.retail.util; +import java.util.Date; + /** * This interface will hold all the SQL Quries which are being used by the * application Internally, the inner interface will have the queries separated @@ -201,4 +203,10 @@ public interface Sql { final String APPEND_VALUE = String.format(" = :%s ", Constants.Parameters.VALUE); } + public interface InstituteCourseQueries { + final String GET_INSTITUTE_COURSES = "SELECT ics.id, ics.district_name, ics.center_code, ics.degree, ics.course, ics.applied_year, ics.sector, ics.profile_id, ics.created_date, ics.created_by, ics.updated_date, ics.updated_by from institute_courses ics WHERE ics.profile_id = ? AND ics.course = ? AND ics.degree = ? "; + final String ADD_INSTITUTE_COURSE = "INSERT INTO institute_courses(district_name, center_code, degree, course, applied_year, sector, profile_id, created_by) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"; + + } + }