package com.gic.haoban.manage.service.dao.mapper;

import com.gic.haoban.manage.service.entity.TabQywxTagRelation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface QywxTagRelationMapper {
    /**
     */
    int deleteByPrimaryKey(String qywxTagRelationId);

    /**
     */
    int insert(TabQywxTagRelation record);

    /**
     */
    int insertSelective(TabQywxTagRelation record);

    /**
     */
//    TabQywxTagRelation selectByPrimaryKey(String qywxTagRelationId);

    /**
     */
    int updateByPrimaryKeySelective(TabQywxTagRelation record);

    /**
     */
    int updateByPrimaryKey(TabQywxTagRelation record);

    /**
     * 查询企业下所有同步的
     *
     * @param wxEnterpriseId
     * @return
     */
    List<TabQywxTagRelation> listBySyncStatus(String wxEnterpriseId);

    /**
     * 查询企业下所有同步的
     *
     * @param wxEnterpriseId
     * @param memberTagId
     * @return
     */
    List<TabQywxTagRelation> listByMemberTagId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("memberTagId") String memberTagId);


    /**
     * 查询企业下所有同步的 根据tagItemId
     *
     * @param wxEnterpriseId
     * @param tagItemId
     * @return
     */
    TabQywxTagRelation getQywxTagRelationByTagItemId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("tagItemId") String tagItemId);

    /**
     * 删除同步信息
     *
     * @param wxEnterpriseId
     * @param memberTagId
     * @return
     */
    int delByMemberTagId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("memberTagId") String memberTagId);

    /**
     * 查询企业下所有同步的
     *
     * @param wxEnterpriseId
     * @param qywxTagId
     * @return
     */
    List<TabQywxTagRelation> listByQywxTagId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("qywxTagId") String qywxTagId);


    /**
     * 查询企业下标签组的关联
     *
     * @param wxEnterpriseId
     * @param qywxTagId
     * @return
     */
    TabQywxTagRelation getQywxGroupByQywxTagId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("qywxTagId") String qywxTagId);

    /**
     * 查询企业下标签项的关联
     *
     * @param wxEnterpriseId
     * @param qywxTagItemId
     * @return
     */
    TabQywxTagRelation getQywxTagByQywxTagItemId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("qywxTagItemId") String qywxTagItemId);

    /**
     * 更新标签同步状态
     *
     * @param wxEnterpriseId
     * @param memberTagId
     * @return
     */
    int changeRelationSyncFlag(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("memberTagId") String memberTagId, @Param("syncFlag") Integer syncFlag);
}