com.zb.app.web.controller.line.LineController.java Source code

Java tutorial

Introduction

Here is the source code for com.zb.app.web.controller.line.LineController.java

Source

/*
 * Copyright 2011-2016 ZuoBian.com All right reserved. This software is the confidential and proprietary information of
 * ZuoBian.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only
 * in accordance with the terms of the license agreement you entered into with ZuoBian.com.
 */
package com.zb.app.web.controller.line;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.zb.app.biz.cons.CompanyStateEnum;
import com.zb.app.biz.cons.CompanyTypeEnum;
import com.zb.app.biz.cons.LineStateEnum;
import com.zb.app.biz.cons.LineTemplateEnum;
import com.zb.app.biz.domain.TravelCompanyDO;
import com.zb.app.biz.domain.TravelLineDO;
import com.zb.app.biz.domain.TravelLineThinDO;
import com.zb.app.biz.domain.TravelRouteDO;
import com.zb.app.biz.domain.TravelServiceDO;
import com.zb.app.biz.query.TravelCompanyQuery;
import com.zb.app.biz.query.TravelLineQuery;
import com.zb.app.biz.query.TravelRouteQuery;
import com.zb.app.biz.query.TravelServiceQuery;
import com.zb.app.common.core.SpringContextAware;
import com.zb.app.common.core.lang.Argument;
import com.zb.app.common.core.lang.BeanUtils;
import com.zb.app.common.core.lang.CollectionUtils;
import com.zb.app.common.interceptor.annotation.ExportWordFile;
import com.zb.app.common.pagination.PaginationList;
import com.zb.app.common.pagination.PaginationParser.DefaultIpageUrl;
import com.zb.app.common.pagination.PaginationParser.IPageUrl;
import com.zb.app.common.result.JsonResultUtils;
import com.zb.app.common.result.JsonResultUtils.JsonResult;
import com.zb.app.common.util.NumberParser;
import com.zb.app.common.util.StringFormatter;
import com.zb.app.common.velocity.CustomVelocityLayoutView;
import com.zb.app.web.controller.BaseController;
import com.zb.app.web.tools.SiteCacheTools;
import com.zb.app.web.tools.WebUserTools;
import com.zb.app.web.vo.ChufaFullVO;
import com.zb.app.web.vo.ColumnThinVO;
import com.zb.app.web.vo.TravelLineSimpleVO;
import com.zb.app.web.vo.TravelLineVO;
import com.zb.app.web.vo.TravelRouteVO;

/**
 * ?
 * 
 * @author zxc Aug 4, 2014 2:39:49 PM
 */
@Controller
public class LineController extends BaseController {

    /**
     * ?
     * 
     * @return
     */
    @RequestMapping(value = "/line/{id}.htm")
    public ModelAndView lineshow(@PathVariable("id") String id, ModelAndView mv) {
        mv.setViewName("line/line");
        TravelLineQuery query = new TravelLineQuery();
        if (StringUtils.isEmpty(id) || !NumberParser.isNumber(id)) {
            return mv;
        }

        if (id.length() == 8) {
            query.setlGroupNumber(id);
        } else {
            query.setlId(Long.parseLong(id));
        }
        // 
        TravelLineDO trline = lineService.find(query);
        if (trline == null) {
            mv.addObject("exception", "?!");
            mv.setViewName("error");
            return mv;
        }
        TravelLineVO trDo = new TravelLineVO(trline);
        // 
        List<TravelRouteDO> rlistp = lineService.list(new TravelRouteQuery(trDo.getlId()));
        List<TravelRouteVO> rlist = BeanUtils.convert(TravelRouteVO.class, rlistp);
        // ??
        if (trline.getcId() != null) {
            TravelCompanyDO comdo = companyService.getById(trline.getcId());
            mv.addObject("company", comdo);
        }
        // ?
        TravelServiceQuery servicequery = new TravelServiceQuery(trline.getcId(), null);
        List<TravelServiceDO> servicelist = companyService.list(servicequery);
        if (!WebUserTools.hasLogin() || !(CompanyTypeEnum.isAccount(WebUserTools.getCompanyType())
                || CompanyTypeEnum.isManage(WebUserTools.getCompanyType()))) {
            // ??
            TravelLineDO lineup = new TravelLineDO(trline.getlId());
            lineup.setlViews((trline.getlViews() == null ? 0 : trline.getlViews()) + 1);
            lineService.updateTravelLine(lineup);
        }
        TravelLineQuery queryv = new TravelLineQuery();
        queryv.setColumnType(1);
        queryv.setlProduct(trline.getlProduct());
        trDo.setlViews(lineService.countByGroup(queryv));
        // 
        mv.addObject("servicelist", servicelist);
        mv.addObject("line", trDo);
        mv.addObject("routelist", rlist);
        return mv;
    }

    /**
     * word
     * 
     * @param id
     * @return
     */
    @RequestMapping("/printdoc/{id}.htm")
    @ExportWordFile(value = "?")
    public ModelAndView exportDoc(@PathVariable("id") Long id, ModelAndView mav) {
        if (Argument.isNotPositive(id)) {
            return createErrorJsonMav("?!", null);
        }
        TravelLineDO trdo = lineService.getTravelLineById(id);
        if (trdo == null) {
            return createErrorJsonMav("!", null);
        }
        TravelLineVO line = new TravelLineVO(trdo);
        // 
        TravelRouteQuery query = new TravelRouteQuery();
        query.setlId(line.getlId());
        List<TravelRouteDO> routelist = lineService.list(query);
        line.setRoutelist(routelist);
        // ??
        TravelCompanyDO company = companyService.getById(WebUserTools.getCid());
        mav.addObject("line", StringFormatter.objectFieldEscape(line));
        mav.addObject("comp", company);
        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.setViewName("word/lineword");
        return mav;
    }

    /**
     * 
     * 
     * @param groupid
     * @return
     */
    @RequestMapping(value = "/line/getGroup.htm", method = RequestMethod.GET)
    @ResponseBody
    public JsonResult getGrouplist(String id) {
        // 
        TravelLineQuery queryg = new TravelLineQuery();
        queryg.setlState(0);
        queryg.setlProduct(id);
        List<TravelLineDO> datelist = lineService.list(queryg);
        for (TravelLineThinDO travelLineDO : datelist) {
            travelLineDO.setlSurplusCount(
                    travelLineDO.getlRenCount() - travelLineDO.getlCrCount() - travelLineDO.getlXhCount());
        }
        List<TravelLineSimpleVO> simplelist = BeanUtils.convert(TravelLineSimpleVO.class, datelist);
        return JsonResultUtils.success(simplelist);
    }

    /**
     * 
     * 
     * @param id
     * @param model
     * @return
     */
    @RequestMapping(value = "/line/linedate.htm")
    public ModelAndView linedate(String id, ModelAndView model) {
        TravelLineQuery query = new TravelLineQuery();
        query.setlGroupNumber(id);
        TravelLineDO trdo = lineService.find(query);
        model.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        model.addObject("line", trdo);
        model.setViewName("/line/linedate");
        return model;
    }

    /**
     * ?
     * 
     * @param query
     * @return
     */
    @RequestMapping(value = "/line/getLineCount.htm")
    @ResponseBody
    public JsonResult getLineCount(TravelLineQuery query) {
        query.setlTemplateState(LineTemplateEnum.Line.getValue());
        int count = lineService.count(query);
        return JsonResultUtils.success(count);
    }

    /***
     * 
     * 
     * @param model
     * @return
     */
    @RequestMapping(value = "/line/showline.htm")
    public ModelAndView showLine(ModelAndView model, final TravelLineQuery query, Integer page, Integer pagesize) {
        // ?
        // ?Zids
        if (query.getzId() == null) {
            SiteCacheTools siteCacheTools = (SiteCacheTools) SpringContextAware.getBean("siteCacheTools");
            ChufaFullVO chugang = siteCacheTools.getChugangByChugangId(WebUserTools.getChugangId());
            Map<Integer, List<ColumnThinVO>> column = chugang.getColumnMap();
            List<ColumnThinVO> columnlist = new ArrayList<ColumnThinVO>();
            for (List<ColumnThinVO> list : column.values()) {
                columnlist.addAll(list);
            }
            Long[] zIds = CollectionUtils.getLongValueArrays(columnlist, "zId");
            query.setzIds(zIds);
        } else {
            query.setzIds(query.getzId());
        }
        TravelLineQuery.parse(query, null, null, page, pagesize, LineTemplateEnum.Line.getValue());
        query.setlState(LineStateEnum.NORMAL.getValue());
        // 
        PaginationList<TravelLineDO> list = lineService.listGroup(query, new IPageUrl() {

            @Override
            public String parsePageUrl(Object... objs) {
                String str = "/line/showline.htm?page=" + (Integer) objs[1];
                if (query.getlArrivalCity() != null) {
                    str += "&lArrivalCity=" + query.getlArrivalCity();
                }
                if (query.getlDay() != null) {
                    str += "&lDay=" + query.getlDay();
                }
                if (query.getlType() != null) {
                    str += "&lType=" + query.getlType();
                }
                return str;
            }

        });

        model.addObject("list", BeanUtils.convert(TravelLineVO.class, list));
        // 
        TravelLineQuery queryline = new TravelLineQuery();
        queryline.setlState(LineStateEnum.NORMAL.getValue());
        queryline.setlTemplateState(LineTemplateEnum.Line.getValue());
        model.addObject("linecount", lineService.countByGroup(queryline));
        model.addObject("pagination", list.getQuery());
        model.addObject("searchcount", lineService.countByGroup(query));
        // 
        model.addObject("orderGuestCount", orderService.countByOrderGuest());
        // ??
        TravelCompanyQuery companyQuery = new TravelCompanyQuery();
        companyQuery.setNowPageIndex(0);
        companyQuery.setPageSize(6);
        companyQuery.setcType(CompanyTypeEnum.ACCOUNT.getValue());
        companyQuery.setcState(CompanyStateEnum.NORMAL.getValue());
        PaginationList<TravelCompanyDO> companyDOs = companyService.showCompanyPagination(companyQuery,
                new DefaultIpageUrl());
        model.addObject("companyDOs", companyDOs);
        // ?
        model.addObject("lDay", query.getlDay());
        model.addObject("lType", query.getlType());
        model.addObject("city", query.getlArrivalCity());
        // ?
        model.addObject("citylists", lineService.getCityByCid(WebUserTools.getChugangId()));

        model.setViewName("/cms/1409/line");
        return model;
    }
}