ActivityThemeService.java 3.08 KB
package cn.fw.dalaran.service.data;

import cn.fw.common.page.AppPage;
import cn.fw.common.web.auth.LoginAuthBean;
import cn.fw.dalaran.domain.db.ActivityTheme;
import cn.fw.dalaran.domain.param.ActivityThemePageParams;
import cn.fw.dalaran.domain.param.AddThemeCoverParams;
import cn.fw.dalaran.domain.param.AddThemeTopicParams;
import cn.fw.dalaran.domain.vo.ActivityThemeVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;

/**
 * @author wmy3969
 * @version 1.0
 * @date 2022/1/8 17:28
 * @Description
 */
public interface ActivityThemeService extends IService<ActivityTheme> {
    /**
     * 校验该活动主题生效时间段是否与已有的活动主题时间段重叠
     *
     * @param vo 需要保存的活动
     * @return 是否有重复
     */
    boolean validThemeDateDuplicate(ActivityThemeVo vo);

    /**
     * 校验时间有无重叠
     *
     * @param startDate1 开始时间1
     * @param endDate1   结束时间1
     * @param startDate2 开始时间2
     * @param endDate2   结束时间2
     * @return 两个时间区间是否有重叠
     */
    boolean validDateOverlap(Date startDate1, Date endDate1, Date startDate2, Date endDate2);

    /**
     * 保存主题
     *
     * @param themeVo 参数
     * @return
     */
    boolean save(ActivityThemeVo themeVo);

    /**
     * 增加话题
     *
     * @param params 增加话题带参
     * @return
     */
    boolean addTopic(AddThemeTopicParams params);

    /**
     * 增加封面
     *
     * @param params 增加封面带参
     * @return
     */
    boolean addCover(AddThemeCoverParams params);

    /**
     * 查询集团话题列表
     *
     * @param groupId       集团id
     * @param configGroupId 所属配置组id
     * @return
     */
    List<ActivityThemeVo> list(Long groupId, Long configGroupId);

    /**
     * 分页查询活动主题列表
     *
     * @param groupId    集团id
     * @param pageParams 分页查询参数
     * @return 活动主题列表
     */
    AppPage<ActivityThemeVo> pageList(Long groupId, ActivityThemePageParams pageParams);

    /**
     * 查询活动列表(指定月)
     *
     * @param user      当前登录用户
     * @param timeStamp 指定月之内的时间戳
     * @return 符合条件的活动列表
     */
    List<ActivityThemeVo> listByMonth(LoginAuthBean user, Long timeStamp);

    /**
     * 修改活动主题
     *
     * @param param 修改的参数封装
     */
    boolean alertTheme(ActivityTheme param);

    /**
     * 获取配置组对应有效性配置
     *
     * @param configGroupId 配置组id
     */
    String getValidConfigJson(Long configGroupId);

    /**
     * 验证主题是否结束数据抓取
     *
     * @param themeEndTime 主题结束时间
     * @param delayDays    延期天数
     * @return 主题是否结束数据抓取
     */
    boolean themeHaveStopCatchData(Date themeEndTime, int delayDays);

    /**
     * 获取已经逻辑删除的主题列表
     *
     * @return 已经逻辑删除的主题列表
     */
    List<ActivityTheme> getHasDelActivityTheme();
}