package com.ruoyi.mall.service;

import java.util.List;

import com.ruoyi.mall.domain.MallMemberUser;
import com.ruoyi.mall.domain.MemberReportIntelligence;
import com.ruoyi.mall.domain.ReportIntelligence;
import com.ruoyi.mall.domain.Vo.ReportIntelligenceVo;

/**
 * 用户智能志愿报告Service接口
 * 
 * @author ruoyi
 * @date 2023-10-28
 */
public interface IMemberReportIntelligenceService 
{
    /**
     * 查询用户智能志愿报告
     * 
     * @param reportId 用户智能志愿报告主键
     * @return 用户智能志愿报告
     */
    public MemberReportIntelligence selectMemberReportIntelligenceByReportId(Long reportId);

    /**
     * 查询用户智能志愿报告列表
     * 
     * @param memberReportIntelligence 用户智能志愿报告
     * @return 用户智能志愿报告集合
     */
    public List<MemberReportIntelligence> selectMemberReportIntelligenceList(MemberReportIntelligence memberReportIntelligence);

    /**
     * 新增用户智能志愿报告
     * 
     * @param memberReportIntelligence 用户智能志愿报告
     * @return 结果
     */
    public int insertMemberReportIntelligence(MemberReportIntelligence memberReportIntelligence);

    /**智能
     * 新增用户智能报告 同时新增报告条目
     */
    public int generateInsertReportAndItem(List<ReportIntelligenceVo> listForIntelligence, MallMemberUser mallMemberUser, Long batchId, Long memberId,String reportType);

    /**自主
     * 新增用户自主选择报告 同时新增报告条目
     */
    public int insertChoiceReportAndItem(List< ReportIntelligenceVo> collect, MallMemberUser mallMemberUser, Long batchId, Long memberId, String reportType);

    /**重新生成*/
    public Long reGenerateInsertReportAndItem(List<ReportIntelligenceVo> listForIntelligence, MallMemberUser mallMemberUser, Long batchId, Long memberId,Long reportId,String reportType);
    /**
     * 修改用户智能志愿报告
     * 
     * @param memberReportIntelligence 用户智能志愿报告
     * @return 结果
     */
    public int updateMemberReportIntelligence(MemberReportIntelligence memberReportIntelligence);

    /**
     * 批量删除用户智能志愿报告
     * 
     * @param reportIds 需要删除的用户智能志愿报告主键集合
     * @return 结果
     */
    public int deleteMemberReportIntelligenceByReportIds(Long[] reportIds);

    /**
     * 删除用户智能志愿报告信息
     * 
     * @param reportId 用户智能志愿报告主键
     * @return 结果
     */
    public int deleteMemberReportIntelligenceByReportId(Long reportId);
}
