package com.xzx.gc.common.request; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.sun.org.apache.regexp.internal.RE; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.utils.DateUtils; import com.xzx.gc.common.utils.ExceptionUtils; import com.xzx.gc.common.utils.MqUtil; import com.xzx.gc.entity.CoreUser; import com.xzx.gc.model.JsonResult; import com.xzx.gc.util.BeanUtils; import com.xzx.gc.util.SessionUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestBody; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.Charset; import java.util.Date; import java.util.List; /** * @author :zz */ @Slf4j public class BaseController { @Autowired public MqUtil mqUtil; public String getVersion(HttpServletRequest request){ return request.getHeader("version"); } public String getClientType(HttpServletRequest request){ return request.getHeader("clientType"); } public String getUserId(HttpServletRequest request){ return request.getHeader("userId"); } /** * 获取前端客户端类型 * @param request * @return */ public String getFrontClient(HttpServletRequest request){ if (CommonEnum.安卓.getValue().equals(getClientType(request))||CommonEnum.苹果.getValue().equals(getClientType(request))) { return CommonEnum.app.getValue(); }else { return CommonEnum.小程序.getValue(); } } /** * 是否是手机端 * @param request * @return */ public boolean isMobile(HttpServletRequest request){ String frontClient = getFrontClient(request); if(CommonEnum.app.getValue().equals(frontClient)){ return true; } return false; } /** * 获取后台账户名称 * @param request * @return */ public String getAdminName(HttpServletRequest request){ CoreUser obj = (CoreUser) request.getSession().getAttribute(SessionUtil.ACCESS_CURRENT_USER); if(obj!=null){ return obj.getCode(); } return "未知"; } /** * 导出 * @param rows * @param response */ public void export(List> rows, HttpServletResponse response){ ExcelWriter bigWriter = ExcelUtil.getBigWriter(); try { response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader("Content-Disposition", bigWriter.getDisposition(DateUtil.format(new Date(), DateUtils.DATE_FORMAT_YMDHMS_LINE), Charset.forName("UTF-8"))); ServletOutputStream outputStream = response.getOutputStream(); bigWriter.write(rows); bigWriter.flush(outputStream, true); } catch (Exception e) { log.error("导出异常终止:{}", e.getMessage()); } } }