package com.doumee.api.web; import com.alibaba.fastjson.JSONObject; import com.doumee.config.Jwt.JwtTokenUtil; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Users; import com.doumee.service.business.MemberService; import com.doumee.service.business.UsersService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.ptg.MemAreaPtg; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** * Controller基类 * @author Eva.Caesar Liu * @date 2022/03/15 09:54 */ @Slf4j public class ApiController { @Autowired UsersService usersService; @Autowired MemberService memberService; /** * 是否开发者 */ @Value("${debug_model}") private Boolean isDebug; /** * 得到request对象 * * @return */ public HttpServletRequest getRequest() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); return request; } /** * 获取用户ID * * @return */ protected Long getMemberId() { Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name); return obj != null ? (Long) obj : null; } protected String getToken() { Object obj = this.getRequest().getAttribute(JwtTokenUtil.HEADER_KEY); return obj != null ? (String) obj : null; } protected Long getUserId() { // if(isDebug){ // return 2L; // } Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name); return obj != null ? (Long) obj : null; } protected Users getLoginUserInfo() { Long userId = getUserId(); if(userId== null){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"未登录"); } Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserInfo); String userInfo = obj != null ? (String) obj : null; Users user = new Users(); if(StringUtils.isNotBlank(userInfo)){ user = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),Users.class); } return user; } protected Member getLoginMemberInfo() { Long userId = getMemberId(); if(userId== null){ return null; } Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserInfo); String userInfo = obj != null ? (String) obj : null; Member member = new Member(); if(StringUtils.isNotBlank(userInfo)){ member = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),Member.class); } return member; } protected String getUserType() { Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserType); return obj != null ? (String) obj : null; } }