package com.dsh.guns.core.base.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.guns.core.base.tips.SuccessTip; import com.dsh.guns.core.base.warpper.BaseControllerWarpper; import com.dsh.guns.core.page.PageInfoBT; import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.core.util.FileUtil; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.UnsupportedEncodingException; public class BaseController { protected static String SUCCESS = "SUCCESS"; protected static String ERROR = "ERROR"; protected static String REDIRECT = "redirect:"; protected static String FORWARD = "forward:"; protected static SuccessTip SUCCESS_TIP = new SuccessTip(); protected HttpServletRequest getHttpServletRequest() { return HttpKit.getRequest(); } protected HttpServletResponse getHttpServletResponse() { return HttpKit.getResponse(); } protected HttpSession getSession() { return HttpKit.getRequest().getSession(); } protected HttpSession getSession(Boolean flag) { return HttpKit.getRequest().getSession(flag); } protected String getPara(String name) { return HttpKit.getRequest().getParameter(name); } protected void setAttr(String name, Object value) { HttpKit.getRequest().setAttribute(name, value); } protected Integer getSystemInvokCount() { return (Integer) this.getHttpServletRequest().getServletContext().getAttribute("systemCount"); } /** * 把service层的分页信息,封装为bootstrap table通用的分页封装 */ protected PageInfoBT packForBT(Page page) { return new PageInfoBT(page); } /** * 包装一个list,让list增加额外属性 */ protected Object warpObject(BaseControllerWarpper warpper) { return warpper.warp(); } /** * 删除cookie */ protected void deleteCookieByName(String cookieName) { Cookie[] cookies = this.getHttpServletRequest().getCookies(); for (Cookie cookie : cookies) { if (cookie.getName().equals(cookieName)) { Cookie temp = new Cookie(cookie.getName(), ""); temp.setMaxAge(0); this.getHttpServletResponse().addCookie(temp); } } } /** * 删除所有cookie */ protected void deleteAllCookie() { Cookie[] cookies = this.getHttpServletRequest().getCookies(); for (Cookie cookie : cookies) { Cookie temp = new Cookie(cookie.getName(), ""); temp.setMaxAge(0); this.getHttpServletResponse().addCookie(temp); } } /** * 返回前台文件流 * * @author fengshuonan * @date 2017年2月28日 下午2:53:19 */ protected ResponseEntity renderFile(String fileName, String filePath) { byte[] bytes = FileUtil.toByteArray(filePath); return renderFile(fileName, bytes); } /** * 返回前台文件流 * * @author fengshuonan * @date 2017年2月28日 下午2:53:19 */ protected ResponseEntity renderFile(String fileName, byte[] fileBytes) { String dfileName = null; try { dfileName = new String(fileName.getBytes("gb2312"), "iso8859-1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", dfileName); return new ResponseEntity(fileBytes, headers, HttpStatus.CREATED); } }