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

import com.gic.haoban.manage.service.entity.TabHaobanAudit;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TabHaobanAuditMapper {

    int insert(TabHaobanAudit record);

    TabHaobanAudit selectByPrimaryKey(String auditId);

    int updateByPrimaryKeySelective(TabHaobanAudit record);

    Page<TabHaobanAudit> page(@Param("wxEnterpriseId") String wxEnterpriseId,
                              @Param("auditType") Integer auditType,
                              @Param("storeIds") List<String> storeIds,
                              @Param("searchParams") String search,
                              @Param("enterpriseId") String enterpriseId,
                              @Param("auditStatus") Integer auditStatus,
                              @Param("auditFlag") Integer auditFlag);

    List<TabHaobanAudit> listByStoreId(String storeId);

    TabHaobanAudit findByStoreIdAndChangeField(@Param("storeId") String storeId,
                                               @Param("changeField") String changeField);

    com.github.pagehelper.Page listByStaffId(@Param("staffId") String staffId,
                                             @Param("auditType") Integer auditType,
                                             @Param("auditStatus") Integer auditStatus,
                                             @Param("enterpriseId") String enterpriseId);

    com.github.pagehelper.Page pageStoreListByParams(@Param("storeIds") List<String> storeIds,
                                                     @Param("auditType") Integer auditType,
                                                     @Param("auditStatus") Integer auditStatus,
                                                     @Param("wxEnterpriseId") String wxEnterpriseId,
                                                     @Param("enterpriseId") String enterpriseId , @Param("clerkType")int clerkType);

    TabHaobanAudit findByBindRelatedIdAndAuditType(@Param("relatedId") String relatedId,
                                                   @Param("auditType") int auditType,
                                                   @Param("wxEnterpriseId") String wxEnterpriseId,
                                                   @Param("enterpriseId") String enterpriseId);

    List<TabHaobanAudit> judgeHavePhoneNumberOrCode(@Param("enterpriseId") String enterpriseId,
                                                    @Param("clerkCode") String clerkCode,
                                                    @Param("phoneNumber") String phoneNumber,
                                                    @Param("wxEnterpriseId") String wxEnterpriseId);

    int getAuditCount(@Param("wxEnterpriseId") String wxEnterpriseId,
                      @Param("enterpriseId") String enterpriseId,
                      @Param("relatedId") String relatedId,
                      @Param("storeIds") List<String> storeIds, @Param("clerkType")int clerkType);
}