ValhallaGeneralApiService.java 2.38 KB
package cn.fw.valhalla.sdk.api;

import cn.fw.data.base.domain.common.Message;
import cn.fw.valhalla.sdk.param.CustomerQueryReq;
import cn.fw.valhalla.sdk.param.ReachLogReq;
import cn.fw.valhalla.sdk.result.AccidentFollowerResult;
import cn.fw.valhalla.sdk.result.CustomerClueDeadline;
import cn.fw.valhalla.sdk.result.CustomerSimpleInfoDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import javax.validation.Valid;
import java.util.List;

/**
 * @author : kurisu
 * @className : ValhallaGeneralApiService
 * @description : 售后crm通用api
 * @date: 2020-11-11 15:33
 */
@FeignClient(value = "fw-valhalla", path = "/api/valhalla/general")
public interface ValhallaGeneralApiService {
    /**
     * 保存进站记录
     *
     * @param reachLogReq
     * @return
     */
    @PostMapping("/reach/save")
    Message<Void> saveReachLog(@Valid @RequestBody ReachLogReq reachLogReq);

    /**
     * 查询保有客档案信息
     *
     * @param customerQueryReq
     * @return
     */
    @PostMapping("/query/customer/list")
    Message<List<CustomerSimpleInfoDto>> queryCustomList(@RequestBody CustomerQueryReq customerQueryReq);

    /**
     * 查询车辆最短的一个跟进的截止日期(不包含事故车)
     *
     * @param vin
     * @param groupId
     * @return
     */
    @GetMapping("/query/customer/clue/deadline")
    Message<CustomerClueDeadline> queryClueDeadline(@RequestParam("vin") String vin, @RequestParam("groupId") Long groupId);

    /**
     * 查询车辆最短的一个跟进的截止日期(不包含事故车)
     *
     * @param vinList maxLength 1000
     * @param groupId
     * @return
     */
    @GetMapping("/query/customer/clue/batch/deadline")
    Message<List<CustomerClueDeadline>> queryClueDeadlineBatch(@RequestParam("vinList") List<String> vinList, @RequestParam("groupId") Long groupId);

    /**
     * 根据车牌号查询事故车跟进人员
     *
     * @param plateNo 车牌号
     * @param groupId 集团id
     * @return
     */
    @GetMapping("/query/accident/follower")
    Message<AccidentFollowerResult> queryByPlate(@RequestParam("plateNo") String plateNo, @RequestParam("groupId") Long groupId);
}