liu
13 小时以前 5d34bdd3c426bb2ca5f6627424ae67984f745603
yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/activity/WxCpActivityController.java
@@ -10,6 +10,7 @@
import cn.iocoder.yudao.module.wxcp.dal.dataobject.activity.WxCpActivityDO;
import cn.iocoder.yudao.module.wxcp.dal.dataobject.activity.WxCpActivitySignupDO;
import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpActivityStatusEnum;
import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpActivityTypeEnum;
import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpPushScopeEnum;
import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpSignupStatusEnum;
import cn.iocoder.yudao.module.wxcp.service.activity.WxCpActivityService;
@@ -83,7 +84,9 @@
    @PreAuthorize("@ss.hasPermission('wxcp:activity:query')")
    public CommonResult<PageResult<WxCpActivityRespVO>> getActivityPage(@Valid WxCpActivityPageReqVO pageReqVO) {
        PageResult<WxCpActivityDO> pageResult = activityService.getActivityPage(pageReqVO);
        return success(BeanUtils.toBean(pageResult, WxCpActivityRespVO.class, this::fillActivityNames));
        PageResult<WxCpActivityRespVO> result = BeanUtils.toBean(pageResult, WxCpActivityRespVO.class);
        result.getList().forEach(this::fillActivityExtra);
        return success(result);
    }
    @PutMapping("/publish")
@@ -161,6 +164,9 @@
            }
            WxCpSignupStatusEnum status = WxCpSignupStatusEnum.valueOf(vo.getStatus());
            vo.setStatusName(status != null ? status.getName() : null);
            vo.setFieldValues(activityService.getSignupValues(vo.getId()).stream()
                    .map(value -> BeanUtils.toBean(value, WxCpSignupValueRespVO.class))
                    .toList());
        });
        return success(result);
    }
@@ -206,15 +212,32 @@
            return null;
        }
        WxCpActivityRespVO vo = BeanUtils.toBean(activity, WxCpActivityRespVO.class);
        fillActivityNames(vo);
        fillActivityExtra(vo);
        return vo;
    }
    private void fillActivityNames(WxCpActivityRespVO vo) {
    /**
     * 补齐状态名、推送范围名与封面附件
     *
     * 封面/详情图不落业务表字段,统一从 system_storage_attachment 中间表读,
     * 前端取 attachmentList[0].previewURL 展示封面,detailAttachmentList 回显详情图。
     */
    private void fillActivityExtra(WxCpActivityRespVO vo) {
        WxCpActivityStatusEnum status = WxCpActivityStatusEnum.valueOf(vo.getStatus());
        vo.setStatusName(status != null ? status.getName() : null);
        WxCpPushScopeEnum scope = WxCpPushScopeEnum.valueOf(vo.getPushScope());
        vo.setPushScopeName(scope != null ? scope.getName() : null);
        WxCpActivityTypeEnum type = WxCpActivityTypeEnum.valueOf(vo.getActivityType());
        vo.setActivityTypeName(type != null ? type.getName() : null);
        if (vo.getId() != null) {
            vo.setAttachmentList(activityService.getActivityAttachments(vo.getId()));
            vo.setDetailAttachmentList(activityService.getActivityDetailAttachments(vo.getId()));
            vo.setImageAttachmentList(activityService.getActivityImageAttachments(vo.getId()));
            vo.setFileAttachmentList(activityService.getActivityFileAttachments(vo.getId()));
            vo.setFieldList(activityService.getActivityFields(vo.getId()).stream()
                    .map(field -> BeanUtils.toBean(field, WxCpActivityFieldRespVO.class))
                    .toList());
        }
    }
}