liu
2 天以前 47dd1ecaf0aafa66b9c39fff9c91abc1c611b02c
yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java
@@ -3,6 +3,8 @@
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageBlobRespVO;
import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeArticleRespVO;
import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticePageReqVO;
import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeRespVO;
import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeSaveReqVO;
@@ -11,6 +13,7 @@
import cn.iocoder.yudao.module.wxcp.dal.dataobject.notice.WxCpNoticeDO;
import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpPushScopeEnum;
import cn.iocoder.yudao.module.wxcp.enums.notice.WxCpNoticeStatusEnum;
import cn.iocoder.yudao.module.wxcp.enums.notice.WxCpNoticeTypeEnum;
import cn.iocoder.yudao.module.wxcp.service.notice.WxCpNoticeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -20,6 +23,8 @@
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -111,14 +116,35 @@
        }
        WxCpNoticeRespVO vo = BeanUtils.toBean(notice, WxCpNoticeRespVO.class);
        fillNames(vo);
        // 素材详情需要回显,列表页不回显以免多查附件表
        vo.setImageAttachmentList(noticeService.getNoticeImageAttachments(notice.getId()));
        vo.setFileAttachmentList(noticeService.getNoticeFileAttachments(notice.getId()));
        vo.setVideoAttachmentList(noticeService.getNoticeVideoAttachments(notice.getId()));
        vo.setImageBlobIds(vo.getImageAttachmentList().stream()
                .map(SystemStorageBlobRespVO::getId).toList());
        vo.setFileBlobIds(vo.getFileAttachmentList().stream()
                .map(SystemStorageBlobRespVO::getId).toList());
        vo.setVideoBlobIds(vo.getVideoAttachmentList().stream()
                .map(SystemStorageBlobRespVO::getId).toList());
        vo.setArticleList(noticeService.getNoticeArticles(notice.getId()).stream().map(article -> {
            WxCpNoticeArticleRespVO item = BeanUtils.toBean(article, WxCpNoticeArticleRespVO.class);
            List<SystemStorageBlobRespVO> covers =
                    noticeService.getNoticeArticleCoverAttachments(article.getId());
            item.setCoverAttachment(covers.isEmpty() ? null : covers.get(0));
            return item;
        }).toList());
        return vo;
    }
    private void fillNames(WxCpNoticeRespVO vo) {
        WxCpNoticeStatusEnum status = WxCpNoticeStatusEnum.valueOf(vo.getStatus());
        vo.setStatusName(status != null ? status.getName() : null);
        WxCpNoticeTypeEnum type = WxCpNoticeTypeEnum.valueOf(vo.getNoticeType());
        vo.setNoticeTypeName(type != null ? type.getName() : null);
        WxCpPushScopeEnum scope = WxCpPushScopeEnum.valueOf(vo.getPushScope());
        vo.setPushScopeName(scope != null ? scope.getName() : null);
        // 预览链接只依赖配置,列表页也能直接给出,方便管理员复制发给成员
        vo.setPreviewUrl(noticeService.buildPreviewUrl(vo.getId()));
    }
}