package com.insoul.ti.controller;
import java.util.Date;
import java.util.List;
import javax.validation.Valid;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.insoul.copartner.dao.criteria.PioneerParkCriteria;
import com.insoul.copartner.domain.PioneerPark;
import com.insoul.ti.WebBase;
import com.insoul.ti.req.PageQuery;
import com.insoul.ti.req.PioneerParkListRequest;
import com.insoul.ti.req.PioneerParkRequest;
import com.insoul.ti.req.ViewRequest;
import com.insoul.ti.shiro.Permission;
/**
* @author 刘飞 E-mail:liufei_it@126.com
*
* @version 1.0.0
* @since 2015年7月4日 下午11:37:15
*/
@Controller
@RequestMapping("/pioneerpark")
@Permission("authc")
public class PioneerParkController extends WebBase {
private static final String PIONEERPARK_EDIT = "pioneerpark_edit";
private static final String PIONEERPARK_ADD = "pioneerpark_add";
private static final String PIONEERPARK_DETAIL = "pioneerpark_detail";
private static final String PIONEERPARK_LIST = "pioneerpark_list";
@RequestMapping("/list")
public ModelAndView list(@Valid PioneerParkListRequest request, BindingResult result) {
ModelAndView mv = createModelView(PIONEERPARK_LIST, request);
PageQuery query = request.init().getQuery();
PioneerParkCriteria criteria = new PioneerParkCriteria();
criteria.setLimit(query.getPage_size());
criteria.setOffset(Long.valueOf(query.getIndex()).intValue());
criteria.setName(request.getName());
List<PioneerPark> list = pioneerParkDAO.queryPioneerPark(criteria);
Long count = pioneerParkDAO.countPioneerPark(criteria);
query.setCount((count == null || count <= 0L) ? 0 : count.intValue());
mv.addObject("query", query);
mv.addObject("pioneerParkList", list);
mv.addObject("success", CollectionUtils.isNotEmpty(list));
mv.addObject("req", request);
return mv;
}
@RequestMapping("/detail/{pioneerParkId}")
public ModelAndView detail(@PathVariable Long pioneerParkId, ViewRequest req) {
ModelAndView mv = createModelView(PIONEERPARK_DETAIL, req);
mv.addObject("viewname", PIONEERPARK_LIST);
try {
PioneerPark pioneerPark = pioneerParkDAO.get(pioneerParkId);
mv.addObject("pioneerPark", pioneerPark);
mv.addObject("success", pioneerPark != null);
} catch (Exception e) {
mv.addObject("success", false);
}
return mv;
}
@RequestMapping("/add")
public ModelAndView add(ViewRequest req) {
ModelAndView mv = createModelView(PIONEERPARK_ADD, req);
mv.addObject("viewname", PIONEERPARK_LIST);
return mv;
}
@RequestMapping("/edit/{pioneerParkId}")
public ModelAndView edit(@PathVariable Long pioneerParkId, ViewRequest req) {
ModelAndView mv = createModelView(PIONEERPARK_EDIT, req);
PioneerPark pioneerPark = pioneerParkDAO.get(pioneerParkId);
mv.addObject("pioneerPark", pioneerPark);
mv.addObject("viewname", PIONEERPARK_LIST);
return mv;
}
@RequestMapping("/update/{pioneerParkId}")
@Transactional(value = "transactionManager", rollbackFor = Throwable.class)
public ModelAndView update(@PathVariable Long pioneerParkId, @Valid PioneerParkRequest request, BindingResult result) {
PioneerPark pioneerPark = pioneerParkDAO.get(pioneerParkId);
pioneerPark.setAddress(request.buildAddress());
pioneerPark.setAddressDetail(StringUtils.defaultString(request.getAddressDetail()));
pioneerPark.setArea(StringUtils.defaultString(request.getArea()));
pioneerPark.setCity(StringUtils.defaultString(request.getCity()));
pioneerPark.setContent(StringUtils.defaultString(request.getContent()));
pioneerPark.setLatitude(request.getLatitude());
pioneerPark.setLongitude(request.getLongitude());
pioneerPark.setName(request.getName());
pioneerPark.setProvince(request.getProvince());
pioneerPark.setUpdated(new Date());
pioneerParkDAO.update(pioneerPark);
return new ModelAndView("redirect:/pioneerpark/detail/" + pioneerParkId);
}
@RequestMapping("/save")
@Transactional(value = "transactionManager", rollbackFor = Throwable.class)
public ModelAndView save(@Valid PioneerParkRequest request, BindingResult result) {
PioneerPark pioneerPark = new PioneerPark();
pioneerPark.setAddress(request.buildAddress());
pioneerPark.setAddressDetail(StringUtils.defaultString(request.getAddressDetail()));
pioneerPark.setArea(StringUtils.defaultString(request.getArea()));
pioneerPark.setCity(StringUtils.defaultString(request.getCity()));
pioneerPark.setContent(StringUtils.defaultString(request.getContent()));
pioneerPark.setLatitude(request.getLatitude());
pioneerPark.setLongitude(request.getLongitude());
pioneerPark.setName(request.getName());
pioneerPark.setProvince(request.getProvince());
Date date = new Date();
pioneerPark.setUpdated(date);
pioneerPark.setCreated(date);
pioneerParkDAO.save(pioneerPark);
return new ModelAndView("redirect:/pioneerpark/detail/" + pioneerPark.getId());
}
}