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

Java tutorial

Introduction

Here is the source code for com.zb.app.web.controller.manage.ManageCmsController.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.List;

import javax.validation.Valid;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
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.PhotoTypeEnum;
import com.zb.app.biz.cons.TravelNewsTypeEnum;
import com.zb.app.biz.domain.TravelAdvertisementDO;
import com.zb.app.biz.domain.TravelArticlesDO;
import com.zb.app.biz.domain.TravelLabelCategoryDO;
import com.zb.app.biz.domain.TravelNewsDO;
import com.zb.app.biz.query.TravelAdvertisementQuery;
import com.zb.app.biz.query.TravelArticlesQuery;
import com.zb.app.biz.query.TravelLabelCategoryQuery;
import com.zb.app.biz.query.TravelNewsQuery;
import com.zb.app.biz.service.impl.FileServiceImpl.IFileHandle;
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.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.ADLinkVO;

/**
 * ??? ? CMS?
 * 
 * @author zxc Jun 16, 2014 3:46:35 PM
 */
@Controller
@RequestMapping("/zbmanlogin")
public class ManageCmsController extends BaseController {

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

    // ,,
    @RequestMapping(value = "/info/{newsType}.htm")
    public ModelAndView news(ModelAndView mav, @PathVariable("newsType") String newsType) {
        mav.setViewName("/manage/news/index");
        if (newsType == null) {
            return mav;
        }
        TravelNewsTypeEnum typeEnum = TravelNewsTypeEnum.getAction(newsType);
        if (typeEnum == null) {
            return mav;
        }
        PaginationList<TravelNewsDO> list = cmsService.showNewsPagination(new TravelNewsQuery(typeEnum),
                new DefaultIpageUrl());
        mav.addObject("list", list);
        return mav;
    }

    // ?
    @RequestMapping(value = "/newsadd.htm")
    public String newadd() {
        return "/manage/news/add";
    }

    // 
    @RequestMapping(value = "/saveNews.htm", produces = "application/json")
    @ResponseBody
    public JsonResult saveNews(@Valid TravelNewsDO news, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(news);
        news.setnType(TravelNewsTypeEnum.WEB_NEWS.value);
        if (news.getnId() != null && news.getnId() > 0) {
            cmsService.updateById(news);
            return JsonResultUtils.success("?!");
        }
        PaginationList<TravelNewsDO> list = cmsService.showNewsPagination(
                new TravelNewsQuery(news.getnTitle(), TravelNewsTypeEnum.WEB_NEWS), new DefaultIpageUrl());
        if (list != null && list.size() > 0) {
            return JsonResultUtils.error("?!");
        }
        cmsService.addTravelNews(news);
        return JsonResultUtils.success();
    }

    // 
    @RequestMapping(value = "/newsedit.htm")
    public ModelAndView newsedit(ModelAndView mav, Long id) {
        mav.setViewName("/manage/news/add");
        if (id == null || id == 0) {
            return mav;
        }
        TravelNewsDO newsDO = cmsService.getById(id);
        mav.addObject("news", newsDO);
        return mav;
    }

    /**
     * 
     * 
     * @param id
     * @return
     */
    @RequestMapping(value = "/delNews.htm", produces = "application/json")
    @ResponseBody
    public JsonResult newsdel(Long id) {
        if (id == null || id == 0) {
            return JsonResultUtils.error("id?!");
        }
        boolean isDel = cmsService.deleteById(id);
        return isDel ? JsonResultUtils.success("?!") : JsonResultUtils.error("!");
    }

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

    // ?
    @RequestMapping(value = "/page.htm")
    public ModelAndView page(ModelAndView mav) {
        mav.setViewName("/manage/page/index");
        List<TravelArticlesDO> list = cmsService.list(new TravelArticlesQuery());

        mav.addObject("list", list);
        return mav;
    }

    // ?
    @RequestMapping(value = "/pageadd.htm")
    public String pageadd() {
        return "/manage/page/add";
    }

    // ?
    @RequestMapping(value = "/pageedit.htm")
    public ModelAndView pageedit(ModelAndView mav, Long id) {
        mav.setViewName("/manage/page/add");
        if (id == null || id == 0) {
            return mav;
        }
        TravelArticlesDO page = cmsService.getArticlesById(id);
        mav.addObject("page", page);
        return mav;
    }

    @RequestMapping(value = "/savePage.htm", produces = "application/json")
    @ResponseBody
    public JsonResult savePage(@Valid TravelArticlesDO page, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(page);
        if (page.getaId() != null && page.getaId() > 0) {
            cmsService.updateById(page);
            return JsonResultUtils.success("?!");
        }
        List<TravelArticlesDO> list = cmsService.list(new TravelArticlesQuery(page.getTitle()));
        if (list != null && list.size() > 0) {
            return JsonResultUtils.error("?!");
        }
        cmsService.addArticles(page);
        return JsonResultUtils.success("?");
    }

    @RequestMapping(value = "/delPage.htm", produces = "application/json")
    @ResponseBody
    public JsonResult delPage(Long id) {
        if (id == null || id == 0) {
            return JsonResultUtils.error("id?!");
        }
        boolean isDel = cmsService.realDelArticles(id);
        return isDel ? JsonResultUtils.success("?!") : JsonResultUtils.error("!");
    }

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

    // ?
    @RequestMapping(value = "/link.htm")
    public ModelAndView link(ModelAndView mav) {
        mav.setViewName("/manage/page/link");
        List<TravelAdvertisementDO> list = cmsService.list(new TravelAdvertisementQuery());

        mav.addObject("list", list);
        return mav;
    }

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

    // 
    @RequestMapping(value = "/linkedit.htm")
    public ModelAndView linkedit(ModelAndView mav, Long id) {
        mav.setViewName("/manage/page/linkadd");
        if (id == null || id == 0) {
            return mav;
        }
        TravelAdvertisementDO link = cmsService.getAdvertisementById(id);
        if (link == null) {
            return mav;
        }
        ADLinkVO adLink = new ADLinkVO();
        BeanUtils.copyProperties(adLink, link);
        if (StringUtils.isNotEmpty(link.getSite()) && link.getSite().contains("|")) {
            String[] tmp = StringUtils.split(link.getSite(), "|");
            if (tmp != null && tmp.length == 2) {
                adLink.setProvince(tmp[0]);
                adLink.setCity(tmp[1]);
            }
        }
        mav.addObject("link", adLink);
        return mav;
    }

    @RequestMapping(value = "/saveLink.htm", produces = "application/json")
    @ResponseBody
    public JsonResult saveLink(@Valid ADLinkVO link, BindingResult result) {
        Result rs = showErrors(result);
        if (rs.isFailed()) {
            return JsonResultUtils.error(rs.getMessage());
        }
        ObjectUtils.trim(link);
        if (Argument.isNotPositive(link.getChugangId())) {
            return JsonResultUtils.error("ID?!");
        }

        TravelAdvertisementDO advertisement = new TravelAdvertisementDO();
        BeanUtils.copyProperties(advertisement, link);
        advertisement.setSiteId(link.getChugangId());

        if (StringUtils.isNotEmpty(link.getPic()) && link.getPic().contains("/tmp/")) {
            Result rusult = fileService.saveFileByPath(link.getPic(), new IFileHandle() {

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

        if (link.getAdId() != null && link.getAdId() > 0) {
            cmsService.updateById(advertisement);
            return JsonResultUtils.success("?!");
        }
        List<TravelAdvertisementDO> list = cmsService.list(new TravelAdvertisementQuery(link.getTitle()));
        if (list != null && list.size() > 0) {
            return JsonResultUtils.error("?!");
        }
        cmsService.addTravelAdvertisement(advertisement);
        return JsonResultUtils.success("?");
    }

    @RequestMapping(value = "/delLink.htm", produces = "application/json")
    @ResponseBody
    public JsonResult delLink(Long id) {
        if (id == null || id == 0) {
            return JsonResultUtils.error("id?!");
        }
        TravelAdvertisementDO advertisement = cmsService.getAdvertisementById(id);
        if (advertisement == null) {
            return JsonResultUtils.error("id?!");
        }
        if (StringUtils.isNotEmpty(advertisement.getPic())
                && StringUtils.contains(advertisement.getPic(), "/static/")) {
            fileService.delFileByPath(advertisement.getPic());
        }
        boolean isDel = cmsService.realDelAdvertisement(id);
        return isDel ? JsonResultUtils.success("?!") : JsonResultUtils.error("!");
    }

    // ?
    @RequestMapping(value = "/photo.htm")
    public String photo() {
        return "/manage/page/photo";
    }

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

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

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

    @RequestMapping(value = "/site/savetag.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult savetag(TravelLabelCategoryDO categoryDO, Integer madd) {
        if (categoryDO.getLcId() != null && categoryDO.getLcId() > 0) {
            Boolean b = cmsService.updateTravelLabelCategory(categoryDO);
            return b ? JsonResultUtils.success(categoryDO, "?!")
                    : JsonResultUtils.error(categoryDO, "!");
        }
        if (madd == null || madd != 0) {
            categoryDO.setParentId(0L);
        }
        Integer i = cmsService.insertTravelLabelCategory(categoryDO);
        return i == 0 ? JsonResultUtils.error(categoryDO, "!")
                : JsonResultUtils.success(categoryDO, "?!");
    }

    @RequestMapping(value = "/site/tag.htm")
    public ModelAndView tag(ModelAndView mav, TravelLabelCategoryQuery query, Integer page) {
        query.setPageSize(1000);
        query.setNowPageIndex(Argument.isNotPositive(page) ? 0 : page - 1);

        PaginationList<TravelLabelCategoryDO> list = cmsService.listPagination(query, new DefaultIpageUrl());

        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");
        mav.addObject("labelList", list);
        mav.addObject("pagination", list.getQuery());
        mav.setViewName("/manage/site/tag");
        return mav;
    }

    @RequestMapping(value = "/site/tagmadd.htm")
    public ModelAndView tagmadd(ModelAndView mav, Long id) {
        TravelLabelCategoryDO categoryDO = cmsService.getTravelLabelCategoryById(id);
        mav.addObject("categoryDO", categoryDO);
        mav.setViewName("/manage/site/tagmadd");
        return mav;
    }

    @RequestMapping(value = "/site/ljUpdate.htm")
    public ModelAndView ljUpdate(ModelAndView mav, Long id) {
        TravelLabelCategoryDO categoryDO = cmsService.getTravelLabelCategoryById(id);
        mav.addObject("categoryDO", categoryDO);
        mav.addObject("type", "update");
        mav.setViewName("/manage/site/tagadd");
        return mav;
    }

    @RequestMapping(value = "/site/deletetag.htm", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult deletetag(Long id) {
        Boolean b = cmsService.deleteTravelLabelCategory(id);
        return b ? JsonResultUtils.success(id, "?!") : JsonResultUtils.error(id, "!");
    }
}