package com.hai.service;

import com.hai.entity.HighDiscountAgentCode;
import io.swagger.models.auth.In;

import java.util.List;
import java.util.Map;

/**
 * @Auther: 胡锐
 * @Description:  代理商的优惠券二维码
 * @Date: 2021/4/14 22:07
 */
public interface HighDiscountAgentCodeService {

    /**
     * @Author 胡锐
     * @Description 批量增加
     * @Date 2021/4/14 22:08
     **/
    void insertCodeList(List<HighDiscountAgentCode> discountAgentCodeList);

    /**
     * @Author 胡锐
     * @Description 增加
     * @Date 2021/4/14 22:32
     **/
    void insertCode(HighDiscountAgentCode highDiscountAgentCode);

    /**
     * @Author 胡锐
     * @Description 修改
     * @Date 2021/4/14 22:32
     **/
    void updateCode(HighDiscountAgentCode highDiscountAgentCode);

    /**
     * @Author 胡锐
     * @Description 查询
     * @Date 2021/4/16 22:20
     **/
    List<HighDiscountAgentCode> getDiscountCode(Map<String,Object> map);

    /**
     * 优惠券使用情况列表
     * @param map
     * @return
     */
    List<Map<String, Object>> getDiscountUseConditionList(Map<String,Object> map);

    /**
     * @Author Sum1Dream
     * @name getDiscountCodeByDiscountAgentId.java
     * @Description // 根据关系id 查询 未领取的卡券
     * @Date 14:20 2021/9/29
     * @Param [discountAgentId]
     * @return java.util.List<com.hai.entity.HighDiscountAgentCode>
     **/
    List<HighDiscountAgentCode> getDiscountCodeByDiscountAgentId(Long discountAgentId);

    /**
     * @Author Sum1Dream
     * @name getDiscountCodeByDiscountAgentId.java
     * @Description // 根据关系id 查询 未领取的卡券
     * @Date 14:20 2021/9/29
     * @Param [discountAgentId]
     * @return java.util.List<com.hai.entity.HighDiscountAgentCode>
     **/
    List<HighDiscountAgentCode> getDiscountCodeByStatus(Long discountAgentId , Integer status);


    /**
     * @Author 胡锐
     * @Description 根据id 查询二维码
     * @Date 2021/4/14 23:38
     **/
    HighDiscountAgentCode getCodeById(Long id);




    /**
     * 查询已分配的优惠券总数
     * @param discountAgentId
     * @return
     */
    Integer getTotalDiscount(Long discountAgentId);

    /**
     * 查询已领取的优惠券总数
     * @param discountAgentId
     * @return
     */
    Integer getSalesDiscount(Long discountAgentId);

    List<HighDiscountAgentCode> getDiscountAgentCodByLimit(Long discountAgentId , Long num);
}
