package com.yonge.cooleshow.biz.dal.mapper;


import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.biz.dal.entity.StudentCounts;
import com.yonge.cooleshow.biz.dal.entity.TeacherCounts;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;

/**
 * 机构表
 * 2023-07-21 17:26:59
 */
@Repository
public interface TenantInfoMapper extends BaseMapper<TenantInfo> {

	/**
	 * 分页查询
	 * @param page IPage<TenantInfoWrapper.TenantInfo>
	 * @param param TenantInfoWrapper.TenantInfoQuery
	 * @return List<TenantInfoWrapper.TenantInfo>
	 */
	List<TenantInfoWrapper.TenantInfo> selectPage(@Param("page") IPage<TenantInfoWrapper.TenantInfo> page, @Param("param") TenantInfoWrapper.TenantInfoQuery param);

	/**
	 * 更新
	 * @param info
	 * @return
	 */
	Boolean updateInfo(@Param("param") TenantInfo info);


	/**
	 * 冻结
	 * @param id
	 */
	Boolean updateFlag(@Param("id") long id);

	Boolean updateMethod(@Param("id") long id);

	Boolean insertInfo(@Param("param") TenantInfo tenantInfo);

	TeacherCounts queryTeacherCounts(@Param("id") Long id);

	StudentCounts queryStudentCounts(@Param("id") Long id);

	List<TenantInfoWrapper.TenantInfo> selectApplyPage(@Param("page") IPage<TenantInfoWrapper.TenantInfo> page, @Param("param") TenantInfoWrapper.TenantInfoQuery query);

	List<TenantInfoWrapper.TenantInfo> selectHistoryPage(@Param("page") IPage<TenantInfoWrapper.TenantInfo> page, @Param("id") long id);

	TenantInfoWrapper.TenantInfo queryNow(@Param("param") TenantInfoWrapper.TenantInfoQuery query);


	Boolean updateStatusById(@Param("id") long id);

	Boolean updateUnpassStatusById(@Param("id") long id);

	TenantInfoWrapper.TenantInfo selectInfoById(@Param("id") Long id);

	String queryStudentCount(@Param("id") Long id);

	String queryTeacherCount(@Param("id") Long id);

    void updateIdPhone(@Param("newId") Long newId, @Param("phone") String phone, @Param("oldId") Long oldId);
}