com.rz.action.admin.DriverAction.java Source code

Java tutorial

Introduction

Here is the source code for com.rz.action.admin.DriverAction.java

Source

package com.rz.action.admin;

import java.util.*;

import javax.annotation.*;
import org.apache.commons.codec.digest.*;
import org.apache.struts2.convention.annotation.*;
import org.hibernate.criterion.*;
import com.opensymphony.xwork2.interceptor.annotations.*;
import com.opensymphony.xwork2.validator.annotations.*;
import com.rz.bean.*;
import com.rz.entity.*;
import com.rz.service.*;
import com.rz.service.impl.*;
import com.rz.util.*;

@ParentPackage("admin")
public class DriverAction extends BaseAdminAction {

    private Driver driver;

    @Resource
    private DriverService driverService;

    @Resource
    private OrderSubService orderSubService;

    @Resource
    private CompanyService companyService;

    @Resource
    private AdminService adminService;

    @Resource
    private RoleService roleService;

    @Resource
    private SupplierService supplierService;

    @Resource
    private DriverScheduleService driverScheduleService;

    private OrderSubCondition orderSubCondition;

    private Integer driverId;
    private String driverSn;
    private Date scheduleDate;
    private Date startDate;
    private Date endDate;

    // 
    public String add() {
        return INPUT;
    }

    @Validations(requiredStrings = {
            @RequiredStringValidator(fieldName = "driver.name", message = "????!"), })
    @InputConfig(resultName = "error")
    public String save() {
        String passwordMd5 = DigestUtils.md5Hex(driver.getPassword());

        Admin admin = new Admin();
        admin.setName(driver.getName());
        admin.setCompany(driver.getCompany());
        admin.setUsername(driver.getLoginId());
        admin.setLoginFailureCount(0);
        admin.setIsAccountLocked(false);
        admin.setIsAccountExpired(false);
        admin.setIsCredentialsExpired(false);
        admin.setIsAccountEnabled(true);
        admin.setType("driver");
        Role role = roleService.get(102);
        Set<Role> roles = new HashSet<Role>();
        roles.add(role);
        admin.setRoleSet(roles);
        passwordMd5 = DigestUtils.md5Hex(driver.getPassword());
        admin.setPassword(passwordMd5);
        adminService.save(admin);

        driver.setPassword(passwordMd5);
        driver.setAdmin(admin);
        driverService.save(driver);

        redirectUrl = "driver!list.action";
        return SUCCESS;
    }

    public String edit() {
        driver = driverService.load(id);
        if (driver != null) {
            if (driver.getLicenseDate() != null) {
                this.getRequest().setAttribute("drivingYears",
                        DateUtil.getCurrentDateTime().getYear() - driver.getLicenseDate().getYear());
            } else {
                this.getRequest().setAttribute("drivingYears", "0");
            }
        }
        return INPUT;
    }

    @Validations(requiredStrings = {
            @RequiredStringValidator(fieldName = "driver.name", message = "????!") })
    @InputConfig(resultName = "error")
    public String update() {
        Driver persistent = driverService.load(id);
        persistent.setName(driver.getName());
        persistent.setMobile(driver.getMobile());
        persistent.setWeixinId(driver.getWeixinId());
        if (driver.getCompany() != null && driver.getCompany().getId() != null) {
            persistent.setCompany(driver.getCompany());
        }
        persistent.setGrade(driver.getGrade());
        persistent.setRating(driver.getRating());
        persistent.setGender(driver.getGender());
        String drivingYears = this.getRequest().getParameter("drivingYears");
        if (drivingYears != null) {
            persistent.setLicenseDate(DateUtil.dateIncreaseByYear(new Date(), 0 - Integer.valueOf(drivingYears)));
        }
        //      persistent.setCityId(driver.getCityId());
        String passwordMd5 = DigestUtils.md5Hex(driver.getPassword());
        persistent.setPassword(passwordMd5);
        driverService.update(persistent);
        Admin admin = persistent.getAdmin();
        if (admin != null) {
            if (driver.getPassword() != null && driver.getPassword().length() > 0) {
                admin.setPassword(driver.getPassword());
            }
            admin.setUsername(driver.getMobile());
            adminService.update(admin);
        }
        redirectUrl = "driver!list.action";
        return SUCCESS;
    }

    // 
    public String list() {
        if (pager == null) {
            pager = new Pager();
        }
        DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Driver.class);
        if (driverId != null) {
            detachedCriteria.add(Restrictions.eq("id", driverId));
        }

        loginAdmin = this.getLoginAdmin();
        if ("admin".equals(loginAdmin.getUsername())) {
            pager = driverService.findByPager(pager, detachedCriteria);
        } else {
            detachedCriteria.add(Restrictions.eq("company", loginAdmin.getCompany()));
            pager = driverService.findByPager(pager, detachedCriteria);
        }
        return LIST;
    }

    public String driverOrders() {
        if (orderSubCondition == null) {
            orderSubCondition = new OrderSubCondition();
        }
        // orderSubCondition.setOrderSubStatuses(new String[] { Order.ORDER_STATUS_AUDIT_PASS });
        pager = orderSubService.getOrderSubsByCondition(pager, this.getLoginAdmin(), orderSubCondition);

        return "driver_order_list";
    }

    public String selectDriverList() {
        Admin admin = this.getLoginAdmin();
        pager = driverService.getDrivers(pager, admin.getCompany().getId());
        return "select_driver_list";
    }

    public String delete() {
        try {
            driverService.delete(ids);
        } catch (Exception e) {
            return ajax(Status.error, "?!");
        }
        return ajax(Status.success, "?!");
    }

    public List<Company> getCompanys() {
        loginAdmin = this.getLoginAdmin();
        if ("admin".equals(loginAdmin.getUsername())) {
            return companyService.getAll();
        } else {
            List<Company> list = new ArrayList<Company>();
            list.add(loginAdmin.getCompany());
            return list;
        }
    }

    public String assignCheck() {
        Map<String, Object> jsonMap = new HashMap<String, Object>();
        if (driverService.assignCheck(driverId, startDate, endDate)) {
            jsonMap.put("result", "0");
        } else {
            jsonMap.put("result", "1");
        }
        return ajax(jsonMap);
    }

    public List<Driver> getDrivers() {
        loginAdmin = this.getLoginAdmin();
        if ("admin".equals(loginAdmin.getUsername())) {
            return driverService.getAll();
        } else {
            return driverService.getCompanyDrivers(loginAdmin.getCompany().getId());
        }
    }

    public List<Supplier> getSuppliers() {
        return supplierService.getAll();
    }

    public Driver getDriver() {
        return driver;
    }

    public void setDriver(Driver driver) {
        this.driver = driver;
    }

    public DriverService getDriverService() {
        return driverService;
    }

    public void setDriverService(DriverService driverService) {
        this.driverService = driverService;
    }

    public CompanyService getCompanyService() {
        return companyService;
    }

    public void setCompanyService(CompanyService companyService) {
        this.companyService = companyService;
    }

    public String getDriverSn() {
        return driverSn;
    }

    public void setDriverSn(String driverSn) {
        this.driverSn = driverSn;
    }

    public Date getScheduleDate() {
        return scheduleDate;
    }

    public void setScheduleDate(Date scheduleDate) {
        this.scheduleDate = scheduleDate;
    }

    public Integer getDriverId() {
        return driverId;
    }

    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public OrderSubCondition getOrderSubCondition() {
        return orderSubCondition;
    }

    public void setOrderSubCondition(OrderSubCondition orderSubCondition) {
        this.orderSubCondition = orderSubCondition;
    }

}