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


import com.hx.resultTool.Result;
import com.hz.his.dto.coupon.CouponDetailDto;
import com.hz.his.dto.coupon.CouponDto;
import com.hz.his.dto.coupon.CouponGoodsDto;
import com.hz.his.dto.coupon.CouponListDetailDto;
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 = "coupon")
public interface SCouponService {

    /**
     * 获取优惠券列表
     * @return Result
     */
    @PostMapping(value = "/coupon/list")
    Result getList(@RequestBody CouponDto couponDto);

    /**
     * 获取优惠券列表(含指定,统计人数)
     * @return Result
     */
    @PostMapping(value = "/coupon/list/appoint")
    Result getListAppoint(@RequestBody CouponDetailDto couponDetailDto);

    /**
     * 优惠券详情
     */
    @PostMapping(value = "/coupon/detail")
    Result couponDetail(@RequestParam("couponId") String couponId);

    /**
     * 用户优惠券详情
     */
    @PostMapping(value = "/coupon/couponNumberDetail")
    Result couponNumberDetail(@RequestParam("couponNumberId") String couponNumberId);

    /**
     * 优惠券统计
     */
    @PostMapping(value = "/coupon/count")
    Result couponCount(@RequestParam("couponId") String couponId);

    /**
     * 优惠券使用情况列表
     */
    @PostMapping(value = "/coupon/used/detail")
    Result couponUsedDetail(@RequestBody CouponListDetailDto couponListDetailDto);

    /**
     * 用户优惠券情况
     */
    @PostMapping(value = "/coupon/number/detail")
    Result couponNumberDetail(@RequestBody CouponListDetailDto couponListDetailDto);

    /**
     * 用户是否领取过团购活动优惠券
     */
    @PostMapping(value = "/check/group/coupon")
    Result checkGroupCoupon(@RequestBody CouponGoodsDto couponGoodsDto);


    /**
     * 根据优惠券id查询关联商品分类
     */
    @PostMapping(value = "/get/coupon/type")
    Result getCouponGoodsTyep(@RequestBody CouponGoodsDto couponGoodsDto);


    /**
     * 根据优惠券id统计关联商品
     */
    @PostMapping(value = "/get/coupon/goods")
    Result getCouponGoods(@RequestBody CouponGoodsDto couponGoodsDto);

    /**
     * 获取优惠券列表(不分页)
     * @return Result
     */
    @PostMapping(value = "/getCouponList")
    Result getCouponList(@RequestBody CouponDto couponDto);
}