Rev 21094 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import java.util.Arrays;import java.util.List;import in.shop2020.model.v1.order.Pmsa;import in.shop2020.model.v1.order.PmsaSearchFilter;import in.shop2020.model.v1.order.TransactionService.Client;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.TransactionClient;import javax.mail.internet.InternetAddress;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.lang.xwork.StringUtils;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ValidationAwareSupport;@SuppressWarnings("serial")@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name = "redirect", location = "${url}", type = "redirect"),@Result(name="authsuccess", type="redirectAction", params = {"actionName" , "reports"})})public class PmsaController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{private static Logger logger = LoggerFactory.getLogger(PmsaController.class);private HttpServletRequest request;private HttpSession session;private HttpServletResponse response;private String id;private String name;private String refererEmail;private String phone;private String address;private String state;private String pincode;private String activated;private String level;private String associateEmail;private String result;private String code;private String l1Email;private List<Pmsa> searchResults;private Pmsa pmsaUser;private String pmsa_id;private String referrerEmail;private List<String> levels;private String customH3;private List<Long> stats;public List<Long> getStats() {return stats;}public void setStats(List<Long> stats) {this.stats = stats;}public String getCustomH3() {return customH3;}public void setCustomH3(String customH3) {this.customH3 = customH3;}public List<String> getLevels() {return levels;}public void setLevels(List<String> levels) {this.levels = levels;}public String getReferrerEmail() {return referrerEmail;}public void setReferrerEmail(String referrerEmail) {this.referrerEmail = referrerEmail;}public String getPmsa_id() {return pmsa_id;}public void setPmsa_id(String pmsa_id) {this.pmsa_id = pmsa_id;}public Pmsa getPmsaUser() {return pmsaUser;}public void setPmsaUser(Pmsa pmsaUser) {this.pmsaUser = pmsaUser;}public List<Pmsa> getSearchResults() {return searchResults;}public void setSearchResults(List<Pmsa> searchResults) {this.searchResults = searchResults;}public String getL1Email() {return l1Email;}public void setL1Email(String l1Email) {this.l1Email = l1Email;}public String getL2Email() {return l2Email;}public void setL2Email(String l2Email) {this.l2Email = l2Email;}private String l2Email;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String index() throws TException {if (!ReportsUtils.canAccessReport((Long) session.getAttribute(ReportsUtils.ROLE),request.getServletPath())) {return "authfail";}Client tc = new TransactionClient().getClient();stats = tc.getStatsForAssociates(getUserEmail());return "index";}public String edit() throws NumberFormatException, TException{if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getRequestURI().replace("/","").substring(request.getContextPath().length()-1).split("!")[0])) {logger.info(request.getRequestURI().replace("/","").substring(request.getContextPath().length()-1).split("!")[0]);return "authfail";}logger.info("id "+id);Client tc = new TransactionClient().getClient();pmsaUser = tc.getPmsaUser(Long.valueOf(id),getUserEmail());return "edit";}public String myProfile() throws TException{if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getRequestURI().replace("/","").substring(request.getContextPath().length()-1).split("!")[0])) {logger.info(request.getRequestURI().replace("/","").substring(request.getContextPath().length()-1).split("!")[0]);return "authfail";}Client tc = new TransactionClient().getClient();pmsaUser = tc.getmypmsaprofile(getUserEmail());return "pmsa-myprofile";}public String show() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getRequestURI().substring(request.getContextPath().length()).split("/")[1])) {logger.info(request.getRequestURI().substring(request.getContextPath().length()).split("/")[1]);return "authfail";}if (id.equals("pmsa-add-user")){if (referrerEmail==null || referrerEmail.isEmpty()){levels = Arrays.asList("L2","L3");referrerEmail = getUserEmail();}else{levels = Arrays.asList("L3");}}return id;}private boolean checkEmptyString(String s){if (s==null || s.trim().isEmpty()){return true;}return false;}private boolean checkEmail(String email){try{InternetAddress ia = new InternetAddress(email);ia.validate();}catch(Exception e){return false;}return true;}public String pendingUsers() throws TException{Client tc = new TransactionClient().getClient();searchResults = tc.getPendingAssociates(getUserEmail());setCustomH3("Activation Pending Users");return "pmsa-search-results";}public String recentUsers() throws TException{Client tc = new TransactionClient().getClient();searchResults = tc.getPmsaUsers(getUserEmail());setCustomH3("Recently Created Users");return "pmsa-search-results";}private boolean validate(Pmsa pmsa) throws Exception{if (checkEmptyString(pmsa.getName())){throw new Exception("Name not valid");}try{Long.valueOf(pmsa.getPhone());}catch(Exception e){throw new Exception("Phone number not valid");}if (checkEmptyString(pmsa.getPhone()) || pmsa.getPhone().length()!=10){throw new Exception("Phone number not valid 10 digit required");}if (!checkEmail(pmsa.getEmailId())){throw new Exception("Email address not valid");}if (checkEmptyString(pmsa.getAddress())){throw new Exception("Address not valid");}if (checkEmptyString(pmsa.getState())){throw new Exception("State not valid");}if (checkEmptyString(pmsa.getLevel())){throw new Exception("Level not valid");}if (!checkPincode(pmsa.getPin())){throw new Exception("Pincode not valid");}return true;}private boolean checkPincode(String pin) {if(pin.trim().length()!=6){return false;}Long long_pin;try{long_pin = Long.valueOf(pin);}catch(Exception e){return false;}if (long_pin < 110000 || long_pin >=860000){return false;}return true;}public String searchUser() throws TException{PmsaSearchFilter searchFilter = new PmsaSearchFilter();if (name !=null && !name.trim().isEmpty()){searchFilter.setName(name);}if (associateEmail !=null && !associateEmail.trim().isEmpty()){searchFilter.setEmailId(associateEmail);}if (phone !=null && !phone.trim().isEmpty()){searchFilter.setPhone(phone);}if (code !=null && !code.trim().isEmpty()){searchFilter.setCode(code);}if (l1Email !=null && !l1Email.trim().isEmpty()){searchFilter.setL1_email(l1Email);}if (l2Email !=null && !l2Email.trim().isEmpty()){searchFilter.setL2_email(l2Email);}Client tc = new TransactionClient().getClient();searchResults = tc.searchPmsa(searchFilter,getUserEmail());return "pmsa-search-results";}public String updateUser(){Pmsa pmsa = new Pmsa();pmsa.setId(Long.valueOf(pmsa_id));pmsa.setName(name);pmsa.setPhone(phone);pmsa.setEmailId(associateEmail);pmsa.setAddress(address.replace("\n", "").replace("\r", ""));pmsa.setState(state);pmsa.setLevel(level);pmsa.setActivated(Boolean.valueOf(activated));pmsa.setPin(pincode);try {validate(pmsa);try{Client tc = new TransactionClient().getClient();setResult(tc.updatePmsaUser(pmsa, getUserEmail()));}catch(Exception tce){tce.printStackTrace();setResult("Service error plz try again");}} catch (Exception e) {setResult(e.getMessage());}return "pmsa-result";}public String addNewUser(){Pmsa pmsa = new Pmsa();pmsa.setName(name);pmsa.setPhone(phone);pmsa.setEmailId(associateEmail);pmsa.setAddress(address.replace("\n", "").replace("\r", ""));pmsa.setState(state);pmsa.setLevel(level);pmsa.setActivated(Boolean.valueOf(activated));pmsa.setPin(pincode);try {validate(pmsa);try{Client tc = new TransactionClient().getClient();setResult(tc.addSalesAssociate(pmsa, referrerEmail, getUserEmail()));}catch(Exception tce){tce.printStackTrace();setResult("Service error plz try again");}} catch (Exception e) {setResult(e.getMessage());}return "pmsa-result";}public String getUserEmail() {return session.getAttribute(ReportsUtils.USER_EMAIL).toString();}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getState() {return state;}public void setState(String state) {this.state = state;}public String getPincode() {return pincode;}public void setPincode(String pincode) {this.pincode = pincode;}public String getActivated() {return activated;}public void setActivated(String activated) {this.activated = activated;}public String getLevel() {return level;}public void setLevel(String level) {this.level = level;}public String getAssociateEmail() {return associateEmail;}public void setAssociateEmail(String associateEmail) {this.associateEmail = associateEmail;}public void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}@Overridepublic void setServletContext(ServletContext arg0) {// TODO Auto-generated method stub}public void setServletResponse(HttpServletResponse response) {this.response = response;}public void setRefererEmail(String refererEmail) {this.refererEmail = refererEmail;}public String getRefererEmail() {return refererEmail;}public String getResult() {return result;}public void setResult(String result) {this.result = result;}}