package com.qnfhq.common;

import cn.dev33.satoken.stp.StpUtil;
import com.qnfhq.common.utils.Result;
import com.qnfhq.common.utils.SpringContextUtils;
import com.qnfhq.modules.user.entity.AppUserEntity;
import com.qnfhq.modules.user.service.AppUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ApiBaseController {
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());


    /**
     * 获取用户ID
     * @return
     */
    public Long getStpUserId(){
        return StpUtil.getLoginIdAsLong();
    }
    /**
     * 获取用户ID
     * @return
     */
    public AppUserEntity getAppUser(){
        long loginIdAsLong = StpUtil.getLoginIdAsLong();
        AppUserService appUserService = SpringContextUtils.getBean(AppUserService.class);
        return appUserService.selectById(loginIdAsLong);
    }
    /**
     * 返回成功
     */
    public Result success()
    {
        return new Result();
    }

    /**
     * 返回失败消息
     */
    public Result error()
    {
        return new Result().error();
    }

    /**
     * 返回成功消息
     */
    public Result success(String message)
    {
        Result result = new Result();
        result.setMsg(message);
        return result;
    }

    /**
     * 返回成功消息
     */
    public Result success(Object data)
    {
        return new Result().ok(data);
    }

    /**
     * 返回失败消息
     */
    public Result error(String message)
    {
        return new Result().error(message);
    }

    /**
     * 响应返回结果
     *
     * @param rows 影响行数
     * @return 操作结果
     */
    protected Result toAjax(int rows)
    {
        return rows > 0 ? success() : error();
    }

    /**
     * 响应返回结果
     *
     * @param result 结果
     * @return 操作结果
     */
    protected Result toAjax(boolean result)
    {
        return result ? success() : error();
    }

    /**
     * 页面跳转
     */
    public String redirect(String url)
    {
        return String.format("redirect:{%s}", url);
    }



}
