package cn.iocoder.yudao.module.wxcp.controller.admin.activity.vo;
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
import java.util.List;
|
|
@Schema(description = "管理后台 - 活动报名统计 Response VO")
|
@Data
|
public class WxCpActivityStatsRespVO {
|
|
@Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
private Long activityId;
|
|
@Schema(description = "活动标题", example = "2026 年春季团建")
|
private String activityTitle;
|
|
@Schema(description = "报名上限,0 表示不限", example = "50")
|
private Integer signupLimit;
|
|
@Schema(description = "有效报名数(不含已取消)", example = "12")
|
private Integer totalSignup;
|
|
@Schema(description = "已报名(未签到)", example = "8")
|
private Integer signedUpCount;
|
|
@Schema(description = "已签到", example = "3")
|
private Integer checkedInCount;
|
|
@Schema(description = "已取消", example = "1")
|
private Integer canceledCount;
|
|
@Schema(description = "剩余名额;不限名额时为 null", example = "38")
|
private Integer remaining;
|
|
@Schema(description = "报名进度百分比(0-100);不限名额时为 null", example = "24")
|
private Integer signupPercent;
|
|
@Schema(description = "签到率百分比(0-100),按有效报名数计算", example = "25")
|
private Integer checkInPercent;
|
|
@Schema(description = "按部门分布")
|
private List<NameCount> deptStats;
|
|
@Schema(description = "按报名日期趋势")
|
private List<NameCount> dateStats;
|
|
@Schema(description = "按成员账号来源分布(企业微信身份 / 普通填写)")
|
private List<NameCount> sourceStats;
|
|
@Schema(description = "名称-数量统计项")
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public static class NameCount {
|
|
@Schema(description = "名称", example = "技术部")
|
private String name;
|
|
@Schema(description = "数量", example = "5")
|
private Integer count;
|
|
}
|
|
}
|