protected boolean checkAccess(UserRequest userRequest, ServiceCodes code) throws TxtException { User user = new UserDAO().findUserByMobileNo(userRequest.getMobileNo()); if (user == null) { throw new TxtException(TxtExceptionCodes.ERROR.USER_NOT_FOUND); } boolean isAccess = false; for (String serviceCode : user.getLstServices()) { if (code.name().equalsIgnoreCase(serviceCode)) { isAccess = true; break; } } if (!isAccess) { throw new TxtException(TxtExceptionCodes.ERROR.SERVICE_NOT_REGISTER); } return isAccess; }
private void doPublishBid(UserRequest userRequest, UserRespose userRespose) throws TxtException { // Fetch params String description = getParameter(userRequest, 0); String startTime = getParameter(userRequest, 1); String endTime = getParameter(userRequest, 2); String bidType = getParameter(userRequest, 3); // User user = new UserDAO().findUserByMobileNo(userRequest.getMobileNo()); // Validate // if(!(user.getIsAdminUser()!=null && // user.getIsAdminUser().equalsIgnoreCase(TxtAppConstant.YES))){ // throw new TxtException(TxtExceptionCodes.ERROR.NOT_AN_ADMIN_USER); // } if (!ValidateUtil.validateDate(startTime, DateUtil.DATE_FORMAT_DD_MM_YY_HH_MM)) { throw new TxtException(TxtExceptionCodes.ERROR.INVALID_DATE_FORMAT); } if (!ValidateUtil.validateDate(endTime, DateUtil.DATE_FORMAT_DD_MM_YY_HH_MM)) { throw new TxtException(TxtExceptionCodes.ERROR.INVALID_DATE_FORMAT); } if (!ValidateUtil.validateGreaterThanCurrent(startTime, DateUtil.DATE_FORMAT_DD_MM_YY_HH_MM)) { throw new TxtException(TxtExceptionCodes.ERROR.TIME_ALREADY_PASSED); } if (!ValidateUtil.validateGreaterThanCurrent(endTime, DateUtil.DATE_FORMAT_DD_MM_YY_HH_MM)) { throw new TxtException(TxtExceptionCodes.ERROR.TIME_ALREADY_PASSED); } if (!ValidateUtil.validateGreater(startTime, endTime, DateUtil.DATE_FORMAT_DD_MM_YY_HH_MM)) { throw new TxtException(TxtExceptionCodes.ERROR.STARTDATE_LESSTHAN_ENDDATE); } // Store bid Bid bid = new Bid(); bid.setDescription(description); bid.setStartTime(startTime); bid.setEndTime(endTime); bid.setBidType(bidType); if (bid.getBidType().equalsIgnoreCase(BidTypes.LOWER.getCode())) { bid.setCurrentBid(Long.MAX_VALUE); } else if (bid.getBidType().equalsIgnoreCase(BidTypes.HIGHER.getCode())) { bid.setCurrentBid(0L); } bid.setIsFinished(TxtAppConstant.NO); bid = new BidDAO().saveBid(bid); List<User> lstUser = new UserDAO().findUsersByServiceCode(ServiceCodes.BID.getCode()); // Schedule Bid TaskSchedular taskSchedular = TaskSchedular.getInstance(); ScheduleTask scheduleTask = taskSchedular.getScheduleTask(bid.getStartTime()); scheduleTask.setCode(TaskCodes.START_BID.name()); scheduleTask.setTaskType(TaskTypes.ONCE.name()); scheduleTask.setTaskData(bid.getBidNo() + ""); taskSchedular.addTask(scheduleTask); taskSchedular = TaskSchedular.getInstance(); ScheduleTask endSchTask = taskSchedular.getScheduleTask(bid.getEndTime()); endSchTask.setCode(TaskCodes.END_BID.name()); endSchTask.setTaskType(TaskTypes.ONCE.name()); endSchTask.setTaskData(bid.getBidNo() + ""); taskSchedular.addTask(endSchTask); // Publish bid String bidMessage = getMessage(TxtResourceConstants.PUBLISH_BID); bidMessage = replaceDynTags(bidMessage, TxtResourceConstants.BID_NO, bid.getBidNo() + ""); bidMessage = replaceDynTags(bidMessage, TxtResourceConstants.BID_DESC, bid.getDescription()); bidMessage = replaceDynTags(bidMessage, TxtResourceConstants.BID_START_TIME, bid.getStartTime()); bidMessage = replaceDynTags(bidMessage, TxtResourceConstants.BID_END_TIME, bid.getEndTime()); bidMessage = replaceDynTags(bidMessage, TxtResourceConstants.BID_TYPE, bid.getBidType()); for (User bidUser : lstUser) { TxtWebUtil.pushMessage(bidUser.getMobileNo(), bidMessage); } // User response String bidMessageResponse = getMessage(TxtResourceConstants.PUBLISH_BID_RESPONSE); bidMessageResponse = replaceDynTags(bidMessageResponse, TxtResourceConstants.BID_NO, bid.getBidNo() + ""); bidMessageResponse = replaceDynTags(bidMessageResponse, TxtResourceConstants.BID_START_TIME, bid.getStartTime()); bidMessageResponse = replaceDynTags(bidMessageResponse, TxtResourceConstants.BID_END_TIME, bid.getEndTime()); userRespose.setMessage(bidMessageResponse); }