package com.caimei.modules.banner.web; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.caimei.modules.banner.entity.CrmBanner; import com.caimei.modules.banner.service.CrmBannerService; import com.google.common.collect.Maps; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.utils.StringUtils; import com.thinkgem.jeesite.common.web.BaseController; /** * CRM首页轮播图Controller * @author LG * @version 2016-08-19 */ @Controller @RequestMapping(value = "${adminPath}/banner/crmBanner") public class CrmBannerController extends BaseController { @Autowired private CrmBannerService crmBannerService; @ModelAttribute public CrmBanner get(@RequestParam(required=false) String id) { CrmBanner entity = null; if (StringUtils.isNotBlank(id)){ entity = crmBannerService.get(id); } if (entity == null){ entity = new CrmBanner(); } return entity; } @RequiresPermissions("banner:crmBanner:view") @RequestMapping(value = {"list", ""}) public String list(CrmBanner crmBanner, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = crmBannerService.findPage(new Page(request, response), crmBanner); model.addAttribute("page", page); return "modules/banner/crmBannerList"; } @RequiresPermissions("banner:crmBanner:view") @RequestMapping(value = "form") public String form(CrmBanner crmBanner, Model model) { model.addAttribute("crmBanner", crmBanner); return "modules/banner/crmBannerForm"; } @RequiresPermissions("banner:crmBanner:edit") @RequestMapping(value = "save") public String save(CrmBanner crmBanner, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) { if(checkValidator(model, crmBanner)){//参数、必填验证 return form(crmBanner, model); } crmBannerService.save(crmBanner,request); addMessage(redirectAttributes, "保存CRM首页轮播图成功"); return "redirect:"+Global.getAdminPath()+"/banner/crmBanner/?repage"; } private boolean checkValidator(Model model,CrmBanner crmBanner) { if (!beanValidator(model, crmBanner)){ return true; } if(StringUtils.getStringLength(crmBanner.getTitle())>40){ model.addAttribute("message", "标题过长!"); return true; } if(StringUtils.isNotBlank(crmBanner.getLink()) &&StringUtils.getStringLength(crmBanner.getTitle())>100){ model.addAttribute("message", "链接过长!"); return true; } if(StringUtils.equals(crmBanner.getEnabledStatus(), "1")){ CrmBanner crmBanner2 = crmBannerService.get(crmBanner.getId()); if(null!=crmBanner2){ if(!StringUtils.equals(crmBanner2.getEnabledStatus(), "1") && crmBannerService.countEnabledStatus("1")>=9){ model.addAttribute("message", "最多只能启用9项,请先停用!"); return true; } }else if(crmBannerService.countEnabledStatus("1")>=9){ model.addAttribute("message", "最多只能启用9项,请先停用!"); return true; } } return false; } @RequiresPermissions("banner:crmBanner:delete") @RequestMapping(value = "delete") public String delete(CrmBanner crmBanner, RedirectAttributes redirectAttributes) { crmBannerService.delete(crmBanner); addMessage(redirectAttributes, "删除CRM首页轮播图成功"); return "redirect:"+Global.getAdminPath()+"/banner/crmBanner/?repage"; } /** * 批量修改启用、停用状态 * @param enabledStatus * @param ids * @param request * @param response * @return */ @RequiresPermissions("banner:crmBanner:edit") @ResponseBody @RequestMapping(value="updateEnabledStatus") public Map updateEnabledStatus(String status,String[] ids,HttpServletRequest request,HttpServletResponse response){ Map map =Maps.newLinkedHashMap(); try { crmBannerService.updateEnabledStatusByIds(status,ids); map.put("success",true); map.put("msg", "修改成功"); } catch (Exception e) { logger.debug(e.toString(),e); map.put("success",false); map.put("msg", "修改失败"); } return map; } /** * 状态统计 * @param enabledStatus * @param request * @param response * @return */ @RequiresPermissions("banner:crmBanner:view") @ResponseBody @RequestMapping(value="countEnabledStatus") public Map countEnabledStatus(String status,HttpServletRequest request,HttpServletResponse response){ Map map =Maps.newLinkedHashMap(); try { int count=crmBannerService.countEnabledStatus(status); map.put("success",true); map.put("count",count); } catch (Exception e) { logger.debug(e.toString(),e); map.put("success",false); map.put("count",0); } return map; } }