com.zb.app.web.controller.manage.ManageController.java Source code

Java tutorial

Introduction

Here is the source code for com.zb.app.web.controller.manage.ManageController.java

Source

/*
 * Copyright 2014-2017 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.manage;

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

import javax.validation.Valid;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
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.PhotoTypeEnum;
import com.zb.app.biz.domain.TravelBlackListFullDO;
import com.zb.app.biz.domain.TravelBlackListThinDO;
import com.zb.app.biz.domain.TravelColumnDO;
import com.zb.app.biz.domain.TravelCompanyDO;
import com.zb.app.biz.domain.TravelLineColumnDO;
import com.zb.app.biz.domain.TravelMemberDO;
import com.zb.app.biz.domain.TravelSiteDO;
import com.zb.app.biz.query.TravelBlackListQuery;
import com.zb.app.biz.query.TravelColumnQuery;
import com.zb.app.biz.query.TravelCompanyQuery;
import com.zb.app.biz.query.TravelMemberQuery;
import com.zb.app.biz.query.TravelSiteQuery;
import com.zb.app.biz.service.impl.FileServiceImpl.IFileHandle;
import com.zb.app.common.authority.AuthorityHelper;
import com.zb.app.common.core.lang.Argument;
import com.zb.app.common.core.lang.BeanUtils;
import com.zb.app.common.pagination.PaginationList;
import com.zb.app.common.pagination.PaginationParser.DefaultIpageUrl;
import com.zb.app.common.result.JsonResultUtils;
import com.zb.app.common.result.JsonResultUtils.JsonResult;
import com.zb.app.common.result.Result;
import com.zb.app.common.security.EncryptBuilder;
import com.zb.app.common.util.ObjectUtils;
import com.zb.app.common.velocity.CustomVelocityLayoutView;
import com.zb.app.web.controller.BaseController;
import com.zb.app.web.tools.WebUserTools;
import com.zb.app.web.vo.ChufaVO;
import com.zb.app.web.vo.TravelCompanyVO;
import com.zb.app.web.vo.TravelMemberVO;

/**
 * Manage ??? 
 * 
 * @author zxc Jun 16, 2014 3:43:02 PM
 */
@Controller
@RequestMapping("/zbmanlogin")
public class ManageController extends BaseController {

    // /////
    //
    // ####################################################Manage???###################################################
    //
    // /////

    @RequestMapping(value = "/login.htm")
    public String login(Model model) {
        if (WebUserTools.hasLogin() && CompanyTypeEnum.isManage(WebUserTools.current().getType())) {
            return "redirect:m/manage.htm";
        }
        model.addAttribute("type", "manage");
        return "login/login";
    }

    @RequestMapping(value = "/loginOut.htm")
    public String loginOut() {
        doLoginOut();
        return "forward:login.htm";
    }

    /**
     * ?
     * 
     * @param account
     * @param password
     * @param remeber
     * @return
     */
    @RequestMapping(value = "/doLogin.htm", produces = "application/json")
    @ResponseBody
    public JsonResult doLogin(String account, String password, String remeber) {
        return doLonginWithCheck(account, password, CompanyTypeEnum.MANAGE);
    }

    // /////
    //
    // ####################################################Manage???###################################################
    //
    // /////

    @RequestMapping(value = "/company/index.htm")
    public ModelAndView pageCompany() {
        return new ModelAndView("manage/company/index");
    }

    /**
     * ??:?
     * 
     * @return
     */
    @RequestMapping(value = "/m/{type}.htm")
    public ModelAndView companymanage(ModelAndView mav, @PathVariable("type") String type) {
        mav.addObject("url", "/zbmanlogin/company/companylist/" + type + ".htm");
        mav.addObject("type", CompanyTypeEnum.getEnum(type).getValue());
        mav.setViewName("/manage/company/index");
        return mav;
    }

    @RequestMapping(value = "/company/companylist/{type}.htm")
    public ModelAndView companyList(ModelAndView mav, TravelCompanyQuery query, Integer page,
            @PathVariable("type") String type) {
        query.setPageSize(20);
        query.setNowPageIndex(Argument.isNotPositive(page) ? 0 : page - 1);
        query.setcType(CompanyTypeEnum.getEnum(type).getValue());

        PaginationList<TravelCompanyDO> list = companyService.showCompanyPagination(query, new DefaultIpageUrl());

        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.addObject("companyList", list);
        mav.addObject("pagination", list.getQuery());
        mav.addObject("type", CompanyTypeEnum.getEnum(type).getValue());
        mav.setViewName("/manage/company/companylist");
        return mav;
    }

    @RequestMapping(value = "/company/add.htm")
    public ModelAndView companyadd(ModelAndView mav, Long type) {
        mav.addObject("type", type);
        mav.setViewName("/manage/company/add");
        return mav;
    }

    /**
     * ?
     * 
     * @param travelCompanyVO
     * @param travelMemberVO
     * @return
     */
    @RequestMapping(value = "/company/addCompany.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addCompany(@Valid TravelCompanyVO travelCompanyVO, TravelMemberVO travelMemberVO) {

        // ?
        TravelCompanyDO travelCompanyDO = new TravelCompanyDO();
        BeanUtils.copyProperties(travelCompanyDO, travelCompanyVO);
        companyService.insert(travelCompanyDO);

        // 
        TravelMemberDO travelMemberDO = new TravelMemberDO();
        BeanUtils.copyProperties(travelMemberDO, travelMemberVO);
        travelMemberDO.setmPassword(EncryptBuilder.getInstance().encrypt(travelMemberVO.getmPassword()));
        travelMemberDO.setcId(travelCompanyDO.getcId());
        int i = memberService.insert(travelMemberDO);
        return i == 0 ? JsonResultUtils.error(travelMemberDO, "!")
                : JsonResultUtils.success(travelMemberDO, "?!");
    }

    /**
     * ?
     * 
     * @return
     */
    @RequestMapping(value = "/company/ljUpdateCompany.htm")
    public ModelAndView ljUpdateCompany(ModelAndView mav, Long id) {
        TravelCompanyDO companyDO = companyService.getById(id);
        TravelCompanyVO companyVO = new TravelCompanyVO();
        BeanUtils.copyProperties(companyVO, companyDO);
        String[] tmp = StringUtils.split(companyVO.getcCityTop(), ",");
        if (tmp != null && tmp.length == 2) {
            companyVO.setcMoProvince(Integer.parseInt(tmp[0]));
            companyVO.setcMoCity(Integer.parseInt(tmp[1]));
        }
        mav.addObject("company", companyVO);
        mav.addObject("cType", "update");
        mav.setViewName("/manage/company/add");
        return mav;
    }

    @RequestMapping(value = "/company/updateCompany.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult updateCompany(TravelCompanyDO companyDO) {
        if (companyDO == null) {
            return JsonResultUtils.error("!");
        }
        boolean b = companyService.update(companyDO);
        if (b) {
            return JsonResultUtils.success(companyDO, "?!");
        } else {
            return JsonResultUtils.error(companyDO, "!");
        }
    }

    /**
     * ?
     * 
     * @param id
     * @return
     */
    @RequestMapping(value = "/company/deleteCompany.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult deleteCompany(Integer id) {
        boolean b = companyService.delete(id);
        if (b) {
            return JsonResultUtils.success(id, "?!");
        } else {
            return JsonResultUtils.error(id, "!");
        }
    }

    @RequestMapping(value = "/company/user.htm")
    public ModelAndView companyuser(ModelAndView mav, TravelMemberQuery query, Integer page, Long id) {
        query.setPageSize(100);
        query.setNowPageIndex(Argument.isNotPositive(page) ? 0 : page - 1);
        query.setcId(id);

        PaginationList<TravelMemberDO> list = memberService.showMemberPagination(query, new DefaultIpageUrl());
        for (TravelMemberDO member : list) {
            if (StringUtils.isNotEmpty(member.getmPassword())) {
                member.setmPassword(EncryptBuilder.getInstance().decrypt(member.getmPassword()));
            }
        }

        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.addObject("memberList", list);
        mav.addObject("pagination", list.getQuery());
        mav.addObject("cId", id);
        mav.setViewName("/manage/company/user");
        return mav;
    }

    @RequestMapping(value = "/company/useradd.htm")
    public ModelAndView companyuseradd(ModelAndView mav, Long cId) {
        TravelCompanyDO travelCompanyDO = companyService.getById(cId);
        mav.addObject("cId", cId);
        mav.addObject("cType", travelCompanyDO.getcType());
        mav.setViewName("/manage/company/useradd");
        return mav;
    }

    /**
     * 
     * 
     * @param mav
     * @param travelMemberVO
     * @return
     */
    @RequestMapping(value = "/company/addUser.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addUser(ModelAndView mav, TravelMemberVO travelMemberVO, Long cId) {
        TravelMemberDO travelMemberDO = new TravelMemberDO();
        BeanUtils.copyProperties(travelMemberDO, travelMemberVO);
        travelMemberDO.setmPassword(EncryptBuilder.getInstance().encrypt(travelMemberVO.getmPassword()));
        travelMemberDO.setmUserName(StringUtils.lowerCase(travelMemberVO.getmUserName()));

        if (StringUtils.isNotEmpty(travelMemberVO.getmRole())) {
            String role = AuthorityHelper.createRightStr(travelMemberVO.getmRole());
            travelMemberDO.setmRole(role);
        }

        Integer i = memberService.insert(travelMemberDO);
        return i == 0 ? JsonResultUtils.error(travelMemberDO, "!")
                : JsonResultUtils.success(travelMemberDO, "?!");
    }

    /**
     * 
     * 
     * @return
     */
    @RequestMapping(value = "/company/ljUpdateUser.htm")
    public ModelAndView ljUpdateUser(ModelAndView mav, Long id) {
        TravelMemberDO memberDO = memberService.getById(id);
        if (StringUtils.isNotEmpty(memberDO.getmRole())) {
            String role = AuthorityHelper.createRightStr(memberDO.getmRole());
            memberDO.setmRole(role);
        }
        if (StringUtils.isNotEmpty(memberDO.getmPassword())) {
            memberDO.setmPassword(EncryptBuilder.getInstance().decrypt(memberDO.getmPassword()));
        }
        mav.addObject("member", memberDO);
        mav.addObject("type", "update");
        mav.setViewName("/manage/company/useradd");
        return mav;
    }

    @RequestMapping(value = "/company/updateUser.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult updateUser(TravelMemberDO memberDO) {
        if (memberDO == null) {
            return JsonResultUtils.error("!");
        }
        if (StringUtils.isNotEmpty(memberDO.getmRole())) {
            String role = memberDO.getmRole();
            role = AuthorityHelper.makeAuthority(role);
            memberDO.setmRole(role);
        }
        if (StringUtils.isNotEmpty(memberDO.getmPassword())) {
            memberDO.setmPassword(EncryptBuilder.getInstance().encrypt(memberDO.getmPassword()));
        }
        boolean b = memberService.update(memberDO);
        if (b) {
            return JsonResultUtils.success(memberDO, "?!");
        } else {
            return JsonResultUtils.error(memberDO, "!");
        }
    }

    /**
     * 
     * 
     * @param id
     * @return
     */
    @RequestMapping(value = "/company/deleteUser.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult deleteUser(Long id) {
        boolean b = memberService.delete(id);
        if (b) {
            return JsonResultUtils.success(id, "?!");
        } else {
            return JsonResultUtils.error(id, "!");
        }
    }

    // /////
    //
    // ####################################################Manage??,,?###################################################
    //
    // /////

    @RequestMapping(value = "/company/site.htm")
    public ModelAndView companysite(ModelAndView mav, Long id) {
        mav.setViewName("/manage/company/site");
        if (id == null) {
            return mav;
        }
        List<TravelLineColumnDO> list = siteService.getTravelLineColumnByCid(id);
        StringBuffer sf = new StringBuffer();
        for (TravelLineColumnDO lineColumnDO : list) {
            sf.append(lineColumnDO.getzId());
            sf.append("|");
        }
        mav.addObject("id", id);
        mav.addObject("currentUsed", sf.toString());
        return mav;
    }

    /**
     * ?
     * 
     * <pre>
     *      t=1??;t=2?
     * </pre>
     * 
     * @param cId
     * @param zId
     * @param t
     * @return
     */
    @RequestMapping(value = "/company/bindColumn.htm", produces = "application/json")
    @ResponseBody
    public JsonResult bindColumn(Long cId, Long zId, Integer isAdd) {
        if (cId == null || zId == null || isAdd <= 0) {
            return JsonResultUtils.error("cId,zId,t?!");
        }
        List<TravelLineColumnDO> list = siteService.list(zId, cId);
        if (list == null || list.size() == 0) {
            isAdd = isAdd == 2 ? isAdd : 2;
            if (isAdd == 2) {
                siteService.insertTravelLineColumn(new TravelLineColumnDO(zId, cId));
                return JsonResultUtils.success("?!");
            }
        } else if (list != null && list.size() == 1) {
            isAdd = isAdd == 1 ? isAdd : 1;
            if (isAdd == 1) {
                siteService.deleteTravelLineColumn(list.get(0).getLcId());
                return JsonResultUtils.success("??!");
            }
        } else if (list != null && list.size() > 1) {
            return JsonResultUtils.error("cId,zId!");
        }
        return JsonResultUtils.success("??!");
    }

    @RequestMapping(value = "/site/index.htm")
    public ModelAndView siteindex(ModelAndView mav) {
        PaginationList<TravelSiteDO> list = siteService.listPagination(new TravelSiteQuery(),
                new DefaultIpageUrl());
        mav.addObject("siteList", list);
        mav.setViewName("manage/site/index");
        return mav;
    }

    @RequestMapping(value = "/site/siteedit.htm")
    public ModelAndView siteedit(ModelAndView mav, Long id) {
        if (id == null || id == 0) {
            return mav;
        }
        mav.addObject("site", siteService.getTravelSiteById(id));
        mav.setViewName("manage/site/siteadd");
        return mav;
    }

    @RequestMapping(value = "/site/siteadd.htm")
    public String siteadd() {
        return "/manage/site/siteadd";
    }

    @RequestMapping(value = "/site/sitedel.htm", produces = "application/json")
    @ResponseBody
    public JsonResult sitedel(Long id) {
        if (id == null) {
            return JsonResultUtils.error("id?!");
        }
        siteService.deleteTravelSite(id);
        return JsonResultUtils.success("?!");
    }

    @RequestMapping(value = "/site/savesite.htm", produces = "application/json")
    @ResponseBody
    public JsonResult savesite(@Valid TravelSiteDO site, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(site);
        if (site.getsId() != null && site.getsId() > 0) {
            siteService.updateTravelSite(site);
            return JsonResultUtils.success("?!");
        }
        if (StringUtils.isEmpty(site.getsName())) {
            return JsonResultUtils.error("???!");
        }
        List<TravelSiteDO> siteList = siteService
                .list(new TravelSiteQuery(site.getsName(), site.getsProvince(), site.getsCity()));
        if (siteList != null && siteList.size() > 0) {
            return JsonResultUtils.error("???!");
        }
        siteService.insertTravelSite(site);
        return JsonResultUtils.success("?!");
    }

    /**
     * @param mav
     * @param id ID
     * @return
     */
    @RequestMapping(value = "/site/chufaedit.htm")
    public ModelAndView chufaedit(ModelAndView mav, Long id) {
        if (id == null || id == 0) {
            return mav;
        }
        // ?
        TravelSiteDO site = siteService.getTravelSiteById(id);
        if (site == null) {
            return mav;
        }
        // 
        List<TravelSiteDO> chufaList = siteService.list(new TravelSiteQuery(id));
        List<ChufaVO> chufaVOList = new ArrayList<ChufaVO>();
        for (TravelSiteDO chufa : chufaList) {
            List<TravelColumnDO> column = siteService.listQuery(new TravelColumnQuery(id, chufa.getsId()));
            chufaVOList.add(new ChufaVO(chufa, column));
        }

        mav.addObject("chufaList", chufaVOList);
        mav.addObject("id", id);
        mav.setViewName("manage/site/chufaedit");
        return mav;
    }

    @RequestMapping(value = "/site/chufaUpdate.htm")
    public ModelAndView chufaUpdate(ModelAndView mav, Long id) {
        if (id == null || id == 0) {
            return mav;
        }
        TravelSiteDO chufa = siteService.getTravelSiteById(id);
        mav.addObject("chufa", chufa);
        mav.addObject("sToId", chufa.getsToid());
        mav.setViewName("manage/site/chufa");
        return mav;
    }

    @RequestMapping(value = "/site/chufa.htm")
    public ModelAndView chufa(ModelAndView mav, Long id) {
        mav.addObject("sToId", id);
        mav.setViewName("manage/site/chufa");
        return mav;
    }

    @RequestMapping(value = "/site/chufadel.htm", produces = "application/json")
    @ResponseBody
    public JsonResult chufadel(Long id) {
        if (id == null) {
            return JsonResultUtils.error("id?!");
        }
        siteService.deleteTravelSite(id);
        return JsonResultUtils.success("?!");
    }

    @RequestMapping(value = "/site/savechufa.htm", produces = "application/json")
    @ResponseBody
    public JsonResult savechufa(@Valid TravelSiteDO travelSiteDO, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(travelSiteDO);
        if (travelSiteDO.getsToid() == null || travelSiteDO.getsToid() <= 0) {
            return JsonResultUtils.error("ID?!");
        }
        if (StringUtils.isEmpty(travelSiteDO.getsName())) {
            travelSiteDO.setsName(travelSiteDO.getsCity());
        }
        if (travelSiteDO.getsId() != null && travelSiteDO.getsId() > 0) {
            siteService.updateTravelSite(travelSiteDO);
            return JsonResultUtils.success("?!");
        }
        List<TravelSiteDO> siteList = siteService
                .list(new TravelSiteQuery(travelSiteDO.getsToid(), travelSiteDO.getsName()));
        if (siteList != null && siteList.size() > 0) {
            return JsonResultUtils.error("????!");
        }
        siteService.insertTravelSite(travelSiteDO);
        return JsonResultUtils.success("?!");
    }

    /**
     * @param toId ID
     * @param zId ID
     * @return
     */
    @RequestMapping(value = "/site/columnadd.htm")
    public ModelAndView columnadd(ModelAndView mav, Long toId, Long sId) {
        if (toId == null || sId == null) {
            return mav;
        }
        mav.addObject("sToId", toId);
        mav.addObject("sId", sId);
        mav.setViewName("manage/site/columnadd");
        return mav;
    }

    @RequestMapping(value = "/site/columnedit.htm")
    public ModelAndView columnedit(ModelAndView mav, Long zId) {
        if (zId == null) {
            return mav;
        }
        TravelColumnDO column = siteService.getTravelColumnById(zId);
        mav.addObject("column", column);
        mav.addObject("zId", zId);
        mav.addObject("sToId", column.getsToId());
        mav.addObject("sId", column.getsId());
        mav.setViewName("manage/site/columnadd");
        return mav;
    }

    @RequestMapping(value = "/site/columndel.htm", produces = "application/json")
    @ResponseBody
    public JsonResult columndel(Long id) {
        if (id == null) {
            return JsonResultUtils.error("id?!");
        }
        siteService.deleteTravelLineColumn(id);
        return JsonResultUtils.success("?!");
    }

    @RequestMapping(value = "/site/savecolumn.htm", produces = "application/json")
    @ResponseBody
    public JsonResult savecolumn(@Valid TravelColumnDO column, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(column);
        if (StringUtils.isNotEmpty(column.getzPic()) && column.getzPic().contains("/tmp/")) {
            Result rusult = fileService.saveFileByPath(column.getzPic(), new IFileHandle() {

                @Override
                public String parse(String prefix, String suffix) {
                    return prefix + WebUserTools.getCid() + "/" + PhotoTypeEnum.SITE_COLUMN.getName() + "/"
                            + suffix;
                }
            });
            column.setzPic((String) rusult.getData());
        }

        if (column.getzId() != null && column.getzId() > 0) {
            siteService.update(column);
            return JsonResultUtils.success("?!");
        }
        List<TravelColumnDO> columnDOList = siteService
                .listQuery(new TravelColumnQuery(column.getsId(), column.getsToId(), column.getzName()));
        if (columnDOList != null && columnDOList.size() > 0) {
            return JsonResultUtils.error("?????!");
        }
        siteService.insert(column);
        return JsonResultUtils.success("?!");
    }

    /* ????? */
    /*  */
    @RequestMapping(value = "/blacklists.htm")
    public ModelAndView blacklists(ModelAndView mav, TravelBlackListQuery query, Integer page) {
        query.setPageSize(10);
        query.setNowPageIndex(Argument.isNotPositive(page) ? 0 : page - 1);
        PaginationList<TravelBlackListThinDO> list = companyService.queryAllCompanyBlack(query,
                new DefaultIpageUrl());
        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.addObject("blackList", list);
        mav.addObject("pagination", list.getQuery());
        mav.setViewName("/manage/blacklists/list");
        return mav;
    }

    /* list */
    @RequestMapping(value = "/black.htm")
    public String blacklistslist() {
        return "/manage/blacklists/index";
    }

    /*  */
    @RequestMapping(value = "/blacklistsview.htm")
    public ModelAndView blacklistsview(ModelAndView mav, TravelBlackListQuery query, Integer page, Long id) {
        query.setPageSize(100);
        query.setNowPageIndex(Argument.isNotPositive(page) ? 0 : page - 1);
        query.setBeCId(id);
        PaginationList<TravelBlackListFullDO> list = companyService.listPagination(query, new DefaultIpageUrl());
        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.addObject("blackList", list);
        mav.addObject("pagination", list.getQuery());
        mav.setViewName("/manage/blacklists/view");
        return mav;
    }

    /*  */
    @RequestMapping(value = "/blacklistsconfirm.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult blacklistsconfirm(Long cId) {
        TravelCompanyDO companyDO = new TravelCompanyDO();
        companyDO.setcId(cId);
        companyDO.setcState(CompanyStateEnum.BLACK.getValue());
        boolean b = companyService.update(companyDO);
        if (b) {
            return JsonResultUtils.success(companyDO, "?!");
        } else {
            return JsonResultUtils.error(companyDO, "!");
        }
    }
}