package com.jspxcms.core.web.back;
import static com.jspxcms.core.support.Constants.DELETE_SUCCESS;
import static com.jspxcms.core.support.Constants.MESSAGE;
import static com.jspxcms.core.support.Constants.SAVE_SUCCESS;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.jspxcms.core.domain.Attribute;
import com.jspxcms.core.service.AttributeService;
import com.jspxcms.core.support.Context;
/**
* AttributeController
*
* @author liufang
*
*/
@Controller
@RequestMapping("/core/attribute")
public class AttributeController {
private static final Logger logger = LoggerFactory
.getLogger(AttributeController.class);
@RequiresPermissions("core:attribute:list")
@RequestMapping("list.do")
public String list(HttpServletRequest request,
org.springframework.ui.Model modelMap) {
Integer siteId = Context.getCurrentSiteId(request);
List<Attribute> list = service.findList(siteId);
modelMap.addAttribute("list", list);
return "core/attribute/attribute_list";
}
@RequiresPermissions("core:attribute:save")
@RequestMapping("save.do")
public String save(Attribute bean, HttpServletRequest request,
RedirectAttributes ra) {
Integer siteId = Context.getCurrentSiteId(request);
service.save(bean, siteId);
logger.info("save Attribute, name={}.", bean.getName());
ra.addFlashAttribute(MESSAGE, SAVE_SUCCESS);
return "redirect:list.do";
}
@RequiresPermissions("core:attribute:batch_update")
@RequestMapping("batch_update.do")
public String batchUpdate(Integer[] id, String[] name, String[] number,
Integer[] imageWidth, Integer[] imageHeight, RedirectAttributes ra) {
if (ArrayUtils.isNotEmpty(id)) {
Attribute[] beans = service.batchUpdate(id, name, number,
imageWidth, imageHeight);
for (Attribute bean : beans) {
logger.info("update Attribute, name={}.", bean.getName());
}
}
ra.addFlashAttribute(MESSAGE, SAVE_SUCCESS);
return "redirect:list.do";
}
@RequiresPermissions("core:attribute:delete")
@RequestMapping("delete.do")
public String delete(Integer[] ids, RedirectAttributes ra) {
Attribute[] beans = service.delete(ids);
for (Attribute bean : beans) {
logger.info("delete Attribute, name={}.", bean.getName());
}
ra.addFlashAttribute(MESSAGE, DELETE_SUCCESS);
return "redirect:list.do";
}
/**
* 检查编号是否存在
*
* @return
*/
@RequiresPermissions("core:attribute:check_number")
@RequestMapping("check_number.do")
@ResponseBody
public String checkNumber(String number, String original,
HttpServletRequest request) {
if (StringUtils.isBlank(number) || StringUtils.equals(number, original)) {
return "true";
}
// 检查数据库是否重名
Integer siteId = Context.getCurrentSiteId(request);
String result = service.numberExist(number, siteId) ? "false" : "true";
return result;
}
@Autowired
private AttributeService service;
}