package com.hai.service;

import com.alibaba.fastjson.JSONObject;
import com.hai.entity.ApiAmountRecord;
import com.hai.entity.ApiMerchants;
import com.hai.entity.ApiProductConfig;
import com.hai.model.ApiProductConfigModel;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @serviceName ApiMerchantsService.java
 * @author Sum1Dream
 * @version 1.0.0
 * @Description // api商户接口
 * @createTime 17:31 2022/6/7
 **/
public interface ApiMerchantsService {

    /**
     * @Author Sum1Dream
     * @name insertApiMerchants.java
     * @Description // 新增api商户
     * @Date 14:55 2022/6/7
     * @Param [com.alibaba.fastjson.JSONObject]
     * @return void
     */
    void insertApiMerchants(ApiMerchants apiMerchants);

    /**
     * @Author Sum1Dream
     * @name updateApiMerchants.java
     * @Description // 修改api商户
     * @Date 14:56 2022/6/7
     * @Param [com.alibaba.fastjson.JSONObject]
     * @return void
     */
    void updateApiMerchants(ApiMerchants apiMerchants);

    /**
     * @Author Sum1Dream
     * @name getListApiMerchants.java
     * @Description // 查询api商户列表
     * @Date 14:57 2022/6/7
     * @Param [java.util.Map<java.lang.String,java.lang.Object>]
     * @return java.util.List<com.hai.entity.ApiMerchants>
     */
    List<ApiMerchants> getListApiMerchants(Map<String, Object> map);

    /**
     * @Author Sum1Dream
     * @name findById.java
     * @Description // 根据id 查询api商户
     * @Date 15:24 2022/6/7
     * @Param [java.lang.Long]
     * @return com.hai.entity.ApiMerchants
     */
    ApiMerchants findById(Long id);

    /**
    * @Author Sum1Dream
    * @name findByMchId.java
    * @Description // 根据商户号查询商户
    * @Date 10:05 2022/6/10
    * @Param [java.lang.String]
    * @return com.hai.entity.ApiMerchants
    */
    ApiMerchants findByMchId(String mchId);

    /**
    * @Author Sum1Dream
    * @name recharge.java
    * @Description // 进账
    * @Date 10:33 2022/6/8
    * @Param [java.lang.Long, java.math.BigDecimal, java.util.Map<java.lang.String,java.lang.Object>]
    * @return void
    */
    void recharge(Long merchantId, BigDecimal amount, Map<String, Object> otherParam);

    /**
    * @Author Sum1Dream
    * @name getMerchRechargeData.java
    * @Description // 查询商户充值记录
    * @Date 15:14 2022/6/8
    * @Param [java.lang.Long]
    * @return java.util.List<com.hai.entity.ApiAmountRecord>
    */
    List<ApiAmountRecord> getMerchRechargeData(Long merchantId);

    /**
    * @Author Sum1Dream
    * @name getListMerchProduct.java
    * @Description // 查询商户配置产品
    * @Date 10:10 2022/6/9
    * @Param [java.lang.Long]
    * @return java.util.List<com.hai.entity.ApiProductConfig>
    */
    List<ApiProductConfigModel> getListMerchProduct(Long merchantId);

    /**
     * @Author Sum1Dream
     * @name getListMerchProduct.java
     * @Description // 查询商户可用产品
     * @Date 10:10 2022/6/9
     * @Param [java.lang.Long]
     * @return java.util.List<com.hai.entity.ApiProductConfig>
     */
    List<ApiProductConfigModel> getMerchProduct(Long merchantId , Integer rechargeType);

    
}
