package cn.iocoder.yudao.module.wxcp.service.notice; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageBlobRespVO; import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticePageReqVO; import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeSaveReqVO; import cn.iocoder.yudao.module.wxcp.controller.admin.vo.WxCpPushReqVO; import cn.iocoder.yudao.module.wxcp.controller.admin.vo.WxCpPushResultVO; import cn.iocoder.yudao.module.wxcp.dal.dataobject.notice.WxCpNoticeArticleDO; import cn.iocoder.yudao.module.wxcp.dal.dataobject.notice.WxCpNoticeDO; import jakarta.validation.Valid; import java.util.List; /** * 企业微信通知 Service 接口 * * @author 超级管理员 */ public interface WxCpNoticeService { /** * 创建通知(初始为草稿状态) * * @param createReqVO 创建信息 * @return 通知编号 */ Long createNotice(@Valid WxCpNoticeSaveReqVO createReqVO); /** * 修改通知 * * @param updateReqVO 修改信息 */ void updateNotice(@Valid WxCpNoticeSaveReqVO updateReqVO); /** * 删除通知 * * @param id 通知编号 */ void deleteNotice(Long id); /** * 获得通知 * * @param id 通知编号 * @return 通知 */ WxCpNoticeDO getNotice(Long id); /** * 获得通知分页 * * @param pageReqVO 分页查询 * @return 通知分页 */ PageResult getNoticePage(@Valid WxCpNoticePageReqVO pageReqVO); /** * 获得图片通知的图片列表 * * @param noticeId 通知编号 * @return 图片列表(含预览地址) */ List getNoticeImageAttachments(Long noticeId); /** * 获得附件通知的附件列表 * * @param noticeId 通知编号 * @return 附件列表(含预览/下载地址) */ List getNoticeFileAttachments(Long noticeId); /** * 获得视频通知的视频列表 * * @param noticeId 通知编号 * @return 视频列表(含预览地址) */ List getNoticeVideoAttachments(Long noticeId); /** * 获得多图文消息的图文列表 * * @param noticeId 通知编号 * @return 图文列表 */ List getNoticeArticles(Long noticeId); /** * 获得多图文条目的封面附件 * * @param articleId 图文条目编号 * @return 封面附件列表(最多 1 张) */ List getNoticeArticleCoverAttachments(Long articleId); /** * 发布通知(草稿 -> 已发布) * * @param id 通知编号 */ void publishNotice(Long id); /** * 撤回通知 * * @param id 通知编号 */ void revokeNotice(Long id); /** * 推送通知给企业微信成员 * * @param pushReqVO 推送信息 * @return 推送结果 */ WxCpPushResultVO pushNotice(@Valid WxCpPushReqVO pushReqVO); /** * 拼装通知预览页地址,成员在企业微信内打开后可查看图片与附件 * * @param id 通知编号 * @return 预览页地址;未配置外网地址前缀时返回 null */ String buildPreviewUrl(Long id); }