package com.hz.his.feign.service.phis;


import com.hx.resultTool.Result;
import com.hz.his.dto.employee.EmpAuthDto;
import com.hz.his.dto.employee.EmpDocDto;
import com.hz.his.dto.TimeDto;
import com.hz.his.dto.employee.EmployeeDto;
import com.hz.his.dto.employee.EmployeeRoleDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 这里这个name 需要填写 请求的服务提供者的注册到nacos Server上面的服务名,path 是请求接口前缀
 */
@FeignClient(name="phis-provider",path = "/p-his-data",contextId = "employee")
public interface SEmployeeService {

    /**
     * 获取员工详情
     * @param empId 员工标识
     * @return Result
     */
    @PostMapping(value = "/emp/detail")
    Result getEmpDetail(@RequestParam("empId") String empId);

    /**
     * 查询员工列表
     */
    @PostMapping(value = "/emp/page/list")
    Result getEmpList(@RequestBody(required = false) EmployeeDto employeeDto);

    /**
     * 查询员工列表
     */
    @PostMapping(value = "/emp/list")
    Result getList(@RequestBody(required = false) TimeDto timeDto);

    /**
     * 查询医生员工列表
     */
    @PostMapping(value = "/emp/doctor/list")
    Result getDocEmpList(@RequestBody(required = false) EmpDocDto empDocDto);

    /**
     * 查询医生资质信息
     */
    @PostMapping(value = "/emp/certificate")
    Result getEmpCertificate(@RequestBody(required = false) String empId);

    /**
     * 查询医生医务信息
     */
    @PostMapping(value = "/emp/medical/info")
    Result getEmpMedicalInfo(@RequestBody(required = false) String empId);

    /**
     * 判断用户是否存在企业userId,是否存在传递的角色
     */
    @PostMapping(value = "/emp/userId/role/check")
    Result checkUserIdRole(@RequestBody(required = false)EmployeeDto employeeDto);

    @PostMapping(value = "/emp/role/liset")
    Result roleList(@RequestBody(required = false) EmployeeDto employeeDto);

    /**获取员工-角色列表*/
    @PostMapping(value = "/emp/role/info/list")
    Result employeeRoleList(@RequestBody(required = false) EmployeeRoleDto employeeRoleDto);

    @PostMapping(value = "/emp/check/doctor")
    Result checkEmployeeRoleDoctor(@RequestBody(required = false) EmpDocDto employeeDto);

    @PostMapping(value = "/emp/detail/name")
    Result getDetailsByName(@RequestBody(required = false) EmpDocDto employeeDto);

    @PostMapping(value = "/emp/role/get/one")
    Result getEmployeeByRoleId(@RequestBody(required = false) EmpAuthDto empAuthDto);

    @PostMapping(value = "/emp/auth/check")
    Result empAuthCheck(@RequestBody(required = false) EmpAuthDto empAuthDto);

}