package com.njcn.user.api;

import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.user.api.fallback.UserFeignClientFallbackFactory;
import com.njcn.user.pojo.dto.UserDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;

/**
 * @author hongawen
 * @version 1.0.0
 * @date 2021年05月08日 15:11
 */
@FeignClient(value = ServerInfo.USER,path = "/user",fallbackFactory = UserFeignClientFallbackFactory.class)
public interface UserFeignClient {

    /**
     * 根据登录名查询用户信息
     *
     * @param loginName 登录名
     * @return 用户基本信息
     */
    @GetMapping("/getUserByName/{loginName}")
    HttpResult<UserDTO> getUserByName(@PathVariable("loginName") String loginName);

    /**
     * 认证后根据用户名判断用户状态
     * @param loginName 登录名
     * @return 校验结果
     */
    @GetMapping("/judgeUserStatus/{loginName}")
    HttpResult<Boolean> judgeUserStatus(@PathVariable("loginName") String loginName);

    /**
     * 更新用户登录认证密码错误次数
     *
     * @param loginName 登录名
     * @return null
     */
    @PutMapping("/updateUserLoginErrorTimes/{loginName}")
    HttpResult<String> updateUserLoginErrorTimes(@PathVariable("loginName") String loginName);
}
