获取登陆人信息方法【smart_wok_parent】

package com.zskj.smart_wok.controller;

import com.zskj.smart_wok.bean.CurrentInfo;
import com.zskj.smart_wok.service.bean.ApiResult;
import com.zskj.smart_wok.service.bean.ResponseData;
import com.zskj.smart_wok.service.exception.BusinessException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Objects;

/**
 * @author ck
 * @date 2018-11-09
 */
public abstract class BaseApiController {

    @Value("${wx.app-id}")
    protected String wxAppId;
    @Value("${wx.app-secret}")
    protected String wxAppSecret;

    /**
     * 获得登录人信息
     *
     * @return
     */
    protected CurrentInfo getCurrentFromAuth() {
        RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
        HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
        return (CurrentInfo) request.getAttribute(CurrentInfo.PRINCIPAL_ATTRIBUTE_NAME);
    }

    /**
     * 错误信息
     *
     * @param bindingResult
     * @return
     */
    protected ResponseData errorMsg(BindingResult bindingResult) {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        StringBuilder errorStr = new StringBuilder();
        for (ObjectError error : allErrors) {
            errorStr.append(error.getDefaultMessage()).append(" ");
        }
        return ResponseData.error(errorStr.toString());
    }

    /**
     * 参数校验
     *
     * @param currentFromAuth
     * @param objs
     */
    protected void checkCommonParam(CurrentInfo currentFromAuth, Object... objs) {
        if (Objects.isNull(currentFromAuth)) {
            throw new BusinessException(ApiResult.INVALID_AUTH);
        }
        for (int i = 0; i < objs.length; i++) {
            if (Objects.isNull(objs[i])) {
                throw new BusinessException(ApiResult.PARAM_IS_ILLEGAL);
            }
        }
    }

    /**
     * 校验参数为空
     *
     * @param objs
     */
    protected void checkNullParam(Object... objs) {
        if (Objects.isNull(objs)) {
            throw new BusinessException(ApiResult.PARAM_IS_ILLEGAL);
        }
        for (int i = 0; i < objs.length; i++) {
            if (Objects.isNull(objs[i])) {
                throw new BusinessException(ApiResult.PARAM_IS_ILLEGAL);
            }
        }
    }
    ResponseData handleNotValidResult(BindingResult bindingResult) {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        StringBuilder sb = new StringBuilder();
        for (ObjectError allError : allErrors) {
            String defaultMessage = allError.getDefaultMessage();
            sb.append(defaultMessage);
            sb.append("\r\n");
        }
        ResponseData responseData = new ResponseData();
        responseData.setCode(ApiResult.PARAM_IS_ILLEGAL.getCode());
        responseData.setMsg(sb.toString());
        return responseData;
    }
}

CurrentInfo类

package com.zskj.smart_wok.bean;

import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;

/**
 * 登录信息bean
 *
 * @author zgq
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class CurrentInfo implements Serializable {

    /**
     * "身份信息"参数名称
     */
    public static final String PRINCIPAL_ATTRIBUTE_NAME = CurrentInfo.class.getName() + ".PRINCIPAL";

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 账号
     */
    private String username;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * token
     */
    private String accessToken;

    private static final long serialVersionUID = -2338669778607213069L;


}
    @GetMapping("list")
    @ApiOperation(value = "获取我的菜谱列表(C)", response = CookbookVO.class)
    @ApiResponse(code = 40075, message = "获取菜谱分享码失败")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageNum", value = "分页页数", paramType = "query", required = false, dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "pageSize", value = "每页数量", paramType = "query", required = false, dataTypeClass = Integer.class)
    })
    public ResponseData cookbookList(PageParam pageParam) {
        checkCommonParam(getCurrentFromAuth());
        AppPage<CookbookVO> CookbookVOS = cookbookService.querySelective(getCurrentFromAuth().getUserId(), pageParam);
        return ResponseData.ok(CookbookVOS);
    }

备注:详细请参考smark-work-parent项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值