action.manageParticipatedPost.java Source code

Java tutorial

Introduction

Here is the source code for action.manageParticipatedPost.java

Source

package action;

import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import model.detailsofdriverpost;
import model.detailsofpassengerpost;
import model.driverapply;
import model.passengerapply;
import model.postasdriver;
import model.postaspassenger;
import model.user;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class manageParticipatedPost extends ActionSupport {
    private String email;
    private List<driverapply> dlist;
    private List<passengerapply> plist;
    private List<postaspassenger> paplist;
    private List<postasdriver> padlist;
    private postaspassenger pap;
    private postasdriver pad;
    private String passengerpostID;
    private String driverpostID;

    private String passengeremail;
    private String passengername;
    private String departure;
    private String destination;
    private String departuredate;
    private String estimatedleavingtime;
    private String needseats;
    private String expectedcartype;
    private String expectedcost;
    private String phone;
    private String memo;
    private String numberofapplieddrivers;
    private String sex;
    private String dob;

    private String driveremail;
    private String drivername;
    private String availableseats;
    private String cartype;
    private String estimatedtotalcost;
    private String estimatedcostperpassenger;
    private String driverlicense;
    private String numberofappliedpassengers;

    private detailsofpassengerpost detailpassengerpost;
    private detailsofdriverpost detaildriverpost;
    private List<detailsofpassengerpost> detaillist;
    private List<detailsofdriverpost> detaillist2;
    private List<user> passengerinfolist;
    private List<user> driverinfolist;

    private String postID;

    private driverapply da;
    private passengerapply pa;

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    //passengers selected by me, now I am a driver
    public String asDriver() throws IOException {

        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();

        try {
            //user's email as a driver
            email = ActionContext.getContext().getSession().get("email").toString();
            dlist = session.selectList("selectdriverapplybydriveremail", email);
            System.out.println("selected passengers as a driver=" + dlist.size());

            detaillist = new ArrayList<detailsofpassengerpost>();

            for (int i = 0; i < dlist.size(); ++i) {
                passengerpostID = dlist.get(i).getPassengerpostID();
                passengeremail = dlist.get(i).getPassengeremail();

                //get passenger's basic information like sex, name,dob
                passengerinfolist = session.selectList("selectuserbyemail", passengeremail);

                //get passenger's post detailed information
                paplist = session.selectList("selectPassengerPostByID", passengerpostID);

                detailpassengerpost = new detailsofpassengerpost();

                passengername = passengerinfolist.get(0).getName();
                sex = passengerinfolist.get(0).getSex();
                dob = passengerinfolist.get(0).getDob();
                departure = paplist.get(0).getDeparture();
                destination = paplist.get(0).getDestination();
                departuredate = paplist.get(0).getDeparturedate();
                estimatedleavingtime = paplist.get(0).getEstimatedleavingtime();
                needseats = paplist.get(0).getNeedseats();
                expectedcartype = paplist.get(0).getExpectedcartype();
                expectedcost = paplist.get(0).getExpectedcost();
                phone = paplist.get(0).getPhone();
                memo = paplist.get(0).getMemo();
                numberofapplieddrivers = paplist.get(0).getNumberofapplieddrivers();

                detailpassengerpost.setDeparture(departure);
                detailpassengerpost.setDeparturedate(departuredate);
                detailpassengerpost.setDestination(destination);
                detailpassengerpost.setDob(dob);
                detailpassengerpost.setEmail(passengeremail);
                detailpassengerpost.setEstimatedleavingtime(estimatedleavingtime);
                detailpassengerpost.setExpectedcartype(expectedcartype);
                detailpassengerpost.setExpectedcost(expectedcost);
                detailpassengerpost.setMemo(memo);
                detailpassengerpost.setName(passengername);
                detailpassengerpost.setNeedseats(needseats);
                detailpassengerpost.setNumberofapplieddrivers(numberofapplieddrivers);
                detailpassengerpost.setPhone(phone);
                detailpassengerpost.setPostID(passengerpostID);
                detailpassengerpost.setSex(sex);
                detaillist.add(detailpassengerpost);
            }
            return SUCCESS;

        } finally {
            session.close();
        }

    }

    //see selected post's detailed information
    public String seedetails() throws IOException {
        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();
        try {

            System.out.println("selected passenger's postID in see details=" + postID);
            paplist = session.selectList("selectPassengerPostByID", postID);
            detaillist = new ArrayList<detailsofpassengerpost>();

            detailpassengerpost = new detailsofpassengerpost();
            passengeremail = paplist.get(0).getEmail();

            passengerinfolist = session.selectList("selectuserbyemail", passengeremail);

            passengername = passengerinfolist.get(0).getName();
            sex = passengerinfolist.get(0).getSex();
            dob = passengerinfolist.get(0).getDob();
            departure = paplist.get(0).getDeparture();
            destination = paplist.get(0).getDestination();
            departuredate = paplist.get(0).getDeparturedate();
            estimatedleavingtime = paplist.get(0).getEstimatedleavingtime();
            needseats = paplist.get(0).getNeedseats();
            expectedcartype = paplist.get(0).getExpectedcartype();
            expectedcost = paplist.get(0).getExpectedcost();
            phone = paplist.get(0).getPhone();
            memo = paplist.get(0).getMemo();
            numberofapplieddrivers = paplist.get(0).getNumberofapplieddrivers();

            detailpassengerpost.setDeparture(departure);
            detailpassengerpost.setDeparturedate(departuredate);
            detailpassengerpost.setDestination(destination);
            detailpassengerpost.setDob(dob);
            detailpassengerpost.setEmail(passengeremail);
            detailpassengerpost.setEstimatedleavingtime(estimatedleavingtime);
            detailpassengerpost.setExpectedcartype(expectedcartype);
            detailpassengerpost.setExpectedcost(expectedcost);
            detailpassengerpost.setMemo(memo);
            detailpassengerpost.setName(passengername);
            detailpassengerpost.setNeedseats(needseats);
            detailpassengerpost.setNumberofapplieddrivers(numberofapplieddrivers);
            detailpassengerpost.setPhone(phone);
            detailpassengerpost.setPostID(postID);
            detailpassengerpost.setSex(sex);
            detaillist.add(detailpassengerpost);
            return "seedetailsok";
        } finally {
            session.close();
        }

    }

    public String exitparticipation() throws IOException {

        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();

        da = new driverapply();

        System.out.println("selected passenger's postID in exit=" + postID);
        System.out.println("Driver's email in exit=" + postID);

        try {
            //user's email as a driver
            email = ActionContext.getContext().getSession().get("email").toString();
            int res;
            res = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit the participation?", "Confirm",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
            if (res == JOptionPane.YES_OPTION) {
                //select record from postaspassenger table, get its numberofapplieddrivers
                paplist = session.selectList("selectPassengerPostByID", postID);
                numberofapplieddrivers = paplist.get(0).getNumberofapplieddrivers();

                //delete participation record from driverapply table
                da.setDriveremail(email);
                da.setPassengerpostID(postID);
                session.delete("deleteparticipation", da);
                session.commit();

                //update attribute of numberofapplieddrivers in postaspassenger table 
                pap = new postaspassenger();
                pap.setPostID(postID);
                pap.setNumberofapplieddrivers(String.valueOf(Integer.parseInt(numberofapplieddrivers) - 1));
                session.update("updatenumberofapplieddrivers", pap);
                session.commit();

                return "deleteandupdateok";
            } else {
                return "nodeleteandupdate";
            }
        } finally {
            session.close();
        }

    }

    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    //as passenger, see drivers' posts that I have paid attention to

    public String asPassenger() throws IOException {

        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();

        try {
            //user's email as a driver
            email = ActionContext.getContext().getSession().get("email").toString();
            //find drivers' post that I have paid attention to from passengerapply table
            plist = session.selectList("selectpassengerapplybypassengeremail", email);
            System.out.println("selected drivers as a passenger=" + plist.size());

            detaillist2 = new ArrayList<detailsofdriverpost>();

            for (int i = 0; i < plist.size(); ++i) {
                driverpostID = plist.get(i).getDriverpostID();
                driveremail = plist.get(i).getDriveremail();

                //get driver's basic information like sex, name,dob
                driverinfolist = session.selectList("selectuserbyemail", driveremail);

                //get driver's post detailed information
                padlist = session.selectList("selectPostByID", driverpostID);

                detaildriverpost = new detailsofdriverpost();

                drivername = driverinfolist.get(0).getName();
                sex = driverinfolist.get(0).getSex();
                dob = driverinfolist.get(0).getDob();
                driverlicense = driverinfolist.get(0).getDriverlicense();
                departure = padlist.get(0).getDeparture();
                destination = padlist.get(0).getDestination();
                departuredate = padlist.get(0).getDeparturedate();
                estimatedleavingtime = padlist.get(0).getEstimatedleavingtime();
                availableseats = padlist.get(0).getAvailableseats();
                cartype = padlist.get(0).getCartype();
                estimatedtotalcost = padlist.get(0).getEstimatedtotalcost();
                estimatedcostperpassenger = padlist.get(0).getEstimatedcostperpassenger();
                phone = padlist.get(0).getPhone();
                memo = padlist.get(0).getMemo();
                numberofappliedpassengers = padlist.get(0).getNumberofappliedpassengers();

                detaildriverpost.setDeparture(departure);
                detaildriverpost.setDeparturedate(departuredate);
                detaildriverpost.setDestination(destination);
                detaildriverpost.setDob(dob);
                detaildriverpost.setEmail(passengeremail);
                detaildriverpost.setEstimatedleavingtime(estimatedleavingtime);
                detaildriverpost.setCartype(cartype);
                detaildriverpost.setEstimatedcostperpassenger(estimatedcostperpassenger);
                detaildriverpost.setEstimatedtotalcost(estimatedtotalcost);
                detaildriverpost.setMemo(memo);
                detaildriverpost.setName(passengername);
                detaildriverpost.setAvailableseats(availableseats);
                detaildriverpost.setNumberofappliedpassengers(numberofappliedpassengers);
                detaildriverpost.setPhone(phone);
                detaildriverpost.setPostID(driverpostID);
                detaildriverpost.setSex(sex);
                detaildriverpost.setDriverlicense(driverlicense);
                detaillist2.add(detaildriverpost);
            }
            return "success2";

        } finally {
            session.close();
        }

    }

    //see selected post's detailed information---driver's post
    public String seedetails2() throws IOException {
        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();

        try {

            System.out.println("selected driver's postID in see details2=" + postID);
            padlist = session.selectList("selectPostByID", postID);
            detaillist2 = new ArrayList<detailsofdriverpost>();

            detaildriverpost = new detailsofdriverpost();
            driveremail = padlist.get(0).getEmail();

            driverinfolist = session.selectList("selectuserbyemail", driveremail);

            drivername = driverinfolist.get(0).getName();
            sex = driverinfolist.get(0).getSex();
            dob = driverinfolist.get(0).getDob();
            driverlicense = driverinfolist.get(0).getDriverlicense();
            departure = padlist.get(0).getDeparture();
            destination = padlist.get(0).getDestination();
            departuredate = padlist.get(0).getDeparturedate();
            estimatedleavingtime = padlist.get(0).getEstimatedleavingtime();
            availableseats = padlist.get(0).getAvailableseats();
            cartype = padlist.get(0).getCartype();
            estimatedtotalcost = padlist.get(0).getEstimatedtotalcost();
            estimatedcostperpassenger = padlist.get(0).getEstimatedcostperpassenger();
            phone = padlist.get(0).getPhone();
            memo = padlist.get(0).getMemo();
            numberofappliedpassengers = padlist.get(0).getNumberofappliedpassengers();

            detaildriverpost.setDeparture(departure);
            detaildriverpost.setDeparturedate(departuredate);
            detaildriverpost.setDestination(destination);
            detaildriverpost.setDob(dob);
            detaildriverpost.setEmail(driveremail);
            detaildriverpost.setEstimatedleavingtime(estimatedleavingtime);
            detaildriverpost.setCartype(cartype);
            detaildriverpost.setEstimatedtotalcost(estimatedtotalcost);
            detaildriverpost.setEstimatedcostperpassenger(estimatedcostperpassenger);
            detaildriverpost.setMemo(memo);
            detaildriverpost.setName(drivername);
            detaildriverpost.setAvailableseats(availableseats);
            detaildriverpost.setNumberofappliedpassengers(numberofappliedpassengers);
            detaildriverpost.setPhone(phone);
            detaildriverpost.setPostID(postID);
            detaildriverpost.setSex(sex);
            detaildriverpost.setDriverlicense(driverlicense);
            detaillist2.add(detaildriverpost);
            return "seedetailsok2";
        } finally {
            session.close();
        }

    }

    //exit the participation---you are a passenger
    public String exitparticipation2() throws IOException {

        String resource = "orm/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();

        pa = new passengerapply();

        System.out.println("selected driver's postID in exit2=" + postID);
        System.out.println("passenger's email in exit2=" + postID);

        try {
            //user's email as a passenger
            email = ActionContext.getContext().getSession().get("email").toString();
            int res;
            res = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit the participation?", "Confirm",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
            if (res == JOptionPane.YES_OPTION) {
                //select record from postasdriver table, get its numberofappliedpassengers
                padlist = session.selectList("selectPostByID", postID);
                numberofappliedpassengers = padlist.get(0).getNumberofappliedpassengers();

                //delete participation record from passengerapply table
                pa.setPassengeremail(email);
                pa.setDriverpostID(postID);
                ;
                session.delete("deleteparticipation2", pa);
                session.commit();

                //update attribute of numberofapplieddrivers in postaspassenger table 
                pad = new postasdriver();
                pad.setPostID(postID);
                pad.setNumberofappliedpassengers(String.valueOf(Integer.parseInt(numberofappliedpassengers) - 1));
                session.update("updatenumberofappliedpassengers", pad);
                session.commit();

                JOptionPane.showMessageDialog(null, "You have exited the participation successfully!", "Message",
                        JOptionPane.INFORMATION_MESSAGE);

                return "deleteandupdateok2";
            } else {

                return "nodeleteandupdate2";
            }
        } finally {
            session.close();
        }

    }

    public List<passengerapply> getPlist() {
        return plist;
    }

    public void setPlist(List<passengerapply> plist) {
        this.plist = plist;
    }

    public List<postasdriver> getPadlist() {
        return padlist;
    }

    public void setPadlist(List<postasdriver> padlist) {
        this.padlist = padlist;
    }

    public postaspassenger getPap() {
        return pap;
    }

    public void setPap(postaspassenger pap) {
        this.pap = pap;
    }

    public String getDriverpostID() {
        return driverpostID;
    }

    public void setDriverpostID(String driverpostID) {
        this.driverpostID = driverpostID;
    }

    public String getDriveremail() {
        return driveremail;
    }

    public void setDriveremail(String driveremail) {
        this.driveremail = driveremail;
    }

    public String getDrivername() {
        return drivername;
    }

    public void setDrivername(String drivername) {
        this.drivername = drivername;
    }

    public String getAvailableseats() {
        return availableseats;
    }

    public void setAvailableseats(String availableseats) {
        this.availableseats = availableseats;
    }

    public String getCartype() {
        return cartype;
    }

    public void setCartype(String cartype) {
        this.cartype = cartype;
    }

    public String getEstimatedtotalcost() {
        return estimatedtotalcost;
    }

    public void setEstimatedtotalcost(String estimatedtotalcost) {
        this.estimatedtotalcost = estimatedtotalcost;
    }

    public String getEstimatedcostperpassenger() {
        return estimatedcostperpassenger;
    }

    public void setEstimatedcostperpassenger(String estimatedcostperpassenger) {
        this.estimatedcostperpassenger = estimatedcostperpassenger;
    }

    public String getDriverlicense() {
        return driverlicense;
    }

    public void setDriverlicense(String driverlicense) {
        this.driverlicense = driverlicense;
    }

    public String getNumberofappliedpassengers() {
        return numberofappliedpassengers;
    }

    public void setNumberofappliedpassengers(String numberofappliedpassengers) {
        this.numberofappliedpassengers = numberofappliedpassengers;
    }

    public detailsofdriverpost getDetaildriverpost() {
        return detaildriverpost;
    }

    public void setDetaildriverpost(detailsofdriverpost detaildriverpost) {
        this.detaildriverpost = detaildriverpost;
    }

    public List<detailsofdriverpost> getDetaillist2() {
        return detaillist2;
    }

    public void setDetaillist2(List<detailsofdriverpost> detaillist2) {
        this.detaillist2 = detaillist2;
    }

    public List<user> getDriverinfolist() {
        return driverinfolist;
    }

    public void setDriverinfolist(List<user> driverinfolist) {
        this.driverinfolist = driverinfolist;
    }

    public driverapply getDa() {
        return da;
    }

    public void setDa(driverapply da) {
        this.da = da;
    }

    public passengerapply getPa() {
        return pa;
    }

    public void setPa(passengerapply pa) {
        this.pa = pa;
    }

    public List<detailsofpassengerpost> getDetaillist() {
        return detaillist;
    }

    public void setDetaillist(List<detailsofpassengerpost> detaillist) {
        this.detaillist = detaillist;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public List<driverapply> getDlist() {
        return dlist;
    }

    public void setDlist(List<driverapply> dlist) {
        this.dlist = dlist;
    }

    public List<postaspassenger> getPaplist() {
        return paplist;
    }

    public void setPaplist(List<postaspassenger> paplist) {
        this.paplist = paplist;
    }

    public String getPassengerpostID() {
        return passengerpostID;
    }

    public void setPassengerpostID(String passengerpostID) {
        this.passengerpostID = passengerpostID;
    }

    public String getPassengeremail() {
        return passengeremail;
    }

    public void setPassengeremail(String passengeremail) {
        this.passengeremail = passengeremail;
    }

    public String getPassengername() {
        return passengername;
    }

    public void setPassengername(String passengername) {
        this.passengername = passengername;
    }

    public String getDeparture() {
        return departure;
    }

    public void setDeparture(String departure) {
        this.departure = departure;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination;
    }

    public String getDeparturedate() {
        return departuredate;
    }

    public void setDeparturedate(String departuredate) {
        this.departuredate = departuredate;
    }

    public String getEstimatedleavingtime() {
        return estimatedleavingtime;
    }

    public void setEstimatedleavingtime(String estimatedleavingtime) {
        this.estimatedleavingtime = estimatedleavingtime;
    }

    public String getNeedseats() {
        return needseats;
    }

    public void setNeedseats(String needseats) {
        this.needseats = needseats;
    }

    public String getExpectedcartype() {
        return expectedcartype;
    }

    public void setExpectedcartype(String expectedcartype) {
        this.expectedcartype = expectedcartype;
    }

    public String getExpectedcost() {
        return expectedcost;
    }

    public void setExpectedcost(String expectedcost) {
        this.expectedcost = expectedcost;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getNumberofapplieddrivers() {
        return numberofapplieddrivers;
    }

    public void setNumberofapplieddrivers(String numberofapplieddrivers) {
        this.numberofapplieddrivers = numberofapplieddrivers;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getDob() {
        return dob;
    }

    public void setDob(String dob) {
        this.dob = dob;
    }

    public detailsofpassengerpost getDetailpassengerpost() {
        return detailpassengerpost;
    }

    public void setDetailpassengerpost(detailsofpassengerpost detailpassengerpost) {
        this.detailpassengerpost = detailpassengerpost;
    }

    public List<user> getPassengerinfolist() {
        return passengerinfolist;
    }

    public void setPassengerinfolist(List<user> passengerinfolist) {
        this.passengerinfolist = passengerinfolist;
    }

    public String getPostID() {
        return postID;
    }

    public void setPostID(String postID) {
        this.postID = postID;
    }

}