package com.ruixuan.isc.service;

import com.alibaba.fastjson.JSONObject;
import com.ruixuan.common.core.domain.AjaxResult;
import com.ruixuan.common.utils.Result;
import com.ruixuan.isc.entity.JYKuaishouPromoter;
import com.ruixuan.isc.entity.KuaishouPromoter;

import java.util.List;

/**
 * 快手达人 信息Service接口
 *
 * @author ruoyi
 * @date 2023-02-03
 */
public interface IKuaishouPromoterService {
    /**
     * 查询快手达人 信息
     *
     * @param id 快手达人 信息主键
     * @return 快手达人 信息
     */
    public JSONObject selectKuaishouPromoterById(Long id);

    /**
     * 查询快手达人 信息列表
     *
     * @param kuaishouPromoter 快手达人 信息
     * @return 快手达人 信息集合
     */
    public List<KuaishouPromoter> selectKuaishouPromoterList(Long userId, String promoterId, String promoterNickName, String mediaId, String parameter, String orderBy);

    public List<JYKuaishouPromoter> selectKuaishouPromoterList3(Long userId, String promoterId, String promoterNickName, String mediaId, String type, String parameter, String orderBy);

    /**
     * 新增快手达人 信息
     *
     * @param kuaishouPromoter 快手达人 信息
     * @return 结果
     */
    public JSONObject insertKuaishouPromoter(KuaishouPromoter kuaishouPromoter);

    /**
     * 修改快手达人 信息
     *
     * @param kuaishouPromoter 快手达人 信息
     * @return 结果
     */
    public int updateKuaishouPromoter(KuaishouPromoter kuaishouPromoter);

    /**
     * 删除快手达人 信息信息
     *
     * @param id 快手达人 信息主键
     * @return 结果
     */
    public Result deleteKuaishouPromoterById(Long id, Long userId);

    AjaxResult getPromoterInfo(String promoterId);

    KuaishouPromoter getOnlyPromoterInfo(String promoterId);

    List<String> selectPromoterIdList(List<Long> userList, String mediaId);

    JSONObject getgetMonthPromoterTotal(List<Long> userList, String start, String end, String mediaId);

    List<JSONObject> selectKuaishouPromoterList2(Long userId, String promoterId, String promoterNickName, String status, String parameter, String orderBy);

    Result supplementInfo();

    int addFollowUpRecords(JSONObject result);

    Result updatePromoterLabel(JSONObject result);

    void updateFollowUpRecords(JSONObject result);

    Result getGongHaiVideoSales(String promoterId);

    KuaishouPromoter getOnlyPromoterInfoByUserId(String promoterId, Long userId);

    JSONObject addPromotersCount(Long userId, Long promotersCount, String mediaId);

    String getRuleName(Long ruleId);

    int addRule(String promoterId, Long ruleId, String ruleName);

    List<String> selectPromoterIdListByTime(List<Long> userList, Long startDate, Long endDate);

    JSONObject insertKuaishouPromoter3(JYKuaishouPromoter kuaishouPromoter);

    int updateKuaishouPromoter3(JYKuaishouPromoter kuaishouPromoter);

    Result deleteKuaishouPromoterById3(Long id, Long userId);
}
