package com.cyksj.service.corp;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cyksj.model.entity.CorpTag;
import com.cyksj.model.entity.CorpTagRule;
import com.cyksj.model.entity.CorpTagRuleRelation;
import com.cyksj.model.excel.CorpUserTagExcelData;
import com.cyksj.model.request.CorpDelTagReq;
import com.cyksj.model.views.*;

import java.util.List;

/*
 *项目名: netflix
 *文件名: CorpTagService
 *创建者: JavaZou
 *创建时间:2023/6/20 16:06
 */
public interface CorpTagService {

	CorpTagGroupView addCorpTagGroup(CorpTagGroupView tagGroup) throws Exception;

	void editCorpTag(CorpTagGroupView tagGroup) throws Exception;

	Page<CorpTagGroupView> getCorpTagList(String groupName, Integer start, Integer limit);

	void saveOrUpdateRule(CorpTagRule rule);

	Page<CorpTagBackView> getCorpTagBackView(Integer start, Integer limit, Integer type, String name, String[] groupIds, String sort, String order, String tagIdStr) throws Exception;

	List<CorpTag> getGroupTagDetail(String groupId);

	Page<CorpUserView> getCorpUserDetail(String tagId, String groupId, Integer start, Integer limit);

	List<CorpUserTagExcelData> exportUserTagDetail(String[] tagIds, String[] groupIds);

	List<CorpTagRuleRelation> getCorpTagRuleDetail(Long tagId);

	CorpTagHeadDataView getCorpTagHeadDataView();

	void delTags(CorpDelTagReq req) throws Exception;

	/**
	 * 新增标签组
	 */
	CorpTagGroupView addGroup(CorpTagGroupView tagGroup) throws Exception;

	Page<UserOrderDetailView>  getTagUserData(Integer start, Integer limit, String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);

	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(Integer start, Integer limit, String tagIdStr, String toDate, String startTime, String endTime);

	Page<UserOrderDetailView> getTagUserPastRecord(Integer start, Integer limit, String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);

	UserOrderDetailView tagUserHeadData(String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);

	UserOrderDetailView getFansUserToMonthOrdersDetail(String tagId, String date);
}
