package com.muchinfo.mtp3interface.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.muchinfo.mtp3pojos.entity.Systemmanager;
import com.muchinfo.mtp3pojos.vo.I18nconfig;
import com.muchinfo.mtp3pojos.vo.marketrun.MarketRunLoginUserResult;
import com.muchinfo.mtp3pojos.vo.organ.UserAccountOrgan2UserResult;
import com.muchinfo.mtp3pojos.vo.organ.UserAccountSelfsupportParam;
import com.muchinfo.mtp3pojos.vo.organ.UserAccountSelfsupportResult;
import com.muchinfo.mtp3pojos.vo.systemrun.*;
import com.muchinfo.mtp3pojos.vo.systemsetup.ListMarketSectionConfig;
import com.muchinfo.mtp3pojos.vo.systemsetup.SystemMarketSectionParam;
import com.muchinfo.mtp3pojos.vo.systemsetup.SystemMarketSectionResult;
import com.muchinfo.mtp3pojos.vo.systemsetup.SystemMarketSetDetail;
import com.muchinfo.mtp3pojos.vo.systemuser.SystemUserReqParam;
import com.muchinfo.mtp3pojos.vo.systemuser.SystemUserResResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 系统管理员表 Mapper 接口
 * </p>
 *
 * @author XKF
 * @since 2024-03-21
 */
@Mapper
public interface ISystemmanagerMapper extends BaseMapper<Systemmanager> {

    IPage<SystemUserResResult> selectByPageVo(IPage<SystemUserResResult> page, @Param("systemParam") SystemUserReqParam systemParam);

    List<Systemmanager> getSystemManagerByRole(@Param("autoId") Integer autoId);

    IPage<SystemUserLogResult> selectLogByParam(IPage<SystemUserLogResult> page, @Param("vo") SystemUserLogParam param);

    IPage<SystemLoginErrorResult> queryUserLoginFlow(IPage<SystemLoginErrorResult> page, @Param("vo") SystemLoginErrorParam param);

    List<SystemLoginErrorResult> queryUserLoginFlow(@Param("vo") SystemLoginErrorParam param);

    IPage<MarketRunLoginUserResult> queryUserOnlineByPage(IPage<MarketRunLoginUserResult> page, @Param("loginid") String loginid, @Param("memberuserid") Long memberuserid, @Param("parentuserid") Long parentuserid);

    IPage<UserAccountOrgan2UserResult> getAllUserByOrgan2(IPage<UserAccountOrgan2UserResult> page, @Param("userid") Long userid);

    void updateorgan2User(@Param("userid") Long userid, @Param("status") Integer status);

    IPage<UserAccountSelfsupportResult> queryselfsupport(IPage<UserAccountSelfsupportResult> page, @Param("vo") UserAccountSelfsupportParam param);

    IPage<YmrslQueryResult> querymrsl(IPage<YmrslQueryResult> page, @Param("vo") YmrslQueryParam param);

    IPage<LoginLogQueryResult> queryloginlog(IPage<LoginLogQueryResult> page, @Param("vo") LoginLogQueryParam param);

    List<LoginLogQueryResult> queryloginlog(@Param("vo") LoginLogQueryParam param);

    IPage<SystemMarketSectionResult> queryMarketSet(IPage<SystemMarketSectionResult> page, @Param("vo") SystemMarketSectionParam param);

    SystemMarketSetDetail queryMarketSectionBean(@Param("marketsectionid") Integer marketsectionid);

    List<ListMarketSectionConfig> queryMarketSectionConfigNewList(@Param("marketsectionid") Integer marketsectionid);

    List<I18nconfig> queryI18nConfigs();
}
