package com.ruoyi.mall.mapper;

import java.util.List;

import cn.hutool.core.text.replacer.StrReplacer;
import com.ruoyi.mall.domain.MallMemberCollectSchool;
import com.ruoyi.mall.domain.MallMemberTargetSchool;
import com.ruoyi.mall.domain.Vo.MallMemberCollectSchoolVo;
import com.ruoyi.mall.domain.Vo.MallMemberTargetSchoolVo;
import com.ruoyi.mall.domain.Vo.SchoolIntroduceVO;
import com.ruoyi.mall.domain.Vo.SchoolVO;
import org.apache.ibatis.annotations.Param;

/**
 * 目标学校Mapper接口
 *
 * @author ruoyi
 * @date 2023-10-26
 */
public interface MallMemberTargetSchoolMapper
{
    /**
     * 查询 我的-目标学校列表
     * @param mallMemberTargetSchool 用户学校目标
     * @return 用户学校目标集合 包含学校详情
     */
    List<MallMemberTargetSchoolVo> selectVoForMineList(MallMemberTargetSchool mallMemberTargetSchool);
    /**
     * 查询目标学校
     *
     * @param targetId 目标学校主键
     * @return 目标学校
     */
    public MallMemberTargetSchool selectMallMemberTargetSchoolByTargetId(Long targetId);

    /**
     * 查询用户目标学校记录
     * @param id 用户id
     * @param schoolId 学校id
     * @param batchId 批次id
     * @return 结果
     */
    public MallMemberTargetSchool selectTargetSchoolStatus(@Param("id") Long id, @Param("schoolId")Long schoolId, @Param("batchId")Long batchId);

    /***
     * 查询用户设定目标记录
     * @param id 用户id
     * @param schoolId 学校id
     * @param batchId 批次id
     * @return 结果
     */
    public MallMemberTargetSchool selectTargetSchoolById(@Param("id")Long id, @Param("schoolId")Long schoolId, @Param("batchId")Long batchId);

    /**
     * 查询目标学校列表
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 目标学校集合
     */
    public List<MallMemberTargetSchool> selectMallMemberTargetSchoolList(MallMemberTargetSchool mallMemberTargetSchool);

    /**
     * 新增目标学校
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 结果
     */
    public int insertMallMemberTargetSchool(MallMemberTargetSchool mallMemberTargetSchool);

    /**
     * 修改目标学校
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 结果
     */
    public int updateMallMemberTargetSchool(MallMemberTargetSchool mallMemberTargetSchool);

    /**
     * 删除目标学校
     *
     * @param targetId 目标学校主键
     * @return 结果
     */
    public int deleteMallMemberTargetSchoolByTargetId(Long targetId);

    /**
     * 批量删除目标学校
     *
     * @param targetIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMallMemberTargetSchoolByTargetIds(Long[] targetIds);

    /**
     * 查询用户目标学校列表
     * @param id 用户id
     * @param batchId 批次id
     * @param schoolName 学校名称

     * @return 结果
     */
    public List<SchoolVO> selectTargetSchoolListByUserId(@Param("id")Long id,
                                                         @Param("batchId")Long batchId,
                                                         @Param("schoolName")String schoolName,
                                                         @Param("majorName")String majorName,
                                                         @Param("subjectType")String subjectType);
}
